betaider.com
Sign in

Borussia Dortmund v Borussia M.Gladbach — Prediction, Odds & Stats

Sunday 20 April 2025 · GER-Bundesliga · 2425

Bundesliga xG Prediction generated

Shots
14 – 6
On target
6 – 3
Shots in box
9 – 5
xG per shot
0.09 – 0.20
Set-piece xG
0.09 – 0.76
Goals − xG
+1.76 – +0.78

AI prediction

ai-blend-oos No snapshot has been taken for this fixture yet; this is the stored price.
Borussia Dortmund win
46.2%
Draw
24.2%
Borussia M.Gladbach win
29.6%

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

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.

WWLLWLWWWW last 10 scored 20 from 22.3 xG conceded 10 from 12.7 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 1.81–1.42 0% 0% 0% 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.30.71.01.40'15'30'45'60'75'90'Ko Itakura 23' — goalSerhou Guirassy 40' — goalFelix Nmecha 43' — goalDaniel Svensson 48' — goalKevin Stöger 55' — goal
Borussia Dortmund 1.24 xGBorussia M.Gladbach 1.22 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

Julian Weigl 6' — Missed Shot (0.01 xG, Open Play)Niklas Süle 9' — Blocked Shot (0.03 xG, Open Play)Karim Adeyemi 18' — Missed Shot (0.07 xG, Open Play)Ko Itakura 23' — Goal (0.36 xG, Open Play)Serhou Guirassy 40' — Goal (0.08 xG, Open Play)Felix Nmecha 43' — Goal (0.08 xG, Open Play)Kevin Stöger 45' — Saved Shot (0.03 xG, Open Play)Daniel Svensson 48' — Goal (0.44 xG, Open Play)Serhou Guirassy 48' — Saved Shot (0.12 xG, Open Play)Kevin Stöger 55' — Goal (0.76 xG, )Yan Couto 59' — Blocked Shot (0.12 xG, Open Play)Felix Nmecha 60' — Blocked Shot (0.06 xG, From Corner)Waldemar Anton 60' — Missed Shot (0.03 xG, From Corner)Felix Nmecha 61' — Saved Shot (0.02 xG, Open Play)Julian Ryerson 64' — Saved Shot (0.03 xG, Open Play)Carney Chukwuemeka 82' — Missed Shot (0.04 xG, Open Play)Pascal Groß 85' — Blocked Shot (0.03 xG, Open Play)Pascal Groß 87' — Blocked Shot (0.08 xG, Open Play)Alassane Pléa 89' — Blocked Shot (0.04 xG, Open Play)Alassane Pléa 90' — Blocked Shot (0.02 xG, Open Play)
Borussia Dortmund attacking right Borussia M.Gladbach attacking left Marker size is xG; filled markers are goals.

Every shot

MinTeamPlayerxG SituationBody partResultAssisted by
6' Borussia M.Gladbach Julian Weigl 0.01 Open Play Right Foot Missed Shot
9' Borussia Dortmund Niklas Süle 0.03 Open Play Right Foot Blocked Shot Felix Nmecha
18' Borussia Dortmund Karim Adeyemi 0.07 Open Play Right Foot Missed Shot Pascal Groß
23' Borussia M.Gladbach Ko Itakura 0.36 Open Play Right Foot Goal
40' Borussia Dortmund Serhou Guirassy 0.08 Open Play Right Foot Goal Pascal Groß
43' Borussia Dortmund Felix Nmecha 0.08 Open Play Right Foot Goal Karim Adeyemi
45' Borussia M.Gladbach Kevin Stöger 0.03 Open Play Left Foot Saved Shot
48' Borussia Dortmund Daniel Svensson 0.44 Open Play Goal
48' Borussia Dortmund Serhou Guirassy 0.12 Open Play Right Foot Saved Shot Carney Chukwuemeka
55' Borussia M.Gladbach Kevin Stöger 0.76 Left Foot Goal
59' Borussia Dortmund Yan Couto 0.12 Open Play Left Foot Blocked Shot Carney Chukwuemeka
60' Borussia Dortmund Felix Nmecha 0.06 From Corner Right Foot Blocked Shot
60' Borussia Dortmund Waldemar Anton 0.03 From Corner Missed Shot
61' Borussia Dortmund Felix Nmecha 0.02 Open Play Right Foot Saved Shot Carney Chukwuemeka
64' Borussia Dortmund Julian Ryerson 0.03 Open Play Left Foot Saved Shot Pascal Groß
82' Borussia Dortmund Carney Chukwuemeka 0.04 Open Play Right Foot Missed Shot
85' Borussia Dortmund Pascal Groß 0.03 Open Play Right Foot Blocked Shot Daniel Svensson
87' Borussia Dortmund Pascal Groß 0.08 Open Play Right Foot Blocked Shot
89' Borussia M.Gladbach Alassane Pléa 0.04 Open Play Right Foot Blocked Shot
90' Borussia M.Gladbach Alassane Pléa 0.02 Open Play Right Foot Blocked Shot

