- What a Poisson football model estimates
- Step 1: estimate the home and away goal rates
- Step 2: calculate each team's goal probabilities
- Step 3: convert the score matrix into event probabilities
- A repeatable spreadsheet or code workflow
- Where the independent Poisson model can be wrong
- Validate probabilities, not only predicted scores
The Poisson distribution is a useful baseline for football score prediction because it converts an expected goal rate into probabilities of scoring zero, one, two or more goals. Estimate one rate for the home team and another for the away team, then combine the two distributions into a score matrix. The matrix can produce probabilities for correct scores, match results, total-goals lines and both-teams-to-score events.
The Poisson formula does not make the forecast reliable by itself. Most of the modelling work occurs before the formula is used: selecting the historical sample, accounting for opponent strength, estimating home advantage and deciding how quickly old matches should lose influence. The standard model also assumes fixed scoring rates and independent team goal totals. Those assumptions are approximations, so the resulting probabilities require out-of-sample validation rather than blind acceptance.
For a related perspective, see Correct Score Prediction: A Practical Probability Framework.
What a Poisson football model estimates
Let X be the home team's goal total and Y the away team's goal total. The standard model specifies:
X follows a Poisson distribution with rate λH, and Y follows a Poisson distribution with rate λA.
λH and λA are the model's expected goal totals for this particular fixture. They are rates, not score predictions, and do not need to be whole numbers. A home rate of 1.60 means that across many comparable repetitions generated by the model, the home team would average 1.60 goals.
The basic specification makes three assumptions:
For a related perspective, see How to Predict Both Teams to Score (BTTS) in Football.
- Goals are counts measured over a fixed match interval, usually regulation time plus stoppage time. The historical data must use the same definition.
- Each team's scoring rate is constant over that interval.
- Conditional on λH and λA, the two teams' final goal totals are independent.
None of these assumptions is literally true in every match. A red card, injury, early goal or tactical change can alter scoring intensity. The value of the baseline model is that its assumptions are explicit, allowing systematic errors to be identified and tested.
Step 1: estimate the home and away goal rates
The Poisson distribution does not estimate λH or λA. Those rates must be supplied by historical data or another predictive model. One simple approach separates home and away scoring and concession records, using league averages as baselines.
Define the following ratios:
- Home attack strength = the home team's average home goals scored divided by the league average home goals.
- Home defence multiplier = the home team's average home goals conceded divided by the league average away goals.
- Away attack strength = the away team's average away goals scored divided by the league average away goals.
- Away defence multiplier = the away team's average away goals conceded divided by the league average home goals.
The estimated fixture rates are then:
λH = league home-goal average × home attack strength × away defence multiplier
λA = league away-goal average × away attack strength × home defence multiplier
For a fictional example, suppose league averages are 1.50 home goals and 1.20 away goals. A home attack multiplier of 1.10 and an away defence multiplier of 0.95 give λH = 1.50 × 1.10 × 0.95 = 1.5675. An away attack multiplier of 0.85 and a home defence multiplier of 0.90 give λA = 1.20 × 0.85 × 0.90 = 0.918. The later calculations use rounded illustrative rates of 1.6 and 0.9; a working model should retain the unrounded estimates.
Raw team averages can be unstable when samples are short or schedules are uneven. More robust approaches use time weighting, regression or partial pooling. A common log-linear specification expresses a team's scoring rate as a combination of home advantage, attacking strength and opponent defensive strength. Regularisation shrinks weakly supported team estimates toward the competition average rather than allowing a small number of matches to create extreme rates.
Expected-goals data can also be used to estimate λH and λA. This may reduce sensitivity to short-run finishing variation, but it does not remove parameter uncertainty. Inputs must be defined consistently across teams, venues, seasons and data sources.
Step 2: calculate each team's goal probabilities
For a Poisson variable with rate λ, the probability of exactly k goals, where k is a non-negative integer, is:
P(X = k) = e−λ × λk / k!
Here, e is the exponential constant and k! is the factorial of k. Apply the formula separately to the home and away rates. With λH = 1.6 and λA = 0.9, the marginal goal probabilities are:
| Goals | Home probability | Away probability |
|---|---|---|
| 0 | 20.19% | 40.66% |
| 1 | 32.30% | 36.59% |
| 2 | 25.84% | 16.47% |
| 3 | 13.78% | 4.94% |
| 4 | 5.51% | 1.11% |
| 5 | 1.76% | 0.20% |
Under the conditional-independence assumption, multiply the corresponding marginal probabilities to obtain a scoreline probability:
P(home h, away a) = P(X = h) × P(Y = a)
For example, P(1–0) = 32.30% × 40.66% = 13.13%. The probabilities of 1–1 and 2–0 are approximately 11.82% and 10.51%. In this example, 1–0 is the largest individual score cell, but it still has probability close to 13%. The modal scoreline is therefore not a high-certainty forecast.
A finite score matrix excludes high-scoring tails. A matrix from zero to five goals for both teams retains P(X ≤ 5) × P(Y ≤ 5), which is approximately 99.37% for rates of 1.6 and 0.9. Increase the maximum goal count when rates are higher or when the omitted probability is too large for the intended use.
Step 3: convert the score matrix into event probabilities
The score matrix is the central output. Individual cells are correct-score probabilities; broader events are sums of relevant cells.
- Home win: sum cells where the home-goal count exceeds the away-goal count.
- Draw: sum diagonal cells where both teams score the same number of goals.
- Away win: sum cells where the away-goal count exceeds the home-goal count.
- Both teams to score: sum cells where both teams score at least once.
- Over or under a total: group score cells according to h + a.
For λH = 1.6 and λA = 0.9, the model gives approximately 53.8% for a home win, 25.0% for a draw and 21.2% for an away win.
Some events have direct shortcuts. Under independent Poisson scoring, total goals follow a Poisson distribution with rate λH + λA. Here, the total-goals rate is 2.5. Therefore:
P(over 2.5 goals) = P(total goals ≥ 3) = 1 − e−2.5 × (1 + 2.5 + 2.52/2) = 45.6%
The complementary under-2.5 probability is 54.4%.
Both teams to score can be calculated without summing the matrix:
P(BTTS) = (1 − e−λH) × (1 − e−λA)
For the example, this is approximately 47.4%. The 0–0 probability is e−(λH + λA), or about 8.21%.
Every market probability remains conditional on the estimated rates and model assumptions. An error in λH or λA propagates through all derived probabilities.
A repeatable spreadsheet or code workflow
A basic implementation follows the same sequence in a spreadsheet, database query or statistical language:
- Choose a historical sample and define home and away observations consistently.
- Estimate league baselines plus attacking and defensive effects using only information available before the fixture.
- Calculate λH and λA, retaining unrounded values internally.
- Generate marginal goal probabilities from zero to a maximum that leaves an acceptably small omitted tail.
- Multiply home and away marginals to create the score matrix.
- Check the retained matrix probability and calculate the omitted tail explicitly.
- Aggregate cells into result, total-goals and scoring-event probabilities.
- Store each forecast, data cut-off and model version before the match is played.
In a spreadsheet, repeated factorial calculations are unnecessary. Start with P(0) = e−λ, then calculate successive cells using:
P(k + 1) = P(k) × λ / (k + 1)
Do not renormalise a matrix when its missing tail is material. Renormalisation incorrectly redistributes omitted high-score probability across retained scorelines. Extend the matrix instead. Versioning the inputs and forecasts is equally important: without dated records, an apparent historical test can inadvertently use information that was unavailable when the forecast should have been made.
Where the independent Poisson model can be wrong
The basic model is useful partly because its limitations can be stated and tested directly.
Goal dependence
Home and away final goal totals may not be conditionally independent. Match state changes incentives: an early lead can reduce one team's attacking intensity, while a late equaliser can make the remaining minutes more open. A bivariate Poisson model can introduce a shared component, although a single correlation parameter cannot reproduce all forms of game-state dependence.
Low-score distortion
Independent Poisson models can misstate frequencies of 0–0, 1–0, 0–1 and 1–1 results. The Dixon-Coles adjustment modifies these low-score cells through a dependence parameter while leaving most of the matrix unchanged. It should be adopted only if out-of-sample testing identifies a persistent low-score calibration error.
Constant rates and equal mean-variance
A Poisson distribution has variance equal to its mean. Football outcomes may be overdispersed because underlying rates vary with line-ups, tactical decisions, red cards and unobserved match conditions. Negative-binomial models or mixtures of Poisson distributions allow more dispersion. Time-varying and state-dependent models go further by allowing scoring intensity to change during a match.
Parameter uncertainty
A plug-in forecast treats estimated rates as known values. In practice, λH and λA are uncertain, particularly for newly promoted teams, managerial changes and small venue-specific samples. Averaging predictions over plausible rates generally produces wider tails than using a single point estimate. Bootstrap methods, Bayesian posterior prediction or transparent sensitivity ranges can show how dependent the forecast is on uncertain inputs.
Validate probabilities, not only predicted scores
Correct-score hit rate is a weak primary metric because even a well-calibrated model usually assigns limited probability to its most likely scoreline. Evaluation should use the full forecast distribution and fixtures not used to estimate the model.
For time-ordered football data, use rolling validation: fit the model on matches available before a given date, forecast the next block of fixtures, update the model using newly available results and repeat. This prevents later results from influencing earlier forecasts.
- Log loss evaluates the probability assigned to the observed scoreline and heavily penalises forecasts that assigned it very low probability.
- Brier score measures squared probability error for binary events such as BTTS or over 2.5 goals.
- Ranked probability score is appropriate for ordered categories, such as total-goals bands, because it penalises forecasts more heavily when probability is placed far from the observed category.
- Calibration analysis tests whether events forecast near a stated probability occur at roughly that frequency over a sufficiently large sample.
Calibration should be assessed alongside sharpness. A model that always forecasts the league average may be reasonably calibrated in aggregate but insufficiently responsive to fixture-level differences. Compare against league-average and other benchmarks that would genuinely have been available at forecast time.
Sensitivity analysis shows the effect of rate-estimation error. Holding the illustrative away rate at 0.9 and varying the home rate gives:
| Home rate | BTTS | Over 2.5 goals |
|---|---|---|
| 1.4 | 44.7% | 40.4% |
| 1.6 | 47.4% | 45.6% |
| 1.8 | 49.5% | 50.6% |
These figures are illustrative. Moving the home rate from 1.6 to 1.4 reduces the over-2.5 estimate by 5.2 percentage points; moving it to 1.8 increases the estimate by 5.0 points. Reporting a single probability without a view of plausible rate uncertainty can imply more precision than the model supports.
Use Poisson as a testable baseline
A Poisson model makes each stage inspectable: rate estimation, marginal goal probabilities, score-matrix construction and event aggregation. Its main limitation is not the arithmetic but uncertainty in the rates and departures from independence. Preserve the full distribution, quantify omitted tails, test sensitivity to rate changes and evaluate calibration on genuinely future data. More complex score models are justified only when they correct a measured weakness and improve out-of-sample probabilities.
Questions about the model
How many past matches should a Poisson model use?
There is no universal sample length. Short samples react quickly but have high variance; long samples are more stable but can retain outdated information. Time-decay weighting and partial pooling are generally preferable to a rigid match-count cut-off because they reduce the influence of older data without discarding it entirely. Select the weighting scheme through out-of-sample evaluation.
Can expected-goals data be used with a Poisson distribution?
Yes. Expected-goals data can be used to estimate λH and λA, after which the Poisson layer converts those rates into goal-count probabilities. The complete process must still be tested as one forecast system: accurate average expected-goals estimates do not automatically produce calibrated correct-score probabilities.
What maximum goal count should the score matrix include?
Use a maximum that leaves an acceptably small omitted joint probability for the intended precision. For moderate rates, zero through five goals may retain more than 99% of the distribution, but higher-rate fixtures require more rows and columns. Calculate the retained mass and omitted tail rather than selecting a fixed limit by habit.
Why can a Poisson model disagree with observed low scores?
The independent model does not represent every tactical interaction or match-state change. If out-of-sample validation shows systematic errors in 0–0, 1–0, 0–1 or 1–1 probabilities, a Dixon-Coles adjustment or another dependent-score specification may improve calibration. The extension should be retained only when it improves future forecasts.

