Using numbers to beat the market sounds like a dream, but in football betting the right combination of expected goals (xG) and ELO ratings can convert that dream into a steady, disciplined approach. This article walks through what each metric measures, why they complement one another, and how to turn their signals into repeatable value bets while managing risk and real-world noise.
What xG measures and why it matters
Expected goals is a probabilistic model that assigns a likelihood to every shot based on location, body part, pass preceding it, and other context. Instead of looking only at goals scored — a noisy, low-signal outcome — xG captures the quality of chances a team creates and concedes, which tends to be more predictive of future scoring than raw results.
xG helps you spot teams that are performing better or worse than the scoreboard suggests. A team with a positive xG differential that isn’t translating to wins has a measurable likelihood of improvement; conversely, a team winning on weak xG numbers can be due for regression. For bettors, those mismatches between underlying performance and market prices are where edges appear.
Understanding ELO and its role in forecasts
The ELO system assigns each team a single rating number that shifts after every match, based on result and expected outcome. Unlike table position, ELO blends long-term strength with recent form, and it’s particularly good at capturing head-to-head likelihoods and the relative strengths across leagues.
Where xG focuses on quality of chances within a match, ELO summarizes a team’s historical performance and consistency. Using both lets you separate short-term match dynamics from broader team strength — an advantage when markets overreact to narrative or one-off results.
Why combining xG and ELO gives a sharper edge
Bookmakers price lines using injuries, form, and public money flows, which sometimes produces inefficiencies. xG identifies whether recent results reflect sustainable attacking or defensive performance, while ELO adjusts that view against the team’s baseline strength. Put together, they form a model that is more robust than either metric alone.
For example, a team may have an excellent recent xG run but a low ELO, signaling short-term improvement that might be underpriced by markets. Conversely, a high ELO team with deteriorating xG could be slipping; markets often lag on deteriorations more than on improvements. Those discrepancies are where you evaluate true value.
Practical workflow: how to find value bets
Start by collecting xG and ELO data for the league and timeframe you follow. I prefer a rolling window for xG (last 5–10 matches) to weight recent performance, and an ELO that updates after each fixture to capture baseline strength. Normalize both metrics to the same scale so they can be blended consistently.
Create a simple blended probability: convert ELO expected outcome and xG-based expected goals into probabilities, then weight them—common splits are 60/40 or 50/50 depending on league volatility. Convert your blended probability to fair odds and compare against the bookmakers’ offered odds after removing vigorish (the bookmaker margin).
Quick example of implied value
Below is a small sample that illustrates how a blended model can show value when bookmakers underprice a team. The numbers are illustrative to explain the calculation, not outcomes of specific matches.
| Model probability | Bookmaker odds | Bookmaker implied prob | Edge (model – implied) |
|---|---|---|---|
| 0.45 | 2.80 | 0.357 | +0.093 (9.3%) |
| 0.20 | 3.50 | 0.286 | -0.086 (-8.6%) |
Step-by-step checklist for your model
1. Data collection: pull xG per match from providers like Understat or StatsBomb and ELO ratings from trusted sources or your own implementation. Clean and align the dates so both metrics refer to the same match list.
2. Calibration: convert expected goals into goal probabilities using Poisson or bivariate models and turn ELO differences into win/draw/loss probabilities. Calibrate your model on historical matches to check reliability.
3. Compare against market: remove bookmaker margin to get implied fair odds, then compute edge. Only consider bets with a positive expected value after accounting for commission and staking strategy.
4. Staking: use a fraction of your bankroll proportional to edge and volatility—Kelly fraction or a flat-percentage approach, depending on your risk tolerance and confidence in calibration.
Managing risk, variance, and real-world noise
No model is perfect. Football has low scoring and high variance, so even statistically justified bets can lose in the short run. Accepting variance means sizing stakes conservatively and tracking results rigorously to spot model drift or changing market behavior.
Watch for non-quantifiable variables: missing starters, travel congestion, pitch conditions, and managerial changes can shift probabilities in ways metrics don’t immediately capture. I’ll often mark matches as “require override” when discipline, rotation, or cup competition reduces model reliability.
Edge cases and league selection
Top-five leagues have huge market efficiency due to volume; edges are smaller and require more sophisticated models. Mid-tier European leagues and domestic cups often present more exploitable inefficiencies because markets are thinner and public narratives are louder.
In my experience, focusing on a narrower market—say, one or two leagues and the domestic cup—improves model performance because you get domain knowledge: travel patterns, rotation norms, and weather impacts. Depth beats breadth for long-term profitability.
Real-world example from practice
When I started applying a blended xG-ELO approach, I tracked a season in a mid-tier European league. A particular club repeatedly underperformed in results but consistently out-shot opponents and posted a positive xG differential. ELO lagged behind because of past seasons’ poor form.
Markets were slow to react; odds offered a slightly lower probability than the blended model. I placed conservative stakes across several fixtures where the edge exceeded my threshold. Over dozens of bets the variance smoothed and the model returned a positive edge. That practical patience—small stakes, disciplined entry—felt less thrilling but proved effective.
Tools and sources to build your system
Use data providers and tools that are transparent about methodology. Understat and StatsBomb are strong for shot-level xG, FBref provides an accessible dataset, and FiveThirtyEight publishes an accessible ELO-style model for international and club competitions. For the theoretical background on ELO, the original Elo system paper and summaries are worthwhile.
Combine these with an exchange account like Betfair if you want tighter lines and lower margins, and consider using version control and simple backtests to prevent overfitting. Keep a public log or spreadsheet of bets to audit your performance and refine weights.
Sources and further reading
- FiveThirtyEight soccer predictions and ELO: https://fivethirtyeight.com
- Understat (xG data and visualization): https://understat.com
- StatsBomb (research and xG methodology): https://statsbomb.com
- FBref (match stats and xG): https://fbref.com
- Elo rating system (background): https://en.wikipedia.org/wiki/Elo_rating_system
- David Sumpter — Soccermatics (book on analytics and xG concepts): https://davidsumpter.net
- Betfair exchange (market structure and liquidity): https://betfair.com
Numbers won’t eliminate uncertainty, but treated with discipline—proper calibration, conservative staking, and awareness of context—xG and ELO together give you a pragmatic way to find value. Start small, track everything, and let the data point to edges rather than chasing narratives.


