The model makes Wolves the title favourite, first in 28.6% of 20,000 simulated seasons, ahead of West Ham on 25.8% and Southampton on 17.0%. On expected points that is Wolves 82.0, West Ham 81.4, Southampton 78.8. Four clubs finish in the top four more often than not: Wolves 72.1%, West Ham 71.9%, Southampton 60.9%, Swansea 51.3%.
At the other end, Preston carries the highest relegation risk at 73.4%, then Watford on 42.3% and Derby on 37.0%. The bottom club averages 42.3 points to Wolves's 82.0.
Right, here's the skinny on this simulation. It's not a crystal ball, just a distribution of outcomes based on the clubs' current form and past performance. Think of it as a map of possibilities, not a single destination. It's great for getting a feel for how much wiggle room each club has left in the season. But remember, it doesn't account for the chaos that is injuries, suspensions, or that one fixture that throws everything off. It's a tool, not a gospel. Use it to inform your selections, but don't forget to factor in the real-world noise that the model can't see.
What has changed since August
The pre-season projection was run before a ball was kicked. 95 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
- Swansea up 6.0 places, expected points 64.7 to 76.9. 17 points from 8 games. Title chance up from 1.1% to 11.4%. Relegation risk down from 3.4% to 0.1%.
- West Brom up 3.8 places, expected points 59.5 to 66.4. 14 points from 8 games. Relegation risk down from 8.5% to 1.4%.
- QPR up 3.6 places, expected points 59.4 to 65.8. 13 points from 8 games. Relegation risk down from 10.1% to 1.9%.
- Stoke City up 3.6 places, expected points 51.6 to 58.8. 13 points from 8 games. Relegation risk down from 30.6% to 8.7%.
- Bristol City up 1.5 places, expected points 58.5 to 61.5. 13 points from 8 games. Relegation risk down from 10.9% to 5.2%.
Falling
- Burnley down 8.1 places, expected points 81.3 to 63.4. 4 points from 8 games. Title chance down from 25.1% to 0.6%. Relegation risk up from 0.0% to 4.0%.
- Derby down 6.6 places, expected points 62.5 to 50.2. 5 points from 8 games. Relegation risk up from 5.4% to 37.0%.
- Preston down 3.3 places, expected points 50.8 to 42.3. 4 points from 8 games. Relegation risk up from 34.6% to 73.4%.
- Sheffield Utd down 2.9 places, expected points 66.9 to 61.6. 9 points from 8 games. Title chance down from 1.9% to 0.4%. Relegation risk up from 2.2% to 5.3%.
- Cardiff down 2.9 places, expected points 62.5 to 57.4. 7 points from 8 games. Relegation risk up from 5.3% to 11.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 | 19 | 20 | 21 | 22 | 23 | 24 | xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Wolves | 28.56 | 19.26 | 14.07 | 10.23 | 7.80 | 5.36 | 4.01 | 3.06 | 2.10 | 1.61 | 1.03 | 0.91 | 0.67 | 0.37 | 0.40 | 0.21 | 0.14 | 0.08 | 0.06 | 0.04 | 0.01 | 0.01 | 0.01 | 82.0 | |
| West Ham | 25.81 | 19.81 | 15.04 | 11.29 | 7.95 | 5.68 | 4.03 | 2.96 | 2.21 | 1.52 | 1.09 | 0.76 | 0.57 | 0.46 | 0.31 | 0.21 | 0.17 | 0.08 | 0.03 | 0.01 | 0.01 | 0.02 | 81.4 | ||
| Southampton | 17.04 | 16.91 | 14.77 | 12.17 | 9.66 | 7.42 | 5.49 | 4.40 | 3.21 | 2.34 | 1.72 | 1.40 | 1.07 | 0.85 | 0.46 | 0.38 | 0.26 | 0.17 | 0.09 | 0.10 | 0.03 | 0.03 | 0.01 | 78.8 | |
| Swansea | 11.42 | 14.04 | 13.62 | 12.27 | 10.07 | 8.39 | 6.70 | 5.49 | 4.39 | 3.29 | 2.67 | 2.11 | 1.55 | 1.25 | 1.00 | 0.59 | 0.45 | 0.27 | 0.17 | 0.12 | 0.08 | 0.05 | 0.01 | 76.9 | |
| Middlesbrough | 5.68 | 7.61 | 9.17 | 9.88 | 9.95 | 8.91 | 8.67 | 7.43 | 6.17 | 5.00 | 4.69 | 3.82 | 3.07 | 2.45 | 1.98 | 1.62 | 1.18 | 0.93 | 0.69 | 0.48 | 0.31 | 0.19 | 0.09 | 0.04 | 72.7 |
| Millwall | 4.78 | 7.51 | 9.23 | 9.68 | 9.99 | 9.37 | 8.54 | 7.23 | 6.44 | 5.31 | 4.67 | 3.93 | 2.89 | 2.47 | 2.11 | 1.76 | 1.19 | 1.03 | 0.73 | 0.43 | 0.34 | 0.19 | 0.14 | 0.01 | 72.4 |
| West Brom | 0.94 | 2.17 | 3.57 | 4.74 | 5.89 | 6.84 | 7.32 | 7.41 | 7.38 | 7.26 | 7.23 | 6.40 | 5.97 | 5.31 | 4.67 | 4.04 | 3.59 | 2.76 | 2.21 | 1.76 | 1.15 | 0.83 | 0.40 | 0.14 | 66.4 |
| QPR | 1.18 | 2.30 | 3.38 | 4.88 | 5.70 | 6.53 | 6.75 | 6.80 | 7.31 | 7.12 | 6.65 | 6.06 | 5.75 | 5.18 | 4.91 | 4.25 | 3.99 | 2.99 | 2.55 | 2.21 | 1.62 | 1.06 | 0.61 | 0.20 | 65.8 |
| Norwich | 1.15 | 2.32 | 3.60 | 4.68 | 5.47 | 6.38 | 6.68 | 7.16 | 6.67 | 7.12 | 6.52 | 5.99 | 5.95 | 5.31 | 4.95 | 4.25 | 3.89 | 3.09 | 2.74 | 2.17 | 1.73 | 1.04 | 0.80 | 0.37 | 65.6 |
| Lincoln | 0.98 | 1.97 | 3.34 | 4.13 | 5.22 | 6.37 | 7.06 | 7.32 | 7.32 | 6.94 | 6.76 | 6.62 | 6.22 | 5.46 | 5.17 | 4.42 | 3.71 | 2.97 | 2.84 | 2.10 | 1.44 | 0.83 | 0.60 | 0.19 | 65.7 |
| Birmingham | 0.64 | 1.62 | 2.54 | 3.46 | 4.78 | 5.63 | 6.00 | 6.66 | 6.98 | 6.82 | 6.63 | 6.82 | 6.44 | 5.69 | 5.27 | 4.94 | 4.38 | 3.90 | 3.33 | 2.72 | 2.05 | 1.46 | 0.92 | 0.35 | 64.3 |
| Burnley | 0.57 | 1.38 | 2.15 | 3.23 | 4.13 | 5.05 | 5.75 | 6.21 | 6.48 | 6.81 | 6.49 | 6.63 | 6.26 | 5.83 | 5.50 | 5.39 | 4.76 | 4.32 | 3.75 | 3.07 | 2.31 | 2.07 | 1.29 | 0.60 | 63.4 |
| Sheffield Utd | 0.38 | 0.96 | 1.41 | 2.21 | 3.07 | 3.96 | 4.50 | 4.97 | 5.85 | 5.95 | 6.40 | 6.43 | 6.46 | 6.74 | 6.17 | 6.11 | 5.42 | 5.38 | 4.67 | 4.14 | 3.48 | 2.47 | 1.97 | 0.88 | 61.6 |
| Bristol City | 0.37 | 0.77 | 1.18 | 2.08 | 2.63 | 3.80 | 4.33 | 4.79 | 5.42 | 6.04 | 6.59 | 6.59 | 6.49 | 6.75 | 6.64 | 6.30 | 6.21 | 5.36 | 4.81 | 4.27 | 3.38 | 2.65 | 1.73 | 0.83 | 61.5 |
| Wrexham | 0.22 | 0.44 | 0.91 | 1.65 | 2.15 | 2.77 | 3.45 | 4.06 | 4.69 | 5.41 | 5.90 | 5.97 | 6.31 | 6.93 | 6.83 | 6.59 | 6.28 | 6.00 | 5.70 | 5.18 | 4.67 | 3.57 | 2.75 | 1.55 | 59.8 |
| Stoke City | 0.11 | 0.32 | 0.66 | 1.03 | 1.65 | 2.10 | 2.73 | 3.79 | 4.06 | 4.71 | 5.68 | 6.00 | 6.34 | 6.69 | 6.94 | 7.18 | 7.13 | 6.96 | 6.02 | 5.95 | 5.24 | 4.28 | 2.86 | 1.54 | 58.8 |
| Cardiff | 0.08 | 0.29 | 0.56 | 0.92 | 1.38 | 1.97 | 2.63 | 2.97 | 3.67 | 4.39 | 4.45 | 5.54 | 5.79 | 6.22 | 6.69 | 6.85 | 6.85 | 7.11 | 7.06 | 6.65 | 5.97 | 5.10 | 4.31 | 2.51 | 57.4 |
| Bolton | 0.04 | 0.14 | 0.33 | 0.41 | 0.80 | 1.09 | 1.60 | 1.96 | 2.67 | 3.20 | 3.76 | 4.10 | 4.86 | 5.77 | 6.19 | 6.94 | 7.35 | 7.70 | 8.00 | 8.05 | 7.87 | 7.36 | 6.05 | 3.76 | 55.5 |
| Blackburn | 0.01 | 0.07 | 0.15 | 0.36 | 0.63 | 0.77 | 1.13 | 1.75 | 1.93 | 2.54 | 2.83 | 3.69 | 4.78 | 5.12 | 5.69 | 6.42 | 6.97 | 7.84 | 8.31 | 8.66 | 8.69 | 8.64 | 7.76 | 5.25 | 53.8 |
| Portsmouth | 0.01 | 0.06 | 0.13 | 0.27 | 0.40 | 0.59 | 1.00 | 1.34 | 1.79 | 2.28 | 2.74 | 3.19 | 3.86 | 4.33 | 5.29 | 5.82 | 6.93 | 7.89 | 8.54 | 9.16 | 9.39 | 9.92 | 8.96 | 6.16 | 52.9 |
| Charlton | 0.01 | 0.02 | 0.09 | 0.20 | 0.36 | 0.52 | 0.65 | 0.97 | 1.34 | 1.58 | 2.15 | 2.67 | 3.24 | 3.90 | 4.59 | 5.53 | 6.31 | 7.59 | 8.45 | 9.45 | 10.47 | 11.13 | 10.86 | 7.93 | 51.9 |
| Derby | 0.01 | 0.03 | 0.06 | 0.14 | 0.19 | 0.32 | 0.60 | 0.68 | 1.15 | 1.52 | 1.84 | 2.38 | 2.74 | 3.27 | 3.85 | 4.68 | 5.58 | 6.66 | 7.70 | 8.80 | 10.84 | 12.02 | 12.99 | 11.98 | 50.2 |
| Watford | 0.01 | 0.01 | 0.04 | 0.07 | 0.11 | 0.18 | 0.32 | 0.50 | 0.66 | 1.06 | 1.28 | 1.66 | 2.11 | 2.97 | 3.27 | 4.09 | 5.33 | 6.29 | 7.80 | 9.06 | 10.91 | 13.10 | 15.66 | 13.53 | 49.0 |
| Preston | 0.03 | 0.01 | 0.05 | 0.06 | 0.11 | 0.18 | 0.25 | 0.36 | 0.60 | 0.67 | 1.12 | 1.43 | 1.94 | 2.65 | 3.75 | 5.39 | 8.01 | 12.01 | 19.21 | 42.19 | 42.3 |
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 95 matches, finished off 20,000 times over. Points already won are treated as certain, and only the 457 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._