Borussia Dortmund v Bayern Munich — Prediction, Odds & Stats
Saturday 28 February 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
Borussia Dortmund are finishing below their chances — 2.3 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding fewer than expected — 2.7 goals saved beyond what the chances suggest.
Bayern Munich are conceding fewer than expected — 3.2 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.55–2.14 | 0% | 0% | 0% | Away ✓ | |
| dc-xg-oos | 1.58–2.15 | 1-2 9% | 72% | 70% | 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 |
|---|---|---|---|---|---|---|---|
| 5' |
|
Michael Olise | 0.03 | Open Play | Left Foot | Blocked Shot | Konrad Laimer |
| 10' |
|
Harry Kane | 0.07 | Open Play | Right Foot | Blocked Shot | Konrad Laimer |
| 15' |
|
Michael Olise | 0.03 | Open Play | Left Foot | Saved Shot | Serge Gnabry |
| 23' |
|
Joshua Kimmich | 0.04 | Open Play | Right Foot | Saved Shot | Aleksandar Pavlovic |
| 23' |
|
Serge Gnabry | 0.03 | Open Play | Left Foot | Blocked Shot | Michael Olise |
| 25' |
|
Nico Schlotterbeck | 0.42 | Set Piece | — | Goal | Daniel Svensson |
| 33' |
|
Maximilian Beier | 0.14 | Open Play | Left Foot | Blocked Shot | Fabio Silva |
| 44' |
|
Joshua Kimmich | 0.02 | Open Play | Right Foot | Saved Shot | Luis Díaz |
| 45' |
|
Serge Gnabry | 0.02 | Open Play | Right Foot | Missed Shot | Harry Kane |
| 49' |
|
Daniel Svensson | 0.11 | Open Play | Right Foot | Blocked Shot | Felix Nmecha |
| 53' |
|
Harry Kane | 0.51 | Open Play | Left Foot | Goal | Serge Gnabry |
| 54' |
|
Maximilian Beier | 0.05 | Open Play | Right Foot | Missed Shot | Felix Nmecha |
| 55' |
|
Maximilian Beier | 0.10 | Open Play | Right Foot | Blocked Shot | Fabio Silva |
| 56' |
|
Michael Olise | 0.05 | Open Play | Right Foot | Missed Shot | — |
| 64' |
|
Yan Couto | 0.06 | Open Play | Left Foot | Missed Shot | Karim Adeyemi |
| 65' |
|
Jamal Musiala | 0.07 | Open Play | Left Foot | Blocked Shot | Michael Olise |
| 69' |
|
Harry Kane | 0.76 | Right Foot | Goal | — | |
| 80' |
|
Luis Díaz | 0.09 | Open Play | Right Foot | Missed Shot | Dayotchanculle Upamecano |
| 82' |
|
Daniel Svensson | 0.30 | Open Play | Right Foot | Goal | Marcel Sabitzer |
| 83' |
|
Luis Díaz | 0.10 | Open Play | Right Foot | Missed Shot | Michael Olise |
| 85' |
|
Serhou Guirassy | 0.13 | Open Play | Right Foot | Missed Shot | Julian Brandt |
| 86' |
|
Joshua Kimmich | 0.08 | Open Play | Left Foot | Goal | — |
| 90' |
|
Samuele Inácio | 0.05 | From Corner | Left Foot | Blocked Shot | Julian Brandt |
| 92' |
|
Nico Schlotterbeck | 0.03 | Open Play | Left Foot | Blocked Shot | — |
Players
Borussia Dortmund
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Nico Schlotterbeck DC | 90 | 1 | 0 | 2 | 0 | 0.45 | 0.00 | 0.40 |
| Daniel Svensson DML | 90 | 1 | 1 | 2 | 1 | 0.41 | 0.42 | 0.41 |
| Yan Couto DMR | 90 | 0 | 0 | 1 | 0 | 0.06 | 0.00 | 0.60 |
| Waldemar Anton DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.74 |
| Marcel Sabitzer MC | 90 | 0 | 1 | 0 | 1 | 0.00 | 0.30 | 0.54 |
| Gregor Kobel GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.13 |
| Maximilian Beier AMC | 82 | 0 | 0 | 3 | 0 | 0.29 | 0.00 | 0.36 |
| Karim Adeyemi AMC | 82 | 0 | 0 | 0 | 1 | 0.00 | 0.06 | 0.17 |
| Felix Nmecha MC | 82 | 0 | 0 | 0 | 2 | 0.00 | 0.16 | 0.33 |
| Fabio Silva FW | 74 | 0 | 0 | 0 | 2 | 0.00 | 0.24 | 0.35 |
| Emre Can DC | 49 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.14 |
| Ramy Bensebaini Sub | 41 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.10 |
| Serhou Guirassy Sub | 16 | 0 | 0 | 1 | 0 | 0.13 | 0.00 | 0.13 |
| Samuele Inácio Sub | 8 | 0 | 0 | 1 | 0 | 0.05 | 0.00 | 0.00 |
| Julian Brandt Sub | 8 | 0 | 0 | 0 | 2 | 0.00 | 0.18 | 0.13 |
| Jobe Bellingham Sub | 8 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.30 |
Bayern Munich
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Harry Kane FW | 90 | 2 | 0 | 3 | 1 | 1.34 | 0.02 | 0.72 |
| Luis Díaz AML | 90 | 0 | 0 | 2 | 1 | 0.19 | 0.02 | 0.34 |
| Joshua Kimmich DMC | 90 | 1 | 0 | 3 | 0 | 0.13 | 0.00 | 0.87 |
| Michael Olise AMR | 90 | 0 | 0 | 3 | 3 | 0.11 | 0.19 | 0.39 |
| Dayotchanculle Upamecano DC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.09 | 0.16 |
| Aleksandar Pavlovic DMC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.04 | 0.19 |
| Jonas Urbig GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.19 |
| Jonathan Tah DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.33 |
| Konrad Laimer DL | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.10 | 0.27 |
| Josip Stanisic DR | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.03 |
| Serge Gnabry AMC | 69 | 0 | 1 | 2 | 2 | 0.05 | 0.54 | 0.62 |
| Jamal Musiala Sub | 21 | 0 | 0 | 1 | 0 | 0.07 | 0.00 | 0.17 |
| Leon Goretzka Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Tom Bischof Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Kim Min-Jae Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |