xG Lab
Home

How the model works

Most sites show win probabilities but never tell you how they're built or how accurate they are. Here's both — the method, then the receipts, scored on 4,180 out-of-sample matches.

The method
Self-built models on top of licensed match data — no black box.

Win probability

Each team gets an attacking and defensive strength from an exponentially-weighted average of its recent expected goals (xG)— recent games count more, and form carries across seasons. Those strengths set each side's expected goals (λ) beforekickoff. A Poisson model then turns the remaining minutes into live win / draw / loss probabilities, updating as the score and clock change. Ratings are shrunk toward the league average so the model doesn't get overconfident about the very best and worst teams, and the weighting is tuned to minimise pre-kickoff log loss.

Red cards

A sending-off adjusts both sides' scoring rates — down for the team reduced to ten, up for their opponent — which is the step you see in the replay curve.

Season projections

Projections simulate the fixture list many thousands of times from those same xG strengths, counting how often each team wins the title, finishes top four or goes down, and averaging their final points. A fixed random seed makes the numbers reproducible.

Everything is out-of-sample

Every accuracy figure below is scored using only information available beforeeach kickoff — the model never sees the result it's predicting.

Calibration
When the model says 70%, does it happen ~70% of the time? Points on the dashed line are perfectly calibrated. Bigger points = more predictions in that band.
Accuracy vs baselines
Lower LogLoss / Brier is better; higher Accuracy is better. The rolling out-of-sample model clearly beats the naive base-rate baseline — using only each team's form before kickoff, no future information.
ModelLogLossBrierAccuracy
Baseline (base rates)1.0670.64644%
Rolling (out-of-sample)0.9850.58653%

The rolling model cuts LogLoss from 1.067 (baseline) to 0.985 and lifts accuracy from 44% to 53%. Base rates this era: home 44% · draw 24% · away 32%.

The honest bit: model vs the market consensus
The toughest benchmark for any football model is the market consensus forecast — thousands of independent forecasts distilled into one number. So we grade ourselves against it, and we don't hide the result.
1.041
our model — LogLoss
1.015
market consensus — LogLoss
380
matches compared

The consensus is still a shade sharperthan us — and that's the point. Most prediction sites imply they beat the consensus; almost none show the scoreboard. We aim to get within touching distance of it with logic that is fully public. No hype, no paywalled picks, no black box.

Data & limitations

  • xG and match data come from a licensed commercial provider; win-probability, projections and power ratings are our own calculations on top of it.
  • Coverage is retrospective — completed matches, not live in-play.
  • xG depth is available for recent seasons; older seasons may show results without it.
  • For informational and educational use only — not advice of any kind.

New here? See how xG Lab compares to FBref & Understat, read the manifesto, or brush up in the glossary.