betaider.com

RasenBallsport Leipzig v Borussia Dortmund — Prediction, Odds & Stats

Saturday 15 March 2025 · GER-Bundesliga · 2425

Bundesliga xG Prediction generated

Shots
15 – 25
On target
5 – 9
Shots in box
9 – 20
xG per shot
0.17 – 0.16
Set-piece xG
0.21 – 0.11
Goals − xG
-0.58 – -4.09

AI prediction

ai-blend-oos No snapshot has been taken for this fixture yet; this is the stored price.
RasenBallsport Leipzig win
49.0%
Draw
27.5%
Borussia Dortmund win
23.5%

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

RasenBallsport Leipzig are finishing below their chances — 2.3 goals fewer than expected across 10 matches, despite creating the openings.

WWWWWLWLWL last 10 scored 22 from 24.3 xG conceded 15 from 15.8 xG

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

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.78–1.20 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.01.12.33.44.60'15'30'45'60'75'90'Xavi Simons 17' — goalLoïs Openda 47' — goal
RasenBallsport Leipzig 2.58 xGBorussia Dortmund 4.09 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

Serhou Guirassy 8' — Saved Shot (0.08 xG, Open Play)Benjamin Sesko 12' — Blocked Shot (0.03 xG, Open Play)Christoph Baumgartner 12' — Blocked Shot (0.04 xG, Open Play)Loïs Openda 13' — Shot On Post (0.63 xG, Open Play)Xavi Simons 13' — Blocked Shot (0.03 xG, Open Play)David Raum 16' — Saved Shot (0.08 xG, Open Play)Xavi Simons 17' — Goal (0.57 xG, Open Play)Serhou Guirassy 25' — Blocked Shot (0.04 xG, From Corner)Bote Baku 27' — Saved Shot (0.11 xG, Open Play)Bote Baku 34' — Shot On Post (0.07 xG, Open Play)El Chadaille Bitshiabu 37' — Missed Shot (0.11 xG, From Corner)Xavi Simons 41' — Missed Shot (0.09 xG, Open Play)Maximilian Beier 42' — Blocked Shot (0.06 xG, Open Play)Serhou Guirassy 45' — Missed Shot (0.40 xG, Open Play)Xavi Simons 45' — Blocked Shot (0.02 xG, Open Play)Karim Adeyemi 46' — Saved Shot (0.04 xG, Open Play)Karim Adeyemi 47' — Missed Shot (0.02 xG, From Corner)Loïs Openda 47' — Goal (0.11 xG, From Corner)Maximilian Beier 49' — Shot On Post (0.52 xG, Open Play)Maximilian Beier 51' — Shot On Post (0.30 xG, Open Play)Maximilian Beier 53' — Saved Shot (0.40 xG, Open Play)Karim Adeyemi 54' — Missed Shot (0.10 xG, Open Play)Julian Brandt 59' — Missed Shot (0.05 xG, Open Play)Serhou Guirassy 61' — Saved Shot (0.46 xG, Open Play)Karim Adeyemi 63' — Saved Shot (0.02 xG, From Corner)Benjamin Sesko 66' — Blocked Shot (0.50 xG, Open Play)Jamie Bynoe-Gittens 73' — Saved Shot (0.08 xG, Open Play)Jamie Bynoe-Gittens 74' — Saved Shot (0.07 xG, Open Play)Pascal Groß 75' — Missed Shot (0.38 xG, Open Play)Jamie Bynoe-Gittens 77' — Blocked Shot (0.05 xG, Open Play)Nico Schlotterbeck 78' — Missed Shot (0.03 xG, From Corner)Serhou Guirassy 79' — Blocked Shot (0.10 xG, Open Play)Jamie Bynoe-Gittens 83' — Missed Shot (0.03 xG, Open Play)Jamie Bynoe-Gittens 87' — Blocked Shot (0.05 xG, Open Play)Carney Chukwuemeka 89' — Blocked Shot (0.34 xG, Open Play)Carney Chukwuemeka 90' — Blocked Shot (0.07 xG, Open Play)Tidiam Gomis 90' — Saved Shot (0.10 xG, Open Play)Carney Chukwuemeka 93' — Saved Shot (0.06 xG, Open Play)Maximilian Beier 93' — Saved Shot (0.34 xG, Open Play)Benjamin Sesko 94' — Missed Shot (0.09 xG, Open Play)
RasenBallsport Leipzig attacking right Borussia Dortmund attacking left Marker size is xG; filled markers are goals.

