The model makes Barcelona the title favourite, first in 74.7% of 20,000 simulated seasons, ahead of Real Madrid on 21.4% and Atletico Madrid on 2.4%. On expected points that is Barcelona 87.9, Real Madrid 80.2, Atletico Madrid 70.2. Four clubs finish in the top four more often than not: Barcelona 99.8%, Real Madrid 97.9%, Atletico Madrid 78.2%, Real Betis 68.6%.

At the other end, Malaga carries the highest relegation risk at 70.3%, then Elche on 36.7% and Deportivo La Coruna on 35.1%. The bottom club averages 33.8 points to Barcelona's 87.9.

Right, this simulation is just one piece of the puzzle, not the whole picture. It's 20,000 different ways the season could still pan out, holding onto the points already won and letting the remaining fixtures play out based on each club's attacking and defensive strength. It's a snapshot of possibilities, not a crystal ball. It doesn't know about the next fixture list, injuries, or suspensions. It's great for seeing the spread of where a club might finish, spotting the ones with the widest range of outcomes. But remember, it's blind to the chaos a season can bring. Use it to frame your thinking, not to lock in your selections. It's a tool, not a tip.

What has changed since August

The pre-season projection was run before a ball was kicked. 69 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

Falling

Compare with the full pre-season table, exactly as the model had it in August.

Every club, every finishing position

Club1234567891011121314151617181920xPts
Barcelona74.7220.373.930.830.130.020.0187.9
Real Madrid21.4054.7516.485.221.440.470.150.040.010.010.010.0180.2
Atletico Madrid2.3913.3136.9225.5712.155.012.211.040.620.320.160.130.100.040.020.0170.2
Real Betis1.299.0928.2129.9915.277.393.732.001.350.710.470.220.110.080.030.010.010.010.0168.2
Villarreal0.171.768.1417.1223.3314.9110.747.084.883.692.601.771.310.890.630.440.260.180.080.0260.3
Sevilla0.010.211.675.039.7312.4712.1110.899.418.536.865.794.763.943.032.181.591.000.590.2053.7
Athletic Club0.181.013.467.4210.5711.2310.089.188.327.706.895.714.614.372.932.661.981.190.4951.7
Rayo Vallecano0.111.153.226.889.0310.6410.289.298.697.986.736.255.274.393.552.611.941.350.6351.4
Alaves0.090.852.576.009.449.8810.409.788.878.477.336.125.414.413.782.841.821.250.6750.9
Celta Vigo0.040.692.645.758.549.329.759.619.018.217.566.835.445.023.793.162.511.520.6050.2
Real Sociedad0.010.010.361.373.575.926.497.478.028.448.207.997.527.516.636.135.194.253.071.8648.1
Getafe0.010.140.731.883.495.056.197.467.928.388.879.028.637.947.226.145.233.652.0346.2
Osasuna0.020.220.912.223.985.366.397.007.538.008.388.198.347.367.076.645.494.222.6746.5
Espanyol0.010.070.561.232.533.434.615.636.136.837.728.268.118.888.308.517.766.834.5744.0
Levante0.010.040.220.951.622.523.344.104.805.656.596.908.058.399.369.799.9410.037.7042.1
Racing Santander0.010.040.200.831.772.433.213.914.905.396.086.787.758.539.459.529.9610.328.9342.1
Valencia0.030.160.501.041.812.723.464.245.035.656.937.998.5310.0210.4211.3311.109.0141.2
Deportivo La Coruna0.020.080.370.801.282.093.013.334.405.406.387.378.7210.3111.3812.4712.749.8440.3
Elche0.030.110.330.861.362.062.763.624.405.036.367.418.729.5410.7812.1012.9811.5840.1
Malaga0.010.020.110.240.350.530.931.241.862.453.144.395.928.4812.0319.0939.2033.8

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 69 matches, finished off 20,000 times over. Points already won are treated as certain, and only the 311 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._