We call it before kickoff. Then the football answers.
Before every Premier League match, the model names its winner and writes the number down where it cannot be edited. This page is what happened next — the wins on top, the misses still on the board, because a record you can check beats a claim you cannot.
For the stats people · calibration score (Brier) 0.599 · 0.667 is coin-flip guessing · lower is better
We called Newcastle at 39% when most would not have — and the football agreed.
We called Sunderland at 41% when most would not have — and the football agreed.
We called Everton at 41% when most would not have — and the football agreed.
How accurate are Onside's Premier League predictions?
— Onside (onsidearena.com), predictions graded in public.
The record
| GW | MATCH | RESULT | WE CALLED | VERDICT |
|---|---|---|---|---|
| 3 | Arsenal v Chelsea | 2-1 | Arsenal · 58% | HIT |
| 3 | Everton v Man Utd | 2-2 | Everton · 43% | DRAW |
| 3 | Hull City v Aston Villa | 0-0 | Hull City · 42% | DRAW |
| 3 | Brentford v Sunderland | 1-1 | Brentford · 49% | DRAW |
| 3 | Brighton v Leeds | 1-1 | Brighton · 44% | DRAW |
| 3 | Fulham v Crystal Palace | 2-3 | Fulham · 49% | MISS |
| 3 | Man City v Coventry City | 1-0 | Man City · 73% | HIT |
| 3 | Nott'm Forest v Spurs | 0-0 | Nott'm Forest · 48% | DRAW |
| 3 | Newcastle v Bournemouth | 2-2 | Newcastle · 47% | DRAW |
| 3 | Ipswich Town v Liverpool | 0-2 | Liverpool · 55% | HIT |
| 2 | Aston Villa v Arsenal | 0-1 | Arsenal · 51% | HIT |
| 2 | Man Utd v Ipswich Town | 5-2 | Man Utd · 54% | HIT |
| 2 | Chelsea v Brighton | 4-3 | Chelsea · 42% | HIT |
| 2 | Leeds v Brentford | 1-1 | Leeds · 38% | DRAW |
| 2 | Sunderland v Fulham | 1-0 | Sunderland · 41% | HIT |
| 2 | Spurs v Newcastle | 0-2 | Newcastle · 39% | HIT |
| 2 | Bournemouth v Everton | 1-1 | Bournemouth · 42% | DRAW |
| 2 | Coventry City v Hull City | 0-1 | Coventry City · 40% | MISS |
| 2 | Liverpool v Nott'm Forest | 2-2 | Liverpool · 56% | DRAW |
| 2 | Crystal Palace v Man City | 1-4 | Man City · 47% | HIT |
| 1 | Fulham v Chelsea | 2-3 | Fulham · 37% | MISS |
| 1 | Newcastle v Liverpool | 2-2 | Newcastle · 38% | DRAW |
| 1 | Brighton v Aston Villa | 4-0 | Brighton · 42% | HIT |
| 1 | Man City v Bournemouth | 2-1 | Man City · 54% | HIT |
| 1 | Brentford v Spurs | 3-0 | Brentford · 46% | HIT |
| 1 | Everton v Crystal Palace | 2-0 | Everton · 41% | HIT |
| 1 | Ipswich Town v Sunderland | 2-1 | Sunderland · 41% | MISS |
| 1 | Nott'm Forest v Leeds | 0-1 | Nott'm Forest · 43% | MISS |
| 1 | Hull City v Man Utd | 2-0 | Man Utd · 42% | MISS |
| 1 | Arsenal v Coventry City | 3-0 | Arsenal · 66% | HIT |
Percentages are the model’s own pre-match numbers, read from the committed receipt — not recomputed. Draws and no-calls are excluded from the hit rate.
How this is graded
Written down first
Each prediction is committed to a public git repository before kickoff. The commit timestamp is the proof — not our word for it.
Never revised
A stored prediction is never overwritten, even when the model later changes its mind, and especially after the match has been played.
Result only
Favourite wins is a hit, favourite loses is a miss. Draws are their own bucket, and a match where the model made a draw most likely is a no-call, not a wrong answer.
Honest about confidence
We store the full win-draw-loss percentages before kickoff, so the record can also be scored on whether our confidence was justified — not just on being right. On that stricter measure (the stats people call it a Brier score) we sit well clear of coin-flip guessing: lower is better, 0.667 is a guess, and the current score is on this page.
Common questions
How accurate are Onside's Premier League predictions?▾
Onside has called 20 decisive Premier League matches in 2026/27 and got 14 right — a 70% hit rate on matches that produced a winner. 10 ended in a draw and 0 were no-calls, where the model made a draw its most likely outcome and declined to pick a side. Every prediction is written to a public git repository before kickoff and is never revised afterwards.
How is a prediction graded?▾
On the result only. The model names a favourite before kickoff; if that team wins it is a hit, if they lose it is a miss. Draws are reported separately rather than counted as losses, and a match where the model made a draw its most likely outcome is recorded as a no-call. The hit rate is hits divided by matches that produced a winner.
Why is the scoreline not graded?▾
Because it would not measure anything useful yet. Before a ball is kicked every team sits on the same prior, so the most likely exact scoreline collapses to the same low-scoring draw for almost every fixture. Grading that would say more about the cold start than the model. The win, draw or loss call is the honest claim, and it is the one graded here.
Could the numbers be changed after the match?▾
No. Each prediction is written to src/data/prediction-receipts.json before kickoff and committed to a public repository, so the commit timestamp is independent proof it existed beforehand. The record here reads that file. It never recomputes a probability, and a stored prediction is never overwritten.
See the next one before it happens
Every upcoming fixture has a published call with the same numbers, timestamped the same way. Judge it afterwards — that is the point.