Mainz 05 v Bayer Leverkusen — Prediction, Odds & Stats
Saturday 17 May 2025 · GER-Bundesliga · 2425
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
Mainz 05 are finishing sharply below their chances — 5.4 goals fewer than expected across 10 matches, despite creating the openings. They are also conceding fewer than expected — 3.3 goals saved beyond what the chances suggest.
Bayer Leverkusen are finishing below their chances — 3.0 goals fewer than expected across 10 matches, despite creating the openings.
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.28–1.33 | 0% | 0% | 0% | Away ✗ | |
| dc-xg-oos | 1.31–1.35 | 1-1 12% | 50% | 54% | 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 |
|---|---|---|---|---|---|---|---|
| 3' |
|
Andreas Hanche-Olsen | 0.09 | From Corner | Right Foot | Missed Shot | Nadiem Amiri |
| 4' |
|
Jonathan Burkardt | 0.09 | Open Play | Right Foot | Blocked Shot | — |
| 4' |
|
Paul Nebel | 0.07 | Open Play | Left Foot | Blocked Shot | — |
| 6' |
|
Jonathan Burkardt | 0.07 | Open Play | Left Foot | Saved Shot | Philipp Mwene |
| 6' |
|
Paul Nebel | 0.44 | Open Play | Right Foot | Missed Shot | — |
| 10' |
|
Florian Wirtz | 0.09 | Open Play | Left Foot | Blocked Shot | Jonas Hofmann |
| 13' |
|
Patrik Schick | 0.11 | Open Play | Left Foot | Missed Shot | — |
| 24' |
|
Jonathan Burkardt | 0.11 | Open Play | — | Missed Shot | Philipp Mwene |
| 29' |
|
Anthony Caci | 0.06 | Open Play | Right Foot | Blocked Shot | Paul Nebel |
| 31' |
|
Jonathan Burkardt | 0.09 | Open Play | Right Foot | Saved Shot | — |
| 34' |
|
Paul Nebel | 0.10 | Open Play | Right Foot | Goal | Nadiem Amiri |
| 44' |
|
Jae-Sung Lee | 0.13 | Open Play | Left Foot | Saved Shot | Paul Nebel |
| 47' |
|
Nadiem Amiri | 0.38 | Open Play | Right Foot | Saved Shot | — |
| 48' |
|
Patrik Schick | 0.76 | Left Foot | Goal | — | |
| 52' |
|
Florian Wirtz | 0.03 | Open Play | Right Foot | Saved Shot | Aleix García |
| 53' |
|
Patrik Schick | 0.29 | From Corner | — | Goal | Aleix García |
| 56' |
|
Philipp Mwene | 0.26 | Open Play | Left Foot | Missed Shot | Nadiem Amiri |
| 62' |
|
Jonathan Burkardt | 0.76 | Right Foot | Goal | — | |
| 65' |
|
Florian Wirtz | 0.02 | Open Play | Right Foot | Saved Shot | Piero Hincapié |
| 66' |
|
Paul Nebel | 0.05 | Open Play | Right Foot | Blocked Shot | Philipp Mwene |
| 74' |
|
Paul Nebel | 0.03 | From Corner | Right Foot | Blocked Shot | Nikolas Veratschnig |
| 82' |
|
Danny da Costa | 0.02 | From Corner | Right Foot | Blocked Shot | — |
| 85' |
|
Nadiem Amiri | 0.10 | Direct Freekick | Right Foot | Blocked Shot | — |
| 87' |
|
Nadiem Amiri | 0.05 | Open Play | Right Foot | Missed Shot | Jonathan Burkardt |
| 90' |
|
Nikolas Veratschnig | 0.03 | Open Play | Left Foot | Blocked Shot | — |
| 97' |
|
Patrik Schick | 0.04 | From Corner | — | Blocked Shot | Florian Wirtz |
Players
Bayer Leverkusen
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Patrik Schick FW | 90 | 2 | 0 | 4 | 0 | 1.19 | 0.00 | 0.20 |
| Florian Wirtz AMC | 90 | 0 | 0 | 3 | 1 | 0.14 | 0.04 | 0.14 |
| Aleix García MC | 90 | 0 | 1 | 0 | 2 | 0.00 | 0.31 | 0.14 |
| Jonathan Tah DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Exequiel Palacios MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.14 |
| Edmond Tapsoba DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.02 |
| Piero Hincapié DC | 90 | 0 | 0 | 0 | 1 | 0.00 | 0.02 | 0.12 |
| Lukas Hradecky GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Arthur Sub | 66 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Nathan Tella DMR | 54 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Jonas Hofmann AMC | 54 | 0 | 0 | 0 | 1 | 0.00 | 0.09 | 0.09 |
| Amine Adli Sub | 36 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Robert Andrich Sub | 36 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Álex Grimaldo DML | 24 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.09 |
| Emiliano Buendía Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
Mainz 05
| Player | Min | G | A | Sh | KP | xG | xA | xGChain |
|---|---|---|---|---|---|---|---|---|
| Jonathan Burkardt FW | 90 | 1 | 0 | 5 | 1 | 1.12 | 0.05 | 0.41 |
| Paul Nebel AMC | 90 | 1 | 0 | 5 | 2 | 0.70 | 0.19 | 1.19 |
| Nadiem Amiri MC | 90 | 0 | 1 | 3 | 3 | 0.53 | 0.45 | 0.92 |
| Philipp Mwene DML | 90 | 0 | 0 | 1 | 3 | 0.26 | 0.23 | 0.49 |
| Jae-Sung Lee AMC | 90 | 0 | 0 | 1 | 0 | 0.13 | 0.00 | 0.24 |
| Andreas Hanche-Olsen DC | 90 | 0 | 0 | 1 | 0 | 0.09 | 0.00 | 0.00 |
| Danny da Costa DC | 90 | 0 | 0 | 1 | 0 | 0.02 | 0.00 | 0.00 |
| Stefan Bell DC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Kaishu Sano MC | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.13 |
| Robin Zentner GK | 90 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Anthony Caci DMR | 79 | 0 | 0 | 1 | 0 | 0.06 | 0.00 | 0.52 |
| Nikolas Veratschnig Sub | 11 | 0 | 0 | 1 | 1 | 0.03 | 0.03 | 0.03 |
| Nelson Weiper Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Lennard Maloney Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Silvan Widmer Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |
| Hong Hyun-Seok Sub | 1 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 |