The model makes VfL Wolfsburg the title favourite, first in 51.9% of 1,000,000 simulated seasons, ahead of Hannover 96 on 16.9% and 1. FC Heidenheim on 11.9%. On expected points that is VfL Wolfsburg 65.6, Hannover 96 58.7, 1. FC Heidenheim 56.7. Three clubs finish in the top four more often than not: VfL Wolfsburg 88.9%, Hannover 96 64.7%, 1. FC Heidenheim 55.2%.

At the other end, Energie Cottbus carries the highest relegation risk at 57.1%, then SpVgg Greuther Fürth on 53.4% and VfL Osnabrück on 52.3%. The bottom club averages 34.3 points to VfL Wolfsburg's 65.6.

This simulation gives you a spread of outcomes, not a single, clear answer. It's useful for understanding the range of possibilities for each club, showing you just how wide their potential end-of-season positions could be. But remember, it's based on pre-season data, frozen in time. It doesn't account for the chaos of an actual season: injuries, fixture piles, form swings, and all the rest. It's a starting point, a way to frame your thinking, not a crystal ball. Use it to inform your selections, but always keep an eye on the real-world noise that the model can't see.

Every club, every finishing position

Club123456789101112131415161718xPts
VfL Wolfsburg51.9520.2410.526.153.862.481.691.110.750.500.330.200.110.060.040.020.0165.6
Hannover 9616.9220.6415.6111.548.756.745.244.053.112.341.751.250.860.560.340.180.090.0358.7
1. FC Heidenheim11.9016.5714.7712.009.697.906.365.154.163.292.591.941.430.990.640.360.180.0756.7
Hertha BSC3.677.319.129.749.749.258.677.947.166.315.444.593.702.852.041.360.780.3451.5
FC St. Pauli2.816.038.079.139.459.359.008.407.646.845.985.074.103.192.261.480.840.3550.8
Holstein Kiel3.236.438.178.909.038.868.507.987.376.745.935.114.303.422.591.801.110.5150.6
Arminia Bielefeld2.044.516.207.307.928.288.318.227.997.586.976.275.424.483.522.531.650.8148.9
Dynamo Dresden2.174.726.347.347.798.128.128.007.797.366.836.285.444.603.672.711.780.9348.9
SV Darmstadt 981.683.915.646.807.598.008.248.268.187.787.296.675.864.833.822.781.790.8848.4
1. FC Kaiserslautern1.243.094.585.786.627.297.778.078.138.137.857.316.635.724.683.532.361.2347.2
1. FC Nürnberg0.932.393.704.825.706.447.017.507.848.028.077.907.416.725.764.583.311.9146.0
VfL Bochum0.782.043.294.365.296.086.737.327.778.068.258.137.777.136.185.033.652.1645.4
Karlsruher SC0.391.111.902.703.494.235.005.756.517.257.938.488.908.948.597.716.484.6442.7
1. FC Magdeburg0.190.621.141.742.373.023.744.555.366.317.258.209.129.8510.199.989.067.3240.6
Eintracht Braunschweig0.050.170.400.691.071.532.102.813.614.575.757.158.7310.4212.0813.2613.4912.1237.6
VfL Osnabrück0.020.080.180.340.560.861.221.702.333.124.145.397.089.1611.5314.4717.5220.3235.1
SpVgg Greuther Fürth0.020.080.210.360.590.881.251.732.323.074.045.296.808.7711.1514.0517.5821.8135.0
Energie Cottbus0.020.060.160.300.500.711.041.462.002.733.604.766.348.3210.9414.1618.3324.5834.3

Each cell is the percentage of 1,000,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

Every one of the 306 fixtures is played out from each club's attacking and defending strength, a blend of shots-adjusted Elo and last season's goal rates, then adjusted for this summer's transfers on both sides of the ball: a departed 16-goal scorer weakens a club's attack, while an incoming ball-winner (tackles won, interceptions, blocks) strengthens its defence. Scorelines are drawn from the same negative-binomial and Dixon-Coles model the live BetSignals signals use. Strengths are frozen at pre-season, so this is a start-of-season expectation, not a mid-season read.

_Generated from the BetSignals season simulation, 1,000,000 runs._