How does Footlab AI compute its football predictions?
For every match, Footlab AI estimates an expected number of goals for each team, then turns those into outcome probabilities with a bivariate Poisson model. The expected number combines six inputs: the recent strength of both teams measured over their last 40 matches (a six-month-old match weighing half as much as a recent one), a pool-anchored world Elo rating, the probable starting line-up, confirmed absences, home advantage, and match context such as a second leg or days of rest. When odds are published for the match, the displayed 1X2 probability combines this estimate with the market consensus, and expected goals are recalibrated to stay consistent with it. The model alone, tested on unseen matches from the top leagues and European cups (16 July 2026), finds the right outcome 53.9% of the time, where random guessing between three outcomes would give 33.3%; the served card, which combines it with the odds, sits at the bookmakers' level.
Model version: 2026-10. Latest functional changes, 5 October 2026: the bookmakers' margin is removed from the odds with the so-called power method, which no longer underestimates heavy favourites; odds are captured a second time shortly before kick-off. Previous: expected goals, scorelines and derived markets recalibrated on the published 1X2 probability, 25 September 2026. Reference backtest: 16 July 2026, 25,424 matches.
What exactly does the model output for a match?
The model outputs a probability for each of the three outcomes (home win, draw, away win), the most likely scoreline, and the probability of a few derived markets computed on the same score matrix.
- 1X2 probabilities, which sum to 100% by construction.
- The most likely exact score, read from a matrix capped at 8 goals per team.
- The probability of over 2.5 goals and the probability that both teams score.
- The probability of a goal before half-time, calibrated on an empirical share of 44% of goals scored in the first half.
Why does the 1X2 probability take market odds into account?
Because that is what proved most accurate. On 19,583 matches with odds across all competitions (measured 5 October 2026), the model alone picks the right outcome 50.5% of the time and the bookmakers' favourite 52.8%. Combining the two matches the market (52.7%, the same pick as the favourite in 98.5% of cases) and stays clearly better calibrated than the model alone (Brier score 0.583 against 0.602). Footlab AI therefore does not beat the bookmakers, it aligns with them: the full comparison, including the return of a stake, is published on the accuracy page.
- The 1X2 odds are the bookmakers' odds, aggregated by our data provider and captured a first time about a day before the match, then again between 90 and 10 minutes before kick-off (the card uses the latest capture), then averaged and stripped of the bookmaker's margin with the so-called power method: it mostly removes the margin from the outsiders, where bookmakers put it, so heavy favourites are no longer underestimated (over 19,583 matches, a favourite announced at 85% won 92% of the time with the previous method, 88% for 87% announced with this one).
- Their weight in the displayed probability ranges from 85% to 95% depending on the model's confidence: 95% when it hesitates. No rule forces the card to take the bookmakers' winner: when the model disagrees with them (18% of matches), this blend decides on its own, and the model keeps its winner when it is confident enough.
- Expected goals, exact scores, goal and half-time probabilities are then recalibrated to match that 1X2 probability exactly. Measured on 16,630 matches: exact scores and half-time better predicted, no market degraded.
- Without published odds (a distant match or an uncovered competition), the prediction is the model's alone. The odds themselves are never displayed.
How is a team's strength measured?
A team's strength is estimated over its last 40 matches, with a weighting that halves the weight of a match every 180 days, corrected for the quality of the opponents faced and for the averages of its competition.
- Goals scored and conceded are blended 80% with expected goals (the provider's official xG where available, otherwise an estimate from shots on target at 0.3192 goals per shot on target, measured over 270,000 matches).
- A team with few recent matches is pulled back towards its competition average (shrinkage at 5 matches), instead of showing an extreme strength derived from three games.
How can two teams that never meet be compared?
Each domestic league is a near-closed pool whose internal matches cancel out: without a correction, the best club in Romania and the best club in Ukraine end up with the same Elo. Footlab AI therefore adds a pool anchor to the club Elo, updated only by cross-pool matches.
- A club's world rating is its club Elo plus the anchor of its league.
- A league's anchor moves only on European cups and international matches, with a coefficient of 24 — the single largest measured gain of the project.
- Women's clubs and youth teams have their own pools: their results do not move the anchor of the men's domestic league.
- Home advantage is worth 60 Elo points in the rating update.
Is the starting line-up taken into account?
Yes: since 9 August 2026, Footlab AI verifies the probable line-up on the web before each match and corrects its prediction based on the announced eleven, its experience and the individual ratings of its players.
- A line-up confirmed by the press takes precedence over one inferred from recent rotations.
- The experience of the eleven and the players' match ratings are rescaled to their league before being compared: a 7.2 rating does not mean the same thing everywhere.
- Confirmed absences (injuries, suspensions) reduce the expected attacking strength of the team concerned.
Why are matches between different leagues handled separately?
Because domestic form barely transfers: measured on the backtest, it retains only 10% of its weight on a cross-league match. It is the most expensive lesson of the project, and it is encoded as such.
- On a cross-pool match, recent domestic form is damped to 10% of its usual weight.
- In exchange, the world Elo gap weighs almost three times more than in domestic play, because pool anchoring finally made that gap comparable.
- Accuracy is measured separately on this segment, continuously, through the cross_pool column of the prediction log.
How often is the model's data refreshed?
Scores are followed minute by minute during matches, standings are recomputed hourly, and injuries as well as Elo ratings are resynchronised daily.
- A prediction is recomputed until kick-off; the last version served is the one that is logged and evaluated.
- The real result is compared with the prediction no earlier than three hours after kick-off.
- A postponed or cancelled match is never counted as an error: it is closed without a result after fourteen days.
What are the model's parameters?
The nine parameters below are the ones that weigh most on the prediction. Each was set by sweeping values on the backtest, then confirmed on a later sample the model had never seen.
| Parameter | Value | What it does |
|---|---|---|
| Form half-life | 180 days | A six-month-old match weighs half as much as a recent one. |
| Shrinkage | 5 matches | A rarely observed team is pulled back towards its competition average. |
| Expected-goals weight | 0.8 | Strength is estimated 80% on expected goals, 20% on actual goals. |
| Pool anchoring coefficient | 24 | Speed at which an entire league rises or falls in the world rating. |
| Home advantage (Elo) | 60 points | Bonus applied to the home team in the rating update. |
| Cross-league damping | 0.1 | Domestic form keeps only 10% of its weight outside its own league. |
| Totals damping | 0.8 | Corrects the overconfidence measured on extreme over-2.5-goals probabilities. |
| First-half goal share | 0.44 | Basis for half-time probabilities. |
| Market weight in the 1X2 | 0.85 to 0.95 | Share of the odds consensus in the displayed probability, when odds are published. Never 1: the model always weighs in. |
What does the model not do?
This list matters as much as the previous one. It holds two kinds of items: what Footlab AI rules out on principle, and what was implemented, measured, found useless, then left at zero in the code.
- No odds displayed, no affiliate links, no operator recommended. Published odds serve only as an input to the 1X2 calculation (see above): Footlab AI never shows them and never points to a bookmaker.
- No weather data. Neither temperature, rain nor wind enters the computation.
- No estimate of motivation or declared stakes. A dead-rubber penalty was implemented and tested from 0.05 to 0.2: rejected at every weight, left at zero.
- No referee effect on the result or on goals. The appointed referee only enters the probability of the number of cards, and only when known before the match, about 3% of fixtures: for all others, that market is computed from the two teams alone.
- No standalone goalkeeper effect, and no standalone defensive-absence effect. Both were tested in July 2026: the first degrades results monotonically, the second is indistinguishable from noise. Both sit at zero.
- No congestion effect beyond rest days between matches. Tested, no gain.
- No per-league correction of the draw rate. Tested, it only degrades: leagues with frequent draws are low-scoring leagues, which competition averages already encode.
- No prediction of injuries, transfers or coaching decisions.
Statistical analysis based on Footlab AI data (Poisson model calibrated on 17,000+ matches, combined with the consensus of published odds when available). Not betting advice.
Footlab AI (footlab.ai) is an independent software product. It is unrelated to FOOTLAB World, the indoor football centre franchise, and unrelated to Footy Labs.