Expected goals
Bristol City expected goals (xG) 2026/2027
Championship · after 11 matches · updated 21 Oct
Bristol City's attacking and defensive expected goals in Championship 2026/2027, compared with the results they produced and with the rest of the competition.
Bristol City xG and xGA per match
Every match ↓| Rank | Club | xG per match |
|---|---|---|
| #1 | West Ham United | 2.16 |
| #2 | Middlesbrough | 1.98 |
| #3 | Cardiff City | 1.88 |
| #4 | Millwall | 1.85 |
| #5 | Southampton | 1.83 |
| #6 | Birmingham City | 1.77 |
| #7 | Wolverhampton | 1.71 |
| #8 | Swansea City | 1.60 |
| #9 | Queens Park Rangers | 1.50 |
| #10 | Norwich City | 1.47 |
| #11 | Bolton Wanderers | 1.40 |
| #12 | Portsmouth | 1.35 |
| #13 | Bristol City | 1.32 |
| #14 | West Bromwich Albion | 1.29 |
| #15 | Lincoln City | 1.25 |
| #16 | Preston North End | 1.24 |
| #17 | Burnley | 1.23 |
| #18 | Watford | 1.13 |
| #19 | Wrexham | 1.12 |
| #20 | Sheffield United | 1.06 |
| #21 | Charlton Athletic | 1.00 |
| #22 | Blackburn Rovers | 0.98 |
| #23 | Derby County | 0.96 |
| #24 | Stoke City | 0.90 |
- League avg
- 1.42
- Total
- 14.50 11 matches
| Rank | Club | xGA per match |
|---|---|---|
| #1 | Wolverhampton | 0.99 |
| #2 | Middlesbrough | 1.02 |
| #3 | Swansea City | 1.14 |
| #4 | Portsmouth | 1.17 |
| =5 | West Ham United | 1.18 |
| =5 | Wrexham | 1.18 |
| #7 | Queens Park Rangers | 1.20 |
| #8 | Birmingham City | 1.23 |
| #9 | Southampton | 1.31 |
| #10 | Bristol City | 1.35 |
| #11 | Millwall | 1.37 |
| #12 | Lincoln City | 1.37 |
| #13 | West Bromwich Albion | 1.44 |
| #14 | Preston North End | 1.46 |
| #15 | Sheffield United | 1.49 |
| #16 | Charlton Athletic | 1.57 |
| #17 | Norwich City | 1.60 |
| #18 | Burnley | 1.62 |
| #19 | Cardiff City | 1.63 |
| #20 | Derby County | 1.65 |
| #21 | Bolton Wanderers | 1.69 |
| #22 | Stoke City | 1.71 |
| #23 | Blackburn Rovers | 1.72 |
| #24 | Watford | 1.88 |
- League avg
- 1.42
- Total
- 14.84 11 matches
| Rank | Club | xGD per match |
|---|---|---|
| #1 | West Ham United | +0.99 |
| #2 | Middlesbrough | +0.96 |
| #3 | Wolverhampton | +0.73 |
| #4 | Birmingham City | +0.53 |
| #5 | Southampton | +0.53 |
| #6 | Millwall | +0.48 |
| #7 | Swansea City | +0.46 |
| #8 | Queens Park Rangers | +0.30 |
| #9 | Cardiff City | +0.25 |
| #10 | Portsmouth | +0.18 |
| #11 | Bristol City | -0.03 |
| #12 | Wrexham | -0.05 |
| #13 | Lincoln City | -0.13 |
| #14 | Norwich City | -0.14 |
| #15 | West Bromwich Albion | -0.15 |
| #16 | Preston North End | -0.22 |
| #17 | Bolton Wanderers | -0.30 |
| #18 | Burnley | -0.40 |
| #19 | Sheffield United | -0.43 |
| #20 | Charlton Athletic | -0.57 |
| #21 | Derby County | -0.69 |
| #22 | Blackburn Rovers | -0.74 |
| #23 | Watford | -0.75 |
| #24 | Stoke City | -0.81 |
- League avg
- 0.00
- Total
- -0.34 11 matches
| Rank | Club | xPts per match |
|---|---|---|
| #1 | Middlesbrough | 2.03 |
| #2 | Wolverhampton | 1.90 |
| #3 | West Ham United | 1.89 |
| #4 | Birmingham City | 1.75 |
| #5 | Southampton | 1.73 |
| #6 | Millwall | 1.68 |
| #7 | Swansea City | 1.63 |
| #8 | Queens Park Rangers | 1.61 |
| #9 | Cardiff City | 1.51 |
| #10 | Portsmouth | 1.51 |
| #11 | Bristol City | 1.44 |
| #12 | Wrexham | 1.40 |
| #13 | Lincoln City | 1.37 |
| #14 | Norwich City | 1.26 |
| #15 | West Bromwich Albion | 1.25 |
| #16 | Preston North End | 1.20 |
| #17 | Bolton Wanderers | 1.15 |
| #18 | Derby County | 1.07 |
| #19 | Sheffield United | 1.07 |
| #20 | Burnley | 1.05 |
| #21 | Charlton Athletic | 1.00 |
| #22 | Stoke City | 0.91 |
| #23 | Blackburn Rovers | 0.89 |
| #24 | Watford | 0.88 |
- League avg
- 1.38
- Total
- 15.84 vs 14 actual pts
What the xG says
Bristol City's underlying numbers sit close to the Championship average. They rank #11 for xG difference at -0.03 per match, from about average shot volume at about average chance quality. Their 12 goals are 2.50 below 14.50 xG, while 14 points are 1.84 below 15.84 xPts.
Actual vs expected
Select a row to chart it across the season.
Goals minus xG, match by match
Bristol City are 2.50 goals below their xG after 11 matches.
- Goals
- 12
- xG
- 14.50
- Gap
- -2.50
- This match
- Match gap
- Running gap
| Date | Opponent | Goals | xG | Match gap | Running gap |
|---|---|---|---|---|---|
| Sat 15/08 | Millwall | 0 | 0.52 | -0.52 | -0.52 |
| Sat 22/08 | Birmingham City | 2 | 1.43 | +0.57 | +0.05 |
| Sat 29/08 | Portsmouth | 2 | 0.61 | +1.39 | +1.44 |
| Tue 01/09 | Preston North End | 3 | 1.78 | +1.22 | +2.66 |
| Sat 05/09 | Burnley | 2 | 1.06 | +0.94 | +3.60 |
| Sat 12/09 | Southampton | 1 | 2.24 | -1.24 | +2.36 |
| Tue 15/09 | Lincoln City | 0 | 1.53 | -1.53 | +0.83 |
| Fri 18/09 | Watford | 1 | 1.47 | -0.47 | +0.36 |
| Sat 10/10 | Charlton Athletic | 1 | 1.47 | -0.47 | -0.11 |
| Tue 13/10 | Blackburn Rovers | 0 | 1.89 | -1.89 | -2.00 |
| Sat 17/10 | Sheffield United | 0 | 0.50 | -0.50 | -2.50 |
Goals vs xG ranking → Expected points ranking → Compare with every club in Europe →
Bristol City xG trend
Current form +0.35 npxGD per match
The last 6 matches with xG.
Out-created the opponent in 8 of 11 matches. The worst was against Millwall on Sat 15/08 (-2.52).
- npxG · last 6
- 1.36
- npxGA · last 6
- 1.01
- npxG
- npxGA
- npxGD
- Avg so far
| Date | Opponent | npxG | npxGA | npxGD | Avg so far |
|---|---|---|---|---|---|
| Sat 15/08 | Millwall | 0.50 | 3.02 | -2.52 | -2.52 |
| Sat 22/08 | Birmingham City | 1.43 | 1.19 | +0.24 | -1.14 |
| Sat 29/08 | Portsmouth | 0.61 | 0.58 | +0.03 | -0.75 |
| Tue 01/09 | Preston North End | 1.86 | 1.77 | +0.09 | -0.54 |
| Sat 05/09 | Burnley | 0.89 | 0.20 | +0.69 | -0.29 |
| Sat 12/09 | Southampton | 2.17 | 1.37 | +0.80 | -0.11 |
| Tue 15/09 | Lincoln City | 1.46 | 0.85 | +0.61 | -0.01 |
| Fri 18/09 | Watford | 1.56 | 0.52 | +1.04 | +0.12 |
| Sat 10/10 | Charlton Athletic | 0.71 | 1.96 | -1.25 | -0.03 |
| Tue 13/10 | Blackburn Rovers | 1.74 | 0.15 | +1.59 | +0.13 |
| Sat 17/10 | Sheffield United | 0.50 | 1.20 | -0.70 | +0.06 |
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.22 npxG and 1.16 npxGA per match. Current form is the same difference over the last 6 matches with xG.
Strength of schedule
- Season so far
- number 24 hardest of 24 in Championship
- −0.11 xG vs league average
- Over 11 league matches
- Last 5
- number 24 hardest of 24 in Championship
- −0.32 xG vs league average
- Over 5 league matches
Opponents behind the figures
Season so far
−0.11 xG vs league average · over 11 matches · number 24 hardest of 24
- Sheffield United Home −0.31
- Blackburn Rovers Home −0.33
- Charlton Athletic Away −0.40
- Watford Home −0.39
- Lincoln City Home −0.19
- Southampton Away +0.19
- Burnley Away −0.08
- Preston North End Away −0.26
- Portsmouth Home +0.11
- Birmingham City Away +0.22
- Millwall Home +0.22
Last 5
−0.32 xG vs league average · over 5 matches · number 24 hardest of 24
- Sheffield United Home −0.31
- Blackburn Rovers Home −0.33
- Charlton Athletic Away −0.40
- Watford Home −0.39
- Lincoln City Home −0.19
Bristol City shots and chance quality
Average volume, average quality. Bristol City take 14.0 shots a match (league 13.5) at 0.09 npxG a shot (league 0.10), #10 in Championship for volume and #17 for quality. 69% of their shots come from inside the box (league 67%), and set pieces produce 39% of their npxG (league 28%).
Attack
| Rank | Club | shots per match |
|---|---|---|
| #1 | Middlesbrough | 19.1 |
| #2 | Cardiff City | 17.2 |
| #3 | West Ham United | 16.3 |
| #4 | Wolverhampton | 16.2 |
| #5 | Portsmouth | 15.3 |
| #6 | Southampton | 15.2 |
| #7 | Queens Park Rangers | 15.1 |
| =8 | Burnley | 14.3 |
| =8 | Millwall | 14.3 |
| #10 | Bristol City | 14.0 |
| #11 | Norwich City | 13.9 |
| #12 | Bolton Wanderers | 13.8 |
| #13 | Birmingham City | 13.7 |
| #14 | Watford | 13.0 |
| #15 | Derby County | 12.7 |
| =16 | Preston North End | 12.1 |
| =16 | Swansea City | 12.1 |
| =18 | Lincoln City | 11.5 |
| =18 | West Bromwich Albion | 11.5 |
| =20 | Stoke City | 11.4 |
| =20 | Wrexham | 11.4 |
| #22 | Blackburn Rovers | 11.2 |
| #23 | Charlton Athletic | 10.2 |
| #24 | Sheffield United | 9.4 |
- League avg
- 13.5
- Total
- 154 shots from 11 matches
| Rank | Club | npxG per shot |
|---|---|---|
| #1 | Swansea City | 0.13 |
| #2 | Millwall | 0.12 |
| #3 | Birmingham City | 0.12 |
| #4 | West Ham United | 0.12 |
| #5 | Southampton | 0.11 |
| #6 | Sheffield United | 0.11 |
| #7 | Middlesbrough | 0.10 |
| #8 | Charlton Athletic | 0.10 |
| #9 | Cardiff City | 0.10 |
| #10 | Wrexham | 0.10 |
| #11 | Wolverhampton | 0.10 |
| #12 | West Bromwich Albion | 0.10 |
| #13 | Preston North End | 0.09 |
| #14 | Queens Park Rangers | 0.09 |
| #15 | Lincoln City | 0.09 |
| #16 | Norwich City | 0.09 |
| #17 | Bristol City | 0.09 |
| #18 | Bolton Wanderers | 0.09 |
| #19 | Watford | 0.08 |
| #20 | Blackburn Rovers | 0.08 |
| #21 | Portsmouth | 0.08 |
| #22 | Burnley | 0.08 |
| #23 | Derby County | 0.07 |
| #24 | Stoke City | 0.07 |
- League avg
- 0.10
- Total
- 13.43 npxG from 154 shots
Defence
| Rank | Club | shots per match |
|---|---|---|
| #1 | Swansea City | 10.8 |
| #2 | Wolverhampton | 10.9 |
| =3 | Middlesbrough | 11.0 |
| =3 | Portsmouth | 11.0 |
| =5 | West Bromwich Albion | 11.5 |
| =5 | West Ham United | 11.5 |
| #7 | Wrexham | 11.6 |
| =8 | Birmingham City | 11.7 |
| =8 | Queens Park Rangers | 11.7 |
| #10 | Bristol City | 12.0 |
| #11 | Norwich City | 12.5 |
| #12 | Bolton Wanderers | 12.8 |
| #13 | Millwall | 13.5 |
| #14 | Burnley | 14.1 |
| #15 | Derby County | 14.2 |
| #16 | Southampton | 14.7 |
| #17 | Cardiff City | 15.1 |
| #18 | Preston North End | 15.8 |
| =19 | Sheffield United | 15.9 |
| =19 | Watford | 15.9 |
| #21 | Stoke City | 16.2 |
| #22 | Lincoln City | 16.4 |
| #23 | Blackburn Rovers | 16.8 |
| #24 | Charlton Athletic | 17.1 |
- League avg
- 13.5
- Total
- 132 shots allowed from 11 matches
| Rank | Club | npxGA per shot |
|---|---|---|
| #1 | Southampton | 0.08 |
| #2 | Charlton Athletic | 0.08 |
| #3 | Lincoln City | 0.08 |
| #4 | Blackburn Rovers | 0.08 |
| #5 | Wolverhampton | 0.08 |
| #6 | Sheffield United | 0.09 |
| #7 | West Ham United | 0.09 |
| #8 | Preston North End | 0.09 |
| #9 | Millwall | 0.09 |
| #10 | Middlesbrough | 0.09 |
| #11 | Stoke City | 0.09 |
| #12 | Swansea City | 0.09 |
| #13 | Wrexham | 0.09 |
| #14 | Cardiff City | 0.10 |
| #15 | Bristol City | 0.10 |
| #16 | Portsmouth | 0.10 |
| #17 | Queens Park Rangers | 0.10 |
| #18 | Birmingham City | 0.10 |
| #19 | Burnley | 0.10 |
| #20 | Watford | 0.11 |
| #21 | Derby County | 0.11 |
| #22 | West Bromwich Albion | 0.12 |
| #23 | Norwich City | 0.13 |
| #24 | Bolton Wanderers | 0.13 |
- League avg
- 0.10
- Total
- 12.81 npxGA from 132 shots
Shot profile
69% inside the box
League avg 67%
From 106 of 154 shots over 11 matches
64% allowed inside the box
League avg 67%
From 85 of 132 shots allowed over 11 matches
61% open play · 39% set pieces
League avg 28% set pieces
From 5.3 of 13.6 npxG over 11 matches
74% open play · 26% set pieces
League avg 28% set pieces
From 3.4 of 12.9 npxG allowed over 11 matches
Bristol City home and away xG
| Measure | Home | Away |
|---|---|---|
| Matches | 6 | 5 |
| xG / match | 1.09 | 1.60 |
| xGA / match | 1.20 | 1.53 |
| xGD / match | -0.11 | +0.07 |
| xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → | 1.42 | 1.46 |
Every figure divides by that half's matches with xG. A half with fewer than 3 matches with xG is muted.
Every Bristol City match by xG
This season
- Matches
- 11
- xG / match
- 1.32
- xGA / match
- 1.35
- xGD / match
- -0.03
- Points
- 14 of 33
- Sat 17/10 Sheffield United H xG 0.50 xGA 1.18 xGD -0.68 xPts 0.71
- Tue 13/10 Blackburn Rovers H Against the chances xG 1.89 xGA 0.15 xGD +1.74 xPts 2.69
- Sat 10/10 Charlton Athletic A xG 1.47 P xGA 1.78 xGD -0.31 xPts 1.13
- Fri 18/09 Watford H xG 1.47 xGA 0.57 xGD +0.90 xPts 2.16
- Tue 15/09 Lincoln City H Against the chances xG 1.53 xGA 0.53 xGD +1.00 xPts 2.21
- Sat 12/09 Southampton A xG 2.24 xGA 1.71 xGD +0.53 xPts 1.74
- Sat 05/09 Burnley A xG 1.06 xGA 0.26 xGD +0.80 xPts 2.16
- Tue 01/09 Preston North End A xG 1.78 xGA 1.91 xGD -0.13 xPts 1.29
- Sat 29/08 Portsmouth H xG 0.61 xGA 1.37 P xGD -0.76 xPts 0.68
- Sat 22/08 Birmingham City A xG 1.43 xGA 1.98 P xGD -0.55 xPts 0.98
- Sat 15/08 Millwall H Weakest underlying xG 0.52 xGA 3.40 xGD -2.88 xPts 0.09
Newest first. The dot is xG and the ring is xGA, on one scale from 0 to 3.40. 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.
Bristol City in Championship
Attack
- xG / match #13 of 24
- Shots / match #10 of 24
- Chance quality #17 of 24
- Home xG #18 of 24
- Away xG #6 of 24
Defence
- xGA / match #10 of 24
- Shots allowed #10 of 24
- Chance quality allowed #15 of 24
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.