Data last updated Season 2026-27Model v20261029-e9c638⚠ Source issue: espn – showing last good data

Model performance

Every number here is out-of-sample: for each season the models were trained only on earlier seasons, and settings were chosen on 2016-17 to 2020-21 before the test seasons were scored. Lower log loss, Brier score and ranked probability score (RPS) mean better probabilities; they matter more than accuracy.

Test log loss (model)
0.978
bookmakers 0.959
Test accuracy (model)
53.0%
bookmakers 55.3%
Test matches
1,900
2021-22 – 2025-26
Live record this season
8 matches
log loss 1.066 · 50% correct

Test seasons 2021-22 – 2025-26 (1900 matches)

ModelLog loss ↓Brier ↓RPS ↓Accuracy ↑
Always home win (base-rate probabilities)1.06860.64650.232344.2%
Elo (logistic on rating gap)0.98430.58630.202952.6%
Dixon-Coles goals model0.97480.57960.199954.0%
Multinomial logistic regression0.97280.57850.199153.4%
Gradient boosting (HistGradientBoosting)0.98850.58810.202652.5%
Ensemble (final model)0.97830.58200.200653.0%
Bookmaker average, pre-match (margin removed)0.95940.56990.194955.3%
Bookmaker average, closing (margin removed)0.95560.56700.193656.0%

The honest headline: the bookmakers' pre-match average is better than this model on every metric, which is normal for public-data models. The final ensemble (dc 50%, gbm 50%) was chosen because it was best on the validation seasons. On the test seasons Dixon-Coles goals model and Multinomial logistic regression did slightly better; we report that rather than switch models after seeing the test results. Bold marks the best non-bookmaker value in each column.

Calibration on test seasons

Every home, draw and away probability is grouped into 10% bins. A well-calibrated forecaster sits on the dashed line: events given 40% happen about 40% of the time. Bins with fewer than 20 forecasts are hidden.

Show as table
BinnModel predictedHappened
0–10%1627.6%7.4%
10–20%92615.5%15.3%
20–30%214925.5%25.8%
30–40%84934.7%35.1%
40–50%68444.9%44.1%
50–60%38754.8%53.2%
60–70%28264.8%63.8%
70–80%19874.1%75.8%
80–90%6283.9%87.1%
90–100%190.1%100.0%

Validation seasons 2016-17 – 2020-21

ModelLog loss ↓Brier ↓RPS ↓Accuracy ↑
Always home win (base-rate probabilities)1.06400.64330.233945.1%
Elo (logistic on rating gap)0.96350.56930.198055.7%
Dixon-Coles goals model0.95470.56470.196055.4%
Multinomial logistic regression0.95700.56530.196055.3%
Gradient boosting (HistGradientBoosting)0.95450.56440.196354.6%
Ensemble (final model)0.95050.56190.195255.4%
Bookmaker average, pre-match (margin removed)0.94470.55740.193056.0%
Bookmaker average, closing (margin removed)0.98460.58340.204752.5%

Used to choose every setting, so these numbers are slightly optimistic.

Log loss by season

SeasonMatchesAlways homeEloDixon-ColesBoostingEnsembleBookmakers
2016-17validation3801.0450.9230.9360.9230.9260.909
2017-18validation3801.0660.9590.9580.9490.9490.944
2018-19validation3801.0480.9100.8960.8890.8890.894
2019-20validation3801.0650.9840.9730.9810.9730.973
2020-21validation3801.0961.0421.0111.0311.0161.004
2021-22test3801.0730.9580.9550.9800.9630.936
2022-23test3801.0490.9870.9931.0020.9940.966
2023-24test3801.0560.9280.9240.9300.9250.909
2024-25test3801.0841.0060.9780.9970.9840.971
2025-26test3801.0821.0421.0241.0341.0261.015
2026-27in progress801.1001.0201.0261.0251.0231.020

How the model works

Elo ratings run over the Premier League and Championship together since 2004-05, so a promoted club arrives with the rating it earned in the Championship. Dixon-Coles fits attack and defence strengths from the last three seasons, weighting recent matches more and blending goals with shots on target (a free stand-in for xG), and gives the full scoreline distribution.

A gradient-boosted classifier combines those ratings with recent form, home/away form, shot difference, league position, rest days including cup and European games, and promotion status. The final forecast averages Dixon-Coles and the boosted model. Bookmaker odds are never used as an input, so the comparison with the market is fair. Model v20261029-e9c638, trained Oct 29, 2026 on 7,300 matches.