Premier League · held out · 2021–25 · never edited

The record is public. All of it.

Premier LeagueLa Liga · 1Serie A · 10Bundesliga · 9Ligue 1 · 9

xGB Core v1 — Reads the quality of every chance both sides create and concede — not just results — adjusted for opponent and venue, weighted toward recent play. Probabilities come from simulating the match many thousands of times. It was tuned on 2016–20 seasons and judged, untouched, on 2021–25: every number below comes from matches the engine had never seen when it was built. The model does not know lineups or injuries.

Held-out performance (1,900 matches)

MetricModelHome-rates baselineUniformClosing market
RPS (lower = better)0.19820.23200.23800.1949
1X2 accuracy54.5%—33.3%—

We finish 0.0033 RPS behind the closing market — the honest price of a fully odds-free model. Published academic ML models sit at ~0.205; the market at ~0.195. We publish this number; they don’t.

The totals record — over/under 2.5

We publish an over-2.5 probability on every match page, so it faces the same exam as the 1X2: 1,900 held-out matches (100% with a market price), Brier 0.2414 against the closing market's 0.2401 — statistically indistinguishable (p = 0.31). Lower is better; 57% of these matches went over.

Calibration

0%0%25%25%50%50%75%75%100%100%Predicted home-win probability → observed frequency (bubble = sample size)
Perfect calibration sits on the dashed diagonal: when we say 60%, it should happen 60% of the time.

Dozens of candidate improvements — including the folk wisdom: rest days, referees, travel, weather, late-season motivation — have been tested against held-out seasons. None beat the engine by a real margin, and none shipped. We keep that ledger so the engine never quietly gets worse.

Live track record

Graded predictions
60
Live RPS
0.2077
Pick accuracy
47%
Scorer Brier
0.081
MonthnRPSAccuracy
2026-08200.209465%
2026-09300.206233%
2026-10100.209050%
Opponent-tier breakdown

Draws: caught 0 of the 19 that actually happened.

Top 6 involved · called 15 of 31 · RPS 0.1766
Mid-table involved · called 18 of 39 · RPS 0.1954
Relegation contenders involved · called 12 of 31 · RPS 0.2335
Every tier pairing seen so far (6 of 6)

Tiers from last season's final table (2025/26). A promoted club with no row in that table counts as a relegation contender here.

MatchupnCalledRPS
Mid-table vs Mid-table96/90.2008
Mid-table vs Relegation contenders156/150.2288
Mid-table vs Top 6156/150.1587
Relegation contenders vs Relegation contenders51/50.3498
Relegation contenders vs Top 6115/110.1870
Top 6 vs Top 654/50.2074
Top 6
Arsenal, Aston Villa, Bournemouth, Liverpool, Man City, Man United
Mid-table
Brentford, Brighton, Chelsea, Everton, Fulham, Leeds, Newcastle, Sunderland
Relegation contenders
Burnley, Crystal Palace, Nottingham Forest, Tottenham, West Ham, Wolves

This is the champion engine's own record. We run several others alongside it — see how each compares at the engine room.

What the engine can and cannot see

It weighs: the quality of every chance both sides create and concede, opponent strength, venue, and how recently it happened. Players are projected from their share of their club's threat and the minutes they are likely to play.
It cannot see: confirmed lineups, injuries and suspensions, or cup rotation — and every assessment says so on its face.
The xG Index is our 0–100 scale: 50 is league average, and player scores are always relative to position, on a stated minutes floor.

The archive rule: every prediction is written before kickoff and never edited or deleted. When we’re wrong, this page says so.