Upset index
Bundesliga upset index
Including the years before odds: the biggest upsets in history, the most chaotic seasons and the giant killers by our learning Elo model's pre-match probabilities. Index 100 = as many upsets as expected.
- Matches with a clear favourite
- 13,040
- Upsets
- 2,537
- Upset rate
- 19.5%
- Upset index
- 101
Filters
Model data: 2,473,332 matches with a clear favourite between 26 Apr 1970 and 6 Nov 2026 (learning Elo, pre-match state).
Biggest upsets
By the winner's pre-match chance (Elo model) — lowest first
-
Bundesliga
FC Bayern München1
FC Augsburg2
Winner's pre-match chance 5.0%
-
Bundesliga
1. FC Kaiserslautern1
Arminia Bielefeld3
Winner's pre-match chance 6.0%
-
Bundesliga
FC Bayern München2
Fortuna Düsseldorf3
Winner's pre-match chance 6.2%
-
Bundesliga
1. FC Köln3
Karlsruher SC4
Winner's pre-match chance 6.3%
-
Bundesliga
FC Bayern München2
VfL Bochum 18483
Winner's pre-match chance 6.4%
-
Bundesliga
Hamburger SV0
Eintracht Frankfurt2
Winner's pre-match chance 6.5%
-
Borussia Dortmund
1–2
TSG Hoffenheim
-
SV Werder Bremen
0–2
1. FC Kaiserslautern
-
Borussia M'gladbach
1–2
Rot-Weiss Essen
-
FC Bayern München
0–1
FC Schalke 04
-
SV Werder Bremen
2–3
Eintracht Frankfurt
-
FC Bayern München
1–3
Borussia Dortmund
-
FC Bayern München
0–1
FC St. Pauli
-
Borussia M'gladbach
1–2
Hannover 96
-
Hamburger SV
2–3
SV Waldhof Mannheim
-
Hamburger SV
1–2
MSV Duisburg
-
FC Bayern München
0–1
Borussia Dortmund
-
FC Bayern München
0–1
SV Werder Bremen
-
FC Bayern München
0–1
FC Augsburg
-
1. FC Kaiserslautern
1–2
KFC Uerdingen 05
-
Borussia Dortmund
1–1
FC St. Pauli
-
1. FC Köln
1–3
Fortuna Düsseldorf
-
FC Bayern München
1–2
1. FC Köln
-
Borussia M'gladbach
0–2
Arminia Bielefeld
-
Borussia Dortmund
1–4
Hamburger SV
-
Hamburger SV
2–3
Borussia M'gladbach
-
FC Schalke 04
0–1
1. FC Saarbrücken
-
Borussia M'gladbach
0–2
Fortuna Düsseldorf
-
FC Augsburg
1–0
FC Bayern München
-
Borussia M'gladbach
1–2
Fortuna Düsseldorf
-
FC Bayern München
1–2
1. FSV Mainz 05
-
Bayer 04 Leverkusen
0–2
SV Werder Bremen
-
FC Schalke 04
1–2
Hannover 96
-
1. FC Köln
3–3
Hannover 96
-
Hamburger SV
0–4
Karlsruher SC
-
FC Bayern München
1–2
SV Waldhof Mannheim
-
FC Bayern München
0–2
1. FC Köln
-
FC Bayern München
0–1
FC Hansa Rostock
-
FC Bayern München
1–4
VfB Stuttgart
-
Hamburger SV
0–1
VfL Bochum 1848
Bundesliga: by season
The most chaotic and most predictable seasons
Giant killers
Win more than expected as the underdog
| Team | Underdog wins | Expected | Index |
|---|---|---|---|
| 12/35 | 7.3 | 151 | |
| 27/98 | 22.6 | 131 | |
| 58/229 | 54.3 | 122 | |
| 91/371 | 86.4 | 121 | |
| 73/297 | 69.7 | 120 | |
| 47/206 | 45.8 | 117 | |
| 88/364 | 86.7 | 116 | |
| 3/12 | 2.5 | 112 | |
| 127/565 | 132.6 | 111 | |
| 3/12 | 2.6 | 110 |
Upset victims
Lose more than expected as the favourite
| Team | Losses as favourite | Expected | Index |
|---|---|---|---|
| 5/6 | 1.7 | 154 | |
| 12/27 | 7.7 | 146 | |
| 33/96 | 26.1 | 138 | |
| 5/10 | 2.6 | 138 | |
| 47/149 | 38.7 | 136 | |
| 3/5 | 1.5 | 128 | |
| 10/30 | 7.9 | 127 | |
| 8/22 | 6.3 | 124 | |
| 57/200 | 52.6 | 123 | |
| 2/3 | 0.8 | 122 |
How is it calculated?
- Probability: From pre-match 1X2 (or two-way) odds, with the bookmaker margin removed proportionally: p = (1/odds) / Σ(1/odds). The same formula as the stats hub's “upsets by odds” block.
- Clear favourite and upset: Only matches with at least a 10-point gap between the home and away win probabilities count; if the favourite's opponent wins, it is an upset. Draws are not upsets. Winner's chance of 25% or less = big upset.
- Ranking: The lower the winner's pre-match chance, the bigger the upset (surprise score = 100 × (1 − chance)).
- Index: 100 × (actual upsets + 5) / (expected upsets + 5); expected = sum of the underdogs' win probabilities. The +5 pulls small samples towards 100. Teams have two directions: giant killing (winning as the underdog) and fragility (losing as the favourite).
- Calibration: Expected values are scaled by the source's overall hit factor (0.86 in this view), so a systematic bias of the source does not shift every league the same way.
- Historical (model): For past matches without odds, the probability comes from our learning Elo model replaying the full history chronologically and taking its state before the match (both teams need at least 15 matches; friendlies excluded). Never mixed with odds.