A Poisson goals model takes two numbers, each team's expected goals, adds them together, and gives you the probability of the match finishing over or under any line you choose. It is clean, fast, and gets the general shape of most matches reasonably well. It also relies on two assumptions that real football does not always follow. Knowing where those assumptions start to break down is an important part of using the model properly.
The two assumptions doing the work
A Poisson model treats goals as arriving independently of each other and at a constant rate throughout the match. Independence means that neither team's scoring changes the other's probability of scoring next. A goal for one side does not change the underlying rate for either team going forward.
Constant rate means a team is treated as being just as likely to score in minute 3 as in minute 87. Both are simplifications rather than facts about football, and both fail in specific, well-understood situations.
Where constant rate breaks: game state
A team leading 2-0 with twenty minutes left does not play like a team level at 0–0. Most sides sit deeper, take fewer risks, and concede possession more willingly once a lead is worth protecting. This can lower their own scoring rate while giving the trailing team more opportunities.
A pre-match Poisson model, built from season-long averages, has no way to account for that change in game state during the match. It is not necessarily wrong about the average match. It simply is not describing the same conditions once the score has moved significantly away from level.
Where independence breaks: low scorelines
Treating each team's goals as fully independent can slightly mis-price the smallest scorelines, such as 0-0, 1-0, 0-1 and 1-1. In reality, a cagey, low-event match can suppress both teams' scoring together rather than affecting each team's scoring independently.
This is well documented in football analytics literature. The standard correction associated with Dixon and Coles' 1997 work applies a small adjustment specifically to these low-scoring outcomes, while leaving mid-range and high scorelines close to what a standard independent Poisson model predicts.
The takeaway is not that Poisson is unreliable. Its weakest area is the tightest, lowest-scoring matches, which is also where a single goal can change the probabilities most.
What the shape actually looks like
Run a low-scoring and a high-scoring match through the model, each against a line roughly through the middle of its own distribution:
- λ = 1.35, line 1.5 — 60.9% under, 39.1% over
- λ = 3.20, line 3.5 — 60.3% under, 39.8% over
Two very different matches, two very different expected-goal totals, and almost the same over/under split. That is because both lines sit in a similar position within their own distributions.
The raw expected-goals number therefore matters less on its own than where the line falls relative to it. A model that reports λ without comparing it with the actual line being offered is only giving you part of the picture.
Total goals hides which team is doing the scoring
A combined total of 2.60 expected goals can come from very different splits. For a total-goals over/under market, the split makes little difference. For example, 1.35 and 1.25 produce similar over/under probabilities to 2.00 and 0.60.
For a both-teams-to-score market, however, the split is much more important because the calculation depends on each team's scoring rate individually, not just the combined total:
- 1.70 and 0.90 (combined 2.60, lopsided) - the weaker attack fails to score 40.7% of the time on its own, giving a both-teams-to-score probability of about 48.5%
- 1.30 and 1.30 (same combined 2.60, even split) - both sides score often enough individually that both-teams-to-score rises to about 52.9%
Same total expected goals, but more than four percentage points apart on a market that only cares about the split.
A model that reports one combined number and stops there has lost exactly the information this market needs. The two team-level rates need to stay separate and be used to calculate their individual probabilities before they are combined.
Using it as a baseline, not a forecast
None of this is a reason to distrust the model. It is a reason to know which outputs deserve more scrutiny.
The combined total is a useful and fast estimate for total-goals markets in an average match under normal conditions. It is less reliable for anything that depends on which team is scoring specifically, for matches where the game state has already changed significantly, and for tight, low-scoring contests where the model's independence assumption has more influence.
- Treat pre-match output as a starting point. It reflects season-long scoring rates, not this week's team news, weather, or fixture congestion - adjust the inputs before trusting the output, rather than trusting the output and hoping the inputs still hold.
- Discount it hard around in-play events. A red card or an early goal changes the game state the model has no way to see; re-estimate expected goals for the rest of the match rather than extrapolating the pre-match number forward.
- Be most skeptical of it in the tightest matches. The scorelines where independence breaks down hardest - 0–0, 1–0, 1–1 - are exactly the low-event, cagey matches where the model's simplifying assumptions are doing the most work.
Run your own two numbers through the expected goals calculator. It is a useful first estimate, provided you treat it as one.