Bundesliga
The Bundesliga through our xG model: the table underneath the table, our honest record on it, who plays next, and who is in form. Rebuilt from live data twice an hour. Not tips — a public test. This season.
xG ratings — the table underneath the table
Ranked by chance quality (xG difference per match), not by results. Every column sorts; hover a header for what it means.
On chance quality alone, Bayern München were the best side here (+2.64 xG difference per game). SV Elversberg scored +5.6 goals more than their chances were worth, the biggest gap in the division. They also took +5.8 points more than those chances deserved. Gaps like that usually shrink over time, which is why sides at the top of them often fall away.
| # | Team | Pld | W-D-L | Pts | xPts | Pts +/- | GF | GA | xGF/g | xGA/g | xG diff | G vs xG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Bayern München | 8 | 5-3-0 | 18 | 21.0 | -3.0 | 27 | 8 | 3.57 | 0.93 | +2.64 | -1.6 |
| 2 | RB Leipzig | 8 | 5-0-3 | 15 | 15.3 | -0.3 | 22 | 11 | 2.51 | 1.50 | +1.01 | +1.9 |
| 3 | FSV Mainz 05 | 8 | 3-1-4 | 10 | 13.9 | -3.9 | 17 | 17 | 2.04 | 1.48 | +0.56 | +0.7 |
| 4 | 1899 Hoffenheim | 8 | 3-0-5 | 9 | 13.5 | -4.5 | 14 | 16 | 1.84 | 1.30 | +0.54 | -0.7 |
| 5 | SC Freiburg | 8 | 5-1-2 | 16 | 13.4 | +2.6 | 18 | 10 | 1.69 | 1.27 | +0.43 | +4.5 |
| 6 | Borussia Dortmund | 8 | 5-3-0 | 18 | 13.5 | +4.5 | 14 | 6 | 1.60 | 1.33 | +0.28 | +1.2 |
| 7 | Bayer Leverkusen | 8 | 4-1-3 | 13 | 12.7 | +0.3 | 18 | 16 | 2.00 | 1.74 | +0.26 | +2.0 |
| 8 | Werder Bremen | 8 | 4-3-1 | 15 | 11.0 | +4.0 | 17 | 14 | 1.65 | 1.58 | +0.07 | +3.8 |
| 9 | 1. FC Köln | 8 | 2-3-3 | 9 | 11.3 | -2.3 | 9 | 12 | 1.55 | 1.51 | +0.04 | -3.4 |
| 10 | Eintracht Frankfurt | 8 | 3-2-3 | 11 | 10.6 | +0.4 | 13 | 18 | 1.71 | 1.96 | -0.25 | -0.7 |
| 11 | VfB Stuttgart | 8 | 3-0-5 | 9 | 9.9 | -0.9 | 14 | 15 | 2.00 | 2.37 | -0.37 | -2.0 |
| 12 | FC Augsburg | 8 | 2-3-3 | 9 | 9.5 | -0.5 | 18 | 15 | 2.02 | 2.48 | -0.46 | +1.9 |
| 13 | SC Paderborn 07 | 8 | 2-3-3 | 9 | 8.0 | +1.0 | 6 | 9 | 0.98 | 1.58 | -0.60 | -1.8 |
| 14 | Borussia Mönchengladbach | 8 | 1-1-6 | 4 | 8.4 | -4.4 | 11 | 22 | 1.53 | 2.19 | -0.67 | -1.2 |
| 15 | Hamburger SV | 8 | 3-0-5 | 9 | 7.3 | +1.7 | 7 | 19 | 1.00 | 1.77 | -0.77 | -1.0 |
| 16 | Union Berlin | 8 | 1-4-3 | 7 | 8.3 | -1.3 | 7 | 19 | 1.15 | 1.95 | -0.81 | -2.2 |
| 17 | SV Elversberg | 8 | 4-1-3 | 13 | 7.2 | +5.8 | 16 | 16 | 1.30 | 2.15 | -0.85 | +5.6 |
| 18 | FC Schalke 04 | 8 | 1-3-4 | 6 | 6.0 | +0.0 | 4 | 9 | 0.90 | 1.95 | -1.05 | -3.2 |
What each column means
- Pld — Matches played
- W-D-L — Wins, draws and losses
- Pts — Actual league points won
- xPts — Expected points — what the chances created and conceded in each match were worth, run through the same model as the rest of the site
- Pts +/- — Actual points minus expected points. Positive means they took more from their chances than the chances deserved — finishing, goalkeeping, or luck
- GF — Goals scored
- GA — Goals conceded
- xGF/g — Expected goals created per match — the quality of chances they made
- xGA/g — Expected goals conceded per match — the quality of chances they allowed
- xG diff — xGF/g minus xGA/g. The honest measure of how good a side has been, regardless of results
- G vs xG — Goals scored minus expected goals. A big positive means clinical finishing or good luck, and it usually drifts back to zero
Our record on the Bundesliga
5 of 15 fixtures the model called here have read right so far, on 5–10 (4v) settled calls. CLV (did it beat the closing price?) -2.15% (n=18); reference P/L -3.65u. Small sample — the full record has the lot.
Coming up
- Hamburger SV v Borussia Mönchengladbach — Fri 06 Nov · 19:30
- FSV Mainz 05 v Bayern München — Sat 07 Nov · 14:30
- Borussia Dortmund v SV Elversberg — Sat 07 Nov · 14:30
- RB Leipzig v FC Augsburg — Sat 07 Nov · 14:30
- SC Paderborn 07 v Eintracht Frankfurt — Sat 07 Nov · 14:30
- VfB Stuttgart v Werder Bremen — Sat 07 Nov · 17:30
- 1. FC Köln v Bayer Leverkusen — Sun 08 Nov · 14:30
- SC Freiburg v Union Berlin — Sun 08 Nov · 16:30
- 1899 Hoffenheim v FC Schalke 04 — Sun 08 Nov · 18:30
- Bayern München v 1. FC Köln — Fri 20 Nov · 19:30
Each fixture page carries the model’s full market read. The whole board →
Players in form
This season, league games only. Match ratings are the data provider’s, not our model. Descriptive, not predictive.