Expected goals
West Ham United expected goals (xG) 2025/2026
Premier League · after 38 matches · updated 4 Oct
West Ham United's attacking and defensive expected goals in Premier League 2025/2026, compared with the results they produced and with the rest of the competition.
West Ham United xG and xGA per match
Every match ↓| Rank | Club | xG per match |
|---|---|---|
| #1 | Manchester City | 1.87 |
| #2 | Chelsea | 1.75 |
| #3 | Arsenal | 1.71 |
| #4 | Manchester United | 1.70 |
| #5 | Bournemouth | 1.64 |
| #6 | Brentford | 1.59 |
| #7 | Liverpool | 1.58 |
| #8 | Crystal Palace | 1.53 |
| #9 | Brighton & Hove Albion | 1.51 |
| #10 | Newcastle United | 1.49 |
| #11 | Leeds United | 1.43 |
| #12 | Fulham | 1.27 |
| #13 | Aston Villa | 1.26 |
| #14 | West Ham United | 1.21 |
| #15 | Everton | 1.20 |
| #16 | Nottingham Forest | 1.20 |
| #17 | Tottenham Hotspur | 1.08 |
| #18 | Sunderland | 1.01 |
| #19 | Wolverhampton | 0.94 |
| #20 | Burnley | 0.85 |
- League avg
- 1.39
- Total
- 45.83 38 matches
| Rank | Club | xGA per match |
|---|---|---|
| #1 | Arsenal | 0.74 |
| #2 | Manchester City | 1.16 |
| #3 | Liverpool | 1.26 |
| #4 | Manchester United | 1.27 |
| #5 | Brighton & Hove Albion | 1.30 |
| #6 | Newcastle United | 1.34 |
| #7 | Tottenham Hotspur | 1.35 |
| #8 | Chelsea | 1.38 |
| #9 | Fulham | 1.38 |
| #10 | Crystal Palace | 1.38 |
| #11 | Sunderland | 1.41 |
| #12 | Brentford | 1.42 |
| #13 | Aston Villa | 1.44 |
| #14 | Everton | 1.46 |
| #15 | Leeds United | 1.47 |
| #16 | Bournemouth | 1.47 |
| #17 | Nottingham Forest | 1.48 |
| #18 | Wolverhampton | 1.53 |
| #19 | West Ham United | 1.57 |
| #20 | Burnley | 1.99 |
- League avg
- 1.39
- Total
- 59.70 38 matches
| Rank | Club | xGD per match |
|---|---|---|
| #1 | Arsenal | +0.97 |
| #2 | Manchester City | +0.71 |
| #3 | Manchester United | +0.43 |
| #4 | Chelsea | +0.38 |
| #5 | Liverpool | +0.33 |
| #6 | Brighton & Hove Albion | +0.21 |
| #7 | Bournemouth | +0.17 |
| #8 | Brentford | +0.17 |
| #9 | Newcastle United | +0.15 |
| #10 | Crystal Palace | +0.14 |
| #11 | Leeds United | -0.04 |
| #12 | Fulham | -0.11 |
| #13 | Aston Villa | -0.19 |
| #14 | Everton | -0.26 |
| #15 | Tottenham Hotspur | -0.27 |
| #16 | Nottingham Forest | -0.28 |
| #17 | West Ham United | -0.37 |
| #18 | Sunderland | -0.40 |
| #19 | Wolverhampton | -0.60 |
| #20 | Burnley | -1.14 |
- League avg
- 0.00
- Total
- -13.87 38 matches
| Rank | Club | xPts per match |
|---|---|---|
| #1 | Arsenal | 2.04 |
| #2 | Manchester City | 1.86 |
| #3 | Manchester United | 1.62 |
| #4 | Liverpool | 1.60 |
| #5 | Chelsea | 1.57 |
| #6 | Bournemouth | 1.52 |
| #7 | Brighton & Hove Albion | 1.51 |
| #8 | Brentford | 1.49 |
| #9 | Newcastle United | 1.47 |
| #10 | Crystal Palace | 1.46 |
| #11 | Leeds United | 1.42 |
| #12 | Fulham | 1.29 |
| #13 | Aston Villa | 1.25 |
| #14 | Tottenham Hotspur | 1.22 |
| #15 | Nottingham Forest | 1.20 |
| #16 | Everton | 1.18 |
| #17 | West Ham United | 1.14 |
| #18 | Sunderland | 1.09 |
| #19 | Wolverhampton | 1.00 |
| #20 | Burnley | 0.65 |
- League avg
- 1.38
- Total
- 43.31 vs 39 actual pts
What the xG says
West Ham United's underlying numbers are among the weakest in Premier League. They rank #17 for xG difference at -0.37 per match, from low shot volume at about average chance quality. Their 46 goals are 0.17 above 45.83 xG, while 39 points are 4.31 below 43.31 xPts.
Actual vs expected
Select a row to chart it across the season.
Goals minus xG, match by match
West Ham United are 0.17 goals above their xG after 38 matches. The gap was widest at +3.29, against Burnley on Sat 07/02.
- Goals
- 46
- xG
- 45.83
- Gap
- +0.17
- This match
- Match gap
- Running gap
| Date | Opponent | Goals | xG | Match gap | Running gap |
|---|---|---|---|---|---|
| Sat 16/08 | Sunderland | 0 | 0.56 | -0.56 | -0.56 |
| Fri 22/08 | Chelsea | 1 | 0.73 | +0.27 | -0.29 |
| Sun 31/08 | Nottingham Forest | 3 | 2.42 | +0.58 | +0.29 |
| Sat 13/09 | Tottenham Hotspur | 0 | 0.60 | -0.60 | -0.31 |
| Sat 20/09 | Crystal Palace | 1 | 0.66 | +0.34 | +0.03 |
| Mon 29/09 | Everton | 1 | 1.19 | -0.19 | -0.16 |
| Sat 04/10 | Arsenal | 0 | 0.49 | -0.49 | -0.65 |
| Mon 20/10 | Brentford | 0 | 0.33 | -0.33 | -0.98 |
| Fri 24/10 | Leeds United | 1 | 0.65 | +0.35 | -0.63 |
| Sun 02/11 | Newcastle United | 3 | 1.75 | +1.25 | +0.62 |
| Sat 08/11 | Burnley | 3 | 3.02 | -0.02 | +0.60 |
| Sat 22/11 | Bournemouth | 2 | 0.65 | +1.35 | +1.95 |
| Sun 30/11 | Liverpool | 0 | 0.29 | -0.29 | +1.66 |
| Thu 04/12 | Manchester United | 1 | 0.79 | +0.21 | +1.87 |
| Sun 07/12 | Brighton & Hove Albion | 1 | 1.14 | -0.14 | +1.73 |
| Sun 14/12 | Aston Villa | 2 | 1.03 | +0.97 | +2.70 |
| Sat 20/12 | Manchester City | 0 | 0.98 | -0.98 | +1.72 |
| Sat 27/12 | Fulham | 0 | 0.91 | -0.91 | +0.81 |
| Tue 30/12 | Brighton & Hove Albion | 2 | 2.06 | -0.06 | +0.75 |
| Sat 03/01 | Wolverhampton | 0 | 0.25 | -0.25 | +0.50 |
| Tue 06/01 | Nottingham Forest | 1 | 0.95 | +0.05 | +0.55 |
| Sat 17/01 | Tottenham Hotspur | 2 | 2.69 | -0.69 | -0.14 |
| Sat 24/01 | Sunderland | 3 | 1.43 | +1.57 | +1.43 |
| Sat 31/01 | Chelsea | 2 | 1.12 | +0.88 | +2.31 |
| Sat 07/02 | Burnley | 2 | 1.02 | +0.98 | +3.29 |
| Tue 10/02 | Manchester United | 1 | 1.08 | -0.08 | +3.21 |
| Sat 21/02 | Bournemouth | 0 | 2.87 | -2.87 | +0.34 |
| Sat 28/02 | Liverpool | 2 | 1.84 | +0.16 | +0.50 |
| Wed 04/03 | Fulham | 1 | 1.09 | -0.09 | +0.41 |
| Sat 14/03 | Manchester City | 1 | 0.54 | +0.46 | +0.87 |
| Sun 22/03 | Aston Villa | 0 | 0.94 | -0.94 | -0.07 |
| Fri 10/04 | Wolverhampton | 4 | 2.35 | +1.65 | +1.58 |
| Mon 20/04 | Crystal Palace | 0 | 0.61 | -0.61 | +0.97 |
| Sat 25/04 | Everton | 2 | 1.17 | +0.83 | +1.80 |
| Sat 02/05 | Brentford | 0 | 0.92 | -0.92 | +0.88 |
| Sun 10/05 | Arsenal | 0 | 1.15 | -1.15 | -0.27 |
| Sun 17/05 | Newcastle United | 1 | 0.95 | +0.05 | -0.22 |
| Sun 24/05 | Leeds United | 3 | 2.61 | +0.39 | +0.17 |
West Ham United xG trend
Current form -0.14 npxGD per match
The last 6 matches with xG.
Out-created the opponent in 13 of 38 matches. The worst was against Bournemouth on Sat 22/11 (-2.67).
- npxG · last 6
- 1.23
- npxGA · last 6
- 1.37
- npxG
- npxGA
- npxGD
- Avg so far
| Date | Opponent | npxG | npxGA | npxGD | Avg so far |
|---|---|---|---|---|---|
| Sat 16/08 | Sunderland | 0.56 | 0.75 | -0.19 | -0.19 |
| Fri 22/08 | Chelsea | 0.73 | 2.74 | -2.01 | -1.10 |
| Sun 31/08 | Nottingham Forest | 1.63 | 0.73 | +0.90 | -0.43 |
| Sat 13/09 | Tottenham Hotspur | 0.65 | 1.29 | -0.64 | -0.49 |
| Sat 20/09 | Crystal Palace | 0.62 | 2.31 | -1.69 | -0.73 |
| Mon 29/09 | Everton | 1.19 | 0.72 | +0.47 | -0.53 |
| Sat 04/10 | Arsenal | 0.43 | 2.12 | -1.69 | -0.69 |
| Mon 20/10 | Brentford | 0.33 | 2.31 | -1.98 | -0.85 |
| Fri 24/10 | Leeds United | 0.65 | 1.53 | -0.88 | -0.86 |
| Sun 02/11 | Newcastle United | 2.76 | 0.56 | +2.20 | -0.55 |
| Sat 08/11 | Burnley | 3.13 | 1.06 | +2.07 | -0.31 |
| Sat 22/11 | Bournemouth | 0.64 | 3.31 | -2.67 | -0.51 |
| Sun 30/11 | Liverpool | 0.31 | 1.24 | -0.93 | -0.54 |
| Thu 04/12 | Manchester United | 0.80 | 1.85 | -1.05 | -0.58 |
| Sun 07/12 | Brighton & Hove Albion | 1.27 | 1.87 | -0.60 | -0.58 |
| Sun 14/12 | Aston Villa | 1.13 | 0.73 | +0.40 | -0.52 |
| Sat 20/12 | Manchester City | 1.14 | 2.13 | -0.99 | -0.55 |
| Sat 27/12 | Fulham | 0.91 | 1.62 | -0.71 | -0.55 |
| Tue 30/12 | Brighton & Hove Albion | 1.17 | 1.37 | -0.20 | -0.54 |
| Sat 03/01 | Wolverhampton | 0.32 | 1.08 | -0.76 | -0.55 |
| Tue 06/01 | Nottingham Forest | 0.95 | 0.73 | +0.22 | -0.51 |
| Sat 17/01 | Tottenham Hotspur | 2.69 | 1.75 | +0.94 | -0.44 |
| Sat 24/01 | Sunderland | 0.64 | 0.65 | -0.01 | -0.43 |
| Sat 31/01 | Chelsea | 1.12 | 2.79 | -1.67 | -0.48 |
| Sat 07/02 | Burnley | 1.02 | 1.28 | -0.26 | -0.47 |
| Tue 10/02 | Manchester United | 1.09 | 0.63 | +0.46 | -0.43 |
| Sat 21/02 | Bournemouth | 2.91 | 0.65 | +2.26 | -0.33 |
| Sat 28/02 | Liverpool | 2.01 | 1.75 | +0.26 | -0.31 |
| Wed 04/03 | Fulham | 1.09 | 1.01 | +0.08 | -0.30 |
| Sat 14/03 | Manchester City | 0.54 | 2.12 | -1.58 | -0.34 |
| Sun 22/03 | Aston Villa | 0.89 | 1.72 | -0.83 | -0.36 |
| Fri 10/04 | Wolverhampton | 1.69 | 0.61 | +1.08 | -0.31 |
| Mon 20/04 | Crystal Palace | 0.61 | 0.68 | -0.07 | -0.31 |
| Sat 25/04 | Everton | 1.17 | 1.49 | -0.32 | -0.31 |
| Sat 02/05 | Brentford | 0.72 | 1.37 | -0.65 | -0.32 |
| Sun 10/05 | Arsenal | 1.32 | 1.39 | -0.07 | -0.31 |
| Sun 17/05 | Newcastle United | 0.88 | 1.70 | -0.82 | -0.32 |
| Sun 24/05 | Leeds United | 2.68 | 1.57 | +1.11 | -0.28 |
Each bar is one match's non-penalty xG minus the non-penalty xG against; the line is that difference averaged over the season up to each match, and it finishes on the dashed season average — 1.17 npxG and 1.45 npxGA per match. Current form is the same difference over the last 6 matches with xG.
Strength of schedule
- Season so far
- tied number 3 hardest of 20 in Premier League
- +0.01 xG vs league average
- Over 38 league matches
- Last 5
- number 13 hardest of 20 in Premier League
- 0.00 xG vs league average
- Over 5 league matches
Opponents behind the figures
Season so far
+0.01 xG vs league average · over 38 matches · tied number 3 hardest of 20
- Leeds United Home −0.14
- Newcastle United Away −0.03
- Arsenal Home +0.48
- Brentford Away −0.09
- Everton Home −0.20
- Crystal Palace Away −0.05
- Wolverhampton Home −0.34
- Aston Villa Away +0.01
- Manchester City Home +0.51
- Fulham Away +0.02
- Liverpool Away +0.21
- Bournemouth Home +0.16
- Manchester United Home +0.28
- Burnley Away −0.69
- Chelsea Away +0.09
- Sunderland Home −0.14
- Tottenham Hotspur Away +0.03
- Nottingham Forest Home −0.14
- Wolverhampton Away −0.34
- Brighton & Hove Albion Home +0.20
- Fulham Home +0.02
- Manchester City Away +0.51
- Aston Villa Home +0.01
- Brighton & Hove Albion Away +0.20
- Manchester United Away +0.28
- Liverpool Home +0.21
- Bournemouth Away +0.16
- Burnley Home −0.69
- Newcastle United Home −0.03
- Leeds United Away −0.14
- Brentford Home −0.09
- Arsenal Away +0.48
- Everton Away −0.20
- Crystal Palace Home −0.05
- Tottenham Hotspur Home +0.03
- Nottingham Forest Away −0.14
- Chelsea Home +0.09
- Sunderland Away −0.14
Last 5
0.00 xG vs league average · over 5 matches · number 13 hardest of 20
- Leeds United Home −0.14
- Newcastle United Away −0.03
- Arsenal Home +0.48
- Brentford Away −0.09
- Everton Home −0.20
West Ham United shots and chance quality
Low volume, average quality. West Ham United take 10.6 shots a match (league 12.5) at 0.11 npxG a shot (league 0.11), #17 in Premier League for volume and #7 for quality. 73% of their shots come from inside the box (league 67%), and set pieces produce 30% of their npxG (league 29%).
Attack
| Rank | Club | shots per match |
|---|---|---|
| =1 | Manchester City | 15.7 |
| =1 | Manchester United | 15.7 |
| #3 | Liverpool | 15.5 |
| #4 | Arsenal | 14.5 |
| #5 | Bournemouth | 13.8 |
| #6 | Chelsea | 13.4 |
| #7 | Brighton & Hove Albion | 13.0 |
| #8 | Newcastle United | 12.9 |
| =9 | Aston Villa | 12.7 |
| =9 | Fulham | 12.7 |
| #11 | Leeds United | 12.6 |
| #12 | Nottingham Forest | 12.5 |
| #13 | Crystal Palace | 11.6 |
| #14 | Tottenham Hotspur | 11.4 |
| #15 | Everton | 11.0 |
| #16 | Brentford | 10.7 |
| #17 | West Ham United | 10.6 |
| #18 | Sunderland | 10.4 |
| #19 | Wolverhampton | 9.7 |
| #20 | Burnley | 9.3 |
- League avg
- 12.5
- Total
- 404 shots from 38 matches
| Rank | Club | npxG per shot |
|---|---|---|
| #1 | Brentford | 0.13 |
| #2 | Chelsea | 0.12 |
| #3 | Crystal Palace | 0.12 |
| #4 | Manchester City | 0.11 |
| #5 | Arsenal | 0.11 |
| #6 | Bournemouth | 0.11 |
| #7 | West Ham United | 0.11 |
| #8 | Newcastle United | 0.11 |
| #9 | Brighton & Hove Albion | 0.11 |
| #10 | Everton | 0.11 |
| #11 | Leeds United | 0.10 |
| #12 | Manchester United | 0.10 |
| #13 | Aston Villa | 0.10 |
| #14 | Liverpool | 0.10 |
| #15 | Tottenham Hotspur | 0.10 |
| #16 | Sunderland | 0.09 |
| #17 | Nottingham Forest | 0.09 |
| #18 | Fulham | 0.09 |
| #19 | Burnley | 0.09 |
| #20 | Wolverhampton | 0.09 |
- League avg
- 0.11
- Total
- 44.39 npxG from 404 shots
Defence
| Rank | Club | shots per match |
|---|---|---|
| #1 | Arsenal | 8.2 |
| #2 | Manchester City | 9.7 |
| #3 | Chelsea | 10.9 |
| #4 | Liverpool | 11.4 |
| #5 | Manchester United | 11.5 |
| #6 | Brighton & Hove Albion | 11.7 |
| #7 | Crystal Palace | 11.7 |
| #8 | Fulham | 11.8 |
| #9 | Tottenham Hotspur | 12.3 |
| #10 | Newcastle United | 12.3 |
| #11 | Leeds United | 12.5 |
| #12 | Bournemouth | 12.6 |
| #13 | Aston Villa | 12.9 |
| =14 | Brentford | 13.3 |
| =14 | Nottingham Forest | 13.3 |
| #16 | Wolverhampton | 13.9 |
| #17 | Everton | 14.0 |
| #18 | Sunderland | 14.2 |
| #19 | West Ham United | 14.9 |
| #20 | Burnley | 16.7 |
- League avg
- 12.5
- Total
- 566 shots allowed from 38 matches
| Rank | Club | npxGA per shot |
|---|---|---|
| #1 | Arsenal | 0.10 |
| #2 | West Ham United | 0.10 |
| #3 | Brentford | 0.10 |
| #4 | Sunderland | 0.10 |
| #5 | Everton | 0.10 |
| #6 | Nottingham Forest | 0.10 |
| #7 | Wolverhampton | 0.10 |
| #8 | Brighton & Hove Albion | 0.10 |
| #9 | Newcastle United | 0.10 |
| #10 | Manchester United | 0.10 |
| #11 | Liverpool | 0.10 |
| #12 | Tottenham Hotspur | 0.11 |
| #13 | Leeds United | 0.11 |
| #14 | Bournemouth | 0.11 |
| #15 | Crystal Palace | 0.11 |
| #16 | Burnley | 0.11 |
| #17 | Fulham | 0.11 |
| #18 | Aston Villa | 0.11 |
| #19 | Manchester City | 0.12 |
| #20 | Chelsea | 0.12 |
- League avg
- 0.11
- Total
- 55.21 npxGA from 566 shots
Shot profile
73% inside the box
League avg 67%
From 296 of 404 shots over 38 matches
69% allowed inside the box
League avg 67%
From 391 of 566 shots allowed over 38 matches
70% open play · 30% set pieces
League avg 29% set pieces
From 13.4 of 44.3 npxG over 38 matches
70% open play · 30% set pieces
League avg 29% set pieces
From 16.6 of 54.9 npxG allowed over 38 matches
West Ham United home and away xG
| Measure | Home | Away |
|---|---|---|
| Matches | 19 | 19 |
| xG / match | 1.34 | 1.07 |
| xGA / match | 1.42 | 1.72 |
| xGD / match | -0.07 | -0.66 |
| xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → | 1.32 | 0.96 |
Every figure divides by that half's matches with xG. A half with fewer than 3 matches with xG is muted.
Every West Ham United match by xG
Last 10
- Matches
- 10
- xG / match
- 1.23
- xGA / match
- 1.44
- xGD / match
- -0.20
- Points
- 14 of 30
- Sun 24/05 Leeds United H xG 2.61 xGA 1.59 xGD +1.02 xPts 2.05
- Sun 17/05 Newcastle United A xG 0.95 xGA 1.73 xGD -0.78 xPts 0.75
- Sun 10/05 Arsenal H xG 1.15 xGA 1.18 xGD -0.03 xPts 1.32
- Sat 02/05 Brentford A xG 0.92 xGA 2.27 P xGD -1.35 xPts 0.49
- Sat 25/04 Everton H xG 1.17 xGA 1.45 xGD -0.28 xPts 1.11
- Mon 20/04 Crystal Palace A xG 0.61 xGA 0.73 xGD -0.12 xPts 1.16
- Fri 10/04 Wolverhampton H Best underlying xG 2.35 P xGA 0.59 xGD +1.76 xPts 2.58
- Sun 22/03 Aston Villa A xG 0.94 xGA 1.68 xGD -0.74 xPts 0.78
- Sat 14/03 Manchester City H Weakest underlying xG 0.54 xGA 2.12 xGD -1.58 xPts 0.31
- Wed 04/03 Fulham A xG 1.09 xGA 1.01 xGD +0.08 xPts 1.41
Newest first. The dot is xG and the ring is xGA, on one scale from 0 to 3.00. Best and weakest underlying mark the highest and lowest xGD once 5 matches have xG. Against the chances marks a win with xGD of −1.00 or lower, or a loss with +1.00 or higher. P marks a side with at least 0.50 xG from penalties.
West Ham United in Premier League
Attack
- xG / match #14 of 20
- Shots / match #17 of 20
- Chance quality #7 of 20
- Home xG #14 of 20
- Away xG #14 of 20
Defence
- xGA / match #19 of 20
- Shots allowed #19 of 20
- Chance quality allowed #2 of 20
About the data
- xG data
- Provided by TheStatsAPI, and stored as published.
- Derived metrics
- xGD, per-match rates, rankings and rolling averages are calculated from the match data.
- Model metrics
- xPts is produced by our probability model.