AI Football Predictions, Explained Without the Marketing
Reviewed 2026-08-29 · 1365 words · analysis, not advice
AI Football Predictions, Explained Without the Marketing
"AI predicts football matches" is a sentence that carries no information. To carry information it has to answer three questions: which models, trained on what, and how would you know if the output is any good.
Here are the answers, with the uncomfortable parts included.
Component one: Elo ratings
Elo maintains one number per team representing strength. After each match, the winner takes points from the loser; how many depends on the rating gap and the goal difference.
Three practical decisions matter more than the formula itself:
Update size. We use K=20. Set it too high and the rating chases every result; too low and it reacts too slowly to genuine change.
League-specific home advantage. Home advantage is not a global constant. It is fitted from the last two seasons of each league and shrunk toward a conservative prior, so a league with a small sample does not produce an extreme value.
Between-season regression. At the start of each season, every rating is pulled 25% toward the mean. A team that finished a great season does not resume from that peak, because the squad, the manager and the motivation have all changed.
Elo answers "who is stronger". It cannot answer "how many goals".
Component two: the Poisson goals model
A Poisson distribution fits counts of relatively rare events in a fixed window — which is exactly what goals in ninety minutes are.
Each team gets an attack ratio and a defence ratio relative to its league average. From these come the expected scoring rates:
home rate = league average home goals × home attack × away defence
away rate = league average away goals × away attack × home defence
Two technical details decide whether this works:
Time decay. A match from two months ago should count for more than one from two years ago. A weight of 0.0065 per day inside a 730-day window produces that ordering. Old matches do not vanish; they simply weigh less.
Shrinkage. A team with few matches is pulled toward 1.0 — toward the league average. Without it, a side that scored five goals in two games would be handed a legendary attack rating.
Crucially, the ratios are computed per league. An attack ratio of 1.4 in one league and 1.4 in another are not the same thing in absolute terms, because each is measured against a different league average.
Component three: the Dixon-Coles correction
Pure Poisson assumes each team's goal count is independent of the other's. That assumption fails specifically in the low-scoring results.
The scorelines 0-0, 1-0, 0-1 and 1-1 occur at frequencies that differ from what pure Poisson predicts. The Dixon-Coles correction adds a parameter that re-weights exactly those four cells, fitted from the data by weighted likelihood rather than set by hand.
It looks like a small adjustment. It is not, because two of those four cells are draws, and the low cells also sit entirely on the under side of the 2.5-goal market. A correction aimed at four cells moves the draw probability and both goals markets at once.
Component four: gradient boosting
The first three are structural models: they assume a shape and fit parameters to it. The fourth assumes nothing and learns from the data.
The boosting model receives features derived from the others and from the match history: the ratings, attack and defence ratios, expected rates, last-five goal difference, rest days, opponent-adjusted form, draw rate, home advantage and sample sizes.
Two self-imposed constraints:
- Market prices are not a feature. Full stop. Including them would teach the model to imitate the price.
- Heavy regularisation. An unconstrained boosting model on football data learns the noise. Less depth, more penalty.
Combining four models into one
Not by simple averaging. The weights are grid-searched to minimise log-loss — a metric that punishes confident wrong answers severely — on prior seasons only. The weights used for a given test season are fitted exclusively on what came before it.
Then comes the step most products skip: calibration. Raw ensemble probabilities are almost always biased, usually overconfident at the extremes. Isotonic regression re-maps the output so that a stated 60% occurs around 60% of the time. It runs per outcome and only where there are at least 300 samples.
How we know there is no leakage
The most common failure in sports modelling is leakage: training, unintentionally, on information that did not exist at prediction time. The result is an impressive backtest and a worthless model.
Two defences run in production:
- Feature construction takes an as-of timestamp and raises an error if any input is dated on or after it.
- The backtest walks forward season by season. Weights, the correction parameter and the calibration for season k are fitted only on seasons before k.
What the backtest actually says
The backtest runs on five major European leagues across several seasons, walking forward. Two findings, both published as they are:
| Result | |
|---|---|
| Ensemble 1X2 accuracy | roughly 52–53% across test seasons |
| Ensemble vs market in log-loss | market closing price still better by about 0.02–0.03 |
The second number is the important one. It says the market, after removing margin, is an excellent probability estimator — and that any product claiming to beat it comprehensively is selling a story.
That is precisely why the product is built around selectivity rather than volume: act only where the gap between model and price is large enough to survive that deficit.
Confidence and data quality are separate numbers
Two more numbers accompany every probability, and people conflate them constantly.
Confidence blends four factors: agreement between models (35%), calibration reliability (30%), data quality (20%) and sample size (15%). It measures how stable the estimate is, not what will happen.
Data quality is built from weighted sources: history 35 (saturating around 40 matches per team), odds depth 15 (saturating around five books), xG 15, lineups 15, player data 10, injuries 5, news 5. A fixture with results only and two price sources scores about 41 — "limited". Below 40 it is flagged explicitly.
What the model does not do
An honest capability list needs a limits list beside it:
- xG is not yet a full model feature. It is available in recent data files and counts toward data quality, but folding it into the feature set is still ahead of us.
- Player availability and lineups do not move the probability. They affect data quality and the uncertainty budget — they can make an edge not worth acting on, but they do not shift the number itself.
- League-specific tuning of the update rate and time decay is still global. Leagues behave differently, and that leaves accuracy on the table.
- The upset radar waits on player data. The draw radar is live, derived from draw probability versus league norm, the goals matrix and rating closeness.
- No discipline markets. Cards and dismissals are not produced.
Five questions to ask any prediction model
None of these require technical knowledge, and all five separate a product from a presentation.
- Are market odds an input feature?
- Were parameters chosen on data the reported accuracy was measured on?
- Are the probabilities calibrated, and is the calibration published?
- What happens when there is no data — is there a number for every fixture on earth?
- Where are the losses?
The fifth is the simplest and the most revealing.
Where to look next
- How WinPIQ analyses football — the same pipeline, in product form.
- Performance — calibration buckets, Brier score and the backtest exactly as it stands, including the market gap.
- The verified record — every settled prediction, wins and losses, with timestamps and hashes.
18+. WinPIQ is an analysis tool, not advice and not a promise. Betting can be addictive and money can be lost. Only stake what you can afford to lose, and if betting stops being entertainment, seek help. WinPIQ is not affiliated with Winner or the Israeli Council for the Regulation of Sports Betting.
FAQ
- Is this really AI, or just statistics?
- Both, deliberately. Three components are classical statistical models — Elo ratings, a Poisson goals model and a Dixon-Coles correction — and the fourth is a gradient boosting machine-learning model. They are weighted together and calibrated. The label matters far less than whether the output probabilities hold up, and that is measurable.
- Does the model look at bookmaker odds?
- No. Market prices are never a feature. If they were, the model would learn to imitate the price and every apparent edge would vanish by construction. A separate context-adjusted estimate that blends the model with a no-vig market prior does exist internally, but it is never published as the prediction.
- How accurate is it?
- In a walk-forward backtest across five major European leagues, the ensemble lands around 52-53% accuracy on 1X2, and the market's closing price still measures roughly 0.02-0.03 better in log-loss. That gap is published rather than hidden, because it is the single most important fact about what this model can and cannot do.
- What is calibration and why does it matter more than accuracy?
- Calibration asks whether a stated probability happens at the stated rate — do the matches marked 60% win about 60% of the time? A model can post a high hit rate simply by only predicting heavy favourites while being badly calibrated. Calibration is the property that makes a probability usable against a price.
- Why does the system sometimes refuse to give a pick?
- Because most matches do not deserve one. Every fixture is classified into one of thirteen decision states, six of which are explicit PASS states with distinct reasons: price too short, uncertainty too high, models disagree, market too volatile, data quality, or simply no meaningful edge.
18+ · Analysis and probability estimates, not financial advice · not affiliated with any operator · Help: GamCare 0808 8020 133 · BeGambleAware.org