Bundesliga xG Table 2026/27
Bayern Munich have created the most this season, 22.8 xG from 6 matches. Freiburg have scored 3.7 more than their chances were worth, the biggest gap in the league, while Stuttgart have scored 5.3 fewer than theirs.
| # | Team | P | xG | xGA | xGD | xG/G | G | G-xG |
|---|---|---|---|---|---|---|---|---|
| 1 | Bayern Munich |
6 | 22.8 | 5.7 | +17.1 | 3.80 | 22 | -0.8 |
| 2 | Bayer Leverkusen |
5 | 12.7 | 5.6 | +7.1 | 2.55 | 14 | +1.3 |
| 3 | Borussia Dortmund |
6 | 12.2 | 6.0 | +6.2 | 2.03 | 11 | -1.2 |
| 4 | Freiburg |
5 | 10.3 | 4.4 | +5.8 | 2.05 | 14 | +3.7 |
| 5 | Mainz |
6 | 14.2 | 8.9 | +5.4 | 2.37 | 14 | -0.2 |
| 6 | RB Leipzig |
6 | 14.2 | 12.0 | +2.2 | 2.36 | 16 | +1.8 |
| 7 | FC Cologne |
6 | 11.5 | 11.0 | +0.5 | 1.92 | 8 | -3.5 |
| 8 | Hoffenheim |
5 | 9.6 | 9.9 | -0.2 | 1.93 | 9 | -0.6 |
| 9 | Werder Bremen |
6 | 8.8 | 10.3 | -1.5 | 1.47 | 12 | +3.2 |
| 10 | Stuttgart |
6 | 13.3 | 15.8 | -2.4 | 2.22 | 8 | -5.3 |
| 11 | Eintracht Frankfurt |
6 | 12.1 | 14.7 | -2.6 | 2.02 | 10 | -2.1 |
| 12 | Augsburg |
6 | 14.3 | 17.1 | -2.9 | 2.38 | 16 | +1.7 |
| 13 | Elversberg |
6 | 10.5 | 14.8 | -4.3 | 1.76 | 12 | +1.5 |
| 14 | Borussia Monchengladbach |
5 | 8.5 | 14.0 | -5.4 | 1.70 | 7 | -1.5 |
| 15 | Hamburg |
6 | 7.1 | 12.8 | -5.7 | 1.19 | 6 | -1.1 |
| 16 | Schalke 04 |
6 | 7.4 | 13.5 | -6.1 | 1.23 | 4 | -3.4 |
| 17 | Paderborn |
6 | 6.5 | 12.8 | -6.3 | 1.09 | 5 | -1.5 |
| 18 | Union Berlin |
6 | 7.1 | 14.1 | -7.0 | 1.18 | 5 | -2.1 |
| League average | 5.8 | 11.3 | 11.3 | 0.0 | 1.95 | 10.7 | -0.6 |
| # | Team | P | xG | xGA | xGD | xG/G | G | G-xG |
|---|---|---|---|---|---|---|---|---|
| 1 | Bayern Munich |
3 | 13.1 | 2.4 | +10.7 | 4.37 | 18 | +4.9 |
| 2 | RB Leipzig |
3 | 11.0 | 3.7 | +7.3 | 3.66 | 14 | +3.0 |
| 3 | Borussia Dortmund |
3 | 7.1 | 2.3 | +4.8 | 2.36 | 7 | -0.1 |
| 4 | Bayer Leverkusen |
2 | 5.9 | 1.2 | +4.8 | 2.97 | 6 | +0.1 |
| 5 | Freiburg |
3 | 6.2 | 1.6 | +4.6 | 2.05 | 11 | +4.8 |
| 6 | Werder Bremen |
3 | 5.8 | 3.7 | +2.1 | 1.94 | 8 | +2.2 |
| 7 | FC Cologne |
3 | 5.5 | 4.1 | +1.3 | 1.82 | 6 | +0.5 |
| 8 | Mainz |
3 | 6.0 | 5.1 | +0.8 | 1.99 | 4 | -2.0 |
| 9 | Eintracht Frankfurt |
3 | 5.9 | 5.4 | +0.5 | 1.95 | 4 | -1.9 |
| 10 | Augsburg |
3 | 8.3 | 8.3 | +0.0 | 2.78 | 7 | -1.3 |
| 11 | Hoffenheim |
3 | 6.1 | 6.2 | -0.2 | 2.02 | 6 | -0.1 |
| 12 | Union Berlin |
4 | 6.4 | 6.6 | -0.2 | 1.59 | 5 | -1.4 |
| 13 | Borussia Monchengladbach |
2 | 6.0 | 6.5 | -0.5 | 2.99 | 6 | +0.0 |
| 14 | Stuttgart |
2 | 4.2 | 5.0 | -0.8 | 2.09 | 4 | -0.2 |
| 15 | Paderborn |
3 | 4.2 | 5.4 | -1.3 | 1.39 | 3 | -1.2 |
| 16 | Schalke 04 |
3 | 1.9 | 4.4 | -2.5 | 0.64 | 0 | -1.9 |
| 17 | Elversberg |
3 | 6.4 | 9.4 | -3.0 | 2.14 | 8 | +1.6 |
| 18 | Hamburg |
3 | 4.0 | 8.1 | -4.1 | 1.33 | 3 | -1.0 |
| League average | 2.9 | 6.3 | 5.0 | 0.0 | 2.19 | 6.7 | +0.3 |
| # | Team | P | xG | xGA | xGD | xG/G | G | G-xG |
|---|---|---|---|---|---|---|---|---|
| 1 | Bayern Munich |
3 | 9.7 | 3.2 | +6.5 | 3.23 | 4 | -5.7 |
| 2 | Mainz |
3 | 8.3 | 3.8 | +4.5 | 2.76 | 10 | +1.7 |
| 3 | Bayer Leverkusen |
3 | 6.8 | 4.4 | +2.4 | 2.27 | 8 | +1.2 |
| 4 | Borussia Dortmund |
3 | 5.1 | 3.8 | +1.4 | 1.71 | 4 | -1.1 |
| 5 | Freiburg |
2 | 4.1 | 2.8 | +1.3 | 2.05 | 3 | -1.1 |
| 6 | Hoffenheim |
2 | 3.6 | 3.7 | -0.1 | 1.80 | 3 | -0.6 |
| 7 | FC Cologne |
3 | 6.0 | 6.9 | -0.8 | 2.01 | 2 | -4.0 |
| 8 | Elversberg |
3 | 4.1 | 5.4 | -1.3 | 1.37 | 4 | -0.1 |
| 9 | Hamburg |
3 | 3.1 | 4.7 | -1.6 | 1.04 | 3 | -0.1 |
| 10 | Stuttgart |
4 | 9.1 | 10.8 | -1.7 | 2.29 | 4 | -5.1 |
| 11 | Augsburg |
3 | 5.9 | 8.8 | -2.9 | 1.97 | 9 | +3.1 |
| 12 | Eintracht Frankfurt |
3 | 6.2 | 9.3 | -3.0 | 2.08 | 6 | -0.2 |
| 13 | Werder Bremen |
3 | 3.0 | 6.6 | -3.6 | 0.99 | 4 | +1.0 |
| 14 | Schalke 04 |
3 | 5.4 | 9.1 | -3.6 | 1.81 | 4 | -1.4 |
| 15 | Borussia Monchengladbach |
3 | 2.5 | 7.5 | -4.9 | 0.85 | 1 | -1.5 |
| 16 | Paderborn |
3 | 2.4 | 7.4 | -5.0 | 0.79 | 2 | -0.4 |
| 17 | RB Leipzig |
3 | 3.2 | 8.3 | -5.1 | 1.07 | 2 | -1.2 |
| 18 | Union Berlin |
2 | 0.7 | 7.5 | -6.8 | 0.36 | 0 | -0.7 |
| League average | 2.9 | 5.0 | 6.3 | 0.0 | 1.72 | 4.1 | -0.9 |
Scroll a table sideways for every column
Bundesliga matches this season only, 6 rounds so far. Sorted by xG difference. xG figures come from Understat. Early in a season a few matches can swing these figures a lot.
What the xG table tells you
Expected goals, or xG, rates every shot by how often similar chances are scored. A tap in from a few yards might be worth well over half a goal, while a hopeful effort from long range is worth a few hundredths. Add up a side's chances and you get the number of goals they could have expected to score.
xGA is the same count for the shots a side allows, and xGD is the gap between the two. A positive xGD means a club creates more than it gives away, which shows the balance of play even when results have not caught up yet. The per game figure lets clubs with different numbers of matches be compared fairly.
G-xG compares actual goals with xG. A high figure means a team has scored more than its chances were worth, which is hard to keep up for a whole season. A low figure points to wasted chances, poor finishing or a goalkeeper in good form at the other end.
A single big chance can move these numbers a long way, so read early season tables as a snapshot of what has happened rather than a settled verdict. The home and away tabs show whether a side's chance creation travels.
Bayern Munich
Bayer Leverkusen
Borussia Dortmund
Freiburg
Mainz
RB Leipzig
FC Cologne
Hoffenheim
Werder Bremen
Stuttgart
Eintracht Frankfurt
Augsburg
Elversberg
Borussia Monchengladbach
Hamburg
Schalke 04
Paderborn
Union Berlin