xgEdge

Saturday, 29/08/2026 at 15:30

Full time
Match report · Bundesliga

RB Leipzig 3:0 Borussia M'gladbach

RB Leipzig Home 3.96 xG · 25 shots
Borussia M'gladbach Away 1.09 xG · 15 shots
30 The scoreline reflected the chances

RB Leipzig were the model's likeliest winner before kick-off at 58%. They won 3–0. The biggest difference was RB Leipzig's attack: 3.96 xG against 2.00 projected (+1.96).

Goals

  1. 26' Ridle Baku RB Leipzig · 0.46 xG chance 1–0
  2. 49' Antonio Nusa RB Leipzig · 0.08 xG chance 2–0
  3. 66' Rocco Reitz RB Leipzig · 0.35 xG chance 3–0

The model against the result

priced before kick-off
RB Leipzig
58% What happened
Draw
25%
Borussia M'gladbach
17%

Data coverage Both teams have the full 20-match model window available.

Projected vs produced

Expected goals
RB Leipzig The model projected 2.00 Produced 3.96 Difference +1.96
Borussia M'gladbach The model projected 1.08 Produced 1.09 Difference +0.01

RB Leipzig produced 1.96 xG more than projected

Projected before kick-off Produced on the night

The shots behind it

RB Leipzig Borussia M'gladbach
Shots
25
15
On target
11
4
Inside the box
19
10
xG per shot
0.18
0.06
Open play xG
2.60
0.69
Set-piece xG
1.95
0.28
Penalties
—
—
Shot-level xG may differ from the published match total

The provider publishes the match total separately from its shot-by-shot values. Those values are rounded to two decimals and, leaving out penalties and own goals, add up to its non-penalty xG: 4.60 for RB Leipzig and 0.97 for Borussia M'gladbach.

Shot map

Both teams shown attacking the same goal for comparison.

RB Leipzig · Willi Orbán · 60' · No goal · 2 m · 0.90 xG RB Leipzig · Ezechiel Banzuzi · 60' · No goal · 3 m · 0.64 xG RB Leipzig · Tidiam Gomis · 41' · No goal · 5 m · 0.53 xG RB Leipzig · Ridle Baku · 26' · Goal · 14 m · 0.46 xG RB Leipzig · Rocco Reitz · 66' · Goal · 9 m · 0.35 xG RB Leipzig · Ezechiel Banzuzi · 48' · No goal · 5 m · 0.31 xG Borussia M'gladbach · Daiki Hashioka · 63' · No goal · 11 m · 0.21 xG RB Leipzig · Conrad Harder · 87' · No goal · 17 m · 0.17 xG RB Leipzig · Ezechiel Banzuzi · 16' · No goal · 15 m · 0.14 xG RB Leipzig · Ezechiel Banzuzi · 34' · No goal · 10 m · 0.13 xG Borussia M'gladbach · Hugo Bolin · 21' · No goal · 9 m · 0.12 xG Borussia M'gladbach · Hugo Bolin · 86' · No goal · 18 m · 0.12 xG RB Leipzig · Willi Orbán · 42' · No goal · 7 m · 0.11 xG RB Leipzig · Rocco Reitz · 58' · No goal · 7 m · 0.10 xG RB Leipzig · Brajan Gruda · 59' · No goal · 11 m · 0.10 xG Borussia M'gladbach · Isac Lidberg · 76' · No goal · 11 m · 0.09 xG RB Leipzig · Antonio Nusa · 38' · No goal · 15 m · 0.08 xG RB Leipzig · Antonio Nusa · 49' · Goal · 15 m · 0.08 xG Borussia M'gladbach · Tim Kleindienst · 81' · No goal · 10 m · 0.08 xG RB Leipzig · Brajan Gruda · 23' · No goal · 20 m · 0.07 xG Borussia M'gladbach · Hugo Bolin · 45' · No goal · 15 m · 0.07 xG RB Leipzig · Tidiam Gomis · 27' · No goal · 13 m · 0.06 xG RB Leipzig · Antonio Nusa · 60' · No goal · 15 m · 0.06 xG Borussia M'gladbach · Ko Itakura · 90' · No goal · 11 m · 0.06 xG RB Leipzig · Tidiam Gomis · 18' · No goal · 21 m · 0.04 xG Borussia M'gladbach · Lukas Ullrich · 31' · No goal · 15 m · 0.04 xG RB Leipzig · David Raum · 45' · No goal · 30 m · 0.04 xG Borussia M'gladbach · Robin Hack · 45' · No goal · 10 m · 0.04 xG RB Leipzig · Tidiam Gomis · 61' · No goal · 13 m · 0.04 xG Borussia M'gladbach · Hugo Bolin · 78' · No goal · 21 m · 0.04 xG RB Leipzig · Conrad Harder · 90' · No goal · 14 m · 0.04 xG RB Leipzig · Ridle Baku · 47' · No goal · 20 m · 0.03 xG Borussia M'gladbach · Joe Scally · 79' · No goal · 14 m · 0.03 xG RB Leipzig · Arthur Vermeeren · 86' · No goal · 8 m · 0.03 xG Borussia M'gladbach · Philipp Sander · 6' · No goal · 23 m · 0.02 xG RB Leipzig · Antonio Nusa · 57' · No goal · 12 m · 0.02 xG RB Leipzig · Castello Lukeba · 61' · No goal · 24 m · 0.02 xG Borussia M'gladbach · Franck Honorat · 82' · No goal · 19 m · 0.02 xG Borussia M'gladbach · Franck Honorat · 90' · No goal · 25 m · 0.02 xG Borussia M'gladbach · Philipp Sander · 76' · No goal · 11 m · 0.01 xG

