Inputs and formula
For goal count k and expected rate lambda:
P(X = k) = e^(-lambda) x lambda^k / k!
OpenStax gives the underlying distribution, including the equality of its mean and variance under the basic model.
One-team example
For lambda = 1.40:
- P(0) = e^(-1.40) = 0.2466.
- P(1) = e^(-1.40) x 1.40 = 0.3452.
- P(2) = e^(-1.40) x 1.40^2 / 2 = 0.2417.
The displayed probabilities are rounded. Microsoft's POISSON.DIST documentation provides a spreadsheet implementation for individual and cumulative checks.
Scoreline calculation
If home lambda is 1.40 and away lambda is 0.90, the independent probability of 1-0 is P(Home=1) x P(Away=0). Away P(0) is e^(-0.90) = 0.4066, so P(1-0) is 0.3452 x 0.4066 = 0.1404, or 14.04% before model and rounding error.
Rate estimation
Do not use raw season goals blindly. Estimate attacking and defensive strength with only pre-match data, account for venue and recency, and shrink sparse teams toward a suitable baseline. Record promoted teams and competition changes.
Assumption audit
| Assumption | Check |
|---|---|
| Constant rate within modelled match | Residuals by score and time state |
| Equidispersion | Compare variance with mean |
| Home-away independence | Inspect score residuals and low-score cells |
| Stable team strength | Rolling out-of-sample performance |
Dixon and Coles demonstrate one football-specific adjustment to score dependence. That does not make one parameterization universally correct.
Build and inspect the score grid
With separate home and away rates, calculate probabilities from 0 to a declared goal ceiling for each team, then multiply the two one-team probabilities for every score cell. Sum cells for home win, draw, away win or a totals outcome.
Quality checks should include:
| Check | Expected result |
|---|---|
| One-team probability sum | Close to 1 after allowing for the truncated tail |
| Score-grid sum | Close to 1 for the same ceiling |
| Outcome partition | Home, draw and away sums equal the grid sum |
| Rate increase | Higher rate shifts mass toward larger goal counts |
| Recalculation | Independent code reproduces worked values within rounding |
Diagnose assumption failure
Compare observed and predicted frequencies for 0, 1, 2 and higher goals. Inspect variance relative to the mean and the frequency of low-score draws. Segment by league and season. A model can have a plausible average goal rate while misallocating probability across exact scores.
Extensions such as team attack and defence effects, time weighting or low-score dependence should each be evaluated against the basic model on later matches. Keep the base version in the report. Without that comparison, extra parameters show flexibility, not evidence of a better forecast.
The Dixon-Coles football score model provides the football-specific Poisson reference for the modelling choice below.
Publish the rate-estimation window and update schedule beside any output. Two analysts can use the same Poisson formula and obtain different forecasts because the substantive modelling choice sits in the inputs.
Related resources
Apply the grid in Poisson over/under calculations or compare it with other model families.
Continue learning
- Next guide: Weather and Pitch Conditions in Football Models
- Related guide: Expected Goals (xG) Explained
- Definition: Poisson Distribution
Assumptions and limitations
All rates are illustrative. A truncated grid must retain and report omitted tail mass. Red cards, tactical shifts and correlated scoring can violate the basic assumptions, so future-match calibration and scoring remain release requirements.

