How to predict football matches
The xG model explained — from raw data to a match outcome probability in six steps.
Football has three possible outcomes. A random guess gives you 33% accuracy. A good statistical model consistently pushes that to 52–60% — meaningful, but nowhere near the figures many prediction sites claim. This guide explains exactly how xgprophet does it.
Our model has called 19 out of 31 match outcomes correctly — a 61% accuracy rate on settled predictions. Every call is logged before kick-off. See the full record →
Why form, H2H, and team news are not enough
Most football prediction guides offer the same checklist: recent form, head-to-head record, home advantage, team news. These are genuine signals — but they are not a model. Without quantitative weighting, you are making a list, not a prediction.
The problem is specificity. “Team A is in good form” tells you nothing about how many goals they are likely to score against this specific opponent on this specific day. That requires a number — and the best number available is expected goals (xG).
What is xG (expected goals)?
xG assigns each shot a probability of resulting in a goal, based on factors like shot location, body part used, and assist type — derived from hundreds of thousands of historical shots. A penalty converts at roughly 76% historically, giving it an xG of 0.76. A speculative long-range effort might have xG of 0.03.
The key advantage: xG predicts future performance more reliably than raw goals. A team that wins 4–0 while generating only 0.9 xG was lucky. A team that loses 1–0 while generating 3.1 xG was not — and their results tend to improve over time. xG cuts through the noise of individual match luck.
The Poisson model: step by step
Once you have xG estimates for a match, you convert them into outcome probabilities using the Poisson distribution — a statistical model for counting events (goals) in a fixed period (90 minutes).
- Gather recent xG data. Collect the last 6–8 home matches for the home side, and the last 6–8 away matches for the away side. Record expected goals for and against in each.
- Calculate attack and defence strength. Attack strength = team average xG scored ÷ league average xG scored. Defence strength = team average xG conceded ÷ league average xG conceded.
- Estimate expected goals for the match. Home xG = home attack strength × away defence strength × league average home xG. Away xG = away attack strength × home defence strength × league average away xG.
- Run Poisson distribution. For each scoreline (0–0 through 5–5), calculate the probability: P(k) = e−λ × λk / k! where λ is the expected goals figure. This gives you a probability for every possible scoreline.
- Sum probabilities by outcome. Home win % = sum of all scoreline probabilities where home goals exceed away goals. Repeat for draw and away win. These three figures are the final 1X2 probabilities.
- Apply confidence weighting. When the highest-probability outcome exceeds 50%, flag the prediction as high-confidence. High-confidence predictions have historically been more accurate (the MDPI academic benchmark rises from 52.8% to 80.3% when filtering for confident situations).
What the model doesn’t cover
No statistical model is complete. Known limitations of the Poisson approach:
- Injuries and suspensions. The model uses squad-level historical stats. Missing a key striker is not captured automatically — it requires a manual adjustment.
- Motivation and context. Dead-rubber matches late in a season, teams rotating ahead of a cup final, or sides with nothing to play for all behave differently from the historical average. The model does not adjust for this.
- Small samples. For new season data or promoted clubs, form lookbacks are short. The model applies shrinkage (pulling estimates toward the league average) to reduce the noise from small samples, but uncertainty is higher.
This is why the model’s confidence tier exists — low-confidence matches are shown with lower confidence scores and treated more cautiously in our tips pages.
Our accuracy record
The only way to verify a prediction model is to track every call against the real result — including the wrong ones. xgprophet logs every pre-match prediction and settles it automatically when the final score is confirmed. Nothing is removed when it is wrong.
Current record: 19 correct out of 31 settled predictions — a 61% outcome accuracy rate.
What does 64% accuracy actually mean? → · Full accuracy record →
Frequently asked questions
- Can you predict football matches accurately?
- Statistical models consistently outperform random chance. Academic research benchmarks accuracy at around 52.8% for match outcomes — rising to 80.3% in high-confidence situations. See our accuracy guide →
- What is the best method for predicting football?
- Expected goals (xG) combined with Poisson distribution modelling consistently outperforms methods based on raw goals or form alone. xG captures chance quality rather than luck in front of goal — giving a more stable signal for predicting future results.
- How accurate are statistical football predictions?
- For match outcome (1X2), well-calibrated statistical models achieve 52–60% accuracy. Higher accuracy is possible by filtering for high-confidence predictions only. xgprophet tracks every prediction against the real result — see the full record →