All shots

40 shots · 5.52 xG

Hover, focus or tap a shot to read it.

  • RB Leipzig
  • Borussia M'gladbach
  • Filled = goal
  • Dot area = xG (the smallest chances drawn at a minimum size)

Recent form

Last 6 · xG per match
RB Leipzig

2.13 xG created 1.67 xGA

  • W 2.43 created, 1.78 conceded against Borussia M'gladbach
  • W 2.09 created, 1.45 conceded against Eintracht Frankfurt
  • W 4.49 created, 0.19 conceded against 1. FC Union Berlin
  • L 1.17 created, 4.42 conceded against Bayer 04 Leverkusen
  • W 1.37 created, 0.79 conceded against FC St. Pauli
  • L 1.24 created, 1.41 conceded against SC Freiburg
Borussia M'gladbach

1.24 xG created 1.82 xGA

  • L 1.78 created, 2.43 conceded against RB Leipzig
  • D 0.62 created, 2.32 conceded against 1. FSV Mainz 05
  • D 0.51 created, 1.47 conceded against VfL Wolfsburg
  • W 2.20 created, 0.49 conceded against Borussia Dortmund
  • L 1.14 created, 2.59 conceded against FC Augsburg
  • W 1.20 created, 1.62 conceded against TSG Hoffenheim

xG created xG conceded (xGA) W / D / L: the match result

Head to head

RB Leipzig: 1 won · 1 drawn · 0 lost

Pre-match model & market record

3 opportunities flagged0 won3 lost

  • Lost
  • Lost
  • Lost
View pre-match record
The outcomes the model flagged on RB Leipzig against Borussia M'gladbach before kick-off, in the order they ranked, with the price, the edge and what became of each.
Selection Price Edge Result
Draw 4.50 +11.1% Lost
Under 2.5 goals 2.63 +1.2% Lost
RB Leipzig at most 1 goal 2.63 +0.6% Lost

Pre-match model vs market

Outcome Model Market Difference Fair odds
RB Leipzig 58.2% 61.5% −3.3 pp 1.72
Draw 24.7% 21.2% +3.5 pp 4.05
Borussia M'gladbach 17.1% 17.3% −0.3 pp 5.86

Other markets

Outcome Model Market Difference Fair odds
RB Leipzig to score 88.6% 88.1% +0.5 pp 1.13
RB Leipzig not to score 11.4% 11.9% −0.5 pp 8.78
Borussia M'gladbach to score 69.1% 66.3% +2.8 pp 1.45
Borussia M'gladbach not to score 30.9% 33.7% −2.8 pp 3.24
Both teams to score 62.6% 60.8% +1.8 pp 1.60
Both teams not to score 37.4% 39.2% −1.8 pp 2.67
RB Leipzig 2+ goals 61.7% 64.5% −2.8 pp 1.62
RB Leipzig at most 1 goal 38.3% 35.5% +2.8 pp 2.61
Borussia M'gladbach 2+ goals 29.6% 33.7% −4.1 pp 3.38
Borussia M'gladbach at most 1 goal 70.4% 66.3% +4.1 pp 1.42
Over 1.5 goals 85.0% 82.8% +2.2 pp 1.18
Under 1.5 goals 15.0% 17.2% −2.2 pp 6.68
Over 2.5 goals 61.5% 63.6% −2.2 pp 1.63
Under 2.5 goals 38.5% 36.4% +2.2 pp 2.60

Prices and probabilities are the ones stored before kick-off; nothing here is recalculated. Edge is the model's probability times the price, minus one, so a flagged outcome that lost is the ordinary case rather than a contradiction.

Model details

Show
Fit window
the last 20 matches, recency weighted (a match 107 days old counts half)
RB Leipzig sample
20 matches
Borussia M'gladbach sample
20 matches
Computed
6 hours before kick-off
Prices taken
6 hours before kick-off

Limitations

The model reads expected goals and nothing else. It does not know the lineups, who is injured or suspended, what either side has to play for, the weather, or how congested the schedule around this match is.