Players

Borussia M.Gladbach

PlayerMinGA ShKPxGxA xGChain
Kevin Stöger AMC 90 1 0 2 0 0.79 0.00 0.03
Ko Itakura DC 90 1 0 1 0 0.36 0.00 0.36
Alassane Pléa AML 90 0 0 2 0 0.06 0.00 0.06
Nico Elvedi DC 90 0 0 0 0 0.00 0.00 0.00
Tim Kleindienst FW 90 0 0 0 0 0.00 0.00 0.00
Jonas Omlin GK 90 0 0 0 0 0.00 0.00 0.00
Julian Weigl DMC 87 0 0 1 0 0.01 0.00 0.01
Rocco Reitz DMC 87 0 0 0 0 0.00 0.00 0.00
Lukas Ullrich DL 74 0 0 0 0 0.00 0.00 0.00
Joe Scally DR 74 0 0 0 0 0.00 0.00 0.00
Tomás Cvancara AMR 73 0 0 0 0 0.00 0.00 0.00
Robin Hack Sub 17 0 0 0 0 0.00 0.00 0.00
Stefan Lainer Sub 16 0 0 0 0 0.00 0.00 0.00
Luca Netz Sub 16 0 0 0 0 0.00 0.00 0.00
Shio Fukuda Sub 3 0 0 0 0 0.00 0.00 0.00
Florian Neuhaus Sub 3 0 0 0 0 0.00 0.00 0.00

Borussia Dortmund

PlayerMinGA ShKPxGxA xGChain
Daniel Svensson DML 90 1 0 1 1 0.44 0.03 0.66
Serhou Guirassy FW 90 1 0 2 0 0.21 0.00 0.37
Pascal Groß MC 90 0 1 2 3 0.11 0.18 0.55
Waldemar Anton DC 90 0 0 1 0 0.03 0.00 0.07
Gregor Kobel GK 90 0 0 0 0 0.00 0.00 0.12
Ramy Bensebaini DC 90 0 0 0 0 0.00 0.00 0.18
Felix Nmecha MC 77 1 0 3 1 0.16 0.03 0.36
Karim Adeyemi AMC 77 0 1 1 1 0.07 0.08 0.19
Niklas Süle DC 77 0 0 1 0 0.03 0.00 0.10
Yan Couto DMR 65 0 0 1 0 0.12 0.00 0.19
Carney Chukwuemeka Sub 56 0 0 1 3 0.04 0.26 0.44
Maximilian Beier AMC 34 0 0 0 0 0.00 0.00 0.00
Julian Ryerson Sub 25 0 0 1 0 0.03 0.00 0.05
Julian Brandt Sub 13 0 0 0 0 0.00 0.00 0.03
Emre Can Sub 13 0 0 0 0 0.00 0.00 0.00
Salih Özcan Sub 13 0 0 0 0 0.00 0.00 0.03
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