OrcaScore
Upset index

Bundesliga upset index

Matches won by the side the pre-match odds gave little chance, and which leagues and teams produce more upsets than expected. Index 100 = as many upsets as expected.

Matches with a clear favourite
58
Upsets
15
Upset rate
25.9%
Upset index
123

Filters

Odds data: 555,247 matches with a clear favourite between 31 Dec 2015 and 7 Nov 2026.

Biggest upsets

By the winner's pre-match chance (from odds) — lowest first

  1. Bundesliga VfB Stuttgart2 Borussia M'gladbach3 Winner's pre-match chance 13% · odds 7.50
  2. Bundesliga TSG Hoffenheim2 HSV3 Winner's pre-match chance 13% · odds 7.00
  3. Bundesliga SV 07 Elversberg3 Bayer 04 Leverkusen2 Winner's pre-match chance 18% · odds 5.25
  4. Bundesliga 1. FSV Mainz 052 SV Werder Bremen3 Winner's pre-match chance 22% · odds 4.33
  5. Bundesliga HSV1 VfB Stuttgart0 Winner's pre-match chance 23% · odds 4.20
  6. Bundesliga 1. FSV Mainz 051 Eintracht Frankfurt3 Winner's pre-match chance 23% · odds 4.10
  1. Bayer 04 Leverkusen 2–4 VfB Stuttgart Bundesliga · 31 Oct 2026 23%
  2. SC Paderborn 07 3–1 TSG Hoffenheim Bundesliga · 20 Sep 2026 24%
  3. SV Werder Bremen 3–1 RB Leipzig Bundesliga · 5 Sep 2026 24%
  4. Eintracht Frankfurt 1–4 FC Augsburg Bundesliga · 6 Sep 2026 25%
  5. SV 07 Elversberg 4–1 1. FSV Mainz 05 Bundesliga · 30 Oct 2026 25%
  6. Borussia M'gladbach 3–4 SV 07 Elversberg Bundesliga · 5 Sep 2026 27%
  7. TSG Hoffenheim 3–0 Bayer 04 Leverkusen Bundesliga · 25 Oct 2026 29%
  8. 1. FC Köln 3–2 TSG Hoffenheim Bundesliga · 29 Aug 2026 29%
  9. 1. FC Union Berlin 1–3 FC Schalke 04 Bundesliga · 11 Sep 2026 31%

Bundesliga: by season

The most chaotic and most predictable seasons

Giant killers

Win more than expected as the underdog

Giant killers
Team Underdog wins Expected Index
SV 07 Elversberg 3/6 1.2 130
SV Werder Bremen 2/5 1.1 116
HSV 2/6 1.1 116
TSG Hoffenheim 1/1 0.3 114
Eintracht Frankfurt 1/3 0.6 108
FC Augsburg 1/3 0.6 108
VfB Stuttgart 1/3 0.7 107
1. FC Köln 1/3 0.7 106
FC Schalke 04 1/5 1.1 99
Borussia M'gladbach 1/6 1.4 95

Upset victims

Lose more than expected as the favourite

Upset victims
Team Losses as favourite Expected Index
1. FSV Mainz 05 3/5 1.1 131
TSG Hoffenheim 3/5 1.3 128
VfB Stuttgart 2/4 0.7 123
Bayer 04 Leverkusen 3/8 1.9 118
1. FC Union Berlin 1/1 0.3 113
Borussia M'gladbach 1/2 0.6 108
Eintracht Frankfurt 1/3 0.7 107
RB Leipzig 1/6 1.2 98
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.95 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.