2026-27 Bundesliga Season
0 games played · 18 teams
Season Status
In Progress
Awaiting final results
Title Favorite
Bayern Munich
84.55% chance to win the title
Biggest Overachiever
1. FC Koln
0.00 points above expected
0 points · 0.00 expected points
Biggest Disappointment
1. FC Koln
0.00 points below expected
0 points · 0.00 expected points
League Table
Each team's record through games played. SimPts is the model's expected points through the same games — the sum over completed games of pregame win-probability × 3 plus tie-probability × 1. vsSim shows actual points minus that expectation — positive means the team has overachieved against the model so far.
| # | Team | GP | W | D | L | Pts | GF | GA | GD | SimPts | vsSim |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1. FC Koln | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 2 | Bayer Leverkusen | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 3 | Bayern Munich | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 4 | Borussia Dortmund | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 5 | Borussia Monchengladbach | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 6 | Eintracht Frankfurt | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 7 | Elversberg | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 8 | FC Augsburg | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 9 | Freiburg | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 10 | Hamburger SV | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 11 | Hoffenheim | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 12 | Mainz 05 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 13 | Paderborn 07 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 14 | RB Leipzig | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 15 | Schalke 04 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 16 | Union Berlin | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 17 | VfB Stuttgart | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
| 18 | Werder Bremen | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | +0.00 |
Form
Each team's 5-game rolling points-per-game across the season. Hot streaks push above the dashed 1.5 PPG reference line; cold spells drop below. Each team gets a distinct color; the legend below the plot lets you read off which line is which. (First 4 games of each team have no rolling window, so the lines start at game 5.)
League Race
Cumulative points across the season for each team. Highlighted teams are drawn in color (top finishers for the Title Race, bottom finishers for the Relegation Race); the rest of the league appears in light gray as context. Switch views with the buttons below.
Season Summary
Every team's season-to-date record alongside the projected end-of-season points totals from 100,000 simulations. Click any column header to sort. Exp. Pts. Rem. is the expected additional points the model thinks the team will accumulate over the rest of the season.
| Team | Elo | Points | Avg | Exp. Pts. Rem. | Min | 5th | Q1 | Median | Q3 | 95th | Max |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Bayern Munich | 2257 | 0 | 79.06 | 79.06 | 48 | 69 | 75 | 79 | 83 | 89 | 100 |
| Borussia Dortmund | 2107 | 0 | 66.59 | 66.59 | 40 | 55 | 62 | 67 | 71 | 78 | 90 |
| VfB Stuttgart | 2065 | 0 | 62.23 | 62.23 | 35 | 50 | 57 | 62 | 67 | 74 | 90 |
| Bayer Leverkusen | 2059 | 0 | 61.83 | 61.83 | 38 | 50 | 57 | 62 | 67 | 74 | 87 |
| RB Leipzig | 2036 | 0 | 59.36 | 59.36 | 34 | 47 | 54 | 59 | 64 | 71 | 85 |
| Hoffenheim | 1955 | 0 | 49.65 | 49.65 | 18 | 38 | 45 | 50 | 55 | 62 | 76 |
| Eintracht Frankfurt | 1936 | 0 | 47.34 | 47.34 | 22 | 35 | 42 | 47 | 52 | 59 | 73 |
| Freiburg | 1924 | 0 | 46.01 | 46.01 | 15 | 34 | 41 | 46 | 51 | 58 | 74 |
| Mainz 05 | 1912 | 0 | 44.38 | 44.38 | 18 | 33 | 39 | 44 | 49 | 56 | 71 |
| Borussia Monchengladbach | 1904 | 0 | 43.43 | 43.43 | 19 | 32 | 39 | 43 | 48 | 55 | 69 |
| Hamburger SV | 1869 | 0 | 39.17 | 39.17 | 15 | 28 | 34 | 39 | 44 | 51 | 70 |
| Union Berlin | 1860 | 0 | 38.11 | 38.11 | 14 | 26 | 33 | 38 | 43 | 50 | 67 |
| FC Augsburg | 1858 | 0 | 37.83 | 37.83 | 15 | 26 | 33 | 38 | 42 | 49 | 68 |
| Werder Bremen | 1838 | 0 | 35.43 | 35.43 | 9 | 24 | 31 | 35 | 40 | 47 | 67 |
| Elversberg | 1825 | 0 | 33.83 | 33.83 | 9 | 23 | 29 | 34 | 38 | 45 | 63 |
| 1. FC Koln | 1825 | 0 | 33.97 | 33.97 | 12 | 23 | 29 | 34 | 39 | 45 | 59 |
| Paderborn 07 | 1822 | 0 | 33.55 | 33.55 | 10 | 23 | 29 | 33 | 38 | 45 | 61 |
| Schalke 04 | 1804 | 0 | 31.55 | 31.55 | 9 | 21 | 27 | 31 | 36 | 43 | 57 |
Head-to-Head
Each cell shows a team's record in that matchup (row vs column, formatted W-D-L) with the model's expected points on the line below. Navy-tinted cells mean the team beat the model's expectations by more than one point in that matchup; gold-tinted cells mean they fell short by the same margin.
| Team |
|---|
Points vs. Goals Scored, Allowed, and Differential
Points plotted against goals scored, allowed, and differential. Use the buttons to switch views; hover a team for exact values. The table gives each fit's R² and slope (the change in points per 10 goals).
Fit Metrics
| R² | Slope | |
|---|---|---|
| Scored | — | — |
| Allowed | — | — |
| Differential | — | — |
Home-Field Advantage Edge
The simulation applies the same home-field boost to every game across the league, so the per-game home win probabilities bake in the model's idea of HFA. For each team, we sum expected points at home and compare to actual home points, and the same on the road. The bar shows (home points above expected) minus (away points above expected). A tall positive bar means the team's home/road split exceeded what the model predicted — a real fortress effect. A tall negative bar means the reverse: they played worse at home or better on the road than expected.
Top Overachievers & Disappointments
Teams that most beat — or most fell short of — their simulated point projections. A positive vsSim means the team accumulated more points than the model expected on average; a negative one means fewer.
Biggest Overachievers
| # | Team | Actual | Sim | vsSim |
|---|---|---|---|---|
| 1 | 1. FC Koln | 0 | 0.00 | +0.00 |
| 2 | Bayer Leverkusen | 0 | 0.00 | +0.00 |
| 3 | VfB Stuttgart | 0 | 0.00 | +0.00 |
| 4 | Union Berlin | 0 | 0.00 | +0.00 |
| 5 | Schalke 04 | 0 | 0.00 | +0.00 |
Biggest Disappointments
| # | Team | Actual | Sim | vsSim |
|---|---|---|---|---|
| 1 | 1. FC Koln | 0 | 0.00 | +0.00 |
| 2 | Union Berlin | 0 | 0.00 | +0.00 |
| 3 | Schalke 04 | 0 | 0.00 | +0.00 |
| 4 | RB Leipzig | 0 | 0.00 | +0.00 |
| 5 | Paderborn 07 | 0 | 0.00 | +0.00 |
Finish Position Heatmap
Each cell is the probability — across 100,000 simulations — that the team (row) finished at that position (column). Rows are sorted by actual finish (champion at top, bottom of the table at the bottom).
| Team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1. FC Koln | — | — | 0.01% | — | 0.23% | 0.58% | 1.22% | 2.25% | 3.39% | 5.22% | 6.30% | 7.64% | 9.03% | 9.95% | 12.00% | 13.43% | 14.04% | 14.71% |
| Bayer Leverkusen | 2.70% | 17.58% | 23.19% | 23.33% | 17.43% | 8.09% | 3.72% | 2.04% | 1.02% | 0.56% | 0.16% | 0.10% | 0.07% | 0.01% | — | — | — | — |
| Bayern Munich | 84.55% | 12.07% | 2.45% | 0.67% | 0.21% | 0.03% | 0.01% | 0.01% | — | — | — | — | — | — | — | — | — | — |
| Borussia Dortmund | 8.36% | 38.73% | 24.13% | 15.45% | 8.19% | 3.20% | 1.29% | 0.36% | 0.18% | 0.08% | 0.02% | 0.01% | — | — | — | — | — | — |
| Borussia Monchengladbach | — | 0.05% | 0.66% | 1.20% | 3.45% | 6.90% | 10.25% | 11.71% | 12.33% | 10.63% | 10.23% | 8.57% | 7.20% | 5.97% | 4.54% | 3.22% | 2.11% | 0.98% |
| Eintracht Frankfurt | 0.01% | 0.46% | 1.61% | 3.64% | 7.92% | 14.05% | 14.89% | 13.37% | 11.85% | 8.59% | 6.93% | 5.07% | 4.37% | 2.71% | 2.07% | 1.34% | 0.72% | 0.40% |
| Elversberg | — | — | 0.03% | 0.07% | 0.10% | 0.56% | 1.15% | 2.00% | 3.43% | 4.98% | 6.00% | 7.41% | 8.80% | 10.59% | 12.36% | 13.12% | 13.95% | 15.45% |
| FC Augsburg | — | 0.02% | 0.02% | 0.12% | 0.70% | 1.82% | 3.30% | 5.48% | 6.75% | 8.71% | 9.48% | 10.71% | 10.86% | 10.12% | 9.63% | 8.87% | 7.43% | 5.98% |
| Freiburg | 0.01% | 0.33% | 1.00% | 2.85% | 5.66% | 11.28% | 13.80% | 13.95% | 11.99% | 9.99% | 7.74% | 7.02% | 4.66% | 3.48% | 2.50% | 1.80% | 1.44% | 0.50% |
| Hamburger SV | — | 0.02% | 0.10% | 0.33% | 1.04% | 2.70% | 5.02% | 6.58% | 8.51% | 9.44% | 10.46% | 9.88% | 10.51% | 9.58% | 8.36% | 7.53% | 5.87% | 4.07% |
| Hoffenheim | 0.02% | 0.94% | 2.97% | 6.26% | 10.71% | 18.61% | 15.75% | 12.97% | 9.12% | 7.39% | 5.37% | 3.82% | 2.24% | 1.84% | 0.93% | 0.64% | 0.32% | 0.10% |
| Mainz 05 | — | 0.06% | 0.66% | 1.74% | 4.41% | 9.10% | 11.26% | 11.94% | 11.94% | 11.00% | 9.82% | 8.04% | 6.44% | 4.85% | 3.74% | 2.31% | 1.86% | 0.83% |
| Paderborn 07 | — | — | 0.01% | 0.04% | 0.13% | 0.55% | 1.22% | 2.20% | 2.77% | 4.26% | 5.85% | 7.11% | 8.57% | 10.54% | 12.33% | 13.40% | 14.64% | 16.38% |
| RB Leipzig | 1.25% | 11.02% | 17.83% | 22.51% | 21.86% | 11.66% | 6.53% | 3.58% | 1.54% | 1.03% | 0.53% | 0.40% | 0.15% | 0.04% | 0.04% | 0.03% | — | — |
| Schalke 04 | — | — | — | — | 0.06% | 0.29% | 0.73% | 1.19% | 2.07% | 2.66% | 4.09% | 5.39% | 7.12% | 9.09% | 10.74% | 13.51% | 18.28% | 24.78% |
| Union Berlin | — | 0.02% | 0.07% | 0.21% | 0.68% | 2.04% | 4.32% | 5.50% | 7.46% | 8.87% | 9.49% | 10.13% | 10.02% | 10.18% | 9.27% | 8.68% | 7.56% | 5.50% |
| VfB Stuttgart | 3.10% | 18.69% | 25.23% | 21.53% | 16.86% | 7.50% | 3.57% | 1.88% | 0.84% | 0.42% | 0.20% | 0.10% | 0.03% | 0.02% | 0.02% | 0.01% | — | — |
| Werder Bremen | — | 0.01% | 0.03% | 0.05% | 0.36% | 1.04% | 1.97% | 2.99% | 4.81% | 6.17% | 7.33% | 8.60% | 9.93% | 11.03% | 11.47% | 12.11% | 11.78% | 10.32% |
Points Required Per Position
The empirical CDF of simulated point totals per finishing position. Each curve shows, for one position (1st, 2nd, ..., last), the spread of point totals teams accumulated across simulations. Reading the curve at the 50% mark gives the median points typically needed to finish at that position. Steep curves mean the position is tightly clustered around a particular point range; shallow curves mean the position came with a wide variety of point totals.
Points Totals in Context
How did each team's actual results compare to their simulated points, Elo rating, average opponent Elo, and percentile within simulated outcomes? Use the buttons to switch between views. In each chart, dashed crosshairs at the league means split the plot into four quadrants: pastel green (team did well, model agreed), pastel red (team did poorly, model agreed), and pastel yellow (model and reality disagreed).
Season Trends
How each metric evolved across the season - Elo rating, actual and projected points, title/promotion probability, and relegation probability - day by day.
Next-Season Status
Across 100,000 regular-season simulations, the probability of each team's next-season status. Columns appear in best-to-worst outcome order: promotion-positive on the left, relegation-positive on the right. Cells with darker shading indicate higher likelihood.
| Team | Same level | Lost relegation playoff | Direct relegation |
|---|---|---|---|
| Bayer Leverkusen | 100% | — | — |
| Bayern Munich | 100% | — | — |
| Borussia Dortmund | 100% | — | — |
| VfB Stuttgart | 99.99% | 0.01% | — |
| RB Leipzig | 99.97% | 0.03% | — |
| Hoffenheim | 98.94% | 0.64% | 0.42% |
| Eintracht Frankfurt | 97.54% | 1.34% | 1.12% |
| Freiburg | 96.26% | 1.80% | 1.94% |
| Mainz 05 | 95.00% | 2.31% | 2.69% |
| Borussia Monchengladbach | 93.69% | 3.22% | 3.09% |
| Hamburger SV | 82.53% | 7.53% | 9.94% |
| Union Berlin | 78.26% | 8.68% | 13.06% |
| FC Augsburg | 77.72% | 8.87% | 13.41% |
| Werder Bremen | 65.79% | 12.11% | 22.10% |
| 1. FC Koln | 57.82% | 13.43% | 28.75% |
| Elversberg | 57.48% | 13.12% | 29.40% |
| Paderborn 07 | 55.58% | 13.40% | 31.02% |
| Schalke 04 | 43.43% | 13.51% | 43.06% |