Premier League β€” Validation

Every played match: our pre-match forecast vs. what actually happened. The receipts. 🧾

30 graded matches

46.7%
Outcome accuracy
14 / 30 results called
46.7% vs Market 46.7%
13.3%
Exact scoreline
4 / 30 spot‑on
0.186
Avg. RPS (lower better)
coin‑flip baseline 0.222
0.186 vs Market 0.187
16.2%
Skill vs. coin‑flip
RPS improvement over uniform

Market = de-vigged bookmaker consensus over 30 of 30 graded matches. Both figures above are scored on that same subset. SFMMO leads the closing market by 0.6% on RPS.

Wait β€” how can 46.7% accuracy still beat a coin-flip on RPS?

Because accuracy and RPS measure different things, on different scales β€” they're not in competition.

  • Accuracy only asks: was our single top pick right? It's blind to the probabilities, and a model almost never makes draw its top pick β€” so a draw-heavy round drags it down even when the forecast was good.
  • RPS grades the whole probability spread (e.g. 55 / 25 / 20) against a uniform β€œcoin-flip” (33 / 33 / 33). The coin-flip never commits, so it's never punished hard β€” which makes it a surprisingly tough baseline, and means a few % of skill is a genuine edge.

Our committed forecast cuts both ways (lower RPS = better):

MatchOur forecastResultOur RPSCoin-flip RPS
Favourite delivers55 / 25 / 20home win0.12 βœ“0.28
We back home, it's a draw55 / 25 / 20draw0.170.11 βœ“

When a favourite wins we crush the baseline; on a draw, the hedging coin-flip actually beats us. Matchday 1 had 9 draws in 24 games, so the wins and losses partly cancel β€” the net edge is the β€œskill” figure above. A few % over uniform is roughly what bookmakers manage, so it's a real, healthy edge.

Matchday 1
Match Forecast (1 / X / 2) Our call Predicted Actual
77.3 / 14.8 / 7.9 Arsenal 2–0 3–0
17.2 / 23.7 / 59.0 Manchester United 0–1 2–0
45.7 / 27.8 / 26.5 Everton 1–1 2–0
32.4 / 28.6 / 38.9 Sunderland 1–1 2–1
50.8 / 24.3 / 24.8 Nottingham Forest 1–1 0–1
49.1 / 24.5 / 26.4 Brentford 1–1 3–0
42.8 / 27.4 / 29.9 Brighton & Hove Albion 1–1 4–0
65.0 / 19.9 / 15.1 Manchester City 2–0 2–1
31.3 / 26.4 / 42.3 Liverpool 1–1 2–2
31.1 / 28.0 / 40.9 Chelsea 1–1 2–3
Matchday 2
Match Forecast (1 / X / 2) Our call Predicted Actual
22.0 / 25.8 / 52.2 Manchester City 1–1 1–4
60.6 / 22.5 / 16.9 Liverpool 1–1 2–2
42.8 / 27.0 / 30.2 AFC Bournemouth 1–1 1–1
38.5 / 27.6 / 33.9 Coventry City 1–1 0–1
42.9 / 25.6 / 31.5 Tottenham Hotspur 1–1 0–2
50.1 / 25.6 / 24.3 Chelsea 1–1 4–3
32.0 / 25.3 / 42.7 Brentford 1–1 1–1
36.8 / 28.9 / 34.3 Sunderland 1–1 1–0
74.4 / 16.7 / 8.9 Manchester United 2–0 5–2
20.2 / 23.5 / 56.3 Arsenal 1–1 0–1
Matchday 3
Match Forecast (1 / X / 2) Our call Predicted Actual
13.3 / 19.1 / 67.6 Liverpool 0–2 0–2
48.0 / 24.6 / 27.5 Newcastle United 1–1 2–2
61.4 / 22.9 / 15.7 Brentford 1–0 1–1
55.2 / 23.3 / 21.5 Brighton & Hove Albion 1–1 1–1
46.7 / 27.0 / 26.4 Fulham 1–1 2–3
83.1 / 11.6 / 5.3 Manchester City 2–0 1–0
48.6 / 25.4 / 26.1 Nottingham Forest 1–1 0–0
32.4 / 28.3 / 39.3 Aston Villa 1–1 0–0
32.1 / 27.6 / 40.3 Manchester United 1–1 2–2
53.2 / 24.2 / 22.6 Arsenal 1–1 2–1

✓ = our most-likely result was correct  Β·  ⚛ = exact scoreline nailed  Β·  multiclass Brier score 0.598. Click any match for its full forecast breakdown.