How Our Football Prediction Model Works - Kickoff Report
Skip to content
Kickoff Report
Every match preview on Kickoff Report carries a prediction: win probabilities for each side, an expected-goals estimate, a most-likely scoreline, and the three most probable exact scores. Those numbers are not guesses and they are not scraped from a bookmaker. They come from a model we built and tested ourselves. This page explains, in plain terms, exactly how that model works — what goes into it, what it does with those inputs, and how well it actually performs when measured honestly against real results.
The short version
We estimate how many goals each team is likely to score, then turn those two numbers into probabilities for every plausible scoreline. Add up the scorelines where the home team wins and you have the home-win probability; do the same for draws and away wins. The expected-goals estimate is anchored on Elo ratings — a single number for each team’s strength — and refined with recent form. The scoreline probabilities come from a Poisson model with a well-known low-score correction called Dixon-Coles . That is the whole engine. The rest is detail.
Step 1 — how good is each team? (Elo ratings)
The starting point is an Elo rating for each side. Elo is the same idea used in chess rankings: every team has a number, and the gap between two teams’ numbers tells you how much stronger one is than the other. A 100-point edge means the same thing whether it is a top club against a mid-table one or a World Cup favourite against an outsider.
For domestic clubs we use publicly published club Elo ratings; for international teams we use national-team Elo. Ratings update as results come in, and a rating that has gone stale (more than a month old with no refresh) is treated as missing rather than trusted.
Step 2 — turning a rating gap into expected goals
Elo tells us who is stronger, but a prediction needs goals. We convert the rating gap into a goal supremacy — how many more goals the stronger side is expected to score — with a simple, calibrated relationship:
supremacy = K × (rating gap)
Here K is a coefficient we fitted from historical data (more on that below). We start from an assumed average total of goals in a match, then split that total around its midpoint using the supremacy: the favourite’s share goes up, the underdog’s share comes down. The result is two numbers — an expected goal count for the home side and one for the away side. These two numbers (statisticians call them the lambdas) are the heart of the prediction.
Home advantage is added here too, as a fixed bonus to the home side’s rating — worth roughly the edge a real home crowd and familiar pitch provide. For a neutral-venue match, such as a World Cup final, that bonus is set to zero. For a host nation playing at home in their own tournament, it is kept.
Step 3 — recent form, used carefully
A rating captures long-run strength but not the last few weeks. So where we have recent results, we blend in a form-based estimate: a team’s own scoring rate, adjusted by how leaky the opponent’s defence has been. Recent games count more than older ones — the most recent five matches are weighted from oldest to newest, so last weekend matters more than a month ago.
Two honest caveats. First, form is a fallback , not an equal partner: when both teams have reliable Elo ratings, our tested settings lean fully on the Elo-based estimate, because in testing that produced better predictions than mixing form back in. Form does the real work when a rating is missing — early in a new season, or for a team we do not have a current rating for. Second, we only trust a league-average goal rate when there is enough of a season played to estimate it; a handful of World Cup group games is too little, so we fall back to a sensible default.
Step 4 — head-to-head, as a gentle nudge only
If two teams have met at least three times recently, we let that history nudge the estimate — but only by ten percent, and only after making sure we credit each past match’s goals to the right team regardless of who was at home that day. Head-to-head is a weak, slow-moving signal, and we treat it that way. It never overrides the ratings; it just tilts them slightly.
Step 5 — from expected goals to a full set of probabilities
Now we have two expected-goal numbers. To get probabilities, we assume each team’s goals follow a Poisson distribution — the standard statistical model for counting independent events like goals in a match. That gives a probability for every exact scoreline: 0-0, 1-0, 2-1, and so on, across a grid up to ten goals per side.
Real football has one well-documented quirk the plain Poisson model misses: low-scoring results (0-0, 1-0, 1-1) happen a little more often than pure independence predicts, because teams adjust their play to the score. We apply the Dixon-Coles correction (from a 1997 paper by Mark Dixon and...