Model comparison
This season so far
2026/27 — 6 matches scored, every model against what actually happened, using parameters fitted on prior seasons only. 12 have been played; the models that read rolling form have no opinion on a season's opening fixtures, and every model here is measured over the same 6 so the figures can be compared at all.
| Model | Log loss | 95% interval | Matches |
|---|---|---|---|
| Elo | 0.9418 | 6 | |
| Gradient boosting (Model 5) | 0.9653 | 6 | |
| Bookmaker | 1.0062 | 6 | |
| Baseline (Model 0) | 1.0276 | 6 | |
| Logistic (Model 4) | 1.0448 | 6 | |
| Poisson | 1.1165 | 6 | |
| Dixon-Coles | 1.1182 | 6 | |
| Always home | undefined | — | 6 |
The bars are 95% intervals on the log loss, drawn against one shared scale. Where they overlap, this season has not yet separated those models — a season is a small sample, and the ordering above should not be read as a ranking until the bars pull apart. The comparison over 5,228 historical matches is below, and is the one to trust. A model that assigns zero to something that happened has no log loss and no interval, which is why always-home shows neither.
Biggest surprises
Results the goal model gave least chance to. Unlike the table above, this needs no sample size.
| 09 Aug | Rangers 1–2 Hibernian | we gave it 11.0% | why? |
| 31 Jul | Dundee United 1–1 Rangers | we gave it 20.4% | why? |
| 09 Aug | Motherwell 0–0 Falkirk | we gave it 25.7% | why? |
| 01 Aug | Falkirk 0–2 St Mirren | we gave it 25.7% | why? |
| 02 Aug | Hibernian 1–2 Motherwell | we gave it 26.1% | why? |
All seasons
Scored walk-forward: every model predicts a season using only prior seasons. All rows share one match set, so the figures are comparable.
| Model | Log loss | Brier | RPS | Accuracy | ECE H | ECE D | ECE A | Matches |
|---|---|---|---|---|---|---|---|---|
| Bookmaker | 0.9552 | 0.5665 | 0.1943 | 0.536 | 0.027 | 0.011 | 0.013 | 5,228 |
| Elo | 0.9711 | 0.5767 | 0.1993 | 0.529 | 0.027 | 0.010 | 0.033 | 5,228 |
| Poisson | 0.9768 | 0.5811 | 0.2014 | 0.519 | 0.017 | 0.004 | 0.019 | 5,228 |
| Dixon-Coles | 0.9769 | 0.5812 | 0.2014 | 0.519 | 0.015 | 0.003 | 0.019 | 5,228 |
| Logistic (Model 4) | 0.9833 | 0.5844 | 0.2018 | 0.532 | 0.024 | 0.008 | 0.021 | 5,228 |
| Gradient boosting (Model 5) | 0.9954 | 0.5927 | 0.2058 | 0.520 | 0.040 | 0.011 | 0.029 | 5,228 |
| Baseline (Model 0) | 1.0686 | 0.6467 | 0.2328 | 0.437 | 0.004 | 0.005 | 0.001 | 5,228 |
| Always home | undefined | 1.1251 | 0.4440 | 0.437 | 0.563 | 0.237 | 0.325 | 5,228 |
A log loss of undefined is not missing data. A model that assigns zero probability to an outcome that then happens has infinite log loss, and clipping it would report the clipping constant rather than the model. Judge models by log loss, Brier, RPS and calibration — never by accuracy alone: the baseline and always-home score identically on accuracy because both always pick a home win, yet they are far apart on Brier.
Log loss by season
Lower is better. Each point is one season, predicted from prior seasons only. Dixon-Coles sits underneath Poisson — the two differ by at most 0.0016 in any season, so its line is hidden rather than missing. Click a legend entry to hide that model and see what is beneath it.