Germany's Bundesliga pairs the most reliable favourite in Europe with one of its most chaotic mid-tables: Bayern's baseline is historically strong, but the race for the Champions League spots and the relegation playoff place churns every season. Our model doesn't assume any of that — it rates each squad from results with Elo, models goals with a Dixon-Coles-adjusted Poisson engine, and simulates the remaining 34-round schedule 10,000 times to estimate every club's title, top-four, Europe and relegation chances.
| Pos | Team | Pld | Pts | Proj Pts | Title % | Top 4 % | Europe % | Releg. % |
|---|---|---|---|---|---|---|---|---|
| 2.04 | SC Freiburg | 5 | 13 | 75 | 40.1% | 97.0% | 99.9% | 0% |
| 2.34 | FC Bayern München | 5 | 11 | 73 | 29.6% | 94.8% | 99.7% | 0% |
| 2.49 | Borussia Dortmund | 5 | 13 | 73 | 25.5% | 93.2% | 99.7% | 0% |
| 4.4 | RB Leipzig | 5 | 9 | 64 | 2.5% | 53.7% | 93.4% | 0% |
| 4.52 | Bayer 04 Leverkusen | 5 | 10 | 63 | 2.2% | 49.4% | 92.3% | 0% |
| 7.01 | FC Augsburg | 5 | 8 | 53 | <0.1% | 5.8% | 44.6% | <0.1% |
| 7.85 | SV Werder Bremen | 5 | 8 | 51 | <0.1% | 2.8% | 27.2% | 0.1% |
| 8.14 | 1. FSV Mainz 05 | 5 | 7 | 50 | <0.1% | 2.3% | 23.6% | 0.1% |
| 9.94 | SV 07 Elversberg | 5 | 7 | 45 | 0% | 0.3% | 6.4% | 0.8% |
| 10 | 1. FC Köln | 5 | 7 | 44 | 0% | 0.4% | 6.0% | 1.0% |
| 10.13 | VfB Stuttgart | 5 | 6 | 44 | 0% | 0.3% | 5.5% | 1.1% |
| 11.78 | FC Schalke 04 | 5 | 5 | 39 | 0% | <0.1% | 1.2% | 5.0% |
| 12.82 | Eintracht Frankfurt | 5 | 5 | 37 | 0% | 0% | 0.3% | 10.4% |
| 14.07 | SC Paderborn 07 | 5 | 4 | 33 | 0% | 0% | 0.1% | 25.6% |
| 14.28 | TSG Hoffenheim | 5 | 3 | 32 | 0% | 0% | 0.1% | 29.4% |
| 15.31 | Hamburger SV | 5 | 6 | 29 | 0% | 0% | 0% | 51.3% |
| 16.69 | 1. FC Union Berlin | 5 | 4 | 24 | 0% | 0% | 0% | 83.7% |
| 17.21 | Borussia Mönchengladbach | 5 | 0 | 21 | 0% | 0% | 0% | 91.5% |
The frozen projection from before matchday 1 — kept unchanged all season so you can judge how the model's pre-season read held up.
| Pos | Team | Pld | Pts | Proj Pts | Title % | Top 4 % | Europe % | Releg. % |
|---|---|---|---|---|---|---|---|---|
| 1.16 | FC Bayern München | 5 | 11 | 78 | 87.1% | 99.8% | >99.9% | 0% |
| 2.8 | Borussia Dortmund | 5 | 13 | 65 | 8.5% | 89.0% | 97.9% | 0% |
| 4.3 | Bayer 04 Leverkusen | 5 | 10 | 59 | 1.7% | 62.5% | 87.1% | 0.1% |
| 4.41 | VfB Stuttgart | 5 | 6 | 59 | 1.8% | 59.7% | 85.6% | 0.1% |
| 5.08 | RB Leipzig | 5 | 9 | 56 | 0.7% | 46.9% | 78.5% | 0.1% |
| 7.11 | TSG Hoffenheim | 5 | 3 | 51 | 0.1% | 18.8% | 48.6% | 1.2% |
| 8.74 | 1. FSV Mainz 05 | 5 | 7 | 47 | 0.1% | 8.0% | 28.8% | 4.2% |
| 9.75 | SC Freiburg | 5 | 13 | 45 | <0.1% | 5.0% | 18.9% | 7.2% |
| 10.54 | Eintracht Frankfurt | 5 | 5 | 43 | <0.1% | 3.1% | 13.8% | 10.7% |
| 10.63 | FC Augsburg | 5 | 8 | 43 | 0% | 2.9% | 12.9% | 11.2% |
| 11.67 | FC Schalke 04 | 5 | 5 | 41 | 0% | 1.5% | 8.0% | 18.1% |
| 12.94 | Borussia Mönchengladbach | 5 | 0 | 38 | 0% | 0.5% | 3.7% | 28.0% |
| 12.96 | 1. FC Union Berlin | 5 | 4 | 38 | 0% | 0.6% | 3.9% | 29.1% |
| 13.21 | SV 07 Elversberg | 5 | 7 | 38 | <0.1% | 0.5% | 3.5% | 31.1% |
| 13.41 | Hamburger SV | 5 | 6 | 37 | 0% | 0.4% | 3.0% | 34.0% |
| 13.65 | SC Paderborn 07 | 5 | 4 | 37 | 0% | 0.3% | 2.5% | 35.8% |
| 14.03 | SV Werder Bremen | 5 | 8 | 36 | 0% | 0.2% | 1.9% | 40.6% |
| 14.61 | 1. FC Köln | 5 | 7 | 35 | 0% | 0.1% | 1.4% | 48.4% |
Every club's current Elo — the same rating our model reads at predict time; higher = stronger, and it moves only with results.
| Rank | Club | Elo | Trend |
|---|---|---|---|
| 1 | FC Bayern München | 1968 | 200 |
| 2 | Borussia Dortmund | 1864 | 31 |
| 3 | Bayer 04 Leverkusen | 1799 | 235 |
| 4 | RB Leipzig | 1765 | 240 |
| 5 | VfB Stuttgart | 1758 | 214 |
| 6 | SC Freiburg | 1737 | 66 |
| 7 | FC Augsburg | 1693 | 4 |
| 8 | 1. FSV Mainz 05 | 1678 | 4 |
| 9 | TSG Hoffenheim | 1671 | 74 |
| 10 | Eintracht Frankfurt | 1658 | 3 |
| 11 | FC Schalke 04 | 1645 | 8 |
| 12 | Hamburger SV | 1636 | 11 |
| 13 | SV Werder Bremen | 1631 | 36 |
| 14 | SV 07 Elversberg | 1631 | 25 |
| 15 | Hertha BSC | 1627 | 80 |
| 16 | 1. FC Union Berlin | 1613 | 13 |
| 17 | 1. FC Nürnberg | 1610 | 47 |
| 18 | SC Paderborn 07 | 1610 | 9 |
| 19 | 1. FC Heidenheim 1846 | 1592 | 15 |
| 20 | 1. FC Köln | 1590 | 14 |
| 21 | VfL Wolfsburg | 1589 | 21 |
| 22 | MSV Duisburg | 1582 | 27 |
| 23 | Borussia Mönchengladbach | 1575 | 46 |
| 24 | TSG 1899 Hoffenheim | 1571 | 2 |
| 25 | Hannover 96 | 1569 | 30 |
| 26 | 1. FC Kaiserslautern | 1560 | 23 |
| 27 | FC St. Pauli | 1544 | 19 |
| 28 | Hansa Rostock | 1533 | 29 |
| 29 | Energie Cottbus | 1532 | 42 |
| 30 | Alemannia Aachen | 1508 | 40 |
| 31 | VfL Bochum | 1505 | 19 |
| 32 | DSC Arminia Bielefeld | 1502 | 13 |
| 33 | SV Darmstadt 98 | 1497 | 17 |
| 34 | FC St. Pauli 1910 | 1494 | 6 |
| 35 | Fortuna Düsseldorf | 1485 | 38 |
| 36 | Karlsruher SC | 1478 | 50 |
| 37 | Holstein Kiel | 1472 | 37 |
| 38 | SpVgg Greuther Fürth | 1471 | 10 |
| 39 | Eintracht Braunschweig | 1464 | 29 |
| 40 | FC Ingolstadt 04 | 1420 | 26 |
40 clubs
The last completed season, for context while the new campaign is thin on games.
| Pos | Team | Pld | Pts | GD |
|---|---|---|---|---|
| 1 | FC Bayern München | 34 | 89 | +86 |
| 2 | Borussia Dortmund | 34 | 73 | +36 |
| 3 | RB Leipzig | 34 | 65 | +19 |
| 4 | VfB Stuttgart | 34 | 62 | +22 |
| 5 | TSG Hoffenheim | 34 | 61 | +13 |
| 6 | Bayer 04 Leverkusen | 34 | 59 | +21 |
| 7 | SC Freiburg | 34 | 47 | -6 |
| 8 | Eintracht Frankfurt | 34 | 44 | -4 |
| 9 | FC Augsburg | 34 | 43 | -16 |
| 10 | 1. FSV Mainz 05 | 34 | 40 | -8 |
| 11 | 1. FC Union Berlin | 34 | 39 | -15 |
| 12 | Borussia Mönchengladbach | 34 | 38 | -11 |
| 13 | Hamburger SV | 34 | 38 | -14 |
| 14 | 1. FC Köln | 34 | 32 | -14 |
| 15 | SV Werder Bremen | 34 | 32 | -23 |
| 16 | VfL Wolfsburg | 34 | 29 | -24 |
| 17 | 1. FC Heidenheim 1846 | 34 | 26 | -31 |
| 18 | FC St. Pauli | 34 | 26 | -31 |
| 19 | FC Bayern München | 7 | 19 | +12 |
| 20 | RB Leipzig | 8 | 19 | +10 |
| 21 | VfB Stuttgart | 8 | 14 | +8 |
| 22 | Borussia Dortmund | 7 | 13 | +4 |
| 23 | Bayer 04 Leverkusen | 9 | 13 | +3 |
| 24 | 1. FSV Mainz 05 | 8 | 13 | +3 |
| 25 | SC Freiburg | 8 | 13 | 0 |
| 26 | SV Werder Bremen | 8 | 12 | +2 |
| 27 | Eintracht Frankfurt | 8 | 11 | 0 |
| 28 | FC Augsburg | 7 | 10 | -2 |
| 29 | Borussia Mönchengladbach | 8 | 9 | -2 |
| 30 | FC St. Pauli 1910 | 6 | 8 | -1 |
| 31 | 1. FC Köln | 7 | 7 | -1 |
| 32 | 1. FC Union Berlin | 8 | 7 | -9 |
| 33 | 1. FC Heidenheim 1846 | 8 | 6 | -4 |
| 34 | Hamburger SV | 9 | 6 | -8 |
| 35 | TSG 1899 Hoffenheim | 6 | 5 | -5 |
| 36 | VfL Wolfsburg | 8 | 4 | -10 |
Every club carries an Elo rating that moves only with results — beat a stronger side and it rises, drop points to a weaker one and it falls. A Poisson goal model (the same engine behind our football totals and handicap predictions, with a shots-on-target-based xG proxy) turns the two teams' ratings into a full scoreline distribution for each remaining fixture.
We then play out the rest of the season 10,000 times, drawing a result for every fixture from those distributions and re-building the table each time. The percentages above are simple counts across those simulated seasons: how often a club finished first, in the top four, in a European spot, or in the relegation places.
The model only knows results and shot data — it cannot see transfers, injuries, managerial changes or squad depth until they show up in performances, so early-season projections lean heavily on last season's level. Probabilities are estimates, not promises: a 5% relegation chance still happens one season in twenty. We publish the projections in full; the value bets our model finds on individual matches are part of the paid plans and are never shown here.
5 settled value bets on Bundesliga matches so far.
Every club carries a results-driven Elo rating; a Poisson goal model turns both teams' ratings into a scoreline distribution for each remaining fixture. We play out the rest of the season 10,000 times and count how often each club wins the title, finishes in Europe, or gets relegated.
The pre-season projection is frozen shortly before matchday 1 and kept unchanged all season as a reference point. The live projection re-simulates nightly as results come in.
No — the model only knows results and shot data. Squad depth, managerial changes and injuries only show up once they show up in results, so early-season projections lean heavily on last season's level.
Yes — the same Elo and Poisson engine also powers our value bets on individual matches. This table projection is entirely free; the value bets on individual matches are part of the paid plans.