Poisson vs Machine Learning for Football Predictions: What Changes
The Poisson model has predicted football since 1982 and still works. Here is exactly where it breaks, what gradient boosting adds, and why the honest answer is that the gap is smaller than vendors claim.
Poisson gets you most of the way there. Machine learning fixes the specific places it breaks. If you want one sentence: Poisson assumes each team's goals are independent draws from a fixed rate, machine learning does not have to assume anything, and the difference shows up mainly in draws, in correlated scorelines, and in situational effects like rest and congestion.
How the Poisson model works
The classical approach, formalised by Maher in 1982 and refined by Dixon and Coles in 1997, is disarmingly simple:
- Give every team an attack strength and a defence strength, estimated from past goals.
- Add a home advantage term.
- Combine them into an expected goals rate for each side in this fixture.
- Assume goals arrive as a Poisson process, and read off the probability of every scoreline.
- Sum the scorelines into 1X2, over/under, both teams to score, correct score.
It is elegant, it runs in a spreadsheet, it needs almost no data, and it is genuinely hard to beat by much. Anyone selling you an AI model should be measured against Poisson, not against a coin flip.
Where Poisson breaks
It under-predicts draws
Independent Poisson draws produce too few 0-0 and 1-1 results relative to reality. Dixon-Coles patched this with an explicit low-score correction, which is a tacit admission that the independence assumption is wrong. Teams at 1-1 with fifteen minutes left behave differently from teams at 0-0 in the tenth minute, and a memoryless process cannot represent that.
Goals are not independent
A team that goes 2-0 up changes how it plays. A team chasing a goal pushes its defensive line up and concedes more. The scoreline causes the rest of the match, and Poisson has no mechanism for it.
Attack and defence strength are not stable
The model estimates a single number per team, usually with exponential decay on older matches. But a team missing its first-choice striker is a different team, and a team three days into a European run is a different team again. Poisson sees one number.
Everything else is not representable
Rest days, travel distance, referee card tendency, weather, motivation once safe from relegation, cup rotation — none of it fits into two strength parameters and a home term.
What machine learning actually adds
| Problem | Poisson | Gradient-boosted trees |
|---|---|---|
| Feature count | Effectively three | Hundreds, selected by the fit |
| Non-linear effects | Not represented | Learned directly |
| Interactions (rest × depth) | Must be hand-specified | Found automatically |
| Draw frequency | Systematically low | Fits whatever the data shows |
| Data needed | A few seasons | Tens of thousands of matches |
| Interpretability | Total | Partial, via feature attribution |
| Overfitting risk | Very low | High, and easy to hide |
The last row is the one that matters and the one vendors skip. A tree ensemble with enough features will fit the training years beautifully and tell you nothing about next weekend. Poisson cannot overfit much, because it barely has anywhere to put the extra flexibility. That structural humility is a real advantage.
The honest size of the gap
Published comparisons in the forecasting literature generally find machine learning ahead of well-specified Poisson variants, but by a margin measured in small fractions of log loss rather than by anything dramatic. Both approaches land close to the bookmaker's closing line, and neither reliably beats it by much.
If someone tells you their neural network doubles the accuracy of a Poisson model, they have either found something remarkable or they have tested on their training data. The second is far more common.
What a serious model looks like in practice
Most production systems are hybrids rather than a bet on one paradigm:
- A rate model — Poisson, bivariate Poisson, or a negative binomial for the overdispersion — supplies the scoreline structure.
- A gradient-boosted model adjusts the rates using contextual features the rate model cannot see.
- A calibration layer maps raw outputs to honest probabilities, because raw model scores are almost never calibrated.
- The market is used as a sanity check: a forecast far from the closing line is usually a bug before it is an edge.
Prodict is built this way, with a reasoning layer on top that turns the numbers into readable drivers — see how it works.
Which should you use?
If you are building your own and have a few seasons of results, build the Poisson model first. It takes an afternoon, it will be respectable, and it gives you the baseline every later model must beat. Skipping straight to a neural network means you will never know whether the complexity bought you anything.
Related: what xG actually measures and how to measure whether a model is any good.
Tim Analitik Prodict
Insinyur & Prediksi Data AI
Analisis ini diproduksi oleh model kecerdasan buatan Prodict. Dengan memproses jutaan poin data sepak bola secara historis dan seketika.