xgEdge

Expected goals

Borussia Dortmund expected goals (xG) 2026/2027

Bundesliga · after 4 matches · updated 1 Oct

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

Borussia Dortmund xG and xGA per match

Every match ↓
Attack
1.66 xG per match
#12/18
Attack (xG per match) across Bundesliga, best first
Rank Club xG per match
#1 FC Bayern München 3.14
#2 Bayer 04 Leverkusen 2.48
#3 1. FSV Mainz 05 2.24
#4 SC Freiburg 2.22
#5 RB Leipzig 2.22
#6 Eintracht Frankfurt 1.98
#7 1. FC Köln 1.97
#8 VfB Stuttgart 1.89
#9 TSG Hoffenheim 1.83
=10 Borussia M'gladbach 1.72
=10 FC Augsburg 1.72
#12 Borussia Dortmund 1.66
#13 SV 07 Elversberg 1.38
#14 SV Werder Bremen 1.33
#15 FC Schalke 04 1.32
#16 1. FC Union Berlin 1.13
#17 Hamburger SV 0.91
#18 SC Paderborn 07 0.67
League avg
1.77
Total
6.64 4 matches
Defence
0.93 xGA per match
#3/18
Defence (xGA per match) across Bundesliga, best first
Rank Club xGA per match
#1 FC Bayern München 0.57
#2 SC Freiburg 0.91
#3 Borussia Dortmund 0.93
#4 Bayer 04 Leverkusen 0.94
#5 RB Leipzig 1.35
#6 SC Paderborn 07 1.43
#7 1. FSV Mainz 05 1.55
#8 SV Werder Bremen 1.55
#9 TSG Hoffenheim 1.70
#10 1. FC Köln 1.98
#11 SV 07 Elversberg 2.02
#12 Hamburger SV 2.04
#13 Eintracht Frankfurt 2.05
#14 FC Schalke 04 2.11
#15 FC Augsburg 2.30
#16 1. FC Union Berlin 2.70
#17 VfB Stuttgart 2.75
#18 Borussia M'gladbach 2.92
League avg
1.77
Total
3.72 4 matches
xG difference
+0.73 xGD per match
#5/18
xG difference (xGD per match) across Bundesliga, best first
Rank Club xGD per match
#1 FC Bayern München +2.57
#2 Bayer 04 Leverkusen +1.54
#3 SC Freiburg +1.31
#4 RB Leipzig +0.86
#5 Borussia Dortmund +0.73
#6 1. FSV Mainz 05 +0.69
#7 TSG Hoffenheim +0.13
#8 1. FC Köln -0.01
#9 Eintracht Frankfurt -0.07
#10 SV Werder Bremen -0.22
#11 FC Augsburg -0.58
#12 SV 07 Elversberg -0.64
#13 SC Paderborn 07 -0.77
#14 FC Schalke 04 -0.79
#15 VfB Stuttgart -0.86
#16 Hamburger SV -1.12
#17 Borussia M'gladbach -1.20
#18 1. FC Union Berlin -1.57
League avg
0.00
Total
+2.92 4 matches
Expected points Model — Model output — computed from each match's xG, not a result. How xPts works →
1.95 xPts per match
#4/18
Expected points (xPts per match) across Bundesliga, best first
Rank Club xPts per match
#1 FC Bayern München 2.76
#2 Bayer 04 Leverkusen 2.34
#3 SC Freiburg 2.26
#4 Borussia Dortmund 1.95
#5 RB Leipzig 1.85
#6 1. FSV Mainz 05 1.82
#7 TSG Hoffenheim 1.48
#8 1. FC Köln 1.40
#9 Eintracht Frankfurt 1.36
#10 SV Werder Bremen 1.16
#11 VfB Stuttgart 1.01
#12 FC Augsburg 0.99
#13 SV 07 Elversberg 0.98
#14 FC Schalke 04 0.92
#15 Borussia M'gladbach 0.83
#16 SC Paderborn 07 0.72
#17 Hamburger SV 0.71
#18 1. FC Union Berlin 0.70
League avg
1.40
Total
7.80 vs 12 actual pts

