betaider.com
Sign in

Bayer Leverkusen v Borussia M.Gladbach — Prediction, Odds & Stats

Sunday 21 September 2025 · GER-Bundesliga · 2526

Bundesliga xG Prediction generated

Shots
13 – 13
On target
8 – 7
Shots in box
10 – 10
xG per shot
0.15 – 0.10
Set-piece xG
1.08 – 0.39
Goals − xG
-1.01 – -0.30

AI prediction

ai-blend-oos No snapshot has been taken for this fixture yet; this is the stored price.
Bayer Leverkusen win
54.5%
Draw
23.4%
Borussia M.Gladbach win
22.1%

Probabilities, not certainties. How they are made: the methodology.

Was this pick made in advance?
A model whose name ends -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

Bayer Leverkusen are finishing below their chances — 3.0 goals fewer than expected across 10 matches, despite creating the openings.

DWWLWWLDLW last 10 scored 25 from 28.0 xG conceded 17 from 18.3 xG

Borussia M.Gladbach are conceding fewer than expected — 3.6 goals saved beyond what the chances suggest.

DDLDDWLWLL last 10 scored 15 from 14.1 xG conceded 17 from 20.6 xG

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

ModelHome / Draw / Away Expected goalsLikeliest score O2.5BTTSOutcome
ai-blend-oos 2.02–1.23 0% 0% 0% Home ✗
dc-xg-oos 2.31–1.09 2-1 10% 66% 60% 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
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

0.00.61.11.72.20'15'30'45'60'75'90'Malik Tillman 69' — goalHaris Tabakovic 91' — goal
Bayer Leverkusen 2.01 xGBorussia M.Gladbach 1.30 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

Edmond Tapsoba 2' — Saved Shot (0.03 xG, Open Play)Malik Tillman 8' — Blocked Shot (0.07 xG, Set Piece)Patrik Schick 8' — Saved Shot (0.58 xG, Set Piece)Kevin Stöger 12' — Saved Shot (0.07 xG, Open Play)Yannick Engelhardt 12' — Blocked Shot (0.09 xG, Open Play)Shuto Machino 15' — Saved Shot (0.04 xG, Open Play)Álex Grimaldo 19' — Missed Shot (0.02 xG, Open Play)Ibrahim Maza 36' — Saved Shot (0.03 xG, Open Play)Shuto Machino 37' — Blocked Shot (0.01 xG, Set Piece)Joe Scally 39' — Saved Shot (0.26 xG, Open Play)Ben Seghir 46' — Saved Shot (0.03 xG, Open Play)Shuto Machino 49' — Missed Shot (0.01 xG, Open Play)Ibrahim Maza 55' — Saved Shot (0.09 xG, Set Piece)Kevin Stöger 56' — Missed Shot (0.03 xG, Open Play)Shuto Machino 59' — Saved Shot (0.03 xG, Open Play)Ibrahim Maza 61' — Saved Shot (0.02 xG, Open Play)Patrik Schick 67' — Blocked Shot (0.05 xG, Open Play)Patrik Schick 68' — Blocked Shot (0.34 xG, From Corner)Malik Tillman 69' — Goal (0.46 xG, Open Play)Patrik Schick 69' — Missed Shot (0.14 xG, Open Play)Kevin Stöger 72' — Saved Shot (0.07 xG, Open Play)Joe Scally 76' — Saved Shot (0.28 xG, Open Play)Joe Scally 77' — Blocked Shot (0.02 xG, Open Play)Florian Neuhaus 78' — Blocked Shot (0.02 xG, Open Play)Ibrahim Maza 82' — Saved Shot (0.15 xG, Open Play)Haris Tabakovic 91' — Goal (0.38 xG, From Corner)
Bayer Leverkusen attacking right Borussia M.Gladbach attacking left Marker size is xG; filled markers are goals.

Every shot

MinTeamPlayerxG SituationBody partResultAssisted by
2' Bayer Leverkusen Edmond Tapsoba 0.03 Open Play Right Foot Saved Shot Álex Grimaldo
8' Bayer Leverkusen Malik Tillman 0.07 Set Piece Left Foot Blocked Shot Ben Seghir
8' Bayer Leverkusen Patrik Schick 0.58 Set Piece Saved Shot Álex Grimaldo
12' Borussia M.Gladbach Kevin Stöger 0.07 Open Play Left Foot Saved Shot Shuto Machino
12' Borussia M.Gladbach Yannick Engelhardt 0.09 Open Play Right Foot Blocked Shot Shuto Machino
15' Borussia M.Gladbach Shuto Machino 0.04 Open Play Right Foot Saved Shot
19' Bayer Leverkusen Álex Grimaldo 0.02 Open Play Left Foot Missed Shot Edmond Tapsoba
36' Bayer Leverkusen Ibrahim Maza 0.03 Open Play Saved Shot Ben Seghir
37' Borussia M.Gladbach Shuto Machino 0.01 Set Piece Blocked Shot Rocco Reitz
39' Borussia M.Gladbach Joe Scally 0.26 Open Play Left Foot Saved Shot Jens Castrop
46' Bayer Leverkusen Ben Seghir 0.03 Open Play Left Foot Saved Shot Edmond Tapsoba
49' Borussia M.Gladbach Shuto Machino 0.01 Open Play Right Foot Missed Shot Kevin Stöger
55' Bayer Leverkusen Ibrahim Maza 0.09 Set Piece Right Foot Saved Shot Loic Bade
56' Borussia M.Gladbach Kevin Stöger 0.03 Open Play Left Foot Missed Shot Jens Castrop
59' Borussia M.Gladbach Shuto Machino 0.03 Open Play Saved Shot Kevin Stöger
61' Bayer Leverkusen Ibrahim Maza 0.02 Open Play Left Foot Saved Shot Lucas Vázquez
67' Bayer Leverkusen Patrik Schick 0.05 Open Play Left Foot Blocked Shot Álex Grimaldo
68' Bayer Leverkusen Patrik Schick 0.34 From Corner Blocked Shot Aleix García
69' Bayer Leverkusen Malik Tillman 0.46 Open Play Right Foot Goal Patrik Schick
69' Bayer Leverkusen Patrik Schick 0.14 Open Play Right Foot Missed Shot Ernest Poku
72' Borussia M.Gladbach Kevin Stöger 0.07 Open Play Left Foot Saved Shot Lukas Ullrich
76' Borussia M.Gladbach Joe Scally 0.28 Open Play Right Foot Saved Shot Shuto Machino
77' Borussia M.Gladbach Joe Scally 0.02 Open Play Blocked Shot Lukas Ullrich
78' Borussia M.Gladbach Florian Neuhaus 0.02 Open Play Left Foot Blocked Shot Nico Elvedi
82' Bayer Leverkusen Ibrahim Maza 0.15 Open Play Right Foot Saved Shot Álex Grimaldo
91' Borussia M.Gladbach Haris Tabakovic 0.38 From Corner Goal Charles Herrmann

Players

Borussia M.Gladbach

PlayerMinGA ShKPxGxA xGChain
Joe Scally DMR 90 0 0 3 0 0.56 0.00 0.56
Yannick Engelhardt MC 90 0 0 1 0 0.09 0.00 0.23
Nico Elvedi DC 90 0 0 0 1 0.00 0.02 0.42
Moritz Nicolas GK 90 0 0 0 0 0.00 0.00 0.00
Lukas Ullrich DML 90 0 0 0 2 0.00 0.09 0.66
Kevin Diks DC 90 0 0 0 0 0.00 0.00 0.10
Rocco Reitz MC 89 0 0 0 1 0.00 0.01 0.40
Fabio Chiarodia DC 89 0 0 0 0 0.00 0.00 0.15
Kevin Stöger AMC 83 0 0 3 2 0.16 0.04 0.23
Shuto Machino FW 83 0 0 4 3 0.09 0.43 0.52
Jens Castrop AMC 75 0 0 0 2 0.00 0.28 0.32
Florian Neuhaus Sub 15 0 0 1 0 0.02 0.00 0.11
Haris Tabakovic Sub 7 1 0 1 0 0.38 0.00 0.00
Giovanni Reyna Sub 7 0 0 0 0 0.00 0.00 0.00
Grant-Leon Ranos Sub 1 0 0 0 0 0.00 0.00 0.00
Charles Herrmann Sub 1 0 1 0 1 0.00 0.38 0.00

Bayer Leverkusen

PlayerMinGA ShKPxGxA xGChain
Malik Tillman MC 90 1 0 2 0 0.53 0.00 0.57
Edmond Tapsoba DC 90 0 0 1 2 0.03 0.05 0.11
Álex Grimaldo DML 90 0 0 1 4 0.02 0.81 0.28
Aleix García MC 90 0 0 0 1 0.00 0.34 0.26
Jarell Quansah DC 90 0 0 0 0 0.00 0.00 0.28
Mark Flekken GK 90 0 0 0 0 0.00 0.00 0.02
Ibrahim Maza AMC 87 0 0 4 0 0.29 0.00 0.45
Patrik Schick FW 79 0 1 4 1 1.10 0.46 0.64
Ben Seghir AMC 79 0 0 1 2 0.03 0.10 0.11
Lucas Vázquez DMR 66 0 0 0 1 0.00 0.02 0.08
Loic Bade DC 66 0 0 0 1 0.00 0.09 0.10
Ernest Poku Sub 24 0 0 0 1 0.00 0.14 0.14
Axel Tape Sub 24 0 0 0 0 0.00 0.00 0.20
Claudio Echeverri Sub 11 0 0 0 0 0.00 0.00 0.00
Christian Kofane Sub 11 0 0 0 0 0.00 0.00 0.00
Jonas Hofmann Sub 3 0 0 0 0 0.00 0.00 0.00
betaider.com

Sport

Football sections

Preferences

Appearance
Aider Reading the Football model · online
Open the Radar
Bet slip
Open full page
to move to open esc to close See all results

On this page

Match

What this page is for

One fixture in full. The model's probability for every market it prices, the prices stored against them, the teams expected to feature, and for a match already played, the shot map and the xG timeline.

How to read the shot map

Every shot is placed where it was taken and sized by its chance of being scored. A cluster of small marks from distance and a clean sheet is a side that was busy without ever threatening; two big marks and a defeat is a side that had the better of it and lost anyway. Both happen constantly, and both are invisible in the score.

How to read the xG timeline

The steps are chances as they arrived, so the shape shows who was on top and when. A flat line that jumps once near the end is a smash and grab.

Things to watch

The stored prediction is the one made before the match, kept deliberately so it can be judged afterwards. It is not re-fitted with hindsight.

Press esc to close Read the full guide