Borussia Dortmund v VfB Stuttgart — Prediction, Odds & Stats
Saturday 8 February 2025 · GER-Bundesliga · 2425
Bundesliga
xG
Shots
16 – 4
On target
5 – 2
Shots in box
10 – 3
xG per shot
0.07 – 0.11
Set-piece xG
0.29 – 0.28
Goals − xG
-0.07 – +1.55
Reading the xG timeline
Each step up is a shot; the height of the step is how good the chance was. Dots mark goals.
A side whose line climbs steadily created chances all match. A side that scored while its
line stayed flat took a rare chance — that is finishing luck, and it rarely repeats.
Expected goals by minute
Borussia Dortmund 1.07 xGVfB Stuttgart 0.45 xG
Reading the shot map
Each circle is a shot, placed where it was taken. Bigger means a better chance;
filled circles are goals. Clusters near the goal mean a side worked good openings;
lots of small circles far out means shooting from poor positions and hoping.
Hover any circle for the player, minute and chance quality.
Shot map
Borussia Dortmund attacking right
VfB Stuttgart attacking left
Marker size is xG; filled markers are goals.
Every shot
| Min | Team | Player | xG | Situation | Body part | Result | Assisted by |
|---|---|---|---|---|---|---|---|
| 5' |
|
Jamie Leweling | 0.06 | Open Play | Left Foot | Blocked Shot | Chris Führich |
| 10' |
|
Ramy Bensebaini | 0.07 | From Corner | Left Foot | Blocked Shot | Serhou Guirassy |
| 11' |
|
Ramy Bensebaini | 0.07 | From Corner | Left Foot | Missed Shot | Marcel Sabitzer |
| 21' |
|
Jamie Bynoe-Gittens | 0.04 | Open Play | Right Foot | Saved Shot | Marcel Sabitzer |
| 26' |
|
Jamie Bynoe-Gittens | 0.02 | Open Play | Right Foot | Missed Shot | Gregor Kobel |
| 29' |
|
Julian Brandt | 0.05 | Direct Freekick | Right Foot | Missed Shot | — |
| 36' |
|
Karim Adeyemi | 0.34 | Open Play | Right Foot | Saved Shot | Julian Ryerson |
| 40' |
|
Jamie Bynoe-Gittens | 0.02 | Open Play | Right Foot | Saved Shot | Julian Brandt |
| 44' |
|
Karim Adeyemi | 0.08 | Open Play | Right Foot | Missed Shot | Serhou Guirassy |
| 45' |
|
Serhou Guirassy | 0.03 | Open Play | Right Foot | Blocked Shot | — |
| 48' |
|
Karim Adeyemi | 0.07 | Open Play | Left Foot | Missed Shot | Julian Brandt |
| 49' |
|
Waldemar Anton | 0.00 | Open Play | Left Foot | Own Goal | — |
| 49' |
|
Chris Führich | 0.06 | Open Play | Right Foot | Missed Shot | Jamie Leweling |
| 60' |
|
Julian Chabot | 0.28 | From Corner | Left Foot | Goal | Jamie Leweling |
| 64' |
|
Deniz Undav | 0.05 | Open Play | Right Foot | Saved Shot | — |
| 65' |
|
Serhou Guirassy | 0.05 | From Corner | — | Missed Shot | Julian Ryerson |
| 67' |
|
Jamie Bynoe-Gittens | 0.04 | Open Play | Left Foot | Saved Shot | — |
| 73' |
|
Jamie Bynoe-Gittens | 0.02 | From Corner | Left Foot | Blocked Shot | — |
| 77' |
|
Jamie Bynoe-Gittens | 0.15 | Open Play | Left Foot | Blocked Shot | Pascal Groß |
| 80' |
|
Julian Brandt | 0.03 | From Corner | Right Foot | Goal | Pascal Groß |
Players
Borussia Dortmund
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Serhou Guirassy FW | 90 | 0 | 0 | 2 | 2 | 0.08 | 0.15 | 0.15 |
| Julian Brandt AMC | 90 | 1 | 0 | 2 | 2 | 0.08 | 0.09 | 0.67 |
| Marcel Sabitzer DMC | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.11 | 0.69 |
| Julian Ryerson DR | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.39 | 0.58 |
| Gregor Kobel GK | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.02 | 0.02 |
| Waldemar Anton DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.20 |
| Emre Can DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.69 |
| Jamie Bynoe-Gittens AML | 86 | 0 | 0 | 6 | 0 | 0.30 | 0.00 | 0.28 |
| Ramy Bensebaini DL | 86 | 0 | 0 | 2 | 0 | 0.14 | 0.00 | 0.61 |
| Pascal Groß DMC | 86 | 0 | 1 | 0 | 2 | 0.00 | 0.18 | 0.17 |
| Karim Adeyemi AMR | 72 | 0 | 0 | 3 | 0 | 0.48 | 0.00 | 0.50 |
| Maximilian Beier Sub | 18 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Daniel Svensson Sub | 4 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Julien Duranville Sub | 4 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Giovanni Reyna Sub | 4 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
VfB Stuttgart
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Julian Chabot DC | 90 | 1 | 0 | 1 | 0 | 0.28 | 0.00 | 0.00 |
| Ramon Hendriks DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Maximilian Mittelstädt DML | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.06 |
| Leonidas Stergiou DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Alexander Nübel GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.12 |
| Angelo Stiller MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.17 |
| Atakan Karazor MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Jamie Leweling DMR | 87 | 0 | 1 | 1 | 2 | 0.06 | 0.34 | 0.12 |
| Enzo Millot AMC | 78 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.06 |
| Chris Führich AMC | 71 | 0 | 0 | 1 | 1 | 0.06 | 0.06 | 0.12 |
| Deniz Undav FW | 71 | 0 | 0 | 1 | 0 | 0.05 | 0.00 | 0.05 |
| Joshua Vagnoman Sub | 19 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Ermedin Demirovic Sub | 19 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Yannik Keitel Sub | 12 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Nick Woltemade Sub | 3 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |