Bundesliga 2024-2025 Performance vs Market
Expected points (xPTS) come from pre-match market odds: what the market rated each team's chances at before kickoff. A positive Δ means the team is outperforming those expectations — playing better than the market rated them; a negative Δ means they're delivering less than their billing. Big gaps usually say more about the team than about fortune.
| # | Team | P | Pts | xPts | vs xPTS | |||||
|---|---|---|---|---|---|---|---|---|---|---|
1 | Eintracht Frankfurt | 34 | 60 | 50.4 | +9.6Outperforming ++ | 6 | +4.9 | +4.7 | 2:3 vs Stuttgart (+2.1) | 1:2 vs Union Berlin (-1.7) |
2 | Freiburg | 34 | 55 | 45.8 | +9.2Outperforming ++ | 7 | +2.9 | +6.3 | 3:1 vs Stuttgart (+2.0) | 0:3 vs St. Pauli (-2.0) |
3 | Werder Bremen | 34 | 51 | 43.7 | +7.3Outperforming ++ | 10 | -4.0 | +11.3 | 0:2 vs Bayer Leverkusen (+2.5) | 1:3 vs Hoffenheim (-1.8) |
4 | Mainz | 34 | 52 | 45.4 | +6.6Outperforming ++ | 8 | -0.4 | +7.0 | 2:1 vs Bayern Munich (+2.3) | 0:2 vs Heidenheim (-1.8) |
5 | Augsburg | 34 | 43 | 39.4 | +3.6Outperforming | 13 | -0.6 | +4.2 | 0:1 vs Dortmund (+2.4) | 1:3 vs Holstein Kiel (-1.8) |
6 | Bayern Munich | 34 | 82 | 80.2 | +1.8On expectation | 1 | +1.0 | +0.8 | 1:3 vs Stuttgart (+1.1) | 2:3 vs Bochum (-2.6) |
7 | Bayer Leverkusen | 34 | 69 | 68.8 | +0.2On expectation | 2 | -3.5 | +3.7 | 3:4 vs Stuttgart (+1.4) | 0:2 vs Werder Bremen (-2.3) |
8 | Wolfsburg | 34 | 43 | 43.9 | -0.9On expectation | 9 | -9.6 | +8.7 | 1:2 vs Stuttgart (+2.2) | 0:1 vs Heidenheim (-1.9) |
9 | Union Berlin | 34 | 40 | 41.6 | -1.6On expectation | 11 | -3.4 | +1.8 | 1:2 vs Augsburg (+2.0) | 0:1 vs Holstein Kiel (-2.0) |
10 | Holstein Kiel | 34 | 25 | 27.9 | -2.9Underperforming | 17 | -3.3 | +0.4 | 4:2 vs Dortmund (+2.4) | 1:3 vs Hoffenheim (-1.3) |
11 | RB Leipzig | 34 | 51 | 54.7 | -3.7Underperforming | 5 | -0.9 | -2.8 | 2:3 vs Bayer Leverkusen (+2.2) | 1:5 vs Wolfsburg (-1.9) |
12 | Heidenheim | 34 | 29 | 33.6 | -4.6Underperforming | 15 | -8.5 | +3.9 | 0:1 vs Stuttgart (+2.3) | 0:2 vs St. Pauli (-1.5) |
13 | Dortmund | 34 | 57 | 61.7 | -4.7Underperforming | 3 | +1.9 | -6.7 | 2:4 vs Bayer Leverkusen (+1.6) | 0:1 vs Augsburg (-2.2) |
14 | St. Pauli | 34 | 32 | 37.8 | -5.8Underperforming −− | 14 | -8.8 | +3.1 | 0:1 vs Stuttgart (+2.4) | 0:2 vs Bochum (-1.9) |
15 | Stuttgart | 34 | 50 | 56.3 | -6.3Underperforming −− | 4 | -9.2 | +2.9 | 1:2 vs Dortmund (+2.0) | 0:1 vs St. Pauli (-2.1) |
16 | Bochum | 34 | 25 | 33.0 | -8.0Underperforming −− | 16 | -7.7 | -0.3 | 2:3 vs Bayern Munich (+2.7) | 1:2 vs Augsburg (-1.5) |
17 | Hoffenheim | 34 | 32 | 40.1 | -8.1Underperforming −− | 12 | -6.8 | -1.3 | 1:3 vs Werder Bremen (+2.0) | 0:2 vs St. Pauli (-1.8) |
