xgEdge

Expected goals

Middlesbrough expected goals (xG) 2026/2027

Championship · after 12 matches · updated 30 Oct

Middlesbrough's attacking and defensive expected goals in Championship 2026/2027, compared with the results they produced and with the rest of the competition.

Middlesbrough xG and xGA per match

Every match ↓
Attack
2.16 xG per match
#1/24
Attack (xG per match) across Championship, best first
Rank Club xG per match
#1 Middlesbrough 2.16
#2 West Ham United 2.11
#3 Cardiff City 1.92
#4 Southampton 1.81
#5 Millwall 1.75
#6 Wolverhampton 1.72
#7 Birmingham City 1.69
#8 Queens Park Rangers 1.65
#9 Swansea City 1.49
#10 Norwich City 1.48
#11 Bolton Wanderers 1.36
#12 West Bromwich Albion 1.35
#13 Burnley 1.32
#14 Portsmouth 1.31
#15 Lincoln City 1.30
#16 Preston North End 1.28
#17 Bristol City 1.27
#18 Sheffield United 1.18
#19 Wrexham 1.17
#20 Watford 1.05
#21 Blackburn Rovers 1.03
#22 Charlton Athletic 0.99
#23 Derby County 0.97
#24 Stoke City 0.88
League avg
1.43
Total
25.95 12 matches
Defence
1.02 xGA per match
#2/24
Defence (xGA per match) across Championship, best first
Rank Club xGA per match
#1 Wolverhampton 0.92
#2 Middlesbrough 1.02
#3 Queens Park Rangers 1.12
#4 Portsmouth 1.13
#5 Wrexham 1.21
#6 West Ham United 1.21
#7 Bristol City 1.29
#8 Swansea City 1.32
#9 Millwall 1.32
#10 Southampton 1.33
#11 Birmingham City 1.33
#12 Lincoln City 1.45
#13 Sheffield United 1.46
#14 West Bromwich Albion 1.47
#15 Preston North End 1.51
#16 Norwich City 1.53
#17 Cardiff City 1.57
#18 Charlton Athletic 1.58
#19 Stoke City 1.63
#20 Burnley 1.65
#21 Derby County 1.72
#22 Blackburn Rovers 1.72
#23 Watford 1.88
#24 Bolton Wanderers 1.90
League avg
1.43
Total
12.18 12 matches
xG difference
+1.15 xGD per match
#1/24
xG difference (xGD per match) across Championship, best first
Rank Club xGD per match
#1 Middlesbrough +1.15
#2 West Ham United +0.90
#3 Wolverhampton +0.81
#4 Queens Park Rangers +0.53
#5 Southampton +0.48
#6 Millwall +0.43
#7 Birmingham City +0.37
#8 Cardiff City +0.35
#9 Portsmouth +0.18
#10 Swansea City +0.17
#11 Bristol City -0.02
#12 Wrexham -0.04
#13 Norwich City -0.05
#14 West Bromwich Albion -0.12
#15 Lincoln City -0.15
#16 Preston North End -0.23
#17 Sheffield United -0.28
#18 Burnley -0.33
#19 Bolton Wanderers -0.55
#20 Charlton Athletic -0.60
#21 Blackburn Rovers -0.69
#22 Derby County -0.75
#23 Stoke City -0.75
#24 Watford -0.83
League avg
0.00
Total
+13.77 12 matches
Expected points Model — Model output — computed from each match's xG, not a result. How xPts works →
2.10 xPts per match
#1/24
Expected points (xPts per match) across Championship, best first
Rank Club xPts per match
#1 Middlesbrough 2.10
#2 Wolverhampton 1.97
#3 West Ham United 1.84
#4 Queens Park Rangers 1.72
#5 Southampton 1.70
#6 Birmingham City 1.64
#7 Millwall 1.63
#8 Cardiff City 1.58
#9 Portsmouth 1.51
#10 Swansea City 1.50
#11 Bristol City 1.44
#12 Wrexham 1.41
#13 Lincoln City 1.35
#14 Norwich City 1.33
#15 West Bromwich Albion 1.27
#16 Preston North End 1.19
#17 Sheffield United 1.17
#18 Burnley 1.11
#19 Bolton Wanderers 1.06
#20 Derby County 1.02
#21 Charlton Athletic 0.97
#22 Stoke City 0.94
#23 Blackburn Rovers 0.92
#24 Watford 0.82
League avg
1.38
Total
25.22 vs 25 actual pts

