Gambling carries risks. 0808 802 0133

18+
Guide · Models and data Updated on 12 October 2026

Poisson and xG models in football

Poisson's law and xG sit behind most statistical score models in football. Here's what they assume, where those assumptions give way, and why a model produces a distribution, never a price.

A statistical model. Not a prediction.
The 15-second essentials

A Poisson model estimates an expected average number of goals for each team, then turns that into a probability for every possible score, not a single score. It assumes goals arrive independently of each other at a constant rate. Football only roughly respects both. xG (expected goals) feeds this kind of model as an input and never comes out of it as a result. The distribution you get is an estimate to check against the odds, which carry a margin and the market's opinion.

The short answer

A Poisson model estimates an average number of goals for each team, then works out a probability for every possible score. xG often feeds it upstream, as an input. What comes out is a distribution: never a single score, never a prediction.

Two other points are worth keeping in mind. The model's assumptions (independent goals, a constant pace) are approximations. And a distribution only meets the odds once you've converted the odds into a probability, margin included.

Common misconception

"A statistical model gives you the exact score of the match."

A Poisson/xG model gives every possible score a probability. In football, even the likeliest score in a realistic distribution rarely tops 15 to 20%. Every other conceivable score shares the rest.

What is a Poisson model applied to football?

A Poisson model gives each team an expected average number of goals for a match, then works out the probability of scoring 0, 1, 2, 3 or more goals from that average alone. Combine the two distributions, one per team, and you get a probability for every exact score (1-0, 2-1, 0-0). Add them up and you get a probability for every outcome of the 1X2 or Over/Under market.

The idea goes back to Maher (1982). He was one of the first to model each team with an attack and a defence strength in a Poisson model, and to test that approach on real league data. His verdict was already nuanced: an independent Poisson describes the observed scores reasonably well, with systematic gaps you can identify, not just noise.

The model is easy to describe, which explains why it has lasted. Two goal averages are enough to cover every outcome of a match. That simplicity has a cost, because it rests on assumptions you should know before reading a result.

What does Poisson's law assume?

Two assumptions carry the whole model. Goals are independent of each other, and the scoring rate stays constant for the entire match. Neither is strictly true in football. The questions are how far off they are, and what that gap changes.

Model assumptions vs. realityWhat an independent Poisson assumes, and what the data show
Model assumption What it assumes What the data show
Independence of goalsA team's goal count doesn't depend on the other team'sA weak but measured correlation between the two, close to 0.2 according to Maher (1982)
Constant paceThe probability of scoring is the same in minute 5 as in minute 85Pace varies with the score (a team that's behind attacks more, a team that's ahead can ease off)
Fixed team strengthAttacking and defensive strength don't change during the matchRed cards, injuries and tactical changes shift real strength mid-match
Context-independent scoresEach match is treated in isolationSchedule, stakes and fatigue affect the real pace, which the goal average alone doesn't capture

The correlation Maher measured between the two teams' goals isn't zero, but it's weak: around 0.2. Dixon and Coles (1997) set out to correct that gap fifteen years later. They added a dependence parameter that adjusts the probability of close scores (0-0, 1-0, 0-1, 1-1), the ones a strictly independent Poisson represents worst. Their work has a second contribution that gets cited less often. They tested the corrected model against bookmakers' odds, to see whether it found exploitable price gaps on the English market of the mid-1990s.

That 0.2 looks small when you read it in the table. It's still the figure Dixon and Coles went after, and it shows how a small bend in one assumption can distort the most common scores.

Don't confuse

An assumption is a simplifying choice, made to keep the calculation workable. A fact is what the data show once the model is checked against them. To use a Poisson/xG model well, you need to know which of its assumptions strays furthest on the match you're looking at.

xG, an input to the model

Expected goals (xG) measure the quality of chances created, based on their position, their build-up and the context of the move. Used as an input, they give a steadier goal average than a plain average of goals scored, which swings with finishing luck from one match to the next.

So xG has a clear place in the chain. It feeds the input parameter of a Poisson model and never comes out of the model as a result. A team can post a high xG over several matches in a row without the model announcing a sure win. xG informs an average, and it removes none of the assumptions of the model that uses it next.

The guide on AI applied to football covers the full angle: xG, form, in-game indicators, and why football is so hard to model.

xG, form data and models applied to football →

Checking the distribution against the market

A distribution from a model and a bookmaker's odds answer two different questions. Mixing them up means comparing a calculation with a price. The odds hold an estimate, but also a margin and the exposure that comes with stakes already taken, and no Poisson model handles either.