Every shot

MinTeamPlayerxG SituationBody partResultAssisted by
8' Borussia Dortmund Serhou Guirassy 0.08 Open Play Right Foot Saved Shot Karim Adeyemi
12' RasenBallsport Leipzig Benjamin Sesko 0.03 Open Play Right Foot Blocked Shot Nicolas Seiwald
12' RasenBallsport Leipzig Christoph Baumgartner 0.04 Open Play Right Foot Blocked Shot Xavi Simons
13' RasenBallsport Leipzig Loïs Openda 0.63 Open Play Right Foot Shot On Post David Raum
13' RasenBallsport Leipzig Xavi Simons 0.03 Open Play Right Foot Blocked Shot
16' RasenBallsport Leipzig David Raum 0.08 Open Play Left Foot Saved Shot Xavi Simons
17' RasenBallsport Leipzig Xavi Simons 0.57 Open Play Right Foot Goal Benjamin Sesko
25' Borussia Dortmund Serhou Guirassy 0.04 From Corner Blocked Shot Julian Ryerson
27' RasenBallsport Leipzig Bote Baku 0.11 Open Play Left Foot Saved Shot
34' RasenBallsport Leipzig Bote Baku 0.07 Open Play Left Foot Shot On Post Christoph Baumgartner
37' RasenBallsport Leipzig El Chadaille Bitshiabu 0.11 From Corner Missed Shot David Raum
41' RasenBallsport Leipzig Xavi Simons 0.09 Open Play Right Foot Missed Shot
42' Borussia Dortmund Maximilian Beier 0.06 Open Play Right Foot Blocked Shot Karim Adeyemi
45' Borussia Dortmund Serhou Guirassy 0.40 Open Play Missed Shot Karim Adeyemi
45' RasenBallsport Leipzig Xavi Simons 0.02 Open Play Right Foot Blocked Shot David Raum
46' Borussia Dortmund Karim Adeyemi 0.04 Open Play Left Foot Saved Shot
47' Borussia Dortmund Karim Adeyemi 0.02 From Corner Right Foot Missed Shot
47' RasenBallsport Leipzig Loïs Openda 0.11 From Corner Left Foot Goal Xavi Simons
49' Borussia Dortmund Maximilian Beier 0.52 Open Play Shot On Post Julian Ryerson
51' Borussia Dortmund Maximilian Beier 0.31 Open Play Right Foot Shot On Post Serhou Guirassy
53' Borussia Dortmund Maximilian Beier 0.40 Open Play Saved Shot Serhou Guirassy
54' Borussia Dortmund Karim Adeyemi 0.10 Open Play Right Foot Missed Shot Serhou Guirassy
59' Borussia Dortmund Julian Brandt 0.05 Open Play Right Foot Missed Shot Serhou Guirassy
61' Borussia Dortmund Serhou Guirassy 0.46 Open Play Left Foot Saved Shot Karim Adeyemi
63' Borussia Dortmund Karim Adeyemi 0.02 From Corner Left Foot Saved Shot
66' RasenBallsport Leipzig Benjamin Sesko 0.50 Open Play Right Foot Blocked Shot Bote Baku
73' Borussia Dortmund Jamie Bynoe-Gittens 0.08 Open Play Left Foot Saved Shot Pascal Groß
74' Borussia Dortmund Jamie Bynoe-Gittens 0.07 Open Play Left Foot Saved Shot Pascal Groß
75' Borussia Dortmund Pascal Groß 0.38 Open Play Left Foot Missed Shot Serhou Guirassy
77' Borussia Dortmund Jamie Bynoe-Gittens 0.05 Open Play Right Foot Blocked Shot Julian Brandt
78' Borussia Dortmund Nico Schlotterbeck 0.03 From Corner Right Foot Missed Shot
79' Borussia Dortmund Serhou Guirassy 0.10 Open Play Right Foot Blocked Shot Jamie Bynoe-Gittens
83' Borussia Dortmund Jamie Bynoe-Gittens 0.03 Open Play Left Foot Missed Shot Emre Can
87' Borussia Dortmund Jamie Bynoe-Gittens 0.05 Open Play Left Foot Blocked Shot Nico Schlotterbeck
89' Borussia Dortmund Carney Chukwuemeka 0.35 Open Play Left Foot Blocked Shot Julian Brandt
90' Borussia Dortmund Carney Chukwuemeka 0.07 Open Play Right Foot Blocked Shot Maximilian Beier
90' RasenBallsport Leipzig Tidiam Gomis 0.10 Open Play Right Foot Saved Shot Benjamin Sesko
93' Borussia Dortmund Carney Chukwuemeka 0.06 Open Play Left Foot Saved Shot
93' Borussia Dortmund Maximilian Beier 0.34 Open Play Right Foot Saved Shot
94' RasenBallsport Leipzig Benjamin Sesko 0.09 Open Play Right Foot Missed Shot

Players

Borussia Dortmund

PlayerMinGA ShKPxGxA xGChain
Maximilian Beier AML 90 0 0 5 1 1.63 0.07 2.26
Serhou Guirassy FW 90 0 0 5 5 1.08 1.23 2.97
Pascal Groß DMC 90 0 0 1 2 0.38 0.15 1.57
Julian Brandt AMC 90 0 0 1 2 0.05 0.40 1.93
Nico Schlotterbeck DC 90 0 0 1 1 0.03 0.05 1.89
Emre Can DC 90 0 0 0 1 0.00 0.03 1.97
Gregor Kobel GK 90 0 0 0 0 0.00 0.00 0.50
Waldemar Anton DR 90 0 0 0 0 0.00 0.00 1.30
Karim Adeyemi AMR 75 0 0 4 4 0.17 1.01 1.14
Julian Ryerson DL 75 0 0 0 2 0.00 0.56 0.97
Ramy Bensebaini Sub 58 0 0 0 0 0.00 0.00 0.99
Marcel Sabitzer DMC 32 0 0 0 0 0.00 0.00 0.00
Carney Chukwuemeka Sub 15 0 0 3 0 0.47 0.00 0.57
Jamie Bynoe-Gittens Sub 15 0 0 5 1 0.28 0.10 0.37

RasenBallsport Leipzig

PlayerMinGA ShKPxGxA xGChain
Benjamin Sesko AMC 90 0 1 3 2 0.62 0.67 1.37
Bote Baku DMR 90 0 0 2 1 0.18 0.50 1.36
El Chadaille Bitshiabu DC 90 0 0 1 0 0.11 0.00 0.03
Willi Orban DC 90 0 0 0 0 0.00 0.00 0.74
Péter Gulácsi GK 90 0 0 0 0 0.00 0.00 0.00
Lutsharel Geertruida DC 90 0 0 0 0 0.00 0.00 0.76
Xavi Simons AMC 84 1 1 4 3 0.71 0.23 1.49
David Raum DML 84 0 0 1 3 0.08 0.77 0.85
Nicolas Seiwald MC 84 0 0 0 1 0.00 0.03 0.80
Loïs Openda FW 69 1 0 2 0 0.74 0.00 0.86
Christoph Baumgartner MC 64 0 0 1 1 0.04 0.07 0.77
Kevin Kampl Sub 26 0 0 0 0 0.00 0.00 0.00
Lukas Klostermann Sub 21 0 0 0 0 0.00 0.00 0.09
Tidiam Gomis Sub 6 0 0 1 0 0.10 0.00 0.10
Castello Lukeba Sub 6 0 0 0 0 0.00 0.00 0.00
Amadou Haidara Sub 6 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