Borussia Dortmund v Werder Bremen — Prediction, Odds & Stats
Tuesday 13 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
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.
Werder Bremen are finishing above their chances — 2.7 goals more than expected across 10 matches, which usually cools off. They are also conceding fewer than expected — 3.4 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 | 2.02–0.84 | 0% | 0% | 0% | Home ✓ | |
| dc-xg-oos | 2.05–1.03 | 2-1 10% | 59% | 56% | 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' |
|
Maximilian Beier | 0.02 | Open Play | Right Foot | Missed Shot | Fabio Silva |
| 2' |
|
Fabio Silva | 0.07 | Open Play | Right Foot | Blocked Shot | Felix Nmecha |
| 3' |
|
Justin Njinmah | 0.04 | Open Play | Right Foot | Saved Shot | Marco Grüll |
| 4' |
|
Marco Grüll | 0.02 | Open Play | Right Foot | Missed Shot | — |
| 10' |
|
Nico Schlotterbeck | 0.59 | From Corner | — | Goal | Julian Ryerson |
| 17' |
|
Justin Njinmah | 0.26 | Open Play | Right Foot | Saved Shot | Romano Schmid |
| 31' |
|
Carney Chukwuemeka | 0.07 | Open Play | Right Foot | Missed Shot | Fabio Silva |
| 36' |
|
Marcel Sabitzer | 0.02 | Open Play | Right Foot | Saved Shot | Felix Nmecha |
| 46' |
|
Romano Schmid | 0.01 | Open Play | Right Foot | Saved Shot | Isaac Schmidt |
| 49' |
|
Marco Grüll | 0.03 | Direct Freekick | Right Foot | Missed Shot | — |
| 51' |
|
Carney Chukwuemeka | 0.09 | Open Play | Right Foot | Blocked Shot | Fabio Silva |
| 54' |
|
Fabio Silva | 0.02 | Open Play | — | Blocked Shot | — |
| 54' |
|
Maximilian Beier | 0.10 | Open Play | Right Foot | Saved Shot | Fabio Silva |
| 54' |
|
Maximilian Beier | 0.39 | Open Play | Right Foot | Blocked Shot | — |
| 65' |
|
Marcel Sabitzer | 0.07 | Open Play | Right Foot | Missed Shot | Maximilian Beier |
| 74' |
|
Marcel Sabitzer | 0.10 | Open Play | Right Foot | Goal | Felix Nmecha |
| 76' |
|
Waldemar Anton | 0.01 | Open Play | — | Missed Shot | Nico Schlotterbeck |
| 79' |
|
Fabio Silva | 0.05 | Open Play | — | Missed Shot | Marcel Sabitzer |
| 82' |
|
Serhou Guirassy | 0.41 | Open Play | Right Foot | Goal | — |
| 86' |
|
Nico Schlotterbeck | 0.06 | Open Play | Left Foot | Blocked Shot | — |
| 86' |
|
Jovan Milosevic | 0.04 | From Corner | — | Blocked Shot | Cameron Puertas |
| 89' |
|
Nico Schlotterbeck | 0.07 | Open Play | Left Foot | Blocked Shot | — |
| 89' |
|
Yan Couto | 0.12 | Open Play | Left Foot | Saved Shot | Serhou Guirassy |
| 92' |
|
Serhou Guirassy | 0.12 | Open Play | Left Foot | Saved Shot | Nico Schlotterbeck |
Players
Werder Bremen
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Yukinari Sugawara DMR | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.01 |
| Jens Stage MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.04 |
| Karim Coulibaly DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.06 |
| Marco Friedl DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.04 |
| Mio Backhaus GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.01 |
| Amos Pieper DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.06 |
| Senne Lynen MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.01 |
| Justin Njinmah FW | 82 | 0 | 0 | 2 | 0 | 0.30 | 0.00 | 0.31 |
| Romano Schmid AMC | 82 | 0 | 0 | 1 | 1 | 0.01 | 0.26 | 0.31 |
| Isaac Schmidt DML | 82 | 0 | 0 | 0 | 1 | 0.00 | 0.01 | 0.06 |
| Marco Grüll AMC | 70 | 0 | 0 | 2 | 1 | 0.05 | 0.04 | 0.07 |
| Jovan Milosevic Sub | 20 | 0 | 0 | 1 | 0 | 0.04 | 0.00 | 0.00 |
| Cameron Puertas Sub | 8 | 0 | 0 | 0 | 1 | 0.00 | 0.04 | 0.00 |
| Olivier Deman Sub | 8 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Samuel Mbangula Sub | 8 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Borussia Dortmund
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Nico Schlotterbeck DC | 90 | 1 | 0 | 3 | 2 | 0.72 | 0.13 | 0.64 |
| Marcel Sabitzer MC | 90 | 1 | 0 | 3 | 1 | 0.19 | 0.05 | 0.33 |
| Yan Couto DMR | 90 | 0 | 0 | 1 | 0 | 0.12 | 0.00 | 0.17 |
| Waldemar Anton DC | 90 | 0 | 0 | 1 | 0 | 0.01 | 0.00 | 0.13 |
| Felix Nmecha MC | 90 | 0 | 1 | 0 | 3 | 0.00 | 0.19 | 0.38 |
| Gregor Kobel GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Fabio Silva FW | 85 | 0 | 0 | 3 | 4 | 0.14 | 0.28 | 0.42 |
| Maximilian Beier AMC | 68 | 0 | 0 | 3 | 1 | 0.51 | 0.07 | 0.67 |
| Carney Chukwuemeka AMC | 68 | 0 | 0 | 2 | 0 | 0.16 | 0.00 | 0.18 |
| Julian Ryerson DML | 68 | 0 | 1 | 0 | 1 | 0.00 | 0.59 | 0.00 |
| Niklas Süle DC | 47 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Emre Can Sub | 43 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Serhou Guirassy Sub | 22 | 1 | 0 | 2 | 1 | 0.52 | 0.12 | 0.64 |
| Daniel Svensson Sub | 22 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.10 |
| Jobe Bellingham Sub | 22 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Karim Adeyemi Sub | 5 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |