Hamburger SV v Hoffenheim — Prediction, Odds & Stats
Saturday 25 April 2026 · 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
Hamburger SV have scored 11 from 11.2 expected and conceded 24 from 25.8 — both ends in line with the chances, so the recent record is a fair reflection.
Hoffenheim are finishing below their chances — 2.9 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding sharply more than the chances against them merit — 5.0 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.29–1.78 | 0% | 0% | 0% | Away ✓ | |
| dc-xg-oos | 1.43–1.81 | 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 |
|---|---|---|---|---|---|---|---|
| 1' |
|
Bakery Jatta | 0.02 | Open Play | Left Foot | Missed Shot | Albert Grønbæk |
| 5' |
|
Fábio Vieira | 0.09 | Open Play | Left Foot | Blocked Shot | Ransford Königsdörffer |
| 16' |
|
Ozan Kabak | 0.32 | Open Play | — | Blocked Shot | Bazoumana Touré |
| 16' |
|
Wouter Burger | 0.03 | Open Play | Left Foot | Missed Shot | — |
| 18' |
|
Fisnik Asllani | 0.41 | Open Play | Left Foot | Goal | Vladimir Coufal |
| 20' |
|
Tim Lemperle | 0.08 | Open Play | Right Foot | Missed Shot | Albian Hajdari |
| 22' |
|
Albert Grønbæk | 0.06 | Open Play | Right Foot | Saved Shot | Fábio Vieira |
| 33' |
|
Robert Glatzel | 0.76 | Right Foot | Goal | — | |
| 35' |
|
Ozan Kabak | 0.45 | Open Play | — | Saved Shot | Bazoumana Touré |
| 38' |
|
Bakery Jatta | 0.04 | Open Play | Right Foot | Saved Shot | — |
| 38' |
|
Fisnik Asllani | 0.04 | Open Play | Right Foot | Saved Shot | Bazoumana Touré |
| 43' |
|
Ozan Kabak | 0.06 | From Corner | — | Missed Shot | Wouter Burger |
| 44' |
|
Tim Lemperle | 0.48 | Open Play | Right Foot | Goal | Albian Hajdari |
| 47' |
|
Ransford Königsdörffer | 0.06 | Open Play | Right Foot | Missed Shot | Fábio Vieira |
| 53' |
|
Bazoumana Touré | 0.26 | Open Play | — | Saved Shot | Andrej Kramaric |
| 54' |
|
Wouter Burger | 0.02 | Open Play | Left Foot | Missed Shot | Ozan Kabak |
| 55' |
|
Ransford Königsdörffer | 0.11 | Open Play | Right Foot | Blocked Shot | Nicolás Capaldo |
| 58' |
|
Fisnik Asllani | 0.11 | Open Play | Right Foot | Blocked Shot | Tim Lemperle |
| 65' |
|
Bazoumana Touré | 0.04 | From Corner | Left Foot | Missed Shot | — |
| 73' |
|
Bakery Jatta | 0.19 | From Corner | — | Missed Shot | Fábio Vieira |
| 77' |
|
Bazoumana Touré | 0.03 | Open Play | Left Foot | Blocked Shot | Bernardo |
| 82' |
|
Nicolás Capaldo | 0.05 | Open Play | Right Foot | Blocked Shot | — |
| 82' |
|
Otto Stange | 0.03 | Open Play | Left Foot | Missed Shot | Ransford Königsdörffer |
| 85' |
|
Nicolai Remberg | 0.01 | Set Piece | — | Saved Shot | Fábio Vieira |
| 86' |
|
Cole Campbell | 0.06 | Open Play | Left Foot | Missed Shot | — |
| 93' |
|
Grischa Prömel | 0.04 | Open Play | Right Foot | Saved Shot | Cole Campbell |
| 94' |
|
Rayan Philippe | 0.07 | Open Play | — | Missed Shot | Ransford Königsdörffer |
Players
Hoffenheim
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Ozan Kabak DC | 90 | 0 | 0 | 3 | 1 | 0.84 | 0.02 | 1.21 |
| Bazoumana Touré DML | 90 | 0 | 0 | 3 | 3 | 0.32 | 0.81 | 1.09 |
| Wouter Burger MC | 90 | 0 | 0 | 2 | 1 | 0.05 | 0.06 | 0.09 |
| Vladimir Coufal DMR | 90 | 0 | 1 | 0 | 1 | 0.00 | 0.41 | 0.85 |
| Oliver Baumann GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.28 |
| Leon Avdullahu MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.26 |
| Albian Hajdari DC | 90 | 0 | 1 | 0 | 2 | 0.00 | 0.56 | 0.62 |
| Tim Lemperle FW | 89 | 1 | 0 | 2 | 1 | 0.56 | 0.11 | 0.93 |
| Andrej Kramaric AMC | 79 | 0 | 0 | 0 | 1 | 0.00 | 0.26 | 0.75 |
| Fisnik Asllani AMC | 68 | 1 | 0 | 3 | 0 | 0.57 | 0.00 | 1.28 |
| Robin Hranác DC | 50 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.50 |
| Bernardo Sub | 40 | 0 | 0 | 0 | 1 | 0.00 | 0.03 | 0.09 |
| Grischa Prömel Sub | 22 | 0 | 0 | 1 | 0 | 0.04 | 0.00 | 0.04 |
| Alexander Prass Sub | 11 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Cole Campbell Sub | 1 | 0 | 0 | 1 | 1 | 0.06 | 0.04 | 0.10 |
| Max Moerstedt Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Hamburger SV
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Ransford Königsdörffer FW | 90 | 0 | 0 | 2 | 3 | 0.17 | 0.19 | 0.44 |
| Fábio Vieira AMC | 90 | 0 | 0 | 1 | 4 | 0.09 | 0.32 | 0.39 |
| Albert Grønbæk MC | 90 | 0 | 0 | 1 | 1 | 0.06 | 0.02 | 0.08 |
| Nicolás Capaldo DC | 90 | 0 | 0 | 1 | 1 | 0.05 | 0.11 | 0.22 |
| Nicolai Remberg MC | 90 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.15 |
| Jordan Torunarigha DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.15 |
| Warmed Omari DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Daniel Heuer Fernandes GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Bakery Jatta MR | 79 | 0 | 0 | 3 | 0 | 0.24 | 0.00 | 0.11 |
| William Mikelbrencis ML | 79 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.06 |
| Robert Glatzel FW | 68 | 1 | 0 | 1 | 0 | 0.76 | 0.00 | 0.17 |
| Otto Stange Sub | 22 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.10 |
| Albert Sambi Lokonga Sub | 11 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.03 |
| Giorgi Gocholeishvili Sub | 11 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Rayan Philippe Sub | 1 | 0 | 0 | 1 | 0 | 0.07 | 0.00 | 0.07 |
| Damion Downs Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |