Blog/ Bundesliga

The Bundesliga's 16.5-Point Luck Gap Is Hiding Two Different Realities

Wolfsburg's actual record says relegation scrap. Their underlying numbers say comfortable midtable. Bayern's title dominance, meanwhile, came with a 16.5-point tailwind.

Every Bundesliga table tells a story. The expected-points table tells a different one. The gap between the two tells the most interesting one of all.

The xPoints gap measures the difference between a team's actual points and the points they would be expected to earn based on xG-driven Poisson simulations of every match. It strips out finishing variance, goalkeeping heroics, post hits, and the thousand tiny coin flips that separate a 1-0 win from a 1-1 draw. A large negative gap means a team has been systematically unlucky, converting good performances into mediocre results. A large positive gap means the opposite.

This season, that gap stretches 28.7 points from bottom to top. That is not a normal spread.

Most Cursed by xPoints Gap

1. VfL Wolfsburg (26 pts vs 38.2 xPoints, gap: -12.2) - Wolfsburg's underlying performances describe a team sitting comfortably in the top half. Their actual record describes a team nervously eyeing the playoff spot. Twelve points is a chasm, and they have fallen into it week after week.

2. 1. FC Heidenheim (26 pts vs 37.7 xPoints, gap: -11.7) - Heidenheim's 11.7-point deficit is nearly identical to Wolfsburg's, and so is their predicament. They have been creating chances befitting a 38-point team and collecting results befitting a 26-point one. The universe has been consistent, at least.

3. 1. FC Köln (32 pts vs 43.4 xPoints, gap: -11.4) - Köln's simulation profile puts them at 43.4 points, a zone of relative safety. Instead they sit on 32. Their finishing and conversion margins have been quietly catastrophic all season.

4. Werder Bremen (32 pts vs 40.7 xPoints, gap: -8.7) - Bremen's 8.7-point gap is less dramatic but no less frustrating. They have been losing close matches at a rate their xG profiles cannot explain.

5. FSV Mainz 05 (37 pts vs 45.5 xPoints, gap: -8.5) - Mainz at 45.5 expected points would be pushing for Europe. Mainz at 37 actual points are pushing for nothing in particular. The 8.5-point shortfall has quietly defined their season.

Most Blessed by xPoints Gap

1. Bayern München (86 pts vs 69.5 xPoints, gap: +16.5) - Eighty-six points is a dominant title run. Sixty-nine and a half expected points is still very good but not historically dominant. Bayern have outperformed their underlying numbers by 16.5 points, the largest positive gap in the league by a wide margin. The title is real. The margin of superiority is partially borrowed.

2. Borussia Dortmund (70 pts vs 55.8 xPoints, gap: +14.2) - Dortmund's 14.2-point overperformance is the second largest in the division. They have been winning tight matches at a rate that is, statistically speaking, unsustainable.

3. 1899 Hoffenheim (61 pts vs 49.1 xPoints, gap: +11.9) - Hoffenheim's 11.9-point surplus has propelled them into a European position their chance creation alone would not have earned.

4. RB Leipzig (65 pts vs 54.4 xPoints, gap: +10.6) - Leipzig's 10.6-point bonus is significant but not outlandish for a squad with their quality of finishing.

5. VfB Stuttgart (61 pts vs 52.9 xPoints, gap: +8.1) - Stuttgart's 8.1-point cushion is the smallest among the blessed top five but still represents roughly two wins conjured from thin air.

What This Tells Us

The full range this season, from Wolfsburg's -12.2 to Bayern's +16.5, spans 28.7 points. Historically, xPoints gaps of this magnitude regress significantly. Teams sitting more than eight points below their expected total tend to recover four to six points the following season without any roster changes. Teams riding double-digit positive gaps tend to shed a similar amount.

None of this delegitimizes results already banked. But it does suggest the table we will see next May could look meaningfully different from this one, even if nothing else changes.

Bundesliga · Signal ranking
xPoints gap
Every team ranked from most cursed (top, red) to most blessed (bottom, green) by this single isolated signal.
1
VfL Wolfsburg
-12.20
2
1. FC Heidenheim
-11.72
3
1. FC Köln
-11.44
4
Werder Bremen
-8.69
5
FSV Mainz 05
-8.50
6
Union Berlin
-7.32
7
FC St. Pauli
-5.58
8
Borussia Mönchengladbach
-4.76
9
SC Freiburg
-0.33
10
Hamburger SV
+0.30
11
Eintracht Frankfurt
+0.63
12
FC Augsburg
+3.51
13
Bayer Leverkusen
+3.89
14
VfB Stuttgart
+8.14
15
RB Leipzig
+10.58
16
1899 Hoffenheim
+11.86
17
Borussia Dortmund
+14.16
18
Bayern München
+16.46
Cursed (below league average) Blessed
Source: CURSD CLS
Free

Liked this? Get more.

Weekly analysis like this one, in your inbox every Monday. 5 picks the CURSD way: cursed teams ripe for regression, blessed teams due to cool off.

No spam. One email per week. Unsubscribe anytime.

Share

Read next