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 ↓| 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
| 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
| 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
| 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
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
- This match
- Match gap
- Running gap
| 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 |
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
- npxG
- npxGA
- npxGD
- Avg 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.
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
- VfB Stuttgart Away +0.17
- SC Paderborn 07 Home −0.28
- TSG Hoffenheim Away +0.19
- Hamburger SV Home −0.47
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
| 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
| 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
| 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
| 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
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.
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.
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.
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
| 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
This season
- Matches
- 4
- xG / match
- 1.66
- xGA / match
- 0.93
- xGD / match
- +0.73
- Points
- 12 of 12
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.
Borussia Dortmund in Bundesliga
Attack
- xG / match #12 of 18
- Shots / match #10 of 18
- Chance quality #7 of 18
- Home xG #14 of 18
- Away xG #9 of 18
Defence
- xGA / match #3 of 18
- Shots allowed #4 of 18
- Chance quality allowed #1 of 18
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.