What the xG says

Middlesbrough's underlying numbers are league-leading. They rank #1 for xG difference at +1.15 per match, driven by both the league's highest shot volume and high chance quality. Their 27 goals are 1.05 above 25.95 xG, while 25 points are 0.22 below 25.22 xPts.

Actual vs expected

Measure Actual Expected Difference Reading
27 25.95 +1.05 scored 1.05 more than xG within normal variance
17 12.18 +4.82 conceded 4.82 more than xGA outside normal variance

Select a row to chart it across the season.

Goals minus xG, match by match

Middlesbrough are 1.05 goals above their xG after 12 matches.

Goals
27
xG
25.95
Gap
+1.05
Sat 15/08 Sat 22/08 Sat 29/08 Wed 02/09 Sat 05/09 Sat 12/09 Tue 15/09 Sat 19/09 Sat 10/10 Tue 13/10 Sat 17/10 Fri 23/10 -2 -1 0 +1 +2 -0.23 -0.66 -0.12 -0.34 -1.87 +0.06 +0.54 +0.40 +0.50 +0.93 +0.22 +1.05 -0.23 -0.43 +0.54 -0.22 -1.53 +1.93 +0.48 -0.14 +0.10 +0.43 -0.71 +0.83 Running gap goals − xG Each match goals − xG
Middlesbrough: Goals vs xG, the gap after every match with xG
Date Opponent Goals xG Match gap Running gap
Sat 15/08 Lincoln City 2 2.23 -0.23 -0.23
Sat 22/08 Blackburn Rovers 1 1.43 -0.43 -0.66
Sat 29/08 West Bromwich Albion 3 2.46 +0.54 -0.12
Wed 02/09 Burnley 1 1.22 -0.22 -0.34
Sat 05/09 Queens Park Rangers 1 2.53 -1.53 -1.87
Sat 12/09 Norwich City 4 2.07 +1.93 +0.06
Tue 15/09 Millwall 2 1.52 +0.48 +0.54
Sat 19/09 Birmingham City 2 2.14 -0.14 +0.40
Sat 10/10 Wolverhampton 1 0.90 +0.10 +0.50
Tue 13/10 Stoke City 3 2.57 +0.43 +0.93
Sat 17/10 Cardiff City 2 2.71 -0.71 +0.22
Fri 23/10 Bolton Wanderers 5 4.17 +0.83 +1.05

Goals vs xG ranking → Expected points ranking → Compare with every club in Europe →

Middlesbrough xG trend

Current form +1.46 npxGD per match

The last 6 matches with xG.

Out-created the opponent in 12 of 12 matches.