To compare them on common ground, convert the odds into an implied probability, then put the model's probability on the same outcome. If the model's estimate beats what the odds require, the gap amounts to fair odds that differ from the displayed price. Treat that as a signal to question, never a certainty: the gap can just as easily point to a weakness in the model as to an inefficiency in the market.

Dixon and Coles asked this question in 1997. Does a better-specified model find price gaps that hold up against a real market? Their answer was positive on their original sample, but it doesn't generalise automatically. A betting market adjusts, and a gap you can see one season can close the next once other players exploit it.

The Over/Under market bears directly on a total number of goals. That's where a Poisson distribution meets a price most naturally.

The totals market, and how it settles →

What a Poisson/xG model allows, and what it doesn't

What it lets you do: combine two goal averages into a complete distribution across every possible score, and place each market outcome on that distribution.

What it lets you estimate: a probability per score or outcome, with a margin of error that depends directly on how well the independence and constant-pace assumptions hold on the match at hand.

What it never lets you conclude: the score of the match, or even the likeliest outcome as a settled result. The review by Bunker and Susnjak, already cited by the site's AI football guide, notes that football remains one of the hardest sports to model because of its low goal count.

So judging a model on a single match makes no statistical sense. You need a track record, and how much data it takes to read that record depends on parameters you can identify. I'd put this ahead of every other point on the page.

What the amount of data needed depends on →

Responsible gambling: a model doesn't remove the risk. Sports betting carries a risk of financial loss. Set yourself a budget, don't chase your losses, and use the deposit limits and self-exclusion tools available. Learn more about responsible gambling.

Where OddScore stands relative to these models

OddScore doesn't build a score model from team statistics. The platform collects the odds of several bookmakers, converts them into implied probabilities, strips out the margin and tracks how they move. In football it also fits a Poisson distribution to the Over/Under market to show the goals the bookmakers expect: that's a reading of the market, not a model of its own.

A Poisson/xG model and a market reading answer two related questions. One estimates a distribution from goal averages. The other reads what several operators collectively think about an outcome, price by price. They can inform each other, neither replaces the other, and neither is a prediction. On OddScore, the AI reading sums up what the market says before the match: it's not a bet to follow, and there's no staking advice.

The guide linking odds and predictions explains the role odds play in a broader analysis: one data point among others, never an answer.

Fold odds into an analysis, without copying them →

Put it into practice

Apply this guide to real odds.

Dig into the market

Odds movements are only part of the story. Here are the next topics to read.

Frequently asked questions

What is a Poisson model applied to football?

It's a statistical model that estimates an average number of goals for each team, then works out the probability of each score from that average. It gives you a distribution of scores, not one score.

Are xG and Poisson's law the same thing?

No. xG measures the quality of chances created in a match that's already played or under way. Poisson's law is a probability model that can take a goal average (from xG or not) as an input before a match.

Why doesn't football follow an exact Poisson distribution?

Its two core assumptions are only approximate: independent goals and a constant scoring rate over 90 minutes. Goals in the same match are slightly correlated, and the pace shifts with the score.

Can a Poisson/xG model predict an exact score?

No. It gives every possible score a probability, and even the likeliest score stays a minority outcome in the distribution. A model that named one score would no longer be a probability model.

How do you compare a statistical model with a bookmaker's odds?

Convert the odds into an implied probability, then compare it with the model's probability for the same outcome. If the two differ, doubt the model before you doubt the market.

Do bookmakers use this kind of model?

Variants of the Poisson model are among the long-standing tools of sports pricing, next to other methods. They don't explain a displayed price on their own, because the price also carries the operator's margin and exposure.

Does OddScore provide predictions?

No. OddScore compares the odds of several bookmakers, strips out the margin and tracks how they move. The AI reading sums up what the market says: it's not a bet to follow, and there's no staking advice.

Sources & methodology

Methodological transparency

This page draws on the two founding works on Poisson-based football score modelling, on the academic review of team-sport outcome prediction already cited by the site's AI football guide, and on the UK Gambling Commission and BeGambleAware.

  1. Reuse the independent Poisson model's assumptions as Maher formalised them in 1982, without simplifying them.
  2. Present the correlation correction by Dixon and Coles (1997) as the academic answer to the independence limit.
  3. Treat xG as one input among others, never as a model output or a result in itself.
  4. Keep a model's probability distribution apart from a market price, which carries a margin and commercial exposure.

The model offers a distribution. The market offers a price.

OddScore compares the odds of several bookmakers, strips out the margin and tracks how they move up to kick-off. No bet to follow, no staking advice.

Discover OddScore To understand the market. Not to predict the future.