← Blog · Methodology Series
Bayesian Poisson Models for Football Score Prediction
Published: June 2026 · 7 min read
At the heart of FootballMoney's prediction engine is a Bayesian hierarchical Poisson model — the same class of models that Dixon and Coles introduced to football analytics in 1997. With 53.0% accuracy across 15,292 matches, it remains our strongest single predictor.
1. Why Poisson for Football?
Football goals are rare, discrete, non-negative events that occur at a roughly constant average rate over a fixed 90-minute period. The Poisson distribution is the natural choice: it models the probability of observing exactly k goals given an expected rate λ.
λ = expected goals (e.g. 1.5), k = actual goals (0, 1, 2, ...)
For a match between Team A at home and Team B away, the expected goal rates are:
λaway = baseline × exp(attackB − defenseA)
The key insight: each team has an attack strength (how many goals they score above average) and a defense strength (how many they concede below average). The expected goals in a match is the product of the attacking team's attack strength and the defending team's defensive weakness.
2. The Bayesian Advantage: Priors
A pure Poisson model would estimate attack/defense parameters from data alone. But early in a season — or for newly promoted teams — data is sparse. This is where the Bayesian approach shines: we don't start from zero.
Instead, we place prior distributions on each parameter. For a newly promoted Championship side, the prior says: "You're probably about one standard deviation below the Premier League average in attack, with moderate uncertainty." The model starts skeptical and gets more confident as match data accumulates.
Conjugate Prior: Gamma-Poisson
We use a Gamma(α, β) prior for the goal rate λ. The Gamma distribution is the conjugate prior for the Poisson — meaning the posterior after observing data is also a Gamma distribution. This makes updating computationally efficient: after observing G goals in N matches, the posterior is simply Gamma(α + G, β + N).
3. Hierarchical Structure
Our model is hierarchical: parameters aren't estimated independently for each team. Instead, league-level hyperparameters define the distribution from which individual team parameters are drawn. This provides partial pooling — teams "borrow" information from the league average when their own data is thin.
Three-Level Hierarchy
- Global level: overall goal rate across all leagues (~2.7 goals/match)
- League level: league-specific baseline (Bundesliga ~3.1 goals/match, Serie A ~2.6)
- Team level: team-specific attack/defense deviations from league baseline
4. From Goals to Win/Draw/Loss Probabilities
Once we have λhome and λaway, we can compute the probability of every possible scoreline:
Then sum over all scorelines:
- P(home win) = sum of P(i,j) for all i > j
- P(draw) = sum of P(i,j) for all i = j
- P(away win) = sum of P(i,j) for all i < j
We cap i and j at 10 goals each (101 scorelines) since the probability of >10 goals is vanishingly small (< 0.01%).
5. The Low-Scoring Correlation Fix
A naive assumption is that home and away goals are independent — but real football shows a slight negative correlation at low scores. 0-0 and 1-1 draws occur more often than the independent Poisson model predicts, while 1-0 and 0-1 results are slightly less frequent.
We apply the Dixon-Coles correction: a parameter ρ that adjusts the probability of low-scoring outcomes (0-0, 1-0, 0-1, 1-1) to match empirical frequencies. This correction improves Brier score by approximately 0.005 — small but meaningful over thousands of predictions.
τ adjusts only i,j ∈ {0,1} scorelines; all others remain unchanged.
6. Why Ensemble Beats Single Models
Our Bayesian Poisson achieves 53.0% accuracy — but the ensemble (48.7%) has better calibration (Brier 0.190 vs 0.205). Why?
The Bayesian Poisson model is optimistic — it produces sharp, confident probability estimates that are right more often but wrong more confidently when wrong. The Gradient Boosted model (GB-RF) is more conservative, spreading probability across all three outcomes. Averaging them produces the best of both worlds: well-calibrated probabilities that neither over- nor under-estimate certainty.
For value betting, calibration matters more than accuracy. A model that says 55% and is right 55% of the time is far more useful than one that says 70% and is right 55% of the time — because the first enables accurate EV calculation and the second doesn't.
Continue Reading
Previous: How ELO Ratings Work in Football
Next: Kelly Criterion: The Mathematics of Optimal Bet Sizing — how to turn model probabilities into profitable position sizes.