'AI Algorithm' or Poisson? Why Football Prediction Models Should Explain Their Method
Saying 'AI algorithm' is not explaining a method. We describe a transparent football prediction algorithm built on Poisson, Dixon-Coles and holdout validation.
'AI Algorithm' or Poisson? Why Football Prediction Models Should Explain Their Method
September 2026 update: In the top-5 European leagues the model now uses a team rating derived from expected goals (xG) and goals; the Dixon-Coles correction is applied there too (ρ = −0.13, chosen with a 10-season test). In the Süper Lig the same rating method runs on actual goals. In the Champions League a cross-league Elo is used; the 30% shrinkage step described in this article applies only to the older form model that serves as its fallback. Details: methodology.
A single figure such as "82% accuracy" can be misleading without the right metric (Brier), the right baseline and an archive that hasn't been deleted. This article goes one step further back, before we even get to the number. Consider the sentence "our advanced artificial-intelligence algorithm produced this prediction." It sounds impressive and seems hard to object to — because it says nothing concrete to object to. Which model family? What data does it work with? How was it tested? The word "AI" here is not an answer; it is a way of dodging one. The real issue is this: a football prediction algorithm that doesn't explain its method can't be audited even if the metric behind it is right — because it leaves nothing to audit it against.
What Does an "AI-Powered Algorithm" Actually Say?
The phrase "AI-powered football prediction algorithm" shows up often in the prediction market. But it is not a technical explanation, it is a marketing label. The category "artificial intelligence" is incredibly broad: a simple linear regression falls under this umbrella, and so does a deep-learning network with millions of parameters. Their relationship with the data, their error margins and their auditability are entirely different. Saying only "AI" is like a doctor saying only "I gave medication" — whether it was paracetamol or some other treatment, at what dose, for which condition, none of it is clear.
The practical result: when you ask a source that says "AI algorithm" "which statistical family is this model from, what are its parameters, how was it calibrated?", you often get no answer. If there is no answer the claim can't be audited; all that remains is a sentence you are expected to trust.
A Method With a Name: The Poisson Distribution
The core probability engine of +90 Futbol is the Poisson distribution — a method that has been used in the statistics literature since the nineteenth century to model rare/countable events (the number of goals scored in a match fits this definition exactly) and that is taught in textbooks. Poisson-based goal models in football have been tested in academic writing for decades; this is not a closed black box we invented, but a family of methods that has been studied, criticised and improved.
The basic logic is simple: each team's attack and defence strength is estimated from its past matches, and these strengths are combined to produce a probability distribution over the possible scorelines of a match. At +90 this calculation is done with an exponential weighting of the last 12 matches — newer matches carry a stronger signal. All of this detail is written out line by line on the methodology page. This is exactly what separates a "Poisson football prediction" from a black-box "AI" claim: it has a name, it has a literature, and it has a formula you can open and check when the claim is made.
The Dixon-Coles Correction: What Does ρ (rho) Repair?
Pure Poisson has a known weakness: it underestimates how often low-scoring results occur in real life. The reason is that it assumes the two teams' probabilities of scoring are completely independent — yet in real matches, especially cautious, low-scoring ones, there is a slight correlation between the two teams' scores.
This weakness is fixed by a correction method with an established name in the academic literature, the Dixon-Coles correction: it is applied to the low-scoring cells with a single correlation parameter called ρ (rho). At +90 this parameter is calibrated per league and takes a value of around −0.20. This number is a concrete claim that you, too, can question — in a "black-box" "AI" model, a correction parameter like this one, named and shared with its sign and magnitude, usually either doesn't exist or exists but is never mentioned.
Shrinkage: Restraining Overconfidence in Small Samples
If a team has scored a lot of goals in its first 3 matches of the season, it is tempting to encode it from the raw data as an "incredibly strong attack." But a 3-match sample proves almost nothing statistically — the share of luck is very high.
The fix is called shrinkage (regularisation): you pull the team strength estimates toward the league average by a certain proportion, so that the overconfident estimates produced by a small sample are softened. At +90 this proportion is 30% — part of the raw estimate is deliberately pressed toward the league average. In statistics this is one of the standard ways of keeping a model from overfitting its own small amount of data. If left unsaid, the reader can never know how modest the model is about early-season noise.
Half-Life: The Number Behind the Word "Form"
The sentence "we also take form into account" is empty on its own. The last how many matches? Are they all weighted equally, or is the latest match more decisive? How much more decisive?
In the +90 model, the answer to this question hangs on a number: the half-life parameter determines how fast the weight of older matches decays, and, like the other parameters (ρ, shrinkage, home advantage), it is calibrated per league with a grid search using holdout validation. Saying "we take form into account" and saying "the weight of form decays with this decay function, with this parameter" are not the same thing. The second can be audited; the first is only a slogan.
Holdout Validation: The Model Doesn't Write Its Own Exam
The parameters so far (ρ, shrinkage, half-life, home advantage) have to be chosen somehow. The problem: if you choose these parameters to fit the whole of the past season as well as possible, you have measured not how well the model "understands" the past, but how well it has "memorised" it. Such a model performs very differently — and usually worse — on new matches it has never seen.
The standard way to prevent this is holdout validation: the dataset is split in two — the first 70% of the season is used for choosing parameters (train), and the remaining 30% for measuring how those parameters perform on matches they have never seen (test). The parameters are chosen to minimise the Brier score on the test set — not on the train set. If the train and test Brier scores are close to each other, the model hasn't memorised; a big gap between them is a sign of overfitting.
This step is also the foundation of why the Brier score is a reliable metric. A Brier score without holdout validation is not much different from a model grading its own homework.
We Are Held to the Same Standard
We don't want this article to be a text that doesn't test its own claim on itself. So we also say where we fall short: we do not use expected goals (xG) data as a core input everywhere — its coverage is limited, because the only source we can reach (Understat) covers only the top-5 European leagues, and has nothing for the Süper Lig. Where we can reach it, we give xG a small role: the average xG of the last 5 matches "nudges" the goal expectation by at most ±10% — it is a fine adjustment, not the backbone of the model. We also have no squad/line-up data; injury and motivation signals are captured from text but don't yet turn into attack/defence coefficients. Calibration is currently complete only for the Premier League, La Liga and Serie A; the Bundesliga and Ligue 1 are waiting because of a data-provider problem. All of this is written openly on the methodology page — we're not hiding it, because hiding it would be the very thing this article criticises.
There is also a place where we really do use artificial intelligence: to gather match context (injury news, motivation, press statements), +90 AI is used with real-time web search — in the Pro tier only. But that is not the core that produces the numerical probability; the core is still Poisson + Dixon-Coles. We say openly where we use artificial intelligence, what for, and what we don't use it for. That is exactly the difference: not saying "we use AI", but saying where and for what you use it.
We share model performance with the same transparency: the weekly Brier and calibration report is kept up to date on the track record page, and past-season results on the past results page. The numbers aren't deleted; the weeks we got it wrong stay in the archive.
An Open Question for the Reader
The next time you see an "AI-powered prediction algorithm" claim, ask these three questions:
- Does the method have a name — Poisson, regression, a tree-based model, or just "AI"?
- Are its parameters (form weighting, low-score correction, calibration ratio) shared, or are they all behind a "secret algorithm" curtain?
- Was the model fitted to its own past data, or was it tested on data it had never seen (holdout)?
If you can't find an answer to all three, what you are looking at is not a prediction method but a promise of trust — and a promise of trust can't be audited.
You can read our entire method on the methodology page — with its parameter names, its numbers and its admitted limitations.
Frequently Asked Questions
What is the difference between an "AI algorithm" and a statistical model?
"AI algorithm" is a category, not a method — it can cover anything from a simple regression to a complex neural network and doesn't by itself tell you which. In a named statistical method such as Poisson or Dixon-Coles, the formula, the parameters and the literature are known; the claim can be audited from the outside.
What does the Dixon-Coles correction (ρ) do?
The pure Poisson distribution underestimates the real frequency of low-scoring results because it assumes the two teams' scoring is independent of each other. The Dixon-Coles correction adds correlation to the low-scoring cells with a single parameter called ρ, bringing the estimates closer to the real distribution.
What is shrinkage (small-sample correction)?
To guard against rating a team as stronger or weaker than it really is on the basis of a few matches early in the season, team strength estimates are pulled toward the league average by a certain proportion. This is one of the standard ways in statistics of keeping a model from overfitting a small amount of data.
Why is holdout validation necessary?
If a model's parameters are chosen using all of the past data, the model may have memorised the past and perform badly on new matches. Holdout validation reduces this risk by splitting the data into a training set and a test set, choosing the parameters only on the training set, and measuring performance on a test set that has never been seen.
Where is artificial intelligence used in the +90 Futbol model?
The core that produces the numerical probabilities is a Poisson goal model (with an xG-based team rating in the top-5 leagues, and with a Dixon-Coles correction in leagues without xG data); it is not an artificial-intelligence model. Artificial intelligence — +90 AI, with real-time web search — is used only to gather match context, that is, textual signals such as injuries, motivation and press news, and only in the Pro tier. This scope is stated openly on the methodology page.
This is not betting advice.
Past performance is not a guarantee of the future. Numerical probabilities offer a mathematical perspective; the decision is entirely the user's.
GET NEW POSTS · FOLLOW