Early-season figures: after 4 matches, per-match rates can move quickly.

What the xG says

Borussia Dortmund's underlying numbers are among the best in Bundesliga. They rank #5 for xG difference at +0.73 per match, from about average shot volume at about average chance quality. After only 4 matches, treat every figure here as provisional.

Actual vs expected

Measure Actual Expected Difference Reading
9 6.64 +2.36 Too early to read
2 3.72 -1.72 Too early to read

Select a row to chart it across the season.

Goals minus xG, match by match

Borussia Dortmund are 2.36 goals above their xG after 4 matches. The gap was widest at +2.69, against SC Paderborn 07 on Sat 12/09.

Goals
9
xG
6.64
Gap
+2.36
Sat 29/08 Sat 05/09 Sat 12/09 Sat 19/09 -1 0 +1 +2 +3 +0.47 +1.45 +2.69 +2.36 +0.47 +0.98 +1.24 -0.33 Running gap goals − xG Each match goals − xG
Borussia Dortmund: Goals vs xG, the gap after every match with xG
Date Opponent Goals xG Match gap Running gap
Sat 29/08 Hamburger SV 2 1.53 +0.47 +0.47
Sat 05/09 TSG Hoffenheim 3 2.02 +0.98 +1.45
Sat 12/09 SC Paderborn 07 3 1.76 +1.24 +2.69
Sat 19/09 VfB Stuttgart 1 1.33 -0.33 +2.36

Goals vs xG ranking → Expected points ranking →

Borussia Dortmund xG trend

Current form +0.86 npxGD per match

All 4 matches with xG so far — the window fills at 6.

Out-created the opponent in 4 of 4 matches.

npxG · last 4
1.67
npxGA · last 4
0.82
-1 0 +1 +2 +0.72 Sat 29/08 +0.97 Sat 05/09 +1.26 Sat 12/09 +0.47 Sat 19/09 +0.85 season avg
Borussia Dortmund: 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 29/08 Hamburger SV 1.52 0.80 +0.72 +0.72
Sat 05/09 TSG Hoffenheim 2.15 1.18 +0.97 +0.85
Sat 12/09 SC Paderborn 07 1.68 0.42 +1.26 +0.98
Sat 19/09 VfB Stuttgart 1.34 0.87 +0.47 +0.85

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.67 npxG and 0.82 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 13 hardest of 18 in Bundesliga
−0.10 xG vs league average
Over 4 league matches
Opponents behind the figures

Season so far

−0.10 xG vs league average · over 4 matches · tied number 13 hardest of 18

  1. VfB Stuttgart Away +0.17
  2. SC Paderborn 07 Home −0.28
  3. TSG Hoffenheim Away +0.19
  4. Hamburger SV Home −0.47

League schedule strength → How this is calculated →

Borussia Dortmund shots and chance quality

Average volume, average quality. Borussia Dortmund take 14.5 shots a match (league 15.5) at 0.12 npxG a shot (league 0.11), #10 in Bundesliga for volume and #7 for quality. 72% of their shots come from inside the box (league 68%), and set pieces produce 16% of their npxG (league 26%).

Attack

Shot volume
14.5 shots per match
#10/18
Shot volume (shots per match) across Bundesliga, best first
Rank Club shots per match
#1 Bayer 04 Leverkusen 22.5
#2 FC Bayern München 21.8
=3 SC Freiburg 19.0
=3 TSG Hoffenheim 19.0
#5 RB Leipzig 18.8
#6 1. FSV Mainz 05 18.3
#7 1. FC Köln 17.3
#8 Borussia M'gladbach 16.5
#9 VfB Stuttgart 15.3
#10 Borussia Dortmund 14.5
#11 FC Augsburg 14.0
=12 Eintracht Frankfurt 13.8
=12 SV Werder Bremen 13.8
=14 1. FC Union Berlin 11.8
=14 FC Schalke 04 11.8
=14 SC Paderborn 07 11.8
#17 SV 07 Elversberg 10.3
#18 Hamburger SV 9.5
League avg
15.5
Total
58 shots from 4 matches
Chance quality
0.12 npxG per shot
#7/18
Chance quality (npxG per shot) across Bundesliga, best first
Rank Club npxG per shot
#1 SV 07 Elversberg 0.14
#2 FC Bayern München 0.13
#3 RB Leipzig 0.13
#4 FC Augsburg 0.12
#5 Eintracht Frankfurt 0.12
#6 1. FSV Mainz 05 0.12
#7 Borussia Dortmund 0.12
#8 FC Schalke 04 0.11
#9 VfB Stuttgart 0.11
#10 SC Freiburg 0.11
#11 Bayer 04 Leverkusen 0.11
#12 1. FC Köln 0.11
#13 1. FC Union Berlin 0.10
#14 Hamburger SV 0.10
#15 TSG Hoffenheim 0.08
#16 SV Werder Bremen 0.08
#17 Borussia M'gladbach 0.08
#18 SC Paderborn 07 0.06
League avg
0.11
Total
6.69 npxG from 58 shots

