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. % |
|---|---|---|---|---|---|---|---|---|
| 1.07 | FC Bayern München | 1 | 3 | 81 | 93.7% | >99.9% | 100.0% | 0% |
| 2.64 | Borussia Dortmund | 1 | 3 | 66 | 4.9% | 92.8% | 98.4% | 0% |
| 3.95 | Bayer 04 Leverkusen | 1 | 0 | 59 | 0.9% | 72.0% | 90.0% | <0.1% |
| 4.99 | RB Leipzig | 1 | 3 | 56 | 0.4% | 53.0% | 79.1% | 0.3% |
| 6.54 | TSG Hoffenheim | 1 | 0 | 52 | 0.1% | 29.3% | 58.9% | 1.3% |
| 8.21 | 1. FSV Mainz 05 | 1 | 1 | 48 | <0.1% | 14.1% | 36.8% | 3.8% |
| 8.82 | VfB Stuttgart | 1 | 0 | 47 | 0% | 10.4% | 30.7% | 5.4% |
| 9.32 | SC Freiburg | 0 | 0 | 46 | 0% | 8.5% | 25.7% | 6.8% |
| 10.13 | Eintracht Frankfurt | 1 | 1 | 44 | 0% | 5.5% | 19.6% | 10.3% |
| 10.26 | FC Augsburg | 0 | 0 | 44 | 0% | 5.2% | 18.3% | 10.8% |
| 11.4 | FC Schalke 04 | 0 | 0 | 42 | 0% | 2.9% | 11.6% | 17.3% |
| 12.74 | 1. FC Union Berlin | 1 | 1 | 39 | 0% | 1.4% | 6.0% | 27.5% |
| 12.96 | Borussia Mönchengladbach | 1 | 0 | 39 | 0% | 1.2% | 5.6% | 29.4% |
| 12.99 | SV 07 Elversberg | 1 | 3 | 38 | 0% | 0.9% | 5.0% | 30.4% |
| 13.3 | Hamburger SV | 1 | 0 | 38 | 0% | 0.9% | 4.8% | 34.1% |
| 13.38 | SC Paderborn 07 | 1 | 1 | 38 | 0% | 0.9% | 4.3% | 34.7% |
| 13.92 | SV Werder Bremen | 0 | 0 | 36 | 0% | 0.5% | 3.0% | 40.9% |
| 14.38 | 1. FC Köln | 1 | 3 | 36 | <0.1% | 0.4% | 2.4% | 46.9% |
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 | 1 | 3 | 78 | 87.1% | 99.8% | >99.9% | 0% |
| 2.8 | Borussia Dortmund | 1 | 3 | 65 | 8.5% | 89.0% | 97.9% | 0% |
| 4.3 | Bayer 04 Leverkusen | 1 | 0 | 59 | 1.7% | 62.5% | 87.1% | 0.1% |
| 4.41 | VfB Stuttgart | 1 | 0 | 59 | 1.8% | 59.7% | 85.6% | 0.1% |
| 5.08 | RB Leipzig | 1 | 3 | 56 | 0.7% | 46.9% | 78.5% | 0.1% |
| 7.11 | TSG Hoffenheim | 1 | 0 | 51 | 0.1% | 18.8% | 48.6% | 1.2% |
| 8.74 | 1. FSV Mainz 05 | 1 | 1 | 47 | 0.1% | 8.0% | 28.8% | 4.2% |
| 9.75 | SC Freiburg | 0 | 0 | 45 | <0.1% | 5.0% | 18.9% | 7.2% |
| 10.54 | Eintracht Frankfurt | 1 | 1 | 43 | <0.1% | 3.1% | 13.8% | 10.7% |
| 10.63 | FC Augsburg | 0 | 0 | 43 | 0% | 2.9% | 12.9% | 11.2% |
| 11.67 | FC Schalke 04 | 0 | 0 | 41 | 0% | 1.5% | 8.0% | 18.1% |
| 12.94 | Borussia Mönchengladbach | 1 | 0 | 38 | 0% | 0.5% | 3.7% | 28.0% |
| 12.96 | 1. FC Union Berlin | 1 | 1 | 38 | 0% | 0.6% | 3.9% | 29.1% |
| 13.21 | SV 07 Elversberg | 1 | 3 | 38 | <0.1% | 0.5% | 3.5% | 31.1% |
| 13.41 | Hamburger SV | 1 | 0 | 37 | 0% | 0.4% | 3.0% | 34.0% |
| 13.65 | SC Paderborn 07 | 1 | 1 | 37 | 0% | 0.3% | 2.5% | 35.8% |
| 14.03 | SV Werder Bremen | 0 | 0 | 36 | 0% | 0.2% | 1.9% | 40.6% |
| 14.61 | 1. FC Köln | 1 | 3 | 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 | 1984 | 13 |
| 2 | Borussia Dortmund | 1840 | 42 |
| 3 | Bayer 04 Leverkusen | 1788 | 5 |
| 4 | RB Leipzig | 1773 | 2 |
| 5 | VfB Stuttgart | 1771 | 11 |
| 6 | TSG Hoffenheim | 1724 | 20 |
| 7 | SC Freiburg | 1692 | 11 |
| 8 | 1. FSV Mainz 05 | 1685 | 26 |
| 9 | FC Augsburg | 1669 | 37 |
| 10 | Eintracht Frankfurt | 1666 | 30 |
| 11 | FC Schalke 04 | 1646 | 37 |
| 12 | Borussia Mönchengladbach | 1643 | 25 |
| 13 | Hamburger SV | 1632 | 11 |
| 14 | 1. FC Union Berlin | 1620 | 6 |
| 15 | SC Paderborn 07 | 1614 | 14 |
| 16 | SV Werder Bremen | 1588 | 25 |
| 17 | VfL Wolfsburg | 1585 | 38 |
| 18 | Hannover 96 | 1581 | 42 |
| 19 | Hertha BSC | 1576 | 21 |
| 20 | 1. FC Nürnberg | 1575 | 66 |
| 21 | 1. FC Köln | 1573 | 14 |
| 22 | Alemannia Aachen | 1572 | 43 |
| 23 | TSG 1899 Hoffenheim | 1571 | 2 |
| 24 | 1. FC Heidenheim 1846 | 1560 | 40 |
| 25 | Energie Cottbus | 1555 | 15 |
| 26 | Hansa Rostock | 1550 | 4 |
| 27 | MSV Duisburg | 1539 | 14 |
| 28 | 1. FC Kaiserslautern | 1536 | 3 |
| 29 | Karlsruher SC | 1529 | 10 |
| 30 | FC St. Pauli | 1524 | 54 |
| 31 | VfL Bochum | 1524 | 3 |
| 32 | Holstein Kiel | 1510 | 2 |
| 33 | DSC Arminia Bielefeld | 1509 | 22 |
| 34 | SV Darmstadt 98 | 1497 | 49 |
| 35 | FC St. Pauli 1910 | 1494 | 6 |
| 36 | SpVgg Greuther Fürth | 1469 | 18 |
| 37 | Eintracht Braunschweig | 1467 | 14 |
| 38 | Fortuna Düsseldorf | 1447 | 28 |
| 39 | FC Ingolstadt 04 | 1434 | 37 |
39 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.
23 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.