Borussia Dortmund v St. Pauli — Prediction, Odds & Stats
Saturday 17 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.
St. Pauli are finishing sharply below their chances — 4.7 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding fewer than expected — 2.8 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.91–0.64 | 0% | 0% | 0% | Home ✓ | |
| dc-xg-oos | 2.14–0.85 | 2-0 12% | 57% | 51% | 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 |
|---|---|---|---|---|---|---|---|
| 12' |
|
Julian Brandt | 0.40 | Open Play | Right Foot | Blocked Shot | — |
| 17' |
|
Martijn Kaars | 0.07 | Set Piece | Right Foot | Blocked Shot | Eric Smith |
| 21' |
|
Lars Ritzka | 0.07 | Open Play | Left Foot | Missed Shot | — |
| 25' |
|
Julian Brandt | 0.15 | Direct Freekick | Right Foot | Missed Shot | — |
| 26' |
|
Pereira Lage | 0.13 | Open Play | Left Foot | Saved Shot | Martijn Kaars |
| 38' |
|
Nico Schlotterbeck | 0.10 | From Corner | — | Missed Shot | Julian Ryerson |
| 45' |
|
Julian Brandt | 0.49 | Open Play | Left Foot | Goal | Karim Adeyemi |
| 53' |
|
Karim Adeyemi | 0.35 | Open Play | Right Foot | Goal | Fabio Silva |
| 61' |
|
James Sands | 0.04 | From Corner | — | Goal | Eric Smith |
| 65' |
|
Ricky-Jade Jones | 0.04 | Open Play | Left Foot | Blocked Shot | James Sands |
| 71' |
|
Ricky-Jade Jones | 0.04 | Set Piece | Right Foot | Goal | Eric Smith |
| 77' |
|
Ricky-Jade Jones | 0.09 | Open Play | Right Foot | Saved Shot | Joel Chima Fujita |
| 79' |
|
Serhou Guirassy | 0.02 | Open Play | Left Foot | Blocked Shot | Yan Couto |
| 80' |
|
Nico Schlotterbeck | 0.12 | From Corner | Left Foot | Saved Shot | — |
| 80' |
|
Waldemar Anton | 0.14 | From Corner | — | Saved Shot | Daniel Svensson |
| 81' |
|
Joel Chima Fujita | 0.03 | Open Play | Right Foot | Blocked Shot | Eric Smith |
| 83' |
|
Serhou Guirassy | 0.02 | Open Play | Right Foot | Missed Shot | Yan Couto |
| 94' |
|
Emre Can | 0.76 | Right Foot | Goal | — | |
| 96' |
|
Ricky-Jade Jones | 0.01 | Open Play | Right Foot | Saved Shot | — |
Players
Borussia Dortmund
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Emre Can DC | 90 | 1 | 0 | 1 | 0 | 0.76 | 0.00 | 0.53 |
| Nico Schlotterbeck DC | 90 | 0 | 0 | 2 | 0 | 0.22 | 0.00 | 0.04 |
| Waldemar Anton DC | 90 | 0 | 0 | 1 | 0 | 0.14 | 0.00 | 0.84 |
| Daniel Svensson DML | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.14 | 0.02 |
| Gregor Kobel GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Jobe Bellingham MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.50 |
| Julian Brandt AMC | 86 | 1 | 0 | 3 | 0 | 1.04 | 0.00 | 1.24 |
| Felix Nmecha MC | 86 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.84 |
| Karim Adeyemi AMC | 74 | 1 | 1 | 1 | 1 | 0.35 | 0.49 | 0.84 |
| Julian Ryerson DMR | 74 | 0 | 0 | 0 | 1 | 0.00 | 0.10 | 0.49 |
| Fabio Silva FW | 74 | 0 | 1 | 0 | 1 | 0.00 | 0.35 | 0.35 |
| Serhou Guirassy Sub | 16 | 0 | 0 | 2 | 0 | 0.04 | 0.00 | 0.04 |
| Maximilian Beier Sub | 16 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Yan Couto Sub | 16 | 0 | 0 | 0 | 2 | 0.00 | 0.04 | 0.04 |
| Carney Chukwuemeka Sub | 4 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Salih Özcan Sub | 4 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
St. Pauli
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Pereira Lage AMC | 90 | 0 | 0 | 1 | 0 | 0.13 | 0.00 | 0.13 |
| James Sands MC | 90 | 1 | 0 | 1 | 1 | 0.04 | 0.04 | 0.16 |
| Joel Chima Fujita AMC | 90 | 0 | 0 | 1 | 1 | 0.03 | 0.09 | 0.30 |
| Nikola Vasilj GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Karol Mets DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Hauke Wahl DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Eric Smith MC | 90 | 0 | 2 | 0 | 4 | 0.00 | 0.19 | 0.16 |
| Arkadiusz Pyrka DMR | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.22 |
| Martijn Kaars FW | 67 | 0 | 0 | 1 | 1 | 0.07 | 0.13 | 0.13 |
| Lars Ritzka DML | 67 | 0 | 0 | 1 | 0 | 0.07 | 0.00 | 0.20 |
| Adam Dzwigala DC | 67 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.13 |
| Ricky-Jade Jones Sub | 23 | 1 | 0 | 4 | 0 | 0.18 | 0.00 | 0.14 |
| Louis Oppie Sub | 23 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.07 |
| Tomoya Ando Sub | 23 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.03 |