The model makes PSV Eindhoven the title favourite, first in 56.9% of 20,000 simulated seasons, ahead of Feyenoord on 17.9% and AZ Alkmaar on 11.1%. On expected points that is PSV Eindhoven 73.5, Feyenoord 66.6, AZ Alkmaar 64.4. Five clubs finish in the top four more often than not: PSV Eindhoven 95.7%, Feyenoord 78.7%, AZ Alkmaar 67.4%, Ajax 59.4%, Twente 54.3%.
At the other end, Willem II carries the highest relegation risk at 79.7%, then PEC Zwolle on 72.3% and Sparta Rotterdam on 42.2%. The bottom club averages 25.4 points to PSV Eindhoven's 73.5.
Here's the deal with this simulation: it's not a crystal ball, it's a map of possibilities. You get a spread of outcomes, not a single 'this is what will happen' answer. It's great for seeing just how wide the range is for each club, giving you a feel for which teams have their fate more or less sewn up, and which ones are still up for grabs. But remember, it doesn't know anything about the chaos of an actual season: injuries, managerial changes, fixture pile-ups, you name it. It's a tool, not a truth. Use it to inform your selections, not to make them for you. Keep your head on, use your own judgement, and always play it smart.
What has changed since August
The pre-season projection was run before a ball was kicked. 63 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
- Fortuna Sittard up 3.8 places, expected points 35.0 to 43.7. 13 points from 7 games. Relegation risk down from 44.0% to 4.8%.
- Excelsior up 3.6 places, expected points 41.0 to 49.0. 11 points from 7 games. Relegation risk down from 17.9% to 0.8%.
- AZ Alkmaar up 3.2 places, expected points 52.7 to 64.4. 19 points from 7 games. Title chance up from 2.4% to 11.1%. Relegation risk down from 1.3% to 0.0%.
- Feyenoord up 1.6 places, expected points 58.5 to 66.6. 17 points from 7 games. Title chance up from 8.8% to 17.9%. Relegation risk down from 0.2% to 0.0%.
- Twente up 1.4 places, expected points 55.5 to 61.8. 16 points from 7 games. Title chance up from 4.7% to 5.7%. Relegation risk down from 0.5% to 0.0%.
Falling
- ADO Den Haag down 5.0 places, expected points 47.8 to 33.8. 2 points from 7 games. Relegation risk up from 4.6% to 35.1%.
- NEC Nijmegen down 3.5 places, expected points 52.4 to 43.3. 8 points from 7 games. Title chance down from 2.4% to 0.0%. Relegation risk up from 1.5% to 5.0%.
- Utrecht down 3.5 places, expected points 49.6 to 40.4. 5 points from 7 games. Title chance down from 1.0% to 0.0%. Relegation risk up from 2.7% to 11.0%.
- Telstar down 2.4 places, expected points 47.6 to 40.7. 5 points from 7 games. Relegation risk up from 4.8% to 9.4%.
- Willem II down 1.1 places, expected points 32.0 to 25.4. 2 points from 7 games. Relegation risk up from 59.9% to 79.7%.
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PSV Eindhoven | 56.86 | 22.51 | 10.91 | 5.39 | 2.65 | 0.96 | 0.44 | 0.20 | 0.05 | 0.01 | 0.02 | 73.5 | |||||||
| Feyenoord | 17.94 | 25.11 | 20.71 | 14.92 | 10.02 | 5.83 | 3.06 | 1.32 | 0.54 | 0.32 | 0.15 | 0.05 | 0.03 | 66.6 | |||||
| AZ Alkmaar | 11.11 | 18.80 | 19.26 | 18.27 | 13.79 | 8.76 | 5.15 | 2.53 | 1.26 | 0.60 | 0.28 | 0.09 | 0.06 | 0.01 | 0.01 | 0.01 | 64.4 | ||
| Ajax | 6.98 | 15.20 | 18.83 | 18.37 | 15.71 | 10.57 | 6.75 | 3.55 | 2.19 | 0.97 | 0.46 | 0.29 | 0.08 | 0.01 | 0.02 | 62.4 | |||
| Twente | 5.69 | 12.95 | 16.96 | 18.66 | 17.11 | 11.92 | 7.61 | 4.34 | 2.39 | 1.24 | 0.56 | 0.37 | 0.10 | 0.06 | 0.01 | 0.01 | 61.8 | ||
| Groningen | 0.77 | 2.81 | 6.01 | 9.79 | 14.21 | 17.47 | 15.42 | 11.66 | 8.37 | 5.45 | 3.59 | 2.14 | 1.20 | 0.63 | 0.35 | 0.11 | 0.02 | 54.5 | |
| GO Ahead Eagles | 0.44 | 1.55 | 3.97 | 6.93 | 10.97 | 14.92 | 16.13 | 13.61 | 10.71 | 7.75 | 5.37 | 3.31 | 2.21 | 1.06 | 0.65 | 0.30 | 0.10 | 0.01 | 52.2 |
| Excelsior | 0.10 | 0.63 | 1.82 | 3.95 | 6.51 | 10.99 | 13.55 | 15.05 | 13.23 | 11.33 | 8.22 | 5.94 | 4.23 | 2.27 | 1.35 | 0.57 | 0.19 | 0.06 | 49.0 |
| Heerenveen | 0.03 | 0.11 | 0.42 | 1.16 | 2.58 | 5.25 | 8.35 | 11.04 | 12.73 | 13.23 | 12.35 | 10.70 | 8.42 | 6.17 | 3.96 | 2.19 | 1.00 | 0.29 | 44.4 |
| Fortuna Sittard | 0.01 | 0.16 | 0.46 | 0.88 | 2.01 | 3.84 | 6.70 | 9.55 | 11.90 | 12.50 | 12.77 | 11.69 | 10.07 | 7.75 | 4.93 | 3.19 | 1.29 | 0.33 | 43.7 |
| NEC Nijmegen | 0.03 | 0.14 | 0.42 | 0.84 | 2.20 | 3.94 | 6.72 | 9.94 | 11.72 | 12.30 | 12.35 | 11.59 | 9.80 | 7.69 | 5.29 | 2.99 | 1.57 | 0.47 | 43.3 |
| Telstar | 0.01 | 0.01 | 0.10 | 0.40 | 1.12 | 2.47 | 4.13 | 6.49 | 8.71 | 11.06 | 12.15 | 12.98 | 12.17 | 10.66 | 8.16 | 5.20 | 2.85 | 1.33 | 40.7 |
| Utrecht | 0.01 | 0.02 | 0.10 | 0.40 | 0.83 | 1.95 | 3.73 | 6.22 | 8.71 | 10.60 | 11.91 | 12.70 | 12.30 | 10.91 | 8.65 | 5.98 | 3.63 | 1.35 | 40.4 |
| ADO Den Haag | 0.01 | 0.09 | 0.43 | 0.77 | 1.75 | 2.65 | 4.21 | 6.60 | 8.71 | 10.61 | 14.07 | 14.99 | 14.99 | 12.46 | 7.64 | 33.8 | |||
| Cambuur | 0.01 | 0.03 | 0.13 | 0.42 | 0.80 | 1.40 | 2.27 | 4.03 | 6.07 | 8.28 | 11.27 | 14.01 | 15.67 | 15.41 | 12.63 | 7.59 | 33.8 | ||
| Sparta Rotterdam | 0.01 | 0.01 | 0.08 | 0.24 | 0.56 | 1.09 | 1.86 | 3.07 | 4.69 | 6.97 | 9.98 | 12.93 | 16.26 | 17.75 | 14.92 | 9.57 | 32.5 | ||
| PEC Zwolle | 0.04 | 0.07 | 0.15 | 0.50 | 0.78 | 1.51 | 2.68 | 4.40 | 6.74 | 10.79 | 17.17 | 25.30 | 29.86 | 27.4 | |||||
| Willem II | 0.04 | 0.08 | 0.21 | 0.53 | 0.95 | 1.52 | 3.10 | 5.00 | 8.91 | 14.13 | 24.04 | 41.48 | 25.4 |
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 63 matches, finished off 20,000 times over. Points already won are treated as certain, and only the 243 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._