The record is public. All of it.
xGB Current v2 — Ratings that move with every match instead of being rebuilt from a window. The quickest engine in the room to accept that a side has changed, and the least attached to what they used to be. 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, plus every call it has made live since. Nothing here is edited or deleted after the fact. The model does not know lineups or injuries.
Held-out performance (1,678 matches)
| Metric | Model | Home-rates baseline | Uniform | Closing market |
|---|---|---|---|---|
| RPS (lower = better) | 0.2056 | 0.2320 | 0.2369 | 0.2014 |
| 1X2 accuracy | 52.0% | — | 33.3% | — |
We finish 0.0041 RPS behind the closing market on the 1,666 matches that carried a price (99.3% of them), and the difference is statistically real (p = < 0.001). That is the honest price of pricing a match without looking at anyone else's price. We used to explain it as team news the market sees and we do not — then we measured that, using the actual starting elevens from 7,465 graded matches. Knowing exactly who started, which is more than any tipster gets, is worth about a fortieth of this gap. So the honest answer is that we do not know what the rest of it is. We publish the number anyway — a record that only showed the comparisons we win would not be a record.
The totals record — over/under 2.5
We publish an over-2.5 probability on every Ligue 1 match page, and unlike the 1X2 we cannot yet show you how it has done against a market: the odds we hold for this league are match-result only. Until totals prices are staged, that number is published without a scoreboard behind it — which is worth knowing before you read it. The Premier League record grades its over-2.5 calls in full.
Calibration
Predicted home-win probability against how often it actually happened, over the same held-out matches. Perfect calibration sits on the dashed diagonal: when we say 60%, it should happen 60% of the time. Bubble size is the number of matches in that bucket — the ends of the curve are thin, and wander.
Live track record
| Month | n | RPS | Accuracy |
|---|---|---|---|
| 2026-08 | 12 | 0.2409 | 41.7% |
A handful of matches is not a record yet — at this sample a single result moves every number on this row. It is published from the first graded match precisely so that it cannot be started later, once it looks better.
What the engine can and cannot see
It reads the quality of the chances both sides create and concede, adjusted for opponent and venue and weighted toward recent play. It does not know lineups, injuries, suspensions or motivation, and it carries no per-player projections for this league — those need a per-player model validated on Ligue 1, which is a different thing from the data, and the data we do hold. Probabilities, never advice. Back to Ligue 1.
xGB Current v2 · validated 2026-08-21 · held-out seasons were never used to tune it.