« How the models work

xG model

column: XG, XGScore votes in H:D:A

The Poisson goal model run on expected goals instead of actual goals. A side that keeps creating 2.0 xG of chances but scoring one is rated as a 2.0 side here - the model reads the quality of chances, not the luck of finishing.

How it works
  1. After every game the line-ups pipeline pulls SofaScore's team statistics for it: expected goals (xG), xG on target, possession, shots, shots on target, corners and big chances. Those land in a per-division match-stats file (and on the line-ups popup).
  2. Each team's attack and defence strengths are then worked out exactly as in the Poisson model - home and away split, relative to the league average - but from xG for and xG against in the games captured so far this season.
  3. The prior is last season's xG per club where we have it (the EFL and Premier League from 2024-25 via sportinglife's match pages, the National League from 2025-26), falling back to last season's goals otherwise; short current-season records are shrunk towards it.
  4. Expected goals for the fixture and the full score-probability grid follow as for Poisson: home/draw/away %, and the most likely score.
Worked example
Home side, captured gamesxG for 1.9 per game, xG against 0.9 (they have actually scored 1.2 and conceded 1.4 - unlucky)
Away sidexG for 1.0, xG against 1.5
Poisson (goals) says38:30:32
xG model says57:24:19, most likely score 2-0 - it backs the side making the chances
How BetChair calls it

The largest of the three percentages is the vote; XGScore is the most likely scoreline. Because the two models share a prior, a large gap between Poisson and XG on a fixture is itself informative: it means results and performances have diverged for one of the sides.

Where it shines
  • xG is the best single measure of underlying performance; it settles down after far fewer games than goals do.
  • Directly exposes teams over- or under-performing their chances - the classic regression-to-the-mean angle.
  • Costs one extra request per finished game and improves all season.
Where it falls down
  • Promoted/relegated sides start as league average like Poisson.
  • Only games the pipeline captured count - if the collector missed a game (laptop asleep), that game is missing from the xG record though it is in the goals record.
  • xG models are the bookmakers' own bread and butter, so beating the market with one is hard.

See it on the fixtures table (tick the column under Columns → Predictions) and on every tips slip. Related: Poisson, Logit, Market & Value.