Manchester City v West Ham United — Prediction, Odds & Stats
Saturday 4 January 2025 · ENG-Premier League · 2425
Premier League
xG Prediction generated
AI prediction
dc-xg-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
Manchester City are finishing below their chances — 2.7 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding sharply fewer than expected — 4.3 goals saved beyond what the chances suggest.
West Ham United are conceding sharply fewer than expected — 4.3 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 |
|---|---|---|---|---|---|---|
| dc-xg-oos | 2.97–1.06 | 2-1 8% | 77% | 62% | Home ✓ |
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' |
|
Mohammed Kudus | 0.05 | Open Play | Left Foot | Blocked Shot | Lucas Paquetá |
| 6' |
|
Mohammed Kudus | 0.31 | Open Play | Right Foot | Missed Shot | Crysencio Summerville |
| 8' |
|
Tomas Soucek | 0.08 | Open Play | Right Foot | Missed Shot | Mohammed Kudus |
| 9' |
|
Vladimir Coufal | 0.00 | Open Play | Left Foot | Own Goal | — |
| 12' |
|
Sávio | 0.04 | From Corner | Right Foot | Blocked Shot | Phil Foden |
| 16' |
|
Phil Foden | 0.01 | From Corner | Left Foot | Blocked Shot | Mateo Kovacic |
| 23' |
|
Mohammed Kudus | 0.04 | Open Play | Left Foot | Blocked Shot | Vladimir Coufal |
| 28' |
|
Lucas Paquetá | 0.03 | Open Play | Left Foot | Missed Shot | Crysencio Summerville |
| 29' |
|
Sávio | 0.06 | Open Play | Left Foot | Saved Shot | Kevin De Bruyne |
| 30' |
|
Niclas Füllkrug | 0.05 | Open Play | — | Missed Shot | Vladimir Coufal |
| 31' |
|
Bernardo Silva | 0.11 | Open Play | Right Foot | Saved Shot | Erling Haaland |
| 33' |
|
Mohammed Kudus | 0.09 | Open Play | Left Foot | Missed Shot | Crysencio Summerville |
| 37' |
|
Rico Lewis | 0.03 | Open Play | Right Foot | Saved Shot | Sávio |
| 41' |
|
Erling Haaland | 0.57 | Open Play | — | Goal | Sávio |
| 45' |
|
Crysencio Summerville | 0.02 | Open Play | — | Saved Shot | Edson Álvarez |
| 50' |
|
Mohammed Kudus | 0.06 | Open Play | Left Foot | Blocked Shot | Niclas Füllkrug |
| 50' |
|
Vladimir Coufal | 0.02 | Open Play | Right Foot | Saved Shot | — |
| 54' |
|
Erling Haaland | 0.50 | Open Play | Left Foot | Goal | Sávio |
| 57' |
|
Phil Foden | 0.55 | Open Play | Left Foot | Goal | Kevin De Bruyne |
| 64' |
|
Lucas Paquetá | 0.05 | Direct Freekick | Left Foot | Missed Shot | — |
| 65' |
|
Tomas Soucek | 0.27 | Open Play | Right Foot | Saved Shot | Lucas Paquetá |
| 70' |
|
Niclas Füllkrug | 0.27 | Open Play | Left Foot | Goal | Tomas Soucek |
| 76' |
|
Aaron Wan-Bissaka | 0.04 | Set Piece | Left Foot | Missed Shot | Niclas Füllkrug |
| 80' |
|
Crysencio Summerville | 0.10 | Open Play | Right Foot | Missed Shot | Niclas Füllkrug |
| 82' |
|
Tomas Soucek | 0.03 | From Corner | — | Missed Shot | Luis Guilherme |
| 85' |
|
Lucas Paquetá | 0.05 | Open Play | Left Foot | Missed Shot | Edson Álvarez |
| 91' |
|
Jack Grealish | 0.07 | Open Play | Right Foot | Blocked Shot | Phil Foden |
| 96' |
|
Kevin De Bruyne | 0.03 | Open Play | Right Foot | Saved Shot | — |
Players
Manchester City
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Phil Foden MR | 90 | 1 | 0 | 2 | 2 | 0.56 | 0.11 | 1.20 |
| Bernardo Silva MC | 90 | 0 | 0 | 1 | 0 | 0.11 | 0.00 | 0.65 |
| Rico Lewis DR | 90 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 1.11 |
| Kevin De Bruyne MC | 90 | 0 | 1 | 1 | 2 | 0.03 | 0.61 | 1.39 |
| Stefan Ortega Moreno GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 1.13 |
| Josko Gvardiol DL | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.70 |
| Manuel Akanji DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 1.08 |
| Erling Haaland FW | 85 | 2 | 0 | 2 | 1 | 1.08 | 0.11 | 1.24 |
| Sávio ML | 81 | 0 | 2 | 2 | 3 | 0.10 | 1.11 | 1.16 |
| Mateo Kovacic DMC | 62 | 0 | 0 | 0 | 1 | 0.00 | 0.01 | 0.65 |
| Nathan Aké DC | 62 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.56 |
| Ilkay Gündogan Sub | 28 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Kyle Walker Sub | 28 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.07 |
| James McAtee Sub | 9 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.07 |
| Jack Grealish Sub | 5 | 0 | 0 | 1 | 0 | 0.07 | 0.00 | 0.07 |
West Ham United
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Tomas Soucek DMC | 90 | 0 | 1 | 3 | 1 | 0.38 | 0.27 | 0.71 |
| Niclas Füllkrug FW | 90 | 1 | 0 | 2 | 3 | 0.32 | 0.20 | 0.87 |
| Lucas Paquetá AMC | 90 | 0 | 0 | 3 | 2 | 0.13 | 0.32 | 0.96 |
| Crysencio Summerville AML | 90 | 0 | 0 | 2 | 3 | 0.11 | 0.42 | 0.67 |
| Aaron Wan-Bissaka DL | 90 | 0 | 0 | 1 | 0 | 0.04 | 0.00 | 0.78 |
| Vladimir Coufal DR | 90 | 0 | 0 | 1 | 2 | 0.02 | 0.09 | 0.70 |
| Max Kilman DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.40 |
| Alphonse Areola GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.35 |
| Edson Álvarez DMC | 88 | 0 | 0 | 0 | 2 | 0.00 | 0.07 | 0.86 |
| Mohammed Kudus AMR | 73 | 0 | 0 | 5 | 1 | 0.54 | 0.08 | 0.69 |
| Jean-Clair Todibo DC | 54 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.47 |
| Konstantinos Mavropanos Sub | 36 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Luis Guilherme Sub | 17 | 0 | 0 | 0 | 1 | 0.00 | 0.03 | 0.00 |
| Danny Ings Sub | 2 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |