xG Match Lab: Interactive Shot Maps and Expected Goals Analysis
Expected goals, or xG, puts a number on every chance a team creates. Instead of judging a match by the final score alone, an xG shot map plots where each shot was taken and how likely it was to be scored, so a tap-in and a thirty-yard punt are never treated as the same thing. Read together, the dots tell you whether a result was earned or whether the scoreline flattered one side. This lab reconstructs the shots from eight famous matches, sizes each dot by its estimated xG, and lets you replay the chances minute by minute to watch the xG race unfold. There is also a season table that reranks the Premier League on expected points, which shows which teams rode their luck and which deserved more. If you want to turn that reading into a bet, our football betting guide and the bet types explainer cover where xG helps most.
xG Match Lab
Relive eight famous matches through expected goals: every shot mapped, an xG race you can replay minute by minute, and a season-long look at which teams rode their luck.
Estimated xG, our own model, not official Opta dataThe eight matches
AC Milan 3-3 Liverpool (3-3)
UEFA Champions League Final · 2005-05-25 · Atatürk Olympic Stadium, Istanbul · after extra time
MIL: Maldini 1′, Crespo 39′, Crespo 44′, LIV: Gerrard 54′, Šmicer 56′, Alonso 60′
Manchester United 2-1 Bayern Munich (2-1)
UEFA Champions League Final · 1999-05-26 · Camp Nou, Barcelona
MUN: Sheringham 90+1, Solskjaer 90+3, FCB: Basler 6′
Manchester City 3-2 Queens Park Rangers (3-2)
Premier League · 2012-05-13 · Etihad Stadium, Manchester
MCI: Zabaleta 39′, Džeko 90+2, Agüero 90+4, QPR: Cissé 48′, Mackie 66′
Tottenham Hotspur 2-2 Arsenal (2-2)
Premier League · 2004-04-25 · White Hart Lane
TOT: Redknapp 62′, Keane 90, ARS: Vieira 3′, Pires 35′
Barcelona 6-1 Paris Saint-Germain (6-1)
UEFA Champions League round of 16, second leg · 2017-03-08 · Camp Nou, Barcelona
BAR: Suárez 3′, Kurzawa (OG) 40′, Messi 50′, Neymar 88′, Neymar 90+1, Sergi Roberto 90+5, PSG: Cavani 62′
Liverpool 4-0 Barcelona (4-0)
UEFA Champions League semi-final, 2nd leg · 2019-05-07 · Anfield, Liverpool
LIV: Origi 7′, Wijnaldum 54′, Wijnaldum 56′, Origi 79′, BAR: no goals
Manchester City 1-3 Leicester City (1-3)
Premier League · 2016-02-06 · Etihad Stadium
MCI: Agüero 87′, LEI: Huth 3′, Mahrez 48′, Huth 60′
Brazil 1-7 Germany (1-7)
FIFA World Cup semi-final · 2014-07-08 · Estádio Mineirão, Belo Horizonte
BRA: Oscar 90′, GER: Müller 11′, Klose 23′, Kroos 24′, Kroos 26′, Khedira 29′, Schürrle 69′, Schürrle 79′
Premier League 2025/26, points vs expected points
| Team | Pts | xPts | GF | GA | xG | xGA |
|---|---|---|---|---|---|---|
| Arsenal | 85 | 79.9 | 71 | 27 | 77.5 | 33.1 |
| Manchester City | 78 | 73.9 | 77 | 35 | 79.4 | 46.5 |
| Manchester United | 71 | 64.4 | 69 | 50 | 72.2 | 50.3 |
| Aston Villa | 65 | 51.1 | 56 | 49 | 56.2 | 56.7 |
| Liverpool | 60 | 61.5 | 63 | 53 | 67.3 | 53.9 |
| Bournemouth | 57 | 60.3 | 58 | 54 | 66.8 | 56.8 |
| Sunderland | 54 | 42.0 | 42 | 48 | 43.1 | 60.3 |
| Brighton | 53 | 55.3 | 52 | 46 | 58.4 | 53.8 |
| Brentford | 53 | 57.2 | 55 | 52 | 66.3 | 59.1 |
| Chelsea | 52 | 58.9 | 58 | 52 | 72.2 | 58.1 |
| Fulham | 52 | 45.1 | 47 | 51 | 49.6 | 60.8 |
| Newcastle United | 49 | 54.8 | 53 | 55 | 60.6 | 57.3 |
| Everton | 49 | 46.2 | 47 | 50 | 49.9 | 60.0 |
| Leeds | 47 | 56.5 | 49 | 56 | 59.8 | 56.3 |
| Crystal Palace | 45 | 53.9 | 41 | 51 | 62.5 | 60.0 |
| Nottingham Forest | 44 | 42.2 | 48 | 51 | 48.9 | 64.7 |
| Tottenham | 41 | 49.3 | 48 | 57 | 46.8 | 55.6 |
| West Ham | 39 | 43.5 | 46 | 65 | 49.6 | 68.1 |
| Burnley | 22 | 24.3 | 38 | 75 | 36.9 | 82.6 |
| Wolverhampton Wanderers | 20 | 35.4 | 27 | 68 | 38.4 | 68.3 |
Enable JavaScript for the interactive shot maps, replays and the luck-table blend slider.
Pick a match
Shot map
Replay the xG race
Shot-by-shot table (text alternative)
| Min | Team | Player | Outcome | xG | Cum. xG |
|---|
Verdict
Who rode their luck?
| # | Team | Pts | xPts | GF | GA | Δ |
|---|
Methodology & sources
Expected goals: common questions
What is expected goals, or xG?
Expected goals is a way of measuring the quality of a chance rather than just counting shots. Every attempt is given a value between zero and one that reflects how often a shot from that position and situation is usually scored. A close-range tap-in might be worth 0.7, while a hopeful effort from distance might be worth 0.03. Add up a team's chances across a match and you get its xG, a fairer picture of how much it deserved to score than the final result alone.
What does an xG shot map show?
The shot map plots every shot on a pitch diagram, placed where it was taken and sized by its xG, so a big dot is a clear chance and a small dot is a long shot or a half-opening. Colour marks which team took it and whether it was scored, saved, missed or blocked. Read as a whole, the map shows at a glance whether a team created a handful of gilt-edged chances or peppered the goal from range without ever truly threatening.
What do expected points and the luck table mean?
Expected points, or xPts, ask a simple question: given the chances each side created and conceded across the season, how many points would a team have earned on average? The luck table lines a club's real points up against its xPts. A team well above its expected points has ridden its luck or finished clinically, while one below has created more than the table suggests and may be due a correction. The blend slider lets you move between the real standings and the expected version.
Is the xG in this lab official Opta data?
No, and we are upfront about that. Every xG figure here comes from our own model, estimated from contemporaneous shot-by-shot reports of each match, not from an official provider such as Opta. The season table draws on public season aggregates, while the historic matches are reconstructed by hand, so the numbers are careful estimates rather than exact measurements. Treat them as a guide to the shape of a game, not a definitive record.
How many matches can I explore?
Eight, chosen because their scorelines and their underlying chances tell very different stories, from famous comebacks to results that flattered the winner. You can pick any of them, filter the shots by team, outcome or situation, replay the xG race minute by minute, and compare the final score with the score xG suggests was fair. The season luck table then widens the lens from a single match to a whole Premier League campaign.