Wolfsburg v Hoffenheim — Prediction, Odds & Stats
Sunday 2 November 2025 · GER-Bundesliga · 2526
Bundesliga
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
Wolfsburg are finishing sharply below their chances — 6.8 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding fewer than expected — 2.2 goals saved beyond what the chances suggest.
Hoffenheim are finishing below their chances — 2.7 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding sharply more than the chances against them merit — 5.9 goals above expected, which tends to correct.
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.57–1.44 | 0% | 0% | 0% | Home ✗ | |
| dc-xg-oos | 1.71–1.43 | 1-1 11% | 61% | 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 |
|---|---|---|---|---|---|---|---|
| 9' |
|
Fisnik Asllani | 0.04 | Open Play | — | Missed Shot | Bazoumana Touré |
| 13' |
|
Mohammed Amoura | 0.58 | Open Play | Left Foot | Goal | Mattias Svanberg |
| 30' |
|
Wouter Burger | 0.35 | Open Play | Left Foot | Goal | Vladimir Coufal |
| 32' |
|
Mattias Svanberg | 0.06 | Open Play | Right Foot | Missed Shot | Mohammed Amoura |
| 44' |
|
Christian Eriksen | 0.04 | Direct Freekick | Right Foot | Blocked Shot | — |
| 45' |
|
Wouter Burger | 0.02 | Open Play | Left Foot | Missed Shot | Tim Lemperle |
| 45' |
|
Mohammed Amoura | 0.03 | From Corner | Right Foot | Saved Shot | — |
| 48' |
|
Jenson Seelt | 0.03 | Set Piece | — | Missed Shot | Christian Eriksen |
| 49' |
|
Grischa Prömel | 0.54 | Open Play | — | Goal | Andrej Kramaric |
| 52' |
|
Andrej Kramaric | 0.04 | Open Play | Left Foot | Saved Shot | Vladimir Coufal |
| 54' |
|
Vinicius Souza | 0.02 | Open Play | Right Foot | Saved Shot | Mohammed Amoura |
| 55' |
|
Mohammed Amoura | 0.38 | Open Play | Right Foot | Goal | Sael Kumbedi |
| 60' |
|
Mohammed Amoura | 0.12 | Open Play | Right Foot | Missed Shot | Lovro Majer |
| 61' |
|
Wouter Burger | 0.11 | Open Play | Left Foot | Goal | Grischa Prömel |
| 64' |
|
Konstantinos Koulierakis | 0.02 | Open Play | Left Foot | Saved Shot | Lovro Majer |
| 75' |
|
Grischa Prömel | 0.03 | Open Play | Right Foot | Missed Shot | — |
| 75' |
|
Ihlas Bebou | 0.42 | Open Play | Right Foot | Missed Shot | Andrej Kramaric |
| 83' |
|
Ozan Kabak | 0.12 | Set Piece | — | Blocked Shot | Andrej Kramaric |
| 90' |
|
Ihlas Bebou | 0.07 | Open Play | Right Foot | Missed Shot | Wouter Burger |
| 90' |
|
Jonas Wind | 0.05 | Open Play | Right Foot | Blocked Shot | Adam Daghim |
| 91' |
|
Aaron Zehnter | 0.01 | From Corner | Left Foot | Saved Shot | — |
| 95' |
|
Dzenan Pejcinovic | 0.07 | Open Play | Left Foot | Blocked Shot | Konstantinos Koulierakis |
Players
Hoffenheim
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Wouter Burger MC | 90 | 2 | 0 | 3 | 1 | 0.48 | 0.07 | 0.59 |
| Robin Hranác DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.46 |
| Leon Avdullahu MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.46 |
| Oliver Baumann GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Bernardo DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Vladimir Coufal DMR | 90 | 0 | 1 | 0 | 2 | 0.00 | 0.39 | 0.50 |
| Grischa Prömel MC | 84 | 1 | 1 | 2 | 1 | 0.57 | 0.11 | 0.74 |
| Tim Lemperle FW | 76 | 0 | 0 | 0 | 1 | 0.00 | 0.02 | 0.05 |
| Bazoumana Touré DML | 64 | 0 | 0 | 0 | 1 | 0.00 | 0.04 | 0.04 |
| Fisnik Asllani AMC | 47 | 0 | 0 | 1 | 0 | 0.04 | 0.00 | 0.04 |
| Albian Hajdari DC | 47 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.35 |
| Ozan Kabak Sub | 43 | 0 | 0 | 1 | 0 | 0.12 | 0.00 | 0.00 |
| Andrej Kramaric Sub | 43 | 0 | 1 | 1 | 3 | 0.04 | 1.09 | 1.00 |
| Max Moerstedt Sub | 26 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Ihlas Bebou Sub | 14 | 0 | 0 | 2 | 0 | 0.49 | 0.00 | 0.49 |
| Alexander Prass Sub | 6 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Wolfsburg
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Mohammed Amoura FW | 90 | 2 | 0 | 4 | 2 | 1.10 | 0.08 | 1.14 |
| Jenson Seelt DC | 90 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.40 |
| Vinicius Souza DMC | 90 | 0 | 0 | 1 | 0 | 0.02 | 0.00 | 0.58 |
| Konstantinos Koulierakis DC | 90 | 0 | 0 | 1 | 1 | 0.02 | 0.07 | 1.18 |
| Aaron Zehnter DL | 90 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.17 |
| Sael Kumbedi DR | 90 | 0 | 1 | 0 | 1 | 0.00 | 0.38 | 0.39 |
| Adam Daghim AMR | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.05 | 0.43 |
| Kamil Grabara GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 1.03 |
| Maximilian Arnold DMC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.43 |
| Christian Eriksen AMC | 76 | 0 | 0 | 1 | 1 | 0.04 | 0.03 | 1.07 |
| Mattias Svanberg AML | 61 | 0 | 1 | 1 | 1 | 0.06 | 0.58 | 0.65 |
| Lovro Majer Sub | 29 | 0 | 0 | 0 | 2 | 0.00 | 0.13 | 0.20 |
| Jonas Wind Sub | 14 | 0 | 0 | 1 | 0 | 0.05 | 0.00 | 0.05 |
| Dzenan Pejcinovic Sub | 1 | 0 | 0 | 1 | 0 | 0.07 | 0.00 | 0.07 |