At the heart of our prediction system is ELO - a rating system originally developed for chess that we've adapted for Premier League football.
When Team A plays Team B:
If Manchester City (1650) beats Luton (1350), that's expected - small rating change. If Luton beats Manchester City, that's a massive upset - large rating change.
We've customised ELO for football:
Based on our model (as of January 2025):
| Team | Approx. ELO | Tier |
|---|---|---|
| Manchester City | 1680+ | Elite |
| Arsenal | 1650+ | Elite |
| Liverpool | 1640+ | Elite |
| Chelsea | 1580+ | Strong |
| Tottenham | 1560+ | Strong |
| Newcastle | 1550+ | Strong |
| Aston Villa | 1540+ | Mid-table+ |
| Manchester United | 1520+ | Mid-table+ |
| Brighton | 1510+ | Mid-table |
| West Ham | 1500 | Average |
| ... | ... | ... |
| Promoted teams | 1350-1400 | Below average |
Note: These are illustrative - actual ratings update after every match.
Many ELO systems use "current" ratings. We do something different:
When predicting Gameweek 10, we rebuild ELO from scratch using only Gameweeks 1-9 data.
Why? Because in real life, you don't know future results when making predictions. Our accuracy figures (52.4%) reflect this honest approach.
We convert ELO ratings to expected goals using:
Home expected goals = (Home_ELO / Away_ELO) × Home_advantage × League_average
Away expected goals = (Away_ELO / Home_ELO) × League_average
This gives us the λ (lambda) values for our Dixon-Coles probability calculations.
ELO doesn't capture everything:
But it does capture the most important factor: how strong is this team based on their actual results?
That's why ELO-based predictions consistently outperform gut feeling.
See ELO in action - check out this week's Premier League predictions powered by our hybrid ELO + Dixon-Coles model.