There are many ways to make a football prediction: gut feeling, the league table, a hunch about form. The xG.Football model takes a different route — it's built on statistics observed before kickoff, and it checks its own accuracy against real results afterwards. Here is exactly how that works.
No black box
Every xG.Football prediction is saved to the system before the match starts — never after the fact — and is automatically compared against the actual result once the final whistle blows. The full log of predictions and their real-world accuracy is public on the prediction statistics page: you can see how many predictions hit, how many missed, and how accurate the model is across different probability ranges.
Five criteria behind the main match-result prediction
For the match result market (home win / draw / away win), the model scores five statistical criteria, comparing the home and away side:
- Overall form — points per game across both teams' recent matches;
- Home / away form — the same, but restricted to the home team's home games and the away team's away games;
- Expected scoring potential — projected output based on stored statistics;
- Average goal difference — goals scored minus goals conceded per game;
- Head-to-head record — points earned in these two teams' previous meetings.
Each criterion awards a point to whichever side looks stronger on it. The resulting score isn't the probability itself — it's a transparent statistical signal: how many of five independent criteria point to the same favourite.
Totals predictions: corners, shots on target, cards
For the "Corners over 8.5", "Shots on target over 7.5" and "Yellow cards over 3.5" markets, the logic is different: the model checks how often the actual figure crossed that line in recent matches — separately for the home side (all matches, and home matches only), for the away side (all matches, and away matches only), and in head-to-head meetings. For example, "over in 80% of the last 10 combined matches" means 8 of 10 matches in the pooled sample finished above the given line.
Where the probability comes from — and what calibration means
Alongside the point score, the model shows an estimated probability — not an arbitrary number, but a calibrated percentage: the system checks how often predictions with the same criteria and the same score actually came true historically, both within this specific competition and across all competitions combined. If there isn't yet enough historical data for a reliable estimate, the probability is flagged as uncalibrated rather than guessed.
What the model's decisions mean
| Decision | Meaning |
|---|---|
| Prediction | Enough data and a strong enough signal to surface as the headline prediction |
| Watch | There is a signal, but it isn't strong enough to headline as the main prediction |
| Skip | The criteria contradict each other or point to an even match |
| Insufficient data | Not enough completed matches in the sample for a reliable calculation |
A prediction is a probability, not a guarantee
Even a prediction with a high score and a high calibrated probability remains a statistical estimate, not a guaranteed outcome: football is a low-scoring sport where a single moment can decide the result. The model shows which side holds the statistical edge and how large it is — not what will actually happen. That distinction matters especially if you're weighing a prediction against bookmaker odds when betting on football — statistics support a more informed decision, but they don't replace one.
Check the model's accuracy yourself
On the prediction statistics page you can filter the full log by market, status (won / lost / pending) and date range to see the model's real hit rate on the exact sample you choose — with no retroactive adjustments. Today's live predictions for upcoming fixtures are collected on the predictions page.