The model makes Inter the title favourite, first in 58.5% of 20,000 simulated seasons, ahead of AS Roma on 15.9% and Como on 10.1%. On expected points that is Inter 80.6, AS Roma 72.5, Como 70.0. Three clubs finish in the top four more often than not: Inter 94.5%, AS Roma 73.7%, Como 61.7%.
At the other end, Cagliari carries the highest relegation risk at 55.8%, then Lecce on 51.4% and Parma on 38.6%. The bottom club averages 34.2 points to Inter's 80.6.
Here's the deal, straight up. This simulation gives you a spread of outcomes, not a single crystal-ball answer. It's handy for getting a feel for how much wriggle room a club has this season. But remember, it's a snapshot taken before the season kicks off, with no clue about injuries, form swings, or fixture pile-ups. It's built on pre-season strengths, a mix of shots-adjusted Elo and last season's goal rates, tweaked for the summer's transfers. So, it's a solid starting point, a data-led gut check, if you will. But as the season rolls on, you'll need to keep an eye on the real-world chaos that Serie A throws at every club. Use this as your baseline, then adapt as the campaign unfolds.
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 | xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Inter | 58.51 | 20.24 | 10.26 | 5.49 | 2.74 | 1.63 | 0.66 | 0.30 | 0.11 | 0.03 | 0.03 | 0.01 | 80.6 | ||||||||
| AS Roma | 15.88 | 23.89 | 19.51 | 14.39 | 10.32 | 6.87 | 4.57 | 2.42 | 1.17 | 0.53 | 0.25 | 0.12 | 0.06 | 0.02 | 0.01 | 0.01 | 72.5 | ||||
| Como | 10.07 | 17.88 | 17.84 | 15.93 | 13.26 | 9.93 | 7.07 | 3.89 | 2.26 | 1.02 | 0.50 | 0.21 | 0.09 | 0.05 | 0.01 | 0.01 | 0.01 | 70.0 | |||
| Juventus | 4.52 | 10.37 | 12.95 | 15.07 | 14.82 | 13.57 | 11.14 | 7.42 | 4.62 | 2.66 | 1.33 | 0.63 | 0.44 | 0.19 | 0.11 | 0.05 | 0.03 | 0.02 | 0.01 | 66.1 | |
| Napoli | 4.16 | 10.03 | 12.88 | 13.79 | 14.42 | 14.11 | 11.33 | 8.08 | 5.13 | 2.66 | 1.62 | 0.81 | 0.42 | 0.28 | 0.15 | 0.06 | 0.06 | 0.01 | 0.01 | 65.7 | |
| AC Milan | 3.12 | 7.66 | 10.63 | 12.83 | 14.34 | 14.65 | 12.90 | 9.36 | 6.02 | 3.60 | 2.16 | 1.21 | 0.67 | 0.43 | 0.22 | 0.11 | 0.07 | 0.01 | 64.3 | ||
| Atalanta | 3.04 | 7.42 | 10.71 | 12.98 | 14.64 | 13.98 | 12.90 | 10.08 | 5.73 | 3.64 | 2.09 | 1.28 | 0.70 | 0.32 | 0.26 | 0.14 | 0.06 | 0.03 | 0.01 | 64.2 | |
| Bologna | 0.56 | 1.91 | 3.55 | 5.64 | 8.05 | 10.82 | 13.91 | 15.19 | 12.33 | 9.05 | 6.46 | 4.45 | 3.08 | 1.97 | 1.22 | 0.80 | 0.40 | 0.42 | 0.15 | 0.06 | 57.4 |
| Lazio | 0.09 | 0.28 | 0.67 | 1.57 | 2.39 | 4.86 | 7.22 | 10.66 | 13.51 | 12.98 | 11.13 | 9.03 | 7.42 | 5.87 | 4.14 | 3.62 | 2.04 | 1.40 | 0.81 | 0.33 | 50.8 |
| Udinese | 0.03 | 0.14 | 0.43 | 0.86 | 1.72 | 3.15 | 5.41 | 8.38 | 11.18 | 12.27 | 11.52 | 10.35 | 8.82 | 6.96 | 5.78 | 4.34 | 3.59 | 2.46 | 1.75 | 0.86 | 48.7 |
| Sassuolo | 0.01 | 0.04 | 0.29 | 0.59 | 1.26 | 2.08 | 4.01 | 6.44 | 9.00 | 10.33 | 10.21 | 10.59 | 9.51 | 8.46 | 7.22 | 6.35 | 4.80 | 3.81 | 3.21 | 1.80 | 46.6 |
| Venezia | 0.01 | 0.10 | 0.14 | 0.27 | 0.65 | 1.49 | 2.72 | 4.87 | 7.07 | 8.54 | 10.17 | 10.47 | 10.11 | 9.31 | 8.41 | 7.14 | 6.39 | 5.34 | 4.17 | 2.61 | 44.8 |
| Genoa | 0.01 | 0.01 | 0.06 | 0.19 | 0.43 | 0.84 | 1.68 | 3.50 | 5.63 | 7.36 | 9.05 | 9.75 | 9.96 | 10.03 | 9.65 | 9.16 | 7.52 | 6.64 | 4.95 | 3.57 | 43.2 |
| Fiorentina | 0.03 | 0.03 | 0.19 | 0.40 | 0.83 | 1.55 | 3.11 | 4.95 | 6.83 | 8.08 | 9.27 | 9.51 | 10.04 | 9.60 | 8.66 | 8.72 | 7.73 | 5.96 | 4.50 | 42.5 | |
| Frosinone | 0.01 | 0.05 | 0.11 | 0.28 | 0.53 | 1.35 | 2.59 | 3.89 | 6.18 | 7.66 | 8.46 | 9.54 | 9.64 | 9.92 | 9.41 | 8.98 | 8.32 | 7.36 | 5.71 | 41.6 | |
| Torino | 0.01 | 0.03 | 0.14 | 0.34 | 0.65 | 1.41 | 2.49 | 4.04 | 5.31 | 6.30 | 7.36 | 8.48 | 9.74 | 10.21 | 11.09 | 11.11 | 10.82 | 10.47 | 38.9 | ||
| Monza | 0.01 | 0.03 | 0.06 | 0.13 | 0.38 | 0.86 | 1.71 | 2.91 | 4.32 | 5.75 | 6.59 | 8.20 | 9.41 | 10.51 | 11.39 | 11.98 | 12.96 | 12.80 | 37.5 | ||
| Parma | 0.01 | 0.03 | 0.11 | 0.27 | 0.80 | 1.65 | 2.58 | 3.76 | 4.76 | 6.32 | 8.23 | 9.68 | 11.14 | 12.02 | 12.52 | 13.49 | 12.63 | 37.2 | |||
| Lecce | 0.01 | 0.01 | 0.03 | 0.06 | 0.33 | 0.76 | 1.35 | 2.21 | 3.53 | 5.00 | 5.93 | 7.68 | 9.61 | 12.07 | 14.22 | 17.02 | 20.15 | 34.8 | |||
| Cagliari | 0.01 | 0.03 | 0.05 | 0.19 | 0.34 | 0.76 | 1.43 | 2.16 | 3.01 | 4.40 | 5.59 | 6.82 | 8.69 | 10.74 | 13.98 | 17.30 | 24.50 | 34.2 |
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
Every one of the 380 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, 20,000 runs._