The model makes Barnet the title favourite, first in 26.5% of 20,000 simulated seasons, ahead of York on 21.7% and Grimsby on 20.6%. On expected points that is Barnet 80.0, York 78.5, Grimsby 78.4. Three clubs finish in the top four more often than not: Barnet 68.1%, York 63.0%, Grimsby 62.3%.

At the other end, Crawley Town carries the highest relegation risk at 56.2%, then Shrewsbury on 48.4% and Newport County on 42.8%. The bottom club averages 46.1 points to Barnet's 80.0.

This simulation gives you a spread of possible outcomes, not a single answer. It's a way to see how much wiggle room a club might have, based on their current form and the strength of their upcoming fixtures. It's not a crystal ball, though. It doesn't know about injuries, suspensions or the chaos that every season throws up. Think of it as a tool to understand the range of possibilities, not a predictor of what will definitely happen. It's there to show you the lay of the land, to give you an idea of how things might pan out over the remaining fixtures. But in the end, the season will play out as it will, and this model can't account for all the variables that come into play.

What has changed since August

The pre-season projection was run before a ball was kicked. 84 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

Falling

Compare with the full pre-season table, exactly as the model had it in August.

Every club, every finishing position

Club123456789101112131415161718192021222324xPts
Barnet26.5118.1713.519.897.775.904.423.452.782.021.601.090.860.730.480.290.190.180.050.080.010.010.010.0180.0
York21.7317.2413.2310.767.886.465.484.062.962.611.761.571.120.960.690.460.420.200.190.110.070.030.0178.5
Grimsby20.6417.3213.7110.648.336.725.244.063.052.602.161.561.150.840.670.460.350.270.070.070.050.040.0178.4
Walsall8.8110.8010.9310.259.408.527.466.265.374.763.993.262.612.111.541.290.960.600.420.290.190.130.060.0173.7
Rochdale5.157.308.768.918.498.138.157.016.405.514.874.253.723.112.741.921.801.270.920.630.460.300.140.0871.0
Chesterfield4.616.717.898.148.277.787.567.286.355.905.244.573.963.462.862.392.131.461.260.870.590.420.210.1170.2
Swindon Town3.495.076.046.986.907.337.276.946.746.025.835.254.734.124.033.222.622.191.791.430.920.550.340.1968.5
Exeter City1.672.974.175.326.357.047.077.176.906.756.356.065.765.154.383.843.462.912.031.911.380.830.400.1566.2
Colchester1.662.934.165.055.806.496.566.676.836.846.626.605.835.374.514.283.373.012.441.871.420.890.560.2166.1
Crewe1.573.053.875.106.006.566.476.776.926.586.635.825.785.414.814.183.893.002.441.991.380.950.590.2566.0
Rotherham1.212.163.073.794.695.225.636.156.356.376.316.496.075.735.875.194.323.963.262.562.291.631.120.5764.1
Oldham0.801.812.563.634.304.795.445.946.486.756.386.726.395.925.705.274.954.103.722.792.321.680.970.6063.5
Bristol Rovers0.771.372.382.893.824.294.785.235.736.076.016.535.956.305.955.905.194.874.233.773.002.601.590.7862.5
Gillingham0.500.991.692.232.963.284.014.525.565.375.886.286.546.666.196.296.245.584.984.473.652.832.041.2660.9
Fleetwood Town0.290.701.261.792.442.803.454.364.495.225.715.746.406.746.616.736.246.315.905.054.423.482.591.2959.8
Salford City0.240.600.981.752.012.753.113.934.504.935.415.606.416.196.596.796.676.405.955.884.654.042.731.8859.3
Cheltenham0.130.240.530.891.371.712.172.592.953.564.104.645.155.786.176.486.647.207.417.317.136.355.494.0156.4
Accrington ST0.130.250.480.731.231.431.612.152.803.454.014.214.795.346.186.517.097.027.417.487.337.356.214.7955.4
Port Vale0.060.140.330.620.831.241.572.032.623.063.784.085.075.706.296.847.857.938.198.007.466.435.854.0355.4
Northampton0.010.050.170.270.420.510.841.141.431.862.392.903.414.074.545.536.677.428.669.4010.049.9710.168.1652.0
Tranmere0.030.060.130.180.370.520.821.041.261.561.932.543.073.854.565.215.747.408.288.939.8710.9811.4310.2551.3
Newport County0.010.020.080.100.200.260.500.540.690.941.231.712.082.633.494.354.916.247.658.9410.6812.2114.2216.3348.8
Shrewsbury0.030.030.080.100.140.290.440.460.701.001.461.642.162.793.714.465.547.128.6210.8013.0516.2019.1747.9
Crawley Town0.010.030.010.030.080.120.140.280.340.560.801.091.501.652.372.883.864.955.657.549.8713.2817.0925.8646.1

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.

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 84 matches, finished off 20,000 times over. Points already won are treated as certain, and only the 468 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._