Eintracht Frankfurt v Hoffenheim — Prediction, Odds & Stats
Saturday 24 January 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
Eintracht Frankfurt are finishing below their chances — 2.9 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding more than the chances against them merit — 2.2 goals above expected, which tends to correct.
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.72–1.55 | 0% | 0% | 0% | Home ✗ | |
| dc-xg-oos | 2.20–1.41 | 2-1 9% | 70% | 67% | 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 |
|---|---|---|---|---|---|---|---|
| 0' |
|
Alexander Prass | 0.02 | Open Play | Right Foot | Saved Shot | — |
| 4' |
|
Arnaud Kalimuendo Muinga | 0.32 | Open Play | Right Foot | Saved Shot | Ritsu Doan |
| 17' |
|
Arnaud Kalimuendo Muinga | 0.11 | Open Play | Left Foot | Goal | — |
| 20' |
|
Ozan Kabak | 0.06 | From Corner | — | Shot On Post | Wouter Burger |
| 23' |
|
Can Uzun | 0.01 | Set Piece | — | Blocked Shot | Ritsu Doan |
| 28' |
|
Andrej Kramaric | 0.07 | Direct Freekick | Right Foot | Missed Shot | — |
| 33' |
|
Ozan Kabak | 0.01 | Set Piece | — | Missed Shot | Vladimir Coufal |
| 38' |
|
Fisnik Asllani | 0.07 | Open Play | Right Foot | Saved Shot | Wouter Burger |
| 39' |
|
Ozan Kabak | 0.11 | From Corner | — | Missed Shot | — |
| 45' |
|
Wouter Burger | 0.41 | Open Play | — | Saved Shot | Fisnik Asllani |
| 47' |
|
Farès Chaïbi | 0.03 | From Corner | Left Foot | Saved Shot | — |
| 50' |
|
Arnaud Kalimuendo Muinga | 0.10 | Open Play | Right Foot | Blocked Shot | Nathaniel Brown |
| 51' |
|
Max Moerstedt | 0.46 | Open Play | — | Goal | Wouter Burger |
| 54' |
|
Wouter Burger | 0.08 | Open Play | Left Foot | Missed Shot | Alexander Prass |
| 59' |
|
Ozan Kabak | 0.35 | From Corner | — | Goal | — |
| 63' |
|
Hugo Larsson | 0.03 | From Corner | Right Foot | Missed Shot | Nathaniel Brown |
| 64' |
|
Aurèle Amenda | 0.00 | Open Play | Left Foot | Own Goal | — |
| 66' |
|
Rasmus Kristensen | 0.10 | Open Play | Right Foot | Missed Shot | Arnaud Kalimuendo Muinga |
| 72' |
|
Jean Négoce | 0.09 | From Corner | — | Missed Shot | Ritsu Doan |
| 90' |
|
Ritsu Doan | 0.04 | Direct Freekick | Left Foot | Missed Shot | — |
Players
Eintracht Frankfurt
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Rasmus Kristensen DMR | 90 | 0 | 0 | 1 | 0 | 0.10 | 0.00 | 0.10 |
| Ritsu Doan AMC | 90 | 0 | 0 | 1 | 3 | 0.04 | 0.42 | 0.42 |
| Nathaniel Brown DML | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.14 | 0.10 |
| Kauã Santos GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Robin Koch DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.10 |
| Ellyes Skhiri MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.10 |
| Aurèle Amenda DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Arnaud Kalimuendo Muinga FW | 76 | 1 | 0 | 3 | 1 | 0.53 | 0.10 | 0.63 |
| Nnamdi Collins DC | 76 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.10 |
| Farès Chaïbi MC | 65 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.42 |
| Can Uzun AMC | 65 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.00 |
| Hugo Larsson Sub | 25 | 0 | 0 | 1 | 0 | 0.03 | 0.00 | 0.00 |
| Ansgar Knauff Sub | 25 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Jean Négoce Sub | 14 | 0 | 0 | 1 | 0 | 0.09 | 0.00 | 0.00 |
| Ayoube Amaimouni-Echghouyab Sub | 14 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Hoffenheim
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Ozan Kabak DC | 90 | 1 | 0 | 4 | 0 | 0.52 | 0.00 | 0.46 |
| Wouter Burger MC | 90 | 0 | 1 | 2 | 3 | 0.50 | 0.58 | 1.02 |
| Fisnik Asllani AMC | 90 | 0 | 0 | 1 | 1 | 0.07 | 0.41 | 0.56 |
| Alexander Prass DML | 90 | 0 | 0 | 1 | 1 | 0.02 | 0.08 | 0.56 |
| Bernardo DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.46 |
| Vladimir Coufal DMR | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.01 | 0.50 |
| Leon Avdullahu MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.08 |
| Albian Hajdari DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.46 |
| Oliver Baumann GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.46 |
| Max Moerstedt FW | 80 | 1 | 0 | 1 | 0 | 0.46 | 0.00 | 0.94 |
| Andrej Kramaric AMC | 71 | 0 | 0 | 1 | 0 | 0.07 | 0.00 | 0.08 |
| Grischa Prömel Sub | 19 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Ihlas Bebou Sub | 10 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Muhammed Damar Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |