Leeds United v Manchester City — Prediction, Odds & Stats
Saturday 28 February 2026 · ENG-Premier League · 2526
Premier League
xG Prediction generated
AI prediction
ai-blend-oos No snapshot has been taken for this fixture yet; this is the stored price.Probabilities, not certainties. How they are made: the methodology.
Was this pick made in advance?
-oos is out of sample: it was fitted only on matches
played before this one, so its pick is a genuine forecast rather than hindsight.
Anything without that suffix was fitted on all available data.What the chances say
Leeds United are finishing below their chances — 3.4 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding sharply fewer than expected — 6.3 goals saved beyond what the chances suggest.
Manchester City are finishing above their chances — 2.8 goals more than expected across 10 matches, which usually cools off. They are also conceding fewer than expected — 3.9 goals saved beyond what the chances suggest.
Finishing swings far more than chance creation, so a gap this size usually narrows. Over ten matches it is suggestive, not settled — a genuinely elite finisher beats expected goals for years.
What the model said
| Model | Home / Draw / Away | Expected goals | Likeliest score | O2.5 | BTTS | Outcome |
|---|---|---|---|---|---|---|
| ai-blend-oos | 1.21–1.81 | 0% | 0% | 0% | Away ✓ | |
| dc-xg-oos | 1.53–1.72 | 1-1 10% | 63% | 64% | Away ✓ |
A model whose name ends -oos was produced by the walk-forward backtest:
it was fitted only on matches played before this one, so the pick is genuinely out of sample.
Reading the xG timeline
Expected goals by minute
Reading the shot map
Shot map
Every shot
| Min | Team | Player | xG | Situation | Body part | Result | Assisted by |
|---|---|---|---|---|---|---|---|
| 3' |
|
Dominic Calvert-Lewin | 0.50 | Open Play | Left Foot | Missed Shot | Brenden Aaronson |
| 16' |
|
Dominic Calvert-Lewin | 0.07 | Open Play | Left Foot | Missed Shot | Pascal Struijk |
| 17' |
|
James Justin | 0.03 | Open Play | Right Foot | Saved Shot | Ethan Ampadu |
| 20' |
|
Brenden Aaronson | 0.14 | Open Play | Right Foot | Missed Shot | Jayden Bogle |
| 21' |
|
Anton Stach | 0.02 | Open Play | Right Foot | Blocked Shot | Ethan Ampadu |
| 24' |
|
Dominic Calvert-Lewin | 0.05 | Set Piece | — | Missed Shot | Anton Stach |
| 26' |
|
Gabriel Gudmundsson | 0.02 | From Corner | Left Foot | Missed Shot | — |
| 38' |
|
Brenden Aaronson | 0.33 | Open Play | Right Foot | Saved Shot | Anton Stach |
| 39' |
|
Nico O'Reilly | 0.34 | Open Play | — | Saved Shot | Matheus Nunes |
| 39' |
|
Nico O'Reilly | 0.58 | Open Play | Left Foot | Saved Shot | — |
| 39' |
|
Omar Marmoush | 0.05 | Open Play | Left Foot | Saved Shot | — |
| 46' |
|
Antoine Semenyo | 0.60 | Open Play | Right Foot | Goal | Rayan Ait Nouri |
| 47' |
|
Brenden Aaronson | 0.02 | Set Piece | Left Foot | Blocked Shot | — |
| 48' |
|
Dominic Calvert-Lewin | 0.12 | Open Play | Left Foot | Blocked Shot | Anton Stach |
| 49' |
|
Gabriel Gudmundsson | 0.01 | Open Play | Left Foot | Missed Shot | — |
| 52' |
|
Omar Marmoush | 0.12 | Open Play | Right Foot | Missed Shot | Matheus Nunes |
| 61' |
|
Omar Marmoush | 0.06 | Open Play | Right Foot | Blocked Shot | Rúben Dias |
| 61' |
|
Omar Marmoush | 0.16 | Open Play | Left Foot | Missed Shot | Rúben Dias |
| 61' |
|
Rúben Dias | 0.05 | Open Play | Right Foot | Missed Shot | — |
| 66' |
|
Rayan Ait Nouri | 0.04 | Open Play | Right Foot | Missed Shot | Matheus Nunes |
| 70' |
|
Antoine Semenyo | 0.13 | Open Play | Left Foot | Blocked Shot | Mathis Cherki |
| 71' |
|
Marc Guehi | 0.49 | From Corner | — | Saved Shot | Rodri |
| 71' |
|
Mathis Cherki | 0.02 | From Corner | Right Foot | Blocked Shot | Matheus Nunes |
| 71' |
|
Rodri | 0.06 | From Corner | — | Missed Shot | — |
| 71' |
|
Rodri | 0.03 | From Corner | Right Foot | Blocked Shot | — |
| 84' |
|
Ethan Ampadu | 0.02 | Open Play | Right Foot | Blocked Shot | Dominic Calvert-Lewin |
| 85' |
|
Ethan Ampadu | 0.02 | Open Play | Right Foot | Blocked Shot | — |
| 87' |
|
Jaka Bijol | 0.03 | From Corner | — | Missed Shot | Anton Stach |
Players
Manchester City
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Antoine Semenyo FW | 90 | 1 | 0 | 2 | 0 | 0.72 | 0.00 | 0.77 |
| Marc Guehi DC | 90 | 0 | 0 | 1 | 0 | 0.49 | 0.00 | 0.57 |
| Rodri DMC | 90 | 0 | 0 | 2 | 1 | 0.09 | 0.49 | 1.29 |
| Rúben Dias DC | 90 | 0 | 0 | 1 | 2 | 0.05 | 0.21 | 0.30 |
| Rayan Ait Nouri DL | 90 | 0 | 1 | 1 | 1 | 0.04 | 0.60 | 0.89 |
| Mathis Cherki MC | 90 | 0 | 0 | 1 | 1 | 0.02 | 0.13 | 0.89 |
| Bernardo Silva MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 1.29 |
| Matheus Nunes DR | 90 | 0 | 0 | 0 | 4 | 0.00 | 0.53 | 1.23 |
| Gianluigi Donnarumma GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.09 |
| Nico O'Reilly MC | 73 | 0 | 0 | 2 | 0 | 0.92 | 0.00 | 1.64 |
| Omar Marmoush FW | 71 | 0 | 0 | 4 | 0 | 0.39 | 0.00 | 0.43 |
| Sávio Sub | 19 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Tijjani Reijnders Sub | 17 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Nathan Aké Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Leeds United
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Dominic Calvert-Lewin FW | 90 | 0 | 0 | 4 | 1 | 0.75 | 0.02 | 0.72 |
| Ethan Ampadu MC | 90 | 0 | 0 | 2 | 2 | 0.04 | 0.04 | 0.66 |
| Gabriel Gudmundsson DL | 90 | 0 | 0 | 2 | 0 | 0.03 | 0.00 | 0.09 |
| James Justin DC | 90 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.03 |
| Anton Stach MR | 90 | 0 | 0 | 1 | 4 | 0.02 | 0.53 | 1.08 |
| Pascal Struijk DC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.07 | 0.07 |
| Karl Darlow GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Joe Rodon DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Jayden Bogle DR | 79 | 0 | 0 | 0 | 1 | 0.00 | 0.14 | 0.76 |
| Ilia Gruev MC | 78 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.03 |
| Brenden Aaronson ML | 68 | 0 | 0 | 3 | 1 | 0.49 | 0.50 | 1.07 |
| Lukas Nmecha Sub | 22 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Wilfried Gnonto Sub | 12 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Daniel James Sub | 11 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Jaka Bijol Sub | 1 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.00 |
| Joël Piroe Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |