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

The record is public. All of it.

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

xGB Core v1Reads 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
19
Live RPS
0.2140
Pick accuracy
63%
Scorer Brier
0.091
MonthnRPSAccuracy
2026-08190.214063%

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.