The model makes Hertha BSC the title favourite, first in 36.2% of 20,000 simulated seasons, ahead of VfL Wolfsburg on 32.9% and 1. FC Nürnberg on 13.6%. On expected points that is Hertha BSC 64.8, VfL Wolfsburg 63.7, 1. FC Nürnberg 59.1. Four clubs finish in the top four more often than not: Hertha BSC 87.1%, VfL Wolfsburg 84.6%, 1. FC Nürnberg 65.2%, 1. FC Heidenheim 60.6%.
At the other end, SpVgg Greuther Fürth carries the highest relegation risk at 46.9%, then VfL Osnabrück on 45.9% and Eintracht Braunschweig on 44.7%. The bottom club averages 36.0 points to Hertha BSC's 64.8.
This simulation is a distribution of outcomes, not a single answer. It's useful for understanding the range of possible outcomes for each club, giving you a clearer picture of their chances across the board. Think of it as a reality check against the noise and gut-feel punting. It blends past performance with current form, but it doesn't know about upcoming fixtures, injuries, or suspensions. It's a snapshot of probabilities, not predictions. Use it to inform your selections, not to replace your judgement. The model's view has shifted since August, reflecting the season's twists and turns. It's a tool, not a tipster. Weigh it up, consider the variables it misses, and make your own calls.
What has changed since August
The pre-season projection was run before a ball was kicked. 54 matches later, these are the clubs the model has most changed its mind about. Movement is in expected finishing position, which is measured against the rest of the division, so it reflects a changed view rather than simply games being played.
Rising
- 1. FC Nürnberg up 5.8 places, expected points 46.0 to 59.1. 16 points from 6 games. Title chance up from 0.9% to 13.6%. Relegation risk down from 9.8% to 0.1%.
- Hertha BSC up 4.6 places, expected points 51.5 to 64.8. 18 points from 6 games. Title chance up from 3.7% to 36.2%. Relegation risk down from 2.5% to 0.0%.
- Energie Cottbus up 3.6 places, expected points 34.3 to 42.1. 8 points from 6 games. Relegation risk down from 57.1% to 19.1%.
- 1. FC Magdeburg up 2.5 places, expected points 40.6 to 45.3. 10 points from 6 games. Relegation risk down from 26.4% to 10.0%.
- 1. FC Kaiserslautern up 1.8 places, expected points 47.2 to 50.6. 11 points from 6 games. Relegation risk down from 7.1% to 2.2%.
Falling
- SV Darmstadt 98 down 4.3 places, expected points 48.4 to 39.2. 4 points from 6 games. Title chance down from 1.7% to 0.1%. Relegation risk up from 5.4% to 30.9%.
- Dynamo Dresden down 3.3 places, expected points 48.9 to 41.7. 4 points from 6 games. Title chance down from 2.2% to 0.1%. Relegation risk up from 5.4% to 21.1%.
- Holstein Kiel down 2.8 places, expected points 50.6 to 44.2. 4 points from 6 games. Title chance down from 3.2% to 0.3%. Relegation risk up from 3.4% to 12.5%.
- Hannover 96 down 2.6 places, expected points 58.7 to 51.9. 7 points from 6 games. Title chance down from 16.9% to 2.5%. Relegation risk up from 0.3% to 1.7%.
- Arminia Bielefeld down 1.8 places, expected points 48.9 to 44.6. 5 points from 6 games. Title chance down from 2.0% to 0.2%. Relegation risk up from 5.0% to 10.9%.
Compare with the full pre-season table, exactly as the model had it in August.
Every club, every finishing position
| Club | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Hertha BSC | 36.21 | 25.07 | 15.78 | 10.03 | 5.41 | 3.22 | 1.69 | 1.15 | 0.69 | 0.34 | 0.14 | 0.09 | 0.09 | 0.04 | 0.02 | 0.01 | 64.8 | ||
| VfL Wolfsburg | 32.88 | 24.82 | 16.42 | 10.44 | 6.21 | 3.66 | 2.21 | 1.32 | 0.86 | 0.46 | 0.28 | 0.19 | 0.13 | 0.06 | 0.04 | 0.01 | 0.01 | 63.7 | |
| 1. FC Nürnberg | 13.64 | 17.27 | 18.86 | 15.42 | 10.97 | 7.76 | 5.27 | 3.87 | 2.26 | 1.70 | 1.15 | 0.66 | 0.56 | 0.29 | 0.22 | 0.07 | 0.03 | 0.01 | 59.1 |
| 1. FC Heidenheim | 10.95 | 16.30 | 17.58 | 15.78 | 11.69 | 8.39 | 5.75 | 4.32 | 3.02 | 2.16 | 1.44 | 1.01 | 0.73 | 0.40 | 0.22 | 0.18 | 0.07 | 0.02 | 58.3 |
| Hannover 96 | 2.53 | 5.24 | 9.33 | 11.87 | 13.11 | 11.80 | 9.65 | 8.44 | 6.94 | 5.36 | 4.59 | 3.52 | 2.67 | 2.07 | 1.22 | 0.92 | 0.51 | 0.24 | 51.9 |
| 1. FC Kaiserslautern | 1.62 | 4.13 | 7.02 | 9.56 | 11.55 | 11.53 | 10.70 | 9.14 | 7.85 | 6.88 | 5.66 | 4.42 | 3.48 | 2.49 | 1.78 | 1.14 | 0.73 | 0.32 | 50.6 |
| FC St. Pauli | 0.71 | 2.13 | 4.08 | 6.82 | 8.66 | 10.25 | 10.64 | 9.78 | 9.00 | 8.10 | 7.30 | 6.06 | 4.86 | 3.94 | 3.40 | 2.16 | 1.38 | 0.74 | 47.9 |
| 1. FC Magdeburg | 0.40 | 1.15 | 2.55 | 4.01 | 6.17 | 7.03 | 7.94 | 8.82 | 8.64 | 8.43 | 8.22 | 7.61 | 7.11 | 6.43 | 5.47 | 4.59 | 3.50 | 1.96 | 45.3 |
| Arminia Bielefeld | 0.24 | 1.14 | 2.15 | 3.52 | 5.32 | 7.30 | 7.82 | 8.62 | 8.61 | 9.01 | 8.23 | 7.59 | 7.07 | 6.53 | 5.94 | 4.66 | 3.76 | 2.51 | 44.6 |
| Holstein Kiel | 0.31 | 0.89 | 1.86 | 3.72 | 5.17 | 6.85 | 7.81 | 8.34 | 8.48 | 8.06 | 8.12 | 7.76 | 7.32 | 6.89 | 5.92 | 5.15 | 4.37 | 2.98 | 44.2 |
| VfL Bochum | 0.11 | 0.48 | 0.95 | 1.97 | 3.26 | 4.57 | 6.19 | 6.69 | 7.75 | 8.28 | 8.57 | 8.76 | 9.07 | 8.56 | 7.70 | 7.27 | 5.56 | 4.27 | 42.3 |
| Energie Cottbus | 0.21 | 0.52 | 1.07 | 2.16 | 3.43 | 4.37 | 5.79 | 6.67 | 7.34 | 8.18 | 8.05 | 8.27 | 8.74 | 8.08 | 7.97 | 7.16 | 6.64 | 5.35 | 42.1 |
| Dynamo Dresden | 0.10 | 0.41 | 1.15 | 1.77 | 3.25 | 4.49 | 5.68 | 6.40 | 7.12 | 7.60 | 8.25 | 8.24 | 8.06 | 8.25 | 8.18 | 7.62 | 7.37 | 6.05 | 41.7 |
| SV Darmstadt 98 | 0.05 | 0.10 | 0.40 | 0.84 | 1.70 | 2.46 | 3.62 | 4.54 | 5.51 | 6.63 | 6.85 | 8.19 | 8.87 | 9.48 | 9.88 | 10.64 | 10.30 | 9.94 | 39.2 |
| Karlsruher SC | 0.03 | 0.18 | 0.34 | 0.98 | 1.75 | 2.47 | 3.48 | 4.22 | 5.07 | 6.07 | 7.23 | 8.06 | 8.23 | 9.48 | 10.02 | 10.76 | 10.49 | 11.14 | 39.0 |
| Eintracht Braunschweig | 0.01 | 0.04 | 0.18 | 0.40 | 0.78 | 1.32 | 2.13 | 2.64 | 3.86 | 4.52 | 5.27 | 6.69 | 8.04 | 9.15 | 10.29 | 12.82 | 14.94 | 16.92 | 36.3 |
| VfL Osnabrück | 0.01 | 0.08 | 0.13 | 0.40 | 0.78 | 1.32 | 1.89 | 2.45 | 3.56 | 4.17 | 5.41 | 6.19 | 7.67 | 8.90 | 11.16 | 12.66 | 15.38 | 17.82 | 36.4 |
| SpVgg Greuther Fürth | 0.01 | 0.06 | 0.13 | 0.32 | 0.78 | 1.18 | 1.73 | 2.60 | 3.43 | 4.10 | 5.25 | 6.70 | 7.31 | 8.98 | 10.57 | 12.20 | 14.95 | 19.71 | 36.0 |
Each cell is the percentage of 20,000 simulated seasons in which that club finished in that position, so every row adds up to 100%. A blank cell is under 0.005%, not impossible. The xPts column is the club's average points total across those seasons. Club names link to that club's full model profile.
View the same grid as a shaded heatmap, which is easier to scan than the table above.
How it's built
The table above is where the division actually stands after 54 matches, finished off 20,000 times over. Points already won are treated as certain, and only the 252 fixtures left to play are simulated, from each club's attacking and defending strength: a blend of shots-adjusted Elo, last season's goal rates and how the club has actually played this season, the last of those counting for more the longer the season runs. Scorelines are drawn from the same negative-binomial and Dixon-Coles model the live BetSignals signals use. It knows nothing about upcoming fixture difficulty, injuries or suspensions.
_Generated from the BetSignals season simulation, 20,000 runs._