Championship xG difference 2026/2027
Championship clubs ranked by xG difference (xGD) per match in 2026/2027: the expected goals each side creates less those it allows. Middlesbrough currently lead, +1.19 xGD per match across 12 matches.
Showing non-penalty xG. Penalties are removed from the expected-goal columns; goals, G − xG and the rates taken from goals are unchanged.
-
Best attack
2.18 Middlesbrough
26.11 xG in 12 matches
-
Best defence
0.84 Wolverhampton
10.13 xGA in 12 matches
-
Widest xG difference
+1.19 Middlesbrough
+14.30 xGD in 12 matches
Attack and defence
Middlesbrough
P 12 · Pts 25 · 1st
xG/match 2.18 · xGA/match 0.98 · xGD/match +1.19
xPts 25.22
Open MiddlesbroughWest Ham United
P 12 · Pts 22 · 4th
xG/match 1.86 · xGA/match 1.05 · xGD/match +0.82
xPts 22.12
Open West Ham UnitedWolverhampton
P 12 · Pts 21 · 5th
xG/match 1.57 · xGA/match 0.84 · xGD/match +0.73
xPts 23.61
Open WolverhamptonMillwall
P 12 · Pts 15 · 13th
xG/match 1.67 · xGA/match 1.19 · xGD/match +0.48
xPts 19.61
Open MillwallSouthampton
P 12 · Pts 24 · 2nd
xG/match 1.62 · xGA/match 1.14 · xGD/match +0.48
xPts 20.41
Open SouthamptonQueens Park Rangers
P 12 · Pts 20 · 8th
xG/match 1.49 · xGA/match 1.09 · xGD/match +0.40
xPts 20.68
Open Queens Park RangersBirmingham City
P 12 · Pts 20 · 7th
xG/match 1.56 · xGA/match 1.21 · xGD/match +0.35
xPts 19.73
Open Birmingham CitySwansea City
P 12 · Pts 23 · 3rd
xG/match 1.46 · xGA/match 1.12 · xGD/match +0.34
xPts 17.95
Open Swansea CityCardiff City
P 12 · Pts 14 · 16th
xG/match 1.66 · xGA/match 1.40 · xGD/match +0.26
xPts 19.00
Open Cardiff CityPortsmouth
P 12 · Pts 18 · 11th
xG/match 1.16 · xGA/match 1.05 · xGD/match +0.11
xPts 18.08
Open PortsmouthBristol City
P 12 · Pts 15 · 14th
xG/match 1.18 · xGA/match 1.12 · xGD/match +0.06
xPts 17.27
Open Bristol CityWrexham
P 12 · Pts 14 · 17th
xG/match 1.15 · xGA/match 1.13 · xGD/match +0.02
xPts 16.89
Open WrexhamLincoln City
P 12 · Pts 15 · 15th
xG/match 1.14 · xGA/match 1.33 · xGD/match −0.20
xPts 16.18
Open Lincoln CitySheffield United
P 12 · Pts 16 · 12th
xG/match 1.13 · xGA/match 1.34 · xGD/match −0.21
xPts 14.08
Open Sheffield UnitedWest Bromwich Albion
P 12 · Pts 21 · 6th
xG/match 1.19 · xGA/match 1.39 · xGD/match −0.21
xPts 15.29
Open West Bromwich AlbionNorwich City
P 12 · Pts 12 · 20th
xG/match 1.30 · xGA/match 1.50 · xGD/match −0.21
xPts 15.96
Open Norwich CityPreston North End
P 12 · Pts 5 · 24th
xG/match 1.19 · xGA/match 1.48 · xGD/match −0.29
xPts 14.33
Open Preston North EndBurnley
P 12 · Pts 8 · 22nd
xG/match 1.14 · xGA/match 1.47 · xGD/match −0.32
xPts 13.29
Open BurnleyCharlton Athletic
P 12 · Pts 14 · 19th
xG/match 1.02 · xGA/match 1.36 · xGD/match −0.34
xPts 11.67
Open Charlton AthleticBlackburn Rovers
P 12 · Pts 18 · 10th
xG/match 0.93 · xGA/match 1.42 · xGD/match −0.49
xPts 10.99
Open Blackburn RoversStoke City
P 12 · Pts 20 · 9th
xG/match 0.76 · xGA/match 1.43 · xGD/match −0.67
xPts 11.23
Open Stoke CityBolton Wanderers
P 12 · Pts 14 · 18th
xG/match 1.17 · xGA/match 1.92 · xGD/match −0.75
xPts 12.71
Open Bolton WanderersWatford
P 12 · Pts 11 · 21st
xG/match 0.95 · xGA/match 1.72 · xGD/match −0.77
xPts 9.83
Open WatfordDerby County
P 12 · Pts 7 · 23rd
xG/match 0.90 · xGA/match 1.68 · xGD/match −0.78
xPts 12.29
Open Derby County| Club | xG/match | xGA/match | xGD/match |
|---|---|---|---|
| Middlesbrough MID | 2.18 | 0.98 | +1.19 |
| West Ham United WHU | 1.86 | 1.05 | +0.82 |
| Wolverhampton WOL | 1.57 | 0.84 | +0.73 |
| Millwall MIL | 1.67 | 1.19 | +0.48 |
| Southampton SOU | 1.62 | 1.14 | +0.48 |
| Queens Park Rangers QUE | 1.49 | 1.09 | +0.40 |
| Birmingham City BIR | 1.56 | 1.21 | +0.35 |
| Swansea City SWA | 1.46 | 1.12 | +0.34 |
| Cardiff City CAR | 1.66 | 1.40 | +0.26 |
| Portsmouth POR | 1.16 | 1.05 | +0.11 |
| Bristol City BRI | 1.18 | 1.12 | +0.06 |
| Wrexham WRE | 1.15 | 1.13 | +0.02 |
| Lincoln City LIN | 1.14 | 1.33 | −0.20 |
| Sheffield United SHE | 1.13 | 1.34 | −0.21 |
| West Bromwich Albion WES | 1.19 | 1.39 | −0.21 |
| Norwich City NOR | 1.30 | 1.50 | −0.21 |
| Preston North End PRE | 1.19 | 1.48 | −0.29 |
| Burnley BUR | 1.14 | 1.47 | −0.32 |
| Charlton Athletic CHA | 1.02 | 1.36 | −0.34 |
| Blackburn Rovers BLA | 0.93 | 1.42 | −0.49 |
| Stoke City STO | 0.76 | 1.43 | −0.67 |
| Bolton Wanderers BOL | 1.17 | 1.92 | −0.75 |
| Watford WAT | 0.95 | 1.72 | −0.77 |
| Derby County DER | 0.90 | 1.68 | −0.78 |
- Top 3 in the table
- Other clubs
- Above average at both ends
- Below average at both ends
Non-penalty xG. Hover, focus or tap a dot for its figures.
Ranked on xG difference per match
- Creates more than it allows
- Allows more than it creates
| # | Team | P | npxG | npxGA | npxGD | npxGD/match | Pts |
|---|---|---|---|---|---|---|---|
| 1 | Middlesbrough MID | 12 | 26.11 | 11.81 | +14.30 | +1.19 | 25 |
| 2 | West Ham United WHU | 12 | 22.35 | 12.57 | +9.78 | +0.82 | 22 |
| 3 | Wolverhampton WOL | 12 | 18.89 | 10.13 | +8.76 | +0.73 | 21 |
| 4 | Millwall MIL | 12 | 20.03 | 14.24 | +5.79 | +0.48 | 15 |
| 4 | Southampton SOU | 12 | 19.45 | 13.72 | +5.73 | +0.48 | 24 |
| 6 | Queens Park Rangers QUE | 12 | 17.92 | 13.10 | +4.82 | +0.40 | 20 |
| 7 | Birmingham City BIR | 12 | 18.69 | 14.52 | +4.17 | +0.35 | 20 |
| 8 | Swansea City SWA | 12 | 17.48 | 13.44 | +4.04 | +0.34 | 23 |
| 9 | Cardiff City CAR | 12 | 19.92 | 16.79 | +3.13 | +0.26 | 14 |
| 10 | Portsmouth POR | 12 | 13.93 | 12.58 | +1.35 | +0.11 | 18 |
| 11 | Bristol City BRI | 12 | 14.21 | 13.48 | +0.73 | +0.06 | 15 |
| 12 | Wrexham WRE | 12 | 13.76 | 13.56 | +0.20 | +0.02 | 14 |
| 13 | Lincoln City LIN | 12 | 13.64 | 16.00 | −2.36 | −0.20 | 15 |
| 14 | Sheffield United SHE | 12 | 13.57 | 16.04 | −2.47 | −0.21 | 16 |
| 14 | West Bromwich Albion WES | 12 | 14.26 | 16.73 | −2.47 | −0.21 | 21 |
| 14 | Norwich City NOR | 12 | 15.55 | 18.04 | −2.49 | −0.21 | 12 |
| 17 | Preston North End PRE | 12 | 14.22 | 17.73 | −3.51 | −0.29 | 5 |
| 18 | Burnley BUR | 12 | 13.71 | 17.59 | −3.88 | −0.32 | 8 |
| 19 | Charlton Athletic CHA | 12 | 12.20 | 16.30 | −4.10 | −0.34 | 14 |
| 20 | Blackburn Rovers BLA | 12 | 11.20 | 17.06 | −5.86 | −0.49 | 18 |
| 21 | Stoke City STO | 12 | 9.16 | 17.21 | −8.05 | −0.67 | 20 |
| 22 | Bolton Wanderers BOL | 12 | 14.03 | 22.98 | −8.95 | −0.75 | 14 |
| 23 | Watford WAT | 12 | 11.39 | 20.68 | −9.29 | −0.77 | 11 |
| 24 | Derby County DER | 12 | 10.83 | 20.20 | −9.37 | −0.78 | 7 |
What the data shows
- Middlesbrough are 0.38 xGD per match clear of West Ham United, in second.
Goals against chances made
Most goals above xG
Goals against chances allowed
Most conceded above xGA
Fewest conceded against xGA
A gap can come from finishing, goalkeeping, game state or chance. xG and xPts are model estimates, not the result a team deserved.
About these figures What each column measures, and the thresholds this ranking is under. Show Hide
- P
- — Matches played
- npxG
- — Non-penalty expected goals: xG with penalties removed
- npxGA
- — Non-penalty expected goals against: xGA with penalties removed
- npxGD
- — npxG minus npxGA
- npxGD/match
- — npxG minus npxGA, per match with xG data
- Pts
- — Points
A club is ranked once it has 3 matches with xG and at least 75% of what the median club has played. Below that its row stays in the table, its rates are dashed and it sorts last.