npxG · last 6
2.39
npxGA · last 6
0.93
-1 0 +1 +2 +3 +4 +1.60 Sat 15/08 +0.39 Sat 22/08 +1.12 Sat 29/08 +0.58 Wed 02/09 +1.42 Sat 05/09 +0.45 Sat 12/09 +0.33 Tue 15/09 +0.95 Sat 19/09 +0.39 Sat 10/10 +1.95 Tue 13/10 +1.86 Sat 17/10 +3.26 Fri 23/10 +1.19 season avg
Middlesbrough: non-penalty xG, xGA and their difference in each match, with the season's average so far
Date Opponent npxG npxGA npxGD Avg so far
Sat 15/08 Lincoln City 2.22 0.62 +1.60 +1.60
Sat 22/08 Blackburn Rovers 1.34 0.95 +0.39 +1.00
Sat 29/08 West Bromwich Albion 2.53 1.41 +1.12 +1.04
Wed 02/09 Burnley 1.22 0.64 +0.58 +0.92
Sat 05/09 Queens Park Rangers 2.39 0.97 +1.42 +1.02
Sat 12/09 Norwich City 2.07 1.62 +0.45 +0.93
Tue 15/09 Millwall 1.79 1.46 +0.33 +0.84
Sat 19/09 Birmingham City 2.10 1.15 +0.95 +0.85
Sat 10/10 Wolverhampton 0.96 0.57 +0.39 +0.80
Tue 13/10 Stoke City 2.61 0.66 +1.95 +0.92
Sat 17/10 Cardiff City 2.71 0.85 +1.86 +1.00
Fri 23/10 Bolton Wanderers 4.17 0.91 +3.26 +1.19

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 — 2.18 npxG and 0.98 npxGA per match. Current form is the same difference over the last 6 matches with xG.

Form ranking →

Strength of schedule

Season so far
tied number 9 hardest of 24 in Championship
+0.01 xG vs league average
Over 12 league matches
Last 5
number 11 hardest of 24 in Championship
+0.04 xG vs league average
Over 5 league matches
Opponents behind the figures

Season so far

+0.01 xG vs league average · over 12 matches · tied number 9 hardest of 24

  1. Bolton Wanderers Away −0.13
  2. Cardiff City Home +0.10
  3. Stoke City Away −0.42
  4. Wolverhampton Home +0.47
  5. Birmingham City Away +0.18
  6. Millwall Home +0.26
  7. Norwich City Home +0.03
  8. Queens Park Rangers Away +0.24
  9. Burnley Away −0.13
  10. West Bromwich Albion Home −0.02
  11. Blackburn Rovers Away −0.35
  12. Lincoln City Home −0.14

Last 5

+0.04 xG vs league average · over 5 matches · number 11 hardest of 24

  1. Bolton Wanderers Away −0.13
  2. Cardiff City Home +0.10
  3. Stoke City Away −0.42
  4. Wolverhampton Home +0.47
  5. Birmingham City Away +0.18

League schedule strength → How this is calculated →

Middlesbrough shots and chance quality

High volume, high quality. Middlesbrough take 20.1 shots a match (league 13.7) at 0.11 npxG a shot (league 0.10), #1 in Championship for volume and #4 for quality. 65% of their shots come from inside the box (league 67%), and set pieces produce 27% of their npxG (league 28%).

Attack

Shot volume
20.1 shots per match
#1/24
Shot volume (shots per match) across Championship, best first
Rank Club shots per match
#1 Middlesbrough 20.1
#2 West Ham United 17.3
#3 Cardiff City 17.1
#4 Wolverhampton 16.8
#5 Southampton 15.2
#6 Queens Park Rangers 14.8
#7 Portsmouth 14.6
#8 Norwich City 14.1
#9 Millwall 13.9
#10 Burnley 13.8
#11 Bolton Wanderers 13.7
#12 Bristol City 13.5
#13 Birmingham City 13.2
#14 Preston North End 12.7
#15 Derby County 12.6
=16 Lincoln City 12.3
=16 Wrexham 12.3
=18 Watford 12.3
=18 West Bromwich Albion 12.3
#20 Swansea City 11.8
#21 Blackburn Rovers 11.6
#22 Stoke City 11.3
#23 Sheffield United 10.7
#24 Charlton Athletic 10.0
League avg
13.7
Total
241 shots from 12 matches
Chance quality
0.11 npxG per shot
#4/24
Chance quality (npxG per shot) across Championship, best first
Rank Club npxG per shot
#1 Swansea City 0.12
#2 Millwall 0.12
#3 Birmingham City 0.12
#4 Middlesbrough 0.11
#5 West Ham United 0.11
#6 Southampton 0.11
#7 Sheffield United 0.11
#8 Charlton Athletic 0.10
#9 Queens Park Rangers 0.10
#10 Cardiff City 0.10
#11 West Bromwich Albion 0.10
#12 Preston North End 0.09
#13 Wolverhampton 0.09
#14 Wrexham 0.09
#15 Lincoln City 0.09
#16 Norwich City 0.09
#17 Bristol City 0.09
#18 Bolton Wanderers 0.09
#19 Burnley 0.08
#20 Blackburn Rovers 0.08
#21 Portsmouth 0.08
#22 Watford 0.08
#23 Derby County 0.07
#24 Stoke City 0.07
League avg
0.10
Total
26.11 npxG from 241 shots

