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

Club1234567891011121314151617181920xPts
Inter58.5120.2410.265.492.741.630.660.300.110.030.030.0180.6
AS Roma15.8823.8919.5114.3910.326.874.572.421.170.530.250.120.060.020.010.0172.5
Como10.0717.8817.8415.9313.269.937.073.892.261.020.500.210.090.050.010.010.0170.0
Juventus4.5210.3712.9515.0714.8213.5711.147.424.622.661.330.630.440.190.110.050.030.020.0166.1
Napoli4.1610.0312.8813.7914.4214.1111.338.085.132.661.620.810.420.280.150.060.060.010.0165.7
AC Milan3.127.6610.6312.8314.3414.6512.909.366.023.602.161.210.670.430.220.110.070.0164.3
Atalanta3.047.4210.7112.9814.6413.9812.9010.085.733.642.091.280.700.320.260.140.060.030.0164.2
Bologna0.561.913.555.648.0510.8213.9115.1912.339.056.464.453.081.971.220.800.400.420.150.0657.4
Lazio0.090.280.671.572.394.867.2210.6613.5112.9811.139.037.425.874.143.622.041.400.810.3350.8
Udinese0.030.140.430.861.723.155.418.3811.1812.2711.5210.358.826.965.784.343.592.461.750.8648.7
Sassuolo0.010.040.290.591.262.084.016.449.0010.3310.2110.599.518.467.226.354.803.813.211.8046.6
Venezia0.010.100.140.270.651.492.724.877.078.5410.1710.4710.119.318.417.146.395.344.172.6144.8
Genoa0.010.010.060.190.430.841.683.505.637.369.059.759.9610.039.659.167.526.644.953.5743.2
Fiorentina0.030.030.190.400.831.553.114.956.838.089.279.5110.049.608.668.727.735.964.5042.5
Frosinone0.010.050.110.280.531.352.593.896.187.668.469.549.649.929.418.988.327.365.7141.6
Torino0.010.030.140.340.651.412.494.045.316.307.368.489.7410.2111.0911.1110.8210.4738.9
Monza0.010.030.060.130.380.861.712.914.325.756.598.209.4110.5111.3911.9812.9612.8037.5
Parma0.010.030.110.270.801.652.583.764.766.328.239.6811.1412.0212.5213.4912.6337.2
Lecce0.010.010.030.060.330.761.352.213.535.005.937.689.6112.0714.2217.0220.1534.8
Cagliari0.010.030.050.190.340.761.432.163.014.405.596.828.6910.7413.9817.3024.5034.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._