Mainz 05 v VfB Stuttgart — Prediction, Odds & Stats
Saturday 25 January 2025 · GER-Bundesliga · 2425
Bundesliga
xG
Shots
11 – 10
On target
4 – 4
Shots in box
8 – 8
xG per shot
0.20 – 0.09
Set-piece xG
0.31 – 0.12
Goals − xG
-0.23 – -0.92
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
Mainz 05 2.23 xGVfB Stuttgart 0.92 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
Mainz 05 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 |
|---|---|---|---|---|---|---|---|
| 2' |
|
Nadiem Amiri | 0.01 | Open Play | Right Foot | Blocked Shot | Philipp Mwene |
| 2' |
|
Nelson Weiper | 0.40 | Open Play | Right Foot | Saved Shot | Nadiem Amiri |
| 8' |
|
Jacob Bruun Larsen | 0.02 | Open Play | Right Foot | Saved Shot | Ameen Al Dakhil |
| 13' |
|
Deniz Undav | 0.41 | Open Play | Right Foot | Missed Shot | Nick Woltemade |
| 26' |
|
Nick Woltemade | 0.04 | Open Play | — | Saved Shot | Joshua Vagnoman |
| 28' |
|
Nelson Weiper | 0.47 | Open Play | Left Foot | Goal | Paul Nebel |
| 31' |
|
Deniz Undav | 0.12 | Set Piece | Right Foot | Blocked Shot | Jacob Bruun Larsen |
| 58' |
|
Paul Nebel | 0.02 | Open Play | Right Foot | Missed Shot | Jae-Sung Lee |
| 64' |
|
Andreas Hanche-Olsen | 0.13 | From Corner | — | Blocked Shot | Nadiem Amiri |
| 66' |
|
Deniz Undav | 0.05 | Open Play | Right Foot | Saved Shot | Jamie Leweling |
| 66' |
|
Nick Woltemade | 0.05 | Open Play | — | Missed Shot | — |
| 67' |
|
Paul Nebel | 0.10 | Open Play | Left Foot | Blocked Shot | Kaishu Sano |
| 76' |
|
Andreas Hanche-Olsen | 0.05 | From Corner | — | Missed Shot | Nadiem Amiri |
| 78' |
|
Nadiem Amiri | 0.38 | Open Play | Right Foot | Saved Shot | Armindo Sieb |
| 79' |
|
Stefan Bell | 0.10 | From Corner | — | Missed Shot | Anthony Caci |
| 83' |
|
Fabian Rieder | 0.07 | Open Play | Left Foot | Missed Shot | Deniz Undav |
| 85' |
|
Anthony Caci | 0.53 | Open Play | Left Foot | Goal | Armindo Sieb |
| 89' |
|
Philipp Mwene | 0.02 | Set Piece | Right Foot | Missed Shot | Nadiem Amiri |
| 90' |
|
Ermedin Demirovic | 0.04 | Open Play | — | Blocked Shot | Joshua Vagnoman |
| 90' |
|
Ermedin Demirovic | 0.10 | Open Play | Left Foot | Blocked Shot | — |
| 91' |
|
Jamie Leweling | 0.02 | Open Play | Right Foot | Saved Shot | Fabian Rieder |
Players
VfB Stuttgart
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Deniz Undav FW | 90 | 0 | 0 | 3 | 1 | 0.58 | 0.07 | 0.57 |
| Nick Woltemade FW | 90 | 0 | 0 | 2 | 1 | 0.09 | 0.41 | 0.54 |
| Ameen Al Dakhil DC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.02 | 0.02 |
| Angelo Stiller DMC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Anthony Rouault 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.00 |
| Joshua Vagnoman DR | 90 | 0 | 0 | 0 | 2 | 0.00 | 0.09 | 0.09 |
| Jacob Bruun Larsen AMC | 76 | 0 | 0 | 1 | 1 | 0.02 | 0.12 | 0.02 |
| Atakan Karazor DMC | 76 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Chris Führich AMC | 66 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Maximilian Mittelstädt DL | 66 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Jamie Leweling Sub | 24 | 0 | 0 | 1 | 1 | 0.02 | 0.05 | 0.07 |
| Ramon Hendriks Sub | 24 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.09 |
| Ermedin Demirovic Sub | 14 | 0 | 0 | 2 | 0 | 0.14 | 0.00 | 0.14 |
| Fabian Rieder Sub | 14 | 0 | 0 | 1 | 1 | 0.07 | 0.02 | 0.09 |
| Julian Chabot Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Mainz 05
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Anthony Caci DMR | 90 | 1 | 0 | 1 | 1 | 0.53 | 0.10 | 1.34 |
| Nadiem Amiri MC | 90 | 0 | 0 | 2 | 4 | 0.39 | 0.61 | 1.80 |
| Paul Nebel AMC | 90 | 0 | 1 | 2 | 1 | 0.13 | 0.47 | 1.53 |
| Stefan Bell DC | 90 | 0 | 0 | 1 | 0 | 0.10 | 0.00 | 0.00 |
| Philipp Mwene DML | 90 | 0 | 0 | 1 | 1 | 0.02 | 0.01 | 1.04 |
| Jae-Sung Lee AMC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.02 | 1.03 |
| Robin Zentner GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Kaishu Sano MC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.10 | 1.00 |
| Nelson Weiper FW | 78 | 1 | 0 | 2 | 0 | 0.88 | 0.00 | 0.88 |
| Dominik Kohr DC | 78 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Danny da Costa DC | 69 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.43 |
| Andreas Hanche-Olsen Sub | 21 | 0 | 0 | 2 | 0 | 0.18 | 0.00 | 0.00 |
| Armindo Sieb Sub | 12 | 0 | 1 | 0 | 2 | 0.00 | 0.91 | 0.91 |
| Maxim Leitsch Sub | 12 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Silvan Widmer Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |