betaider.com

Bayern Munich v Borussia Dortmund — Prediction, Odds & Stats

Saturday 12 April 2025 · GER-Bundesliga · 2425

Bundesliga xG Prediction generated

Shots
28 – 11
On target
11 – 3
Shots in box
19 – 8
xG per shot
0.11 – 0.16
Set-piece xG
0.36 – 0.76
Goals − xG
-0.95 – +0.22

AI prediction

ai-blend-oos No snapshot has been taken for this fixture yet; this is the stored price.
Bayern Munich win
67.1%
Draw
18.0%
Borussia Dortmund win
14.9%

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

Bayern Munich are conceding fewer than expected — 3.2 goals saved beyond what the chances suggest.

WWWWWDWWWD last 10 scored 34 from 32.8 xG conceded 12 from 15.2 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 2.57–1.17 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.81.72.53.30'15'30'45'60'75'90'Maximilian Beier 47' — goalRaphael Guerreiro 64' — goalSerge Gnabry 68' — goalWaldemar Anton 74' — goal
Bayern Munich 2.95 xGBorussia Dortmund 1.78 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

Michael Olise 3' — Blocked Shot (0.04 xG, Open Play)Julian Brandt 6' — Missed Shot (0.04 xG, Open Play)Konrad Laimer 8' — Missed Shot (0.03 xG, Set Piece)Thomas Müller 10' — Missed Shot (0.08 xG, Open Play)Thomas Müller 12' — Missed Shot (0.02 xG, Open Play)Leroy Sané 18' — Saved Shot (0.09 xG, Open Play)Harry Kane 19' — Saved Shot (0.08 xG, Open Play)Michael Olise 25' — Missed Shot (0.30 xG, Open Play)Leon Goretzka 28' — Blocked Shot (0.05 xG, Open Play)Leon Goretzka 33' — Missed Shot (0.04 xG, Open Play)Josip Stanisic 34' — Missed Shot (0.32 xG, From Corner)Pascal Groß 36' — Blocked Shot (0.01 xG, Open Play)Daniel Svensson 37' — Missed Shot (0.03 xG, From Corner)Michael Olise 39' — Saved Shot (0.28 xG, Open Play)Niklas Süle 42' — Blocked Shot (0.04 xG, Set Piece)Thomas Müller 45' — Blocked Shot (0.09 xG, Open Play)Harry Kane 46' — Saved Shot (0.06 xG, Open Play)Leon Goretzka 47' — Saved Shot (0.01 xG, From Corner)Maximilian Beier 47' — Goal (0.47 xG, Open Play)Maximilian Beier 57' — Blocked Shot (0.09 xG, Open Play)Waldemar Anton 57' — Blocked Shot (0.04 xG, Open Play)Harry Kane 59' — Missed Shot (0.03 xG, Open Play)Michael Olise 64' — Blocked Shot (0.04 xG, Open Play)Raphael Guerreiro 64' — Goal (0.37 xG, Open Play)Serge Gnabry 68' — Goal (0.12 xG, Open Play)Harry Kane 72' — Saved Shot (0.05 xG, Open Play)Serhou Guirassy 74' — Saved Shot (0.11 xG, From Corner)Waldemar Anton 74' — Goal (0.58 xG, From Corner)Harry Kane 76' — Saved Shot (0.21 xG, Open Play)Harry Kane 76' — Missed Shot (0.39 xG, Open Play)Konrad Laimer 76' — Blocked Shot (0.05 xG, Open Play)Raphael Guerreiro 76' — Saved Shot (0.04 xG, Open Play)Joshua Kimmich 78' — Blocked Shot (0.02 xG, Open Play)Thomas Müller 79' — Saved Shot (0.04 xG, Open Play)Carney Chukwuemeka 85' — Blocked Shot (0.08 xG, Open Play)Serge Gnabry 88' — Missed Shot (0.01 xG, Open Play)Pascal Groß 89' — Missed Shot (0.28 xG, Open Play)Joshua Kimmich 91' — Blocked Shot (0.03 xG, Open Play)Michael Olise 92' — Missed Shot (0.07 xG, Open Play)
Bayern Munich attacking right Borussia Dortmund attacking left Marker size is xG; filled markers are goals.

Every shot

MinTeamPlayerxG SituationBody partResultAssisted by
3' Bayern Munich Michael Olise 0.04 Open Play Left Foot Blocked Shot Konrad Laimer
6' Borussia Dortmund Julian Brandt 0.04 Open Play Left Foot Missed Shot Maximilian Beier
8' Bayern Munich Konrad Laimer 0.03 Set Piece Right Foot Missed Shot Michael Olise
10' Bayern Munich Thomas Müller 0.08 Open Play Left Foot Missed Shot Josip Stanisic
12' Bayern Munich Thomas Müller 0.02 Open Play Right Foot Missed Shot Kim Min-Jae
18' Bayern Munich Leroy Sané 0.09 Open Play Left Foot Saved Shot Michael Olise
19' Bayern Munich Harry Kane 0.08 Open Play Saved Shot Thomas Müller
25' Bayern Munich Michael Olise 0.30 Open Play Left Foot Missed Shot Thomas Müller
28' Bayern Munich Leon Goretzka 0.05 Open Play Left Foot Blocked Shot
33' Bayern Munich Leon Goretzka 0.04 Open Play Right Foot Missed Shot
34' Bayern Munich Josip Stanisic 0.32 From Corner Missed Shot Joshua Kimmich
36' Borussia Dortmund Pascal Groß 0.01 Open Play Right Foot Blocked Shot Maximilian Beier
37' Borussia Dortmund Daniel Svensson 0.03 From Corner Missed Shot
39' Bayern Munich Michael Olise 0.28 Open Play Left Foot Saved Shot
42' Borussia Dortmund Niklas Süle 0.04 Set Piece Right Foot Blocked Shot Pascal Groß
45' Bayern Munich Thomas Müller 0.09 Open Play Right Foot Blocked Shot Leroy Sané
46' Bayern Munich Harry Kane 0.06 Open Play Right Foot Saved Shot Thomas Müller
47' Bayern Munich Leon Goretzka 0.01 From Corner Saved Shot Joshua Kimmich
47' Borussia Dortmund Maximilian Beier 0.47 Open Play Goal Julian Ryerson
57' Borussia Dortmund Maximilian Beier 0.09 Open Play Right Foot Blocked Shot Julian Brandt
57' Borussia Dortmund Waldemar Anton 0.04 Open Play Left Foot Blocked Shot Maximilian Beier
59' Bayern Munich Harry Kane 0.03 Open Play Right Foot Missed Shot Thomas Müller
64' Bayern Munich Michael Olise 0.04 Open Play Left Foot Blocked Shot Konrad Laimer
64' Bayern Munich Raphael Guerreiro 0.37 Open Play Right Foot Goal Thomas Müller
68' Bayern Munich Serge Gnabry 0.12 Open Play Right Foot Goal Josip Stanisic
72' Bayern Munich Harry Kane 0.05 Open Play Right Foot Saved Shot Serge Gnabry
74' Borussia Dortmund Serhou Guirassy 0.11 From Corner Right Foot Saved Shot
74' Borussia Dortmund Waldemar Anton 0.58 From Corner Left Foot Goal
76' Bayern Munich Harry Kane 0.21 Open Play Right Foot Saved Shot Michael Olise
76' Bayern Munich Harry Kane 0.39 Open Play Right Foot Missed Shot
76' Bayern Munich Konrad Laimer 0.05 Open Play Right Foot Blocked Shot Michael Olise
76' Bayern Munich Raphael Guerreiro 0.04 Open Play Left Foot Saved Shot
78' Bayern Munich Joshua Kimmich 0.02 Open Play Right Foot Blocked Shot Michael Olise
79' Bayern Munich Thomas Müller 0.04 Open Play Right Foot Saved Shot
85' Borussia Dortmund Carney Chukwuemeka 0.08 Open Play Right Foot Blocked Shot Felix Nmecha
88' Bayern Munich Serge Gnabry 0.01 Open Play Left Foot Missed Shot
89' Borussia Dortmund Pascal Groß 0.28 Open Play Left Foot Missed Shot Daniel Svensson
91' Bayern Munich Joshua Kimmich 0.03 Open Play Right Foot Blocked Shot Aleksandar Pavlovic
92' Bayern Munich Michael Olise 0.07 Open Play Left Foot Missed Shot Raphael Guerreiro

Players

Borussia Dortmund

PlayerMinGA ShKPxGxA xGChain
Waldemar Anton DC 90 1 0 2 0 0.62 0.00 0.04
Pascal Groß MC 90 0 0 2 1 0.29 0.04 0.38
Serhou Guirassy FW 90 0 0 1 0 0.11 0.00 0.57
Daniel Svensson ML 90 0 0 1 1 0.03 0.28 0.29
Emre Can DC 90 0 0 0 0 0.00 0.00 0.13
Gregor Kobel GK 90 0 0 0 0 0.00 0.00 0.28
Julian Ryerson MR 90 0 1 0 1 0.00 0.47 0.47
Maximilian Beier FW 83 1 0 2 3 0.56 0.10 0.66
Niklas Süle DC 83 0 0 1 0 0.04 0.00 0.56
Julian Brandt MC 73 0 0 1 1 0.04 0.09 0.61
Salih Özcan DMC 73 0 0 0 0 0.00 0.00 0.01
Carney Chukwuemeka Sub 17 0 0 1 0 0.08 0.00 0.08
Felix Nmecha Sub 17 0 0 0 1 0.00 0.08 0.08
Karim Adeyemi Sub 7 0 0 0 0 0.00 0.00 0.00
Ramy Bensebaini Sub 7 0 0 0 0 0.00 0.00 0.28

Bayern Munich

PlayerMinGA ShKPxGxA xGChain
Harry Kane FW 90 0 0 6 0 0.82 0.00 1.51
Michael Olise AMR 90 0 0 5 5 0.73 0.41 1.40
Josip Stanisic DL 90 0 1 1 2 0.32 0.20 1.02
Konrad Laimer DR 90 0 0 2 2 0.08 0.07 0.41
Joshua Kimmich DMC 90 0 0 2 2 0.05 0.33 1.16
Jonas Urbig GK 90 0 0 0 0 0.00 0.00 0.04
Eric Dier DC 90 0 0 0 0 0.00 0.00 0.90
Thomas Müller AMC 83 0 1 4 5 0.23 0.84 1.58
Leroy Sané AML 66 0 0 1 1 0.09 0.09 0.28
Leon Goretzka DMC 65 0 0 3 0 0.10 0.00 0.50
Kim Min-Jae DC 56 0 0 0 1 0.00 0.02 0.21
Raphael Guerreiro Sub 34 1 0 2 1 0.41 0.07 0.67
Aleksandar Pavlovic Sub 25 0 0 0 1 0.00 0.03 0.29
Serge Gnabry Sub 24 1 0 2 1 0.13 0.05 0.66
Kingsley Coman Sub 7 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