VfL Bochum 1848 have the biggest shortfall in the Bundesliga: 25 points from chances worth 36.4 xPts, a gap of 11.4. At the other end, Bayer 04 Leverkusen have taken 69 points from an xPts figure of 59.1, 9.9 more than the underlying numbers justify.
Expected goals measure the quality of the chances a team creates and concedes, with every shot scored between 0 and 1 by how often shots like it are converted. Expected points come from running each finished match through a Poisson model using both sides' xG, giving a win, draw and loss probability, then awarding three points and one point against those probabilities. Underlying data is supplied by Sportmonks.
| # | Team | Played | Goals | xG | Goals minus xG | Goals against | xGA | Goals against minus xGA | Goal difference | xGD | Goal difference minus xGD | Points | xPts | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | FC Bayern München | 16 | 48 | 45.2 | +2.8 | 15 | 13.0 | +2.0 | +33 | 32.1 | +0.9 | 41 | 38.3 | +2.7 |
| 2 | Borussia Dortmund | 17 | 44 | 35.4 | +8.6 | 19 | 15.9 | +3.1 | +25 | 19.5 | +5.5 | 36 | 33.9 | +2.1 |
| 3 | Bayer 04 Leverkusen | 17 | 36 | 33.7 | +2.3 | 22 | 16.5 | +5.5 | +14 | 17.2 | -3.2 | 34 | 33.5 | +0.5 |
| 4 | Eintracht Frankfurt | 17 | 41 | 33.2 | +7.8 | 22 | 19.7 | +2.3 | +19 | 13.5 | +5.5 | 34 | 32.1 | +1.9 |
| 5 | VfB Stuttgart | 17 | 35 | 36.3 | -1.3 | 27 | 19.6 | +7.4 | +8 | 16.7 | -8.7 | 23 | 32.0 | -9.0 |
| 6 | FSV Mainz 05 | 17 | 24 | 27.1 | -3.1 | 18 | 20.7 | -2.7 | +6 | 6.4 | -0.4 | 26 | 27.8 | -1.8 |
| 7 | FC Augsburg | 17 | 18 | 23.5 | -5.5 | 20 | 18.6 | +1.4 | -2 | 4.9 | -6.9 | 23 | 26.4 | -3.4 |
| 8 | Werder Bremen | 17 | 21 | 26.2 | -5.2 | 26 | 22.8 | +3.2 | -5 | 3.3 | -8.3 | 21 | 26.1 | -5.1 |
| 9 | FC Union Berlin | 17 | 18 | 22.9 | -4.9 | 23 | 20.1 | +2.9 | -5 | 2.8 | -7.8 | 21 | 25.0 | -4.0 |
| 10 | RB Leipzig | 17 | 33 | 26.0 | +7.0 | 23 | 25.7 | -2.7 | +10 | 0.3 | +9.7 | 30 | 24.5 | +5.5 |
| 11 | SC Freiburg | 17 | 32 | 24.9 | +7.1 | 26 | 23.6 | +2.4 | +6 | 1.3 | +4.7 | 30 | 23.8 | +6.2 |
| 12 | VfL Wolfsburg | 17 | 27 | 26.2 | +0.8 | 30 | 26.9 | +3.1 | -3 | -0.7 | -2.3 | 16 | 23.3 | -7.3 |
| 13 | St. Pauli | 17 | 10 | 17.2 | -7.2 | 19 | 19.2 | -0.2 | -9 | -2.0 | -7.0 | 14 | 22.3 | -8.3 |
| 14 | TSG Hoffenheim | 17 | 25 | 26.6 | -1.6 | 36 | 29.4 | +6.6 | -11 | -2.8 | -8.2 | 17 | 21.6 | -4.6 |
| 15 | VfL Bochum 1848 | 17 | 16 | 24.8 | -8.8 | 33 | 28.9 | +4.1 | -17 | -4.1 | -12.9 | 13 | 21.4 | -8.4 |
| 16 | Heidenheim | 17 | 13 | 22.8 | -9.8 | 33 | 27.7 | +5.3 | -20 | -4.9 | -15.1 | 11 | 20.7 | -9.7 |
| 17 | Borussia Mönchengladbach | 17 | 29 | 24.7 | +4.3 | 26 | 32.1 | -6.1 | +3 | -7.4 | +10.4 | 24 | 20.0 | +4.0 |
| 18 | Holstein Kiel | 17 | 24 | 19.4 | +4.6 | 41 | 30.9 | +10.1 | -17 | -11.5 | -5.5 | 14 | 17.1 | -3.1 |
| # | Team | Played | Goals | xG | Goals minus xG | Goals against | xGA | Goals against minus xGA | Goal difference | xGD | Goal difference minus xGD | Points | xPts | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | FC Bayern München | 17 | 46 | 31.6 | +14.4 | 16 | 11.6 | +4.4 | +30 | 20.0 | +10.0 | 38 | 35.0 | +3.0 |
| 2 | Bayer 04 Leverkusen | 17 | 36 | 25.7 | +10.3 | 21 | 21.0 | +0.0 | +15 | 4.7 | +10.3 | 35 | 25.6 | +9.4 |
| 3 | Borussia Dortmund | 17 | 27 | 30.1 | -3.1 | 32 | 25.9 | +6.1 | -5 | 4.1 | -9.1 | 21 | 25.6 | -4.6 |
| 4 | VfB Stuttgart | 17 | 29 | 27.5 | +1.5 | 26 | 25.0 | +1.0 | +3 | 2.5 | +0.5 | 27 | 25.2 | +1.8 |
| 5 | SC Freiburg | 17 | 17 | 23.6 | -6.6 | 27 | 23.4 | +3.6 | -10 | 0.2 | -10.2 | 25 | 24.3 | +0.7 |
| 6 | Eintracht Frankfurt | 17 | 27 | 28.5 | -1.5 | 24 | 29.9 | -5.9 | +3 | -1.4 | +4.4 | 26 | 23.7 | +2.3 |
| 7 | Werder Bremen | 17 | 33 | 24.3 | +8.7 | 31 | 26.8 | +4.2 | +2 | -2.5 | +4.5 | 30 | 22.2 | +7.8 |
| 8 | VfL Wolfsburg | 17 | 29 | 23.3 | +5.7 | 24 | 27.2 | -3.2 | +5 | -3.9 | +8.9 | 27 | 21.6 | +5.4 |
| 9 | FSV Mainz 05 | 17 | 31 | 23.4 | +7.6 | 25 | 29.1 | -4.1 | +6 | -5.7 | +11.7 | 26 | 20.6 | +5.4 |
| 10 | St. Pauli | 17 | 18 | 18.8 | -0.8 | 22 | 26.7 | -4.7 | -4 | -7.9 | +3.9 | 18 | 18.9 | -0.9 |
| 11 | TSG Hoffenheim | 17 | 21 | 18.8 | +2.2 | 32 | 27.8 | +4.2 | -11 | -9.0 | -2.0 | 15 | 18.3 | -3.3 |
| 12 | FC Union Berlin | 17 | 17 | 18.5 | -1.5 | 28 | 28.1 | -0.1 | -11 | -9.6 | -1.4 | 19 | 18.2 | +0.8 |
| 13 | Heidenheim | 17 | 24 | 19.6 | +4.4 | 31 | 29.3 | +1.7 | -7 | -9.7 | +2.7 | 18 | 18.2 | -0.2 |
| 14 | RB Leipzig | 16 | 19 | 20.9 | -1.9 | 20 | 28.8 | -8.8 | -1 | -7.9 | +6.9 | 21 | 17.7 | +3.3 |
| 15 | Borussia Mönchengladbach | 17 | 26 | 21.9 | +4.1 | 31 | 33.4 | -2.4 | -5 | -11.5 | +6.5 | 21 | 17.3 | +3.7 |
| 16 | Holstein Kiel | 17 | 25 | 20.6 | +4.4 | 39 | 34.5 | +4.5 | -14 | -13.9 | -0.1 | 11 | 16.0 | -5.0 |
| 17 | VfL Bochum 1848 | 17 | 17 | 19.7 | -2.7 | 34 | 34.6 | -0.6 | -17 | -14.9 | -2.1 | 12 | 15.0 | -3.0 |
| 18 | FC Augsburg | 17 | 17 | 14.5 | +2.5 | 31 | 32.6 | -1.6 | -14 | -18.1 | +4.1 | 20 | 13.9 | +6.1 |
| # | Team | Played | Goals | xG | Goals minus xG | Goals against | xGA | Goals against minus xGA | Goal difference | xGD | Goal difference minus xGD | Points | xPts | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | VfB Stuttgart | 5 | 12 | 14.0 | -2.0 | 7 | 3.7 | +3.3 | +5 | 10.3 | -5.3 | 10 | 11.9 | -1.9 |
| 2 | FC Bayern München | 5 | 16 | 10.0 | +6.0 | 3 | 3.9 | -0.9 | +13 | 6.1 | +6.9 | 13 | 10.8 | +2.2 |
| 3 | Borussia Dortmund | 5 | 17 | 9.6 | +7.4 | 6 | 5.8 | +0.2 | +11 | 3.9 | +7.1 | 15 | 9.2 | +5.8 |
| 4 | Eintracht Frankfurt | 5 | 10 | 7.1 | +2.9 | 4 | 4.2 | -0.2 | +6 | 2.9 | +3.1 | 9 | 8.9 | +0.1 |
| 5 | FSV Mainz 05 | 5 | 9 | 9.5 | -0.5 | 9 | 6.3 | +2.7 | +0 | 3.1 | -3.1 | 6 | 8.7 | -2.7 |
| 6 | Werder Bremen | 5 | 7 | 8.5 | -1.5 | 3 | 6.3 | -3.3 | +4 | 2.3 | +1.7 | 9 | 8.4 | +0.6 |
| 7 | SC Freiburg | 5 | 9 | 6.4 | +2.6 | 8 | 6.0 | +2.0 | +1 | 0.4 | +0.6 | 10 | 7.5 | +2.5 |
| 8 | FC Augsburg | 5 | 2 | 8.0 | -6.0 | 11 | 9.3 | +1.7 | -9 | -1.3 | -7.7 | 1 | 7.0 | -6.0 |
| 9 | TSG Hoffenheim | 5 | 10 | 7.8 | +2.2 | 16 | 7.6 | +8.4 | -6 | 0.2 | -6.2 | 2 | 6.9 | -4.9 |
| 10 | VfL Bochum 1848 | 5 | 4 | 5.7 | -1.7 | 6 | 6.0 | +0.0 | -2 | -0.3 | -1.7 | 5 | 6.8 | -1.8 |
| 11 | Bayer 04 Leverkusen | 5 | 9 | 5.8 | +3.2 | 9 | 7.5 | +1.5 | +0 | -1.8 | +1.8 | 6 | 5.6 | +0.4 |
| 12 | VfL Wolfsburg | 5 | 5 | 6.1 | -1.1 | 9 | 8.6 | +0.4 | -4 | -2.4 | -1.6 | 5 | 5.3 | -0.3 |
| 13 | St. Pauli | 5 | 3 | 3.9 | -0.9 | 6 | 7.1 | -1.1 | -3 | -3.2 | +0.2 | 3 | 5.0 | -2.0 |
| 14 | RB Leipzig | 5 | 6 | 6.1 | -0.1 | 11 | 9.5 | +1.5 | -5 | -3.3 | -1.7 | 3 | 4.9 | -1.9 |
| 15 | FC Union Berlin | 5 | 9 | 4.8 | +4.2 | 11 | 7.8 | +3.2 | -2 | -3.0 | +1.0 | 6 | 4.8 | +1.2 |
| 16 | Borussia Mönchengladbach | 5 | 9 | 6.4 | +2.6 | 14 | 10.8 | +3.2 | -5 | -4.3 | -0.7 | 1 | 4.4 | -3.4 |
| 17 | Heidenheim | 5 | 5 | 4.2 | +0.8 | 8 | 8.5 | -0.5 | -3 | -4.3 | +1.3 | 7 | 4.3 | +2.7 |
| 18 | Holstein Kiel | 5 | 9 | 6.2 | +2.8 | 10 | 11.4 | -1.4 | -1 | -5.2 | +4.2 | 7 | 4.2 | +2.8 |
FC Bayern München overperformed their xG by more than any other side in the Bundesliga in 2024/2025, with 94 goals from chances worth 76.8 xG, a gap of 17.2. Bayer 04 Leverkusen were next on 12.5.
VfL Bochum 1848 underperformed their xG by more than any other side in the Bundesliga in 2024/2025, with 33 goals from chances worth 44.5 xG, a shortfall of 11.5. St. Pauli were next on 8.0.
Bayer 04 Leverkusen were the luckiest side in the Bundesliga in 2024/2025, with 69 points from performances worth 59.1 xPts, 9.9 more than their chances deserved. RB Leipzig were next on 8.7.
VfL Bochum 1848 were the unluckiest side in the Bundesliga in 2024/2025, with 25 points from performances worth 36.4 xPts, 11.4 short of what they deserved. Heidenheim were next on 9.8.
FC Bayern München were also top of the Bundesliga in 2024/2025 on expected points, with 73.3 xPts from 76.8 xG created and 24.7 conceded across 33 matches. Borussia Dortmund were next on 59.5.
FC Bayern München created the most xG in the Bundesliga in 2024/2025, 76.8 from 33 matches, 2.3 a game against a competition average of 1.5. Borussia Dortmund were next on 65.5.
St. Pauli created the least xG in the Bundesliga in 2024/2025, 36.0 from 34 matches, 1.1 a game against a competition average of 1.5. FC Augsburg were next on 38.0.
Borussia Mönchengladbach and Holstein Kiel conceded the most xG in the Bundesliga in 2024/2025, both on 65.4 from 34 matches, 1.9 a game against a competition average of 1.5. VfL Bochum 1848 were next on 63.5.
FC Bayern München conceded the least xG in the Bundesliga in 2024/2025, 24.7 from 33 matches, 0.8 a game against a competition average of 1.5. Bayer 04 Leverkusen were next on 37.6.
Bundesliga teams averaged 1.49 xG a game in 2024/2025, from the 305 matches played, and scored 1.56 goals a game from it.
Bundesliga teams created more xG at home in 2024/2025, 1.63 a game against 1.35 away, a home advantage of +0.28.
The same season by player, with the goals each one scored against the chances they had.
| # | Team | Played | Goals | xG | Goals minus xG | Goals against | xGA | Goals against minus xGA | Goal difference | xGD | Goal difference minus xGD | Points | xPts | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | FC Bayern München | 33 | 94 | 76.8 | +17.2 | 31 | 24.7 | +6.3 | +63 | 52.1 | +10.9 | 79 | 73.3 | +5.7 |
| 2 | Borussia Dortmund | 34 | 71 | 65.5 | +5.5 | 51 | 41.9 | +9.1 | +20 | 23.6 | -3.6 | 57 | 59.5 | -2.5 |
| 3 | Bayer 04 Leverkusen | 34 | 72 | 59.5 | +12.5 | 43 | 37.6 | +5.4 | +29 | 21.9 | +7.1 | 69 | 59.1 | +9.9 |
| 4 | VfB Stuttgart | 34 | 64 | 63.8 | +0.2 | 53 | 44.6 | +8.4 | +11 | 19.2 | -8.2 | 50 | 57.2 | -7.2 |
| 5 | Eintracht Frankfurt | 34 | 68 | 61.7 | +6.3 | 46 | 49.6 | -3.6 | +22 | 12.1 | +9.9 | 60 | 55.8 | +4.2 |
| 6 | FSV Mainz 05 | 34 | 55 | 50.5 | +4.5 | 43 | 49.8 | -6.8 | +12 | 0.7 | +11.3 | 52 | 48.4 | +3.6 |
| 7 | Werder Bremen | 34 | 54 | 50.5 | +3.5 | 57 | 49.7 | +7.3 | -3 | 0.8 | -3.8 | 51 | 48.2 | +2.8 |
| 8 | SC Freiburg | 34 | 49 | 48.5 | +0.5 | 53 | 47.1 | +5.9 | -4 | 1.4 | -5.4 | 55 | 48.1 | +6.9 |
| 9 | VfL Wolfsburg | 34 | 56 | 49.5 | +6.5 | 54 | 54.1 | -0.1 | +2 | -4.6 | +6.6 | 43 | 44.8 | -1.8 |
| 10 | FC Union Berlin | 34 | 35 | 41.4 | -6.4 | 51 | 48.2 | +2.8 | -16 | -6.8 | -9.2 | 40 | 43.2 | -3.2 |
| 11 | RB Leipzig | 33 | 52 | 46.9 | +5.1 | 43 | 54.5 | -11.5 | +9 | -7.6 | +16.6 | 51 | 42.3 | +8.7 |
| 12 | St. Pauli | 34 | 28 | 36.0 | -8.0 | 41 | 45.9 | -4.9 | -13 | -9.9 | -3.1 | 32 | 41.2 | -9.2 |
| 13 | FC Augsburg | 34 | 35 | 38.0 | -3.0 | 51 | 51.2 | -0.2 | -16 | -13.2 | -2.8 | 43 | 40.3 | +2.7 |
| 14 | TSG Hoffenheim | 34 | 46 | 45.5 | +0.5 | 68 | 57.3 | +10.7 | -22 | -11.8 | -10.2 | 32 | 39.9 | -7.9 |
| 15 | Heidenheim | 34 | 37 | 42.4 | -5.4 | 64 | 57.0 | +7.0 | -27 | -14.6 | -12.4 | 29 | 38.8 | -9.8 |
| 16 | Borussia Mönchengladbach | 34 | 55 | 46.5 | +8.5 | 57 | 65.4 | -8.4 | -2 | -18.9 | +16.9 | 45 | 37.3 | +7.7 |
| 17 | VfL Bochum 1848 | 34 | 33 | 44.5 | -11.5 | 67 | 63.5 | +3.5 | -34 | -19.1 | -14.9 | 25 | 36.4 | -11.4 |
| 18 | Holstein Kiel | 34 | 49 | 39.9 | +9.1 | 80 | 65.4 | +14.6 | -31 | -25.5 | -5.5 | 25 | 33.1 | -8.1 |