Markets
1X2
The three possible 90-minute results: home win (1), draw (X) or away win (2).
Every forecast on the site starts with these three probabilities, which always add up to 100%. Extra time and penalties are not included.
Resources
Plain-English definitions of the probabilities, models, data rules and scores behind our predictions, from 1X2 to two-source rule. Each term links to the page where it is used.
38 terms
No term matches. Try a shorter word, or ask us to add it.
Markets
The three possible 90-minute results: home win (1), draw (X) or away win (2).
Every forecast on the site starts with these three probabilities, which always add up to 100%. Extra time and penalties are not included.
Evaluation
The share of graded matches where the most likely result was the one that happened.
Accuracy is easy to read but ignores how confident a forecast was, so we always show it next to RPS and log loss. Around 50–55% is typical for good football models because draws are hard to call.
Accuracy = correct picks / graded matches
Models
Claude (Anthropic) or Codex (OpenAI), used to gather sourced team news, give their own forecast and draft match analysis.
In version 1 their forecasts run in shadow: they are graded but do not change the published probability. Written analysis is checked by a human editor before it is published.
Evaluation
A test of a model on past seasons, where each forecast uses only data that was available before that match.
Backtest numbers are shown separately from live results and are never mixed into the track record of published forecasts.
Evaluation
A simple benchmark that always predicts the league's long-run share of home wins, draws and away wins.
A model is only useful if it beats the base rate on the same matches. We report it next to every model in the track record.
Markets
Whether both sides score at least once in the 90 minutes.
We derive it from the same score grid as the 1X2 probabilities, so the numbers are always consistent with each other. It is the hardest market to beat a simple rule on.
P(BTTS) = 1 − P(home scores 0) − P(away scores 0) + P(0–0)
Evaluation
The squared difference between the forecast probabilities and what happened, added across home, draw and away.
Lower is better. A perfect forecast scores 0 and the worst possible scores 2. It punishes confident misses more than cautious ones.
Brier = Σ (pᵢ − oᵢ)²
Evaluation
Whether forecast probabilities match how often things actually happen.
If we give 100 outcomes a 60% chance, about 60 of them should happen. Calibration is checked in bands (for example 50–60%) with a 95% interval, because small samples move a lot.
Evaluation
A range that shows how much a number could move by chance with the sample we have.
We show 95% intervals for accuracy and RPS. When the interval is wide, treat the headline number with care.
Probabilities
Our label for how strong the most likely result is: High (65% or more), Medium (50–64%) or Low (under 50%).
Tiers describe the probability, not a promise. High picks are still expected to miss now and then, and we publish how often each tier has been right.
Markets
The probability of one exact final score, such as 1–1 or 2–1.
Even the most likely score usually has a probability around 10–14%, so exact scores miss most of the time. We show them neutrally and never grade the site on them alone.
Evaluation
The share of eligible fixtures that received a published forecast.
A model can look better by skipping hard matches. Coverage shows how many we skipped and why (postponements, missing data).
Coverage = published eligible forecasts / eligible fixtures
Data and locking
One scheduled run that collects, checks and publishes new data.
The site updates in batches, not live. Each page shows the time of the latest batch and the next one.
Data and locking
The moment after which no new information can enter a forecast.
For published forecasts the cutoff is the lock, normally 24 hours before kickoff. News that arrives later is not reflected in the locked numbers.
Models
A goals model that adjusts the Poisson model for the extra 0–0, 1–0, 0–1 and 1–1 results seen in real football.
It is the core of our statistical layer. Older matches count less (time decay), and team strengths are pulled towards the league average when there is little data.
τ(0,0) = 1 − λₕλₐρ · τ(1,1) = 1 − ρ
Evaluation
Our label for any record built on fewer than 100 graded matches.
Small samples swing a lot, so we show the numbers but do not compare them as if they were settled.
Models
A team strength number that goes up after good results and down after bad ones, by more when the result was unexpected.
We use it as one input and as a simple benchmark ("Elo only") in the track record. Home advantage is added before the comparison.
Expected = 1 / (1 + 10^(−(Rₕ + H − Rₐ)/400))
Markets
The number of goals a team would be expected to score from the chances it created.
Our version 1 model does not use xG: the shot data we could use is not available under a licence that allows public use. The "expected goals" shown on match pages are model goal averages (λ), not xG.
Probabilities
The side with the highest win probability.
A favourite at 48% is expected to win slightly less than half the time. Being the favourite is not the same as being likely to win.
Evaluation
Scoring a locked forecast against the 90-minute result. Conflicting sources hold the score; unavailable confirmation allows single-source grading.
Every published forecast is graded, misses included. Postponed matches are voided and listed in the exclusion log.
Models
The extra chance of winning that playing at home gives, on average.
It varies by league and over time, so the model fits it from recent seasons instead of using a fixed number.
Probabilities
The probability suggested by betting odds.
For decimal odds it is 1 divided by the odds. Bookmaker odds include a margin, so the implied probabilities add up to more than 100%. We do not use odds in version 1.
Implied probability = 1 / decimal odds
Data and locking
Our public list of every locked forecast, with its SHA-256 fingerprint.
Anyone can download the files and recompute the hash to check that a forecast was not changed after it was locked.
Data and locking
The point, normally 24 hours before kickoff, when a forecast is frozen and fingerprinted.
Before the lock a match shows "Forecast not yet locked". After it, the probabilities cannot change.
Evaluation
A score based on the probability given to the result that actually happened.
Lower is better. It punishes very confident misses heavily, which makes it a good check on over-confidence.
Log loss = −ln(p of the actual result)
Models
The exact set of parameters and rules that produced a forecast.
Every locked forecast records its model version. A new version is released with a changelog and is never applied to past forecasts.
Markets
Whether the match has three or more goals (over) or two or fewer (under).
Like BTTS it comes from the same score grid as the 1X2 probabilities, and we compare it with the simple rule of always picking the more common side.
Probabilities
How far the implied probabilities from a set of odds add up to more than 100%.
The excess is the bookmaker's margin. It has to be removed before odds can be compared with model probabilities.
Overround = Σ (1 / odds) − 1
Models
A way to turn an average number of goals into the chance of 0, 1, 2 or more goals.
Each team gets an expected goals figure (λ) for the match; the Poisson formula, adjusted by Dixon-Coles, turns the two figures into a full score grid.
P(k goals) = λᵏ e^(−λ) / k!
Probabilities
How often an outcome would happen across many matches like this one.
A 60% home win means the home side would win about 60 of 100 identical matches, not that it will win this one.
Evaluation
Our main grading score: how far the cumulative forecast was from the cumulative result.
It respects the order home – draw – away, so calling a draw when the home side won is penalised less than calling an away win. Lower is better.
RPS = ½ [(P₁ − O₁)² + (P₁ + P₂ − O₁ − O₂)²]
Models
The table of probabilities for every exact score, for example 0–0 to 6–6.
Win, draw and loss, over/under, BTTS and correct score are all read from this one grid, so they never contradict each other.
Models
Playing out the rest of a season thousands of times with the model to estimate final positions.
We run 10,000 simulations each week and report the chance of each finishing position, title and top four.
Data and locking
A fingerprint of a file: change one character and the hash changes completely.
We hash each locked forecast and publish the hash, so the forecast cannot be edited quietly afterwards.
Models
A model whose forecasts are recorded and graded but not published as the main number.
Our AI layer runs in shadow until it beats the statistical model on enough matches under rules fixed in advance.
Data and locking
A match with model probabilities but no reviewed analysis, or where team news has not been checked for that match yet. Match lists mark the second case as “Team news pending”.
The numbers are published as usual: the statistical model does not use team news or written analysis. Matches without enough data for the model show no probabilities at all.
Data and locking
The sourced list of injuries, suspensions and other news collected for a match before the lock.
Each item needs a dated source and a link. A match without a verified dossier is marked "limited context".
Data and locking
Checking a result against a second source. Scores from our data feed are compared with an independent second source; open historical data can confirm them later.
Disagreements are held for review. If the second source is unavailable, grading proceeds with one source and is counted as single-source coverage.
The methodology puts these pieces together: data, model, locking and grading.
For information and entertainment only. Not betting advice. 18+. Predictions are probabilities, not certainties. Responsible gambling