How our football algorithm actually works.
Two engines, one logic: measure a match with explainable weighted signals, then compare our probability with the market-implied price.
Ligue 1 engine
The Ligue 1 engine relies on 15 phase-weighted criteria. They describe recent momentum, structural quality and the sustainability of team performance.
The 15 tracked criteria
- Potential: the team’s theoretical level across the season.
- League position: current rank and table density around the team.
- Home / away strength: contextual performance split.
- Points form: points collected over the recent window.
- Goals: attacking output and goals conceded in the sample.
- Defensive discipline: solidity, clean sheets and off-ball control.
- Head-to-head: recent direct meetings between both teams.
- xG: quality of chances created and allowed.
- Specific form: contextual reading of the recent sequence.
- Provocation: ability to force high-value situations.
- Discipline: cards, fouls and avoidable instability.
- Control: overall grip on the match and execution stability.
- Offensive finishing: efficiency in front of goal.
- Defensive finishing: sustainability of goals allowed.
- Overperformance: gap between result and underlying production.
Phase-based weighting
Weights are not identical all year. Early season, mid-season and the final sprint do not carry the same information structure. Coefficients are calibrated by phase, then frozen to avoid opportunistic tuning.
International engine
The international engine is used for national-team tournaments, especially the World Cup and the Euros. It reduces small-sample noise with a more structural base.
The 6 national-team building blocks
International Elo
The long-term strength anchor of the national team.
Recent form
Results and content of the latest international matches.
Attacking potential
Ability to create chances and convert territorial dominance.
Defensive solidity
Off-ball resistance, structural quality and management of weak phases.
Tournament experience
Historic ability to perform in major competitions.
Head-to-head
Recent history between the two national teams when it is usable.
Main difference vs Ligue 1
The international engine prioritises robust signals and long-term stability. It tolerates less noise than the league engine because national teams play far less often.
Rules shared by both engines
Probability cap
No output is shown at 0% or 100%. Probabilities are capped between 1% and 97% to prevent algorithmic overconfidence.
Expected value
Expected value compares our model probability to the implied probability of the available market price.
EV = (model_probability × decimal_odd) − 1
A positive EV does not guarantee a winning bet. It only means that, over time, the market price looks lower than our estimate.
Reading policy:
- Positive EV: the match deserves active attention.
- Negative EV but clear favourite: possible read, but without clear pricing edge.
- Negative EV and tight match: no suggested position.
Dynamic Consistency Index (DCI)
The DCI measures how stable a team profile is. The more a team reproduces the same performance patterns, the more conviction can rise at equal edge.
Our public commitments
No rewriting the past
Historical records are not recomputed after the fact to make the track record look better.
Visible methodology
The building blocks of the model are described publicly and important changes must be explained.
No promise of profit
Footlab shows probabilities and edges, never certainty.
Consistency first
The same reading framework is applied to every match within the same competition family.
See the engine in action
Algorithm FAQ
Why not show 0% or 100%?
Because no football match is certain. The cap protects the model from overconfidence.
Is the engine recalibrated every week?
No. Weights are calibrated, then frozen within their phase to avoid opportunistic tweaks.
What does a positive edge mean?
It means our estimated probability is higher than the bookmaker’s implied one.
Does the international engine work like the Ligue 1 engine?
It follows the same philosophy, but with fewer criteria and more structural signals.
Is positive EV enough to bet?
No. EV is a reading filter, not a guaranteed outcome.