About xGRAPM
xGRAPM is a predictive analytics product for the Premier League. Every number on this site comes from a statistical model — not a subjective rating, not a formula we made up, and not a simple average. We show you what the data says, including how confident we are.
Player Impact — RAPM
Our headline metric is Regularised Adjusted Plus-Minus (RAPM). It answers a deceptively simple question: how much does a player affect the scoreline when they're on the pitch?
RAPM works by breaking every match into stints — periods where the same set of players is on the field. For each stint, the model knows who was playing on each side and how many goals were scored. A ridge regression then solves for the individual contribution of every player, controlling for teammates and opponents.
The result is split into offensive and defensive impact ratings. A player with a high O-RAPM tends to be on the pitch when their team scores; a player with a strong D-RAPM tends to be on the pitch when the opposition doesn't. The overall RAPM is the sum of both.
Every RAPM rating comes with a confidence tier (High, Medium, or Low) based on the width of the 90% credible interval. Players with more minutes and more varied lineups get tighter intervals and higher confidence. You can hover over any confidence badge to see the raw interval.
Statistical Plus-Minus — SPM
SPM is a complementary metric that predicts a player's RAPM from their box-score statistics (goals, assists, tackles, passes, etc.) using ridge regression. It answers: “given what this player does on the stat sheet, what RAPM would we expect?”
SPM is useful for players who don't have enough minutes for a reliable RAPM estimate. It's a prediction, not a measurement — but it gives a reasonable first guess grounded in what box-score stats tend to predict about true impact.
Team Ratings & Match Forecasts — Dixon-Coles
Team-level ratings use the Dixon-Coles model, a Poisson-based framework that estimates each team's attacking and defensive strength from historical match results. It also includes a correction for the tendency of low-scoring matches (0-0, 1-0, 0-1, 1-1) to occur more often than a pure Poisson model would predict.
These ratings power the match predictions (expected goals and outcome probabilities for each upcoming fixture) and the expected league table (a Monte Carlo simulation of remaining matches to estimate final standings).
Data
Match data, lineups, and player statistics are sourced from Sportmonks. Expected goals (xG) data is sourced from Understat. All models are trained on data from the 2017/18 season onward — the earliest point at which Sportmonks lineup data is reliably complete for every Premier League match.
Data is refreshed daily. The models re-fit on each refresh to incorporate the latest results.
Why We Show Uncertainty
Most sports analytics products present numbers as facts. We don't. Every estimate on xGRAPM comes with an indication of how confident we are — because honest analytics means admitting what you don't know.
A player rated +0.15 with a High confidence badge is meaningfully different from one rated +0.15 with Low confidence. The first is a well-measured above-average contributor. The second could easily be average — or much better than +0.15. The uncertainty tells you whether to trust the number.
Contact
xGRAPM is built by a solo developer who believes advanced football analytics should be free, transparent, and accessible. Questions, feedback, or methodology challenges are welcome on X/Twitter.