Defence

Shots allowed
12.0 shots per match
#4/18
Shots allowed (shots per match) across Bundesliga, best first
Rank Club shots per match
#1 FC Bayern München 5.8
#2 Bayer 04 Leverkusen 9.0
#3 SC Freiburg 9.5
#4 Borussia Dortmund 12.0
#5 1. FSV Mainz 05 12.5
#6 RB Leipzig 13.8
#7 TSG Hoffenheim 14.5
#8 SV Werder Bremen 15.0
#9 1. FC Köln 15.8
#10 FC Schalke 04 17.5
#11 VfB Stuttgart 18.0
=12 Hamburger SV 18.5
=12 SC Paderborn 07 18.5
=14 1. FC Union Berlin 18.8
=14 Borussia M'gladbach 18.8
#16 Eintracht Frankfurt 19.0
#17 FC Augsburg 20.8
#18 SV 07 Elversberg 21.8
League avg
15.5
Total
48 shots allowed from 4 matches
Chance quality allowed
0.07 npxGA per shot
#1/18
Chance quality allowed (npxGA per shot) across Bundesliga, best first
Rank Club npxGA per shot
#1 Borussia Dortmund 0.07
#2 SC Freiburg 0.07
#3 SC Paderborn 07 0.08
#4 SV 07 Elversberg 0.09
#5 SV Werder Bremen 0.09
#6 RB Leipzig 0.09
#7 FC Augsburg 0.10
#8 Bayer 04 Leverkusen 0.10
#9 1. FSV Mainz 05 0.10
#10 Eintracht Frankfurt 0.10
#11 FC Bayern München 0.10
#12 1. FC Köln 0.11
#13 TSG Hoffenheim 0.12
#14 Hamburger SV 0.12
#15 FC Schalke 04 0.12
#16 1. FC Union Berlin 0.13
#17 VfB Stuttgart 0.15
#18 Borussia M'gladbach 0.16
League avg
0.11
Total
3.27 npxGA from 48 shots

Shot profile

Shot location

72% inside the box

League avg 68%

From 42 of 58 shots over 4 matches

Early-season figure: after 4 matches, the share can move quickly.

Shots allowed, location

58% allowed inside the box

League avg 68%

From 28 of 48 shots allowed over 4 matches

Early-season figure: after 4 matches, the share can move quickly.

Where the npxG comes from

84% open play · 16% set pieces

League avg 26% set pieces

From 1.1 of 6.4 npxG over 4 matches

Early-season figure: after 4 matches, the share can move quickly.

Where the npxG allowed comes from

77% open play · 23% set pieces

League avg 26% set pieces

From 0.8 of 3.3 npxG allowed over 4 matches

Early-season figure: after 4 matches, the share can move quickly.

Borussia Dortmund home and away xG

Borussia Dortmund per-match figures at home and away
Measure Home only 2 matches with xG Away only 2 matches with xG
Matches 2 2
xG / match 1.65 1.68
xGA / match 0.70 1.16
xGD / match +0.95 +0.52
xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → 2.14 1.76

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

Every Borussia Dortmund match by xG

Window
Season Last 10 Last 5
Venue

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.

Every result, all competitions →

Borussia Dortmund in Bundesliga

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 →