The model makes FC Copenhagen the title favourite, first in 79.4% of 20,000 simulated seasons, ahead of FC Midtjylland on 12.4% and FC Nordsjaelland on 5.0%. On expected points that is FC Copenhagen 49.8, FC Midtjylland 41.3, FC Nordsjaelland 38.7. Four clubs finish in the top four more often than not: FC Copenhagen 99.6%, FC Midtjylland 89.7%, FC Nordsjaelland 79.1%, Viborg 66.6%.
At the other end, Lyngby carries the highest relegation risk at 70.1%, then Sonderjyske on 68.1% and Randers FC on 42.5%. The bottom club averages 19.6 points to FC Copenhagen's 49.8.
Here's the deal with this simulation: it's a distribution of outcomes, not a single answer. It's useful for seeing how wide a club's range of possible finishes is. It's not a crystal ball, though. It doesn't know anything about upcoming fixtures, injuries or suspensions. It's a tool, not a gospel. It's worth paying attention to, but don't take it as the final word. Use it to inform your selections, not to make them for you. Remember, it's all about the data, not gut feel or tipster noise. The numbers show you the landscape, but you've got to navigate it yourself. That's what makes this data-led approach different. It's about giving you the information, not telling you what to do with it.
Every club, every finishing position
| Club | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FC Copenhagen | 79.36 | 14.41 | 4.42 | 1.41 | 0.33 | 0.06 | 0.01 | 49.8 | |||||
| FC Midtjylland | 12.40 | 38.76 | 24.09 | 14.51 | 6.62 | 2.37 | 0.84 | 0.29 | 0.10 | 0.03 | 0.01 | 41.3 | |
| FC Nordsjaelland | 4.95 | 23.85 | 29.63 | 20.68 | 11.72 | 5.25 | 2.09 | 1.12 | 0.48 | 0.15 | 0.06 | 0.01 | 38.7 |
| Viborg | 2.68 | 15.75 | 22.87 | 25.26 | 17.03 | 8.58 | 4.13 | 2.18 | 0.94 | 0.41 | 0.14 | 0.03 | 36.5 |
| Brondby | 0.55 | 5.83 | 12.84 | 20.26 | 24.09 | 15.47 | 9.21 | 5.49 | 3.27 | 1.70 | 0.98 | 0.30 | 33.3 |
| AC Horsens | 0.03 | 0.52 | 1.81 | 5.05 | 10.35 | 15.83 | 16.48 | 14.54 | 13.28 | 10.53 | 7.55 | 4.04 | 26.5 |
| Silkeborg | 0.01 | 0.36 | 1.75 | 4.70 | 10.03 | 15.43 | 16.71 | 15.77 | 12.81 | 10.65 | 7.55 | 4.24 | 26.2 |
| Aarhus | 0.01 | 0.24 | 1.08 | 3.26 | 7.42 | 12.63 | 15.32 | 15.45 | 14.44 | 12.46 | 9.98 | 7.70 | 24.7 |
| Odense | 0.01 | 0.14 | 0.75 | 2.20 | 5.29 | 9.06 | 12.02 | 14.20 | 15.52 | 15.73 | 14.19 | 10.90 | 23.7 |
| Randers FC | 0.01 | 0.10 | 0.58 | 1.73 | 4.30 | 8.35 | 11.96 | 14.23 | 16.27 | 16.86 | 15.37 | 10.23 | 23.4 |
| Sonderjyske | 0.02 | 0.08 | 0.46 | 1.60 | 3.72 | 6.08 | 8.68 | 11.24 | 15.48 | 20.90 | 31.74 | 19.7 | |
| Lyngby | 0.03 | 0.10 | 0.47 | 1.23 | 3.24 | 5.15 | 8.04 | 11.66 | 15.99 | 23.28 | 30.81 | 19.6 |
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 54 matches, finished off 20,000 times over. Points already won are treated as certain, and only the 78 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._