Defence

Shots allowed
11.1 shots per match
#4/24
Shots allowed (shots per match) across Championship, best first
Rank Club shots per match
#1 Wolverhampton 10.3
=2 Portsmouth 10.9
=2 Swansea City 10.9
#4 Middlesbrough 11.1
#5 Queens Park Rangers 11.4
#6 West Ham United 11.8
#7 Bristol City 11.9
#8 Wrexham 12.0
=9 Birmingham City 12.1
=9 Norwich City 12.1
=9 West Bromwich Albion 12.1
#12 Millwall 13.0
#13 Bolton Wanderers 14.3
#14 Cardiff City 14.4
#15 Burnley 14.7
#16 Derby County 15.1
=17 Sheffield United 15.5
=17 Stoke City 15.5
#19 Lincoln City 15.7
#20 Southampton 15.8
#21 Preston North End 16.2
#22 Watford 16.6
#23 Charlton Athletic 17.0
#24 Blackburn Rovers 17.3
League avg
13.7
Total
133 shots allowed from 12 matches
Chance quality allowed
0.09 npxGA per shot
#7/24
Chance quality allowed (npxGA per shot) across Championship, best first
Rank Club npxGA per shot
#1 Southampton 0.07
#2 Charlton Athletic 0.08
#3 Wolverhampton 0.08
#4 Blackburn Rovers 0.08
#5 Lincoln City 0.09
#6 Sheffield United 0.09
#7 Middlesbrough 0.09
#8 West Ham United 0.09
#9 Millwall 0.09
#10 Preston North End 0.09
#11 Stoke City 0.09
#12 Wrexham 0.09
#13 Bristol City 0.09
#14 Queens Park Rangers 0.10
#15 Portsmouth 0.10
#16 Cardiff City 0.10
#17 Burnley 0.10
#18 Birmingham City 0.10
#19 Swansea City 0.10
#20 Watford 0.10
#21 Derby County 0.11
#22 West Bromwich Albion 0.12
#23 Norwich City 0.12
#24 Bolton Wanderers 0.13
League avg
0.10
Total
11.81 npxGA from 133 shots

Shot profile

Shot location

65% inside the box

League avg 67%

From 156 of 241 shots over 12 matches

Shots allowed, location

65% allowed inside the box

League avg 67%

From 87 of 133 shots allowed over 12 matches

Where the npxG comes from

73% open play · 27% set pieces

League avg 28% set pieces

From 7.1 of 26.4 npxG over 12 matches

Where the npxG allowed comes from

73% open play · 27% set pieces

League avg 28% set pieces

From 3.3 of 11.9 npxG allowed over 12 matches

Middlesbrough home and away xG

Middlesbrough per-match figures at home and away
Measure Home Away
Matches 6 6
xG / match 1.98 2.34
xGA / match 1.14 0.90
xGD / match +0.85 +1.45
xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → 1.94 2.26

Every figure divides by that half's matches with xG. A half with fewer than 3 matches with xG is muted.

Every Middlesbrough match by xG

Venue

Newest first. The dot is xG and the ring is xGA, on one scale from 0 to 4.17. 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.

Every result, all competitions →

Middlesbrough in Championship

Attack

Defence

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.

Learn how our xG analytics work →

How the model works →