Metrics & Methodology

← Back to the tables

Results are noisy: a team can dominate a match and lose it. Overstats rates every match by the quality of the shots it produced instead of by the score, and turns that into the numbers you see in the tables. This page explains what they mean and how they are calculated.

The metrics

xG – expected goals
The sum of the goal probabilities of all shots a team took. A shot with an xG of 0.30 is expected to be a goal in three out of ten cases. Compare xG with the goals scored: a team that scores more than its xG is finishing above average or is lucky, and that rarely lasts.
xGA – expected goals against
The xG of the shots a team conceded. Lower is better. It is the defensive counterpart of xG and shows how much danger a team allows, regardless of how many of those chances the opponent converted.
xP – expected points
The points a team would have taken on average from the chances it created and allowed. In the table, the difference between actual points and xP is shown next to it: a positive number means the team has collected more than its performances deserved. The little arrow beside the position marks teams that sit higher or lower in the real table than in the xP table.

From shots to xG

Every match is stored with the individual shots of both teams. Each shot carries its own xG, a model value that depends on the shot’s position, the body part and the situation. We do not compute this model ourselves; the values come with the shot data.

The xG of a team in a match is the sum over its shots. Penalties are excluded from the xG sum so that a single awarded penalty does not dominate a match. Goals are still counted as they happened.

The shot map on each match page plots these shots on the pitch.

Match probabilities and xP

Instead of comparing the two xG totals, we ask how likely each score was. Every shot is treated as an independent event that becomes a goal with its own xG. The number of goals a team scores from a set of shots then follows an exact Poisson binomial distribution, which we calculate directly (no approximation by a normal or Poisson distribution).

With the goal distributions of both teams, the probability of every possible score is the product of the two. Summing the scores where the home team leads, both are level or the away team leads gives the probabilities of a home win, a draw and an away win.

xP = 3 × P(win) + 1 × P(draw)

This is calculated for each team and match, and the league table simply adds the values up. A match in which a team produced no shots counts as zero xG for that side; its goal distribution is then 100 % on zero goals.

Final table forecast

The forecast simulates the rest of the season 10,000 times and counts how often each team ends up where. It is shown as soon as matches are left to play.

  1. Strengths. Each team gets an attack and a defence strength: its xG for and against per match relative to the league average. Early in the season the sample is small, so the values are shrunk towards the league average by adding ten “pseudo-matches” of exactly average performance. With more matches played, the team’s own numbers take over.
  2. Expected goals per fixture. For each open fixture the expected goals of the home team are the league’s home average multiplied by the home attack and the away defence strength, and vice versa for the away team.
  3. Simulation. Goals are drawn from Poisson distributions with these expectations. Points are added to the current table. The random generator uses a fixed seed, so the numbers do not jump between page loads.
  4. Result. The expected and median final points, a 90 % interval (5th to 95th percentile) and the probabilities of winning the title, finishing in the top four and finishing in the bottom three.

Ties in points are broken randomly; goal difference is not simulated. This only matters where teams are very close. The model knows nothing about injuries, transfers or motivation, and it treats the strengths as constant over the rest of the season. Treat it as a statement about how the performances so far project forward, not as a prediction of certainty.

Strength of schedule

The difficulty of a fixture is the number of points an average team would expect from it, using the same attack and defence strengths and the venue (home or away). The lower the value, the harder the fixture. Because the reference is always an average team, the values are comparable between teams.

The schedule table ranks teams by the mean difficulty of their remaining fixtures and shows the fixtures already played for comparison. Hovering over a fixture shows the difficulty together with the points the team itself is expected to take. The same difficulty is shown on the team pages next to the upcoming matches.

Data and limits

New matches are processed once their shot data becomes available, so a finished match can appear without xG for a short while.

  • xG measures chance quality, not finishing ability or the game state: a team that leads often concedes more shots.
  • Over a handful of matches xG is still noisy. Over a season it is a better predictor of future results than points.
  • xG models differ slightly between providers, so numbers may not match other sites exactly.