Rolling xG
This page charts each club's non-penalty expected goals for and against as a rolling average over its last five or ten league matches, so a change in underlying performance is visible before it shows up in results. A trend line is fitted to each series, and the latest rolling figures are shown as a summary.
Where the data comes from
Match-level non-penalty xG is imported from Understat for the Premier League, La Liga, Bundesliga, Serie A and Ligue 1. The import runs every Monday at 03:00 UTC, once the weekend's matches are settled. Each row is one team in one match, with the non-penalty xG it created and the non-penalty xG it conceded. Penalties are excluded because they carry a fixed xG value that says nothing about open-play performance.
How the numbers are calculated
The rolling figure at any match is the plain average of the previous five or ten matches' non-penalty xG for, and separately against. To keep the window full at the start of a season, the full previous season is joined on to the front of each club's series and marked on the chart, so a five-game window on matchday two includes the last three games of the season before. Promoted clubs have no top-flight history and start from their first match. The trend line is a least-squares fit over the plotted window.
Current coverage
20 Premier League clubs have data this season, with matches through 2026-10-10 on record as of 2026-10-12. Rolling xG is a form view and feeds no odds calculation on this site. The closing prices the market set for the same matches are in the closing-line archive. Which clubs are scoring above or below their chances is on Goals Coming Soon.