2. Bundesliga
xG Table · 2025/26
Model figures — expected goals scored by TrueGoals, not actual match xG.
Season leaders
Top xG
- Paderborn50.1
- Magdeburg47.8
- Hannover47.2
- Schalke 0446.5
- Elversberg46.1
Biggest over-performers
- Schalke 04+12.4
- Paderborn+11.4
- Hannover+10.9
- Elversberg+9.9
- Kaiserslautern+7.2
Biggest under-performers
- Preußen Münster-15.5
- Braunschweig-9.0
- Magdeburg-7.2
- Greuther Furth-7.0
- Bielefeld-6.6
Best defences (lowest xGA)
- Schalke 0430.7
- Elversberg36.6
- Braunschweig39.9
- Hertha40.8
- Dresden40.9
Biggest xG difference
- Schalke 04+15.8
- Elversberg+9.6
- Paderborn+5.3
- Hannover+3.8
- Hertha+3.4
| # | Team | Matches played. | Goals scored (actual). | Expected goals for: goals our model (TrueGoals) says this team's performances typically produce. | Expected goals against: same, for goals conceded. | Expected goal difference (xGF minus xGA). | Actual league points. | Expected points: points the team “should” have won based on xG, via match simulation. | Actual points minus expected points. Positive = over-performing its underlying numbers (may regress); negative = under-performing. |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Schalke 04 | 34 | 50 | 46.5 | 30.7 | +15.8 | 70 | 57.6 | +12.4 |
| 2 | Elversberg | 34 | 64 | 46.1 | 36.6 | +9.6 | 62 | 52.1 | +9.9 |
| 3 | Paderborn | 34 | 59 | 50.1 | 44.8 | +5.3 | 62 | 50.6 | +11.4 |
| 4 | Hannover | 34 | 60 | 47.2 | 43.4 | +3.8 | 60 | 49.1 | +10.9 |
| 5 | Hertha | 34 | 47 | 44.3 | 40.8 | +3.4 | 51 | 49.5 | +1.5 |
| 6 | Dresden | 34 | 54 | 41.8 | 40.9 | +0.9 | 41 | 47.0 | -6.0 |
| 7 | Bochum | 34 | 49 | 44.3 | 43.8 | +0.5 | 44 | 46.9 | -2.9 |
| 8 | Darmstadt | 34 | 57 | 46.0 | 46.1 | -0.1 | 52 | 47.4 | +4.6 |
| 9 | Preußen Münster | 34 | 38 | 41.1 | 42.3 | -1.2 | 30 | 45.5 | -15.5 |
| 10 | Magdeburg | 34 | 52 | 47.8 | 49.0 | -1.3 | 39 | 46.2 | -7.2 |
| 11 | Bielefeld | 34 | 53 | 41.3 | 42.9 | -1.5 | 39 | 45.6 | -6.6 |
| 12 | Braunschweig | 34 | 36 | 38.4 | 39.9 | -1.5 | 37 | 46.0 | -9.0 |
| 13 | Greuther Furth | 34 | 49 | 42.6 | 44.5 | -1.9 | 37 | 44.0 | -7.0 |
| 14 | Nurnberg | 34 | 47 | 43.4 | 45.8 | -2.4 | 46 | 45.3 | +0.7 |
| 15 | Kaiserslautern | 34 | 52 | 43.4 | 45.9 | -2.5 | 52 | 44.8 | +7.2 |
| 16 | Holstein Kiel | 34 | 44 | 36.9 | 42.0 | -5.1 | 41 | 42.3 | -1.3 |
| 17 | Karlsruhe | 34 | 53 | 41.8 | 51.9 | -10.1 | 44 | 40.6 | +3.4 |
| 18 | Fortuna Dusseldorf | 34 | 33 | 37.7 | 49.3 | -11.7 | 37 | 39.8 | -2.8 |
| 1 | Schalke 04 | 17 | 29 | 26.4 | 12.3 | +14.0 | 42 | 33.3 | +8.7 |
| 2 | Bochum | 17 | 30 | 27.4 | 17.5 | +9.9 | 29 | 29.7 | -0.7 |
| 3 | Darmstadt | 17 | 32 | 27.3 | 17.5 | +9.8 | 35 | 30.3 | +4.7 |
| 4 | Elversberg | 17 | 35 | 25.8 | 16.5 | +9.3 | 37 | 29.3 | +7.7 |
| 5 | Bielefeld | 17 | 34 | 24.3 | 16.5 | +7.7 | 26 | 28.6 | -2.6 |
| 6 | Kaiserslautern | 17 | 35 | 26.5 | 18.9 | +7.6 | 34 | 28.3 | +5.7 |
| 7 | Hertha | 17 | 16 | 24.3 | 17.2 | +7.1 | 23 | 28.4 | -5.4 |
| 8 | Nurnberg | 17 | 27 | 24.5 | 17.7 | +6.7 | 31 | 27.8 | +3.2 |
| 9 | Hannover | 17 | 27 | 25.4 | 20.4 | +5.1 | 27 | 26.7 | +0.3 |
| 10 | Paderborn | 17 | 35 | 27.1 | 22.4 | +4.7 | 33 | 26.6 | +6.4 |
| 11 | Karlsruhe | 17 | 34 | 25.8 | 22.4 | +3.4 | 30 | 25.8 | +4.2 |
| 12 | Holstein Kiel | 17 | 22 | 21.2 | 17.8 | +3.3 | 22 | 25.0 | -3.0 |
| 13 | Dresden | 17 | 30 | 23.0 | 19.7 | +3.2 | 24 | 25.6 | -1.6 |
| 14 | Preußen Münster | 17 | 22 | 23.5 | 20.3 | +3.2 | 17 | 25.5 | -8.5 |
| 15 | Braunschweig | 17 | 20 | 21.0 | 18.0 | +3.1 | 23 | 25.7 | -2.7 |
| 16 | Greuther Furth | 17 | 26 | 22.1 | 19.7 | +2.4 | 23 | 24.0 | -1.0 |
| 17 | Magdeburg | 17 | 23 | 23.4 | 22.2 | +1.3 | 17 | 23.9 | -6.9 |
| 18 | Fortuna Dusseldorf | 17 | 22 | 21.0 | 23.7 | -2.7 | 24 | 22.0 | +2.0 |
| 1 | Schalke 04 | 17 | 21 | 20.1 | 18.4 | +1.8 | 28 | 24.3 | +3.7 |
| 2 | Paderborn | 17 | 24 | 23.0 | 22.4 | +0.6 | 29 | 24.0 | +5.0 |
| 3 | Elversberg | 17 | 29 | 20.3 | 20.1 | +0.3 | 25 | 22.8 | +2.2 |
| 4 | Hannover | 17 | 33 | 21.8 | 23.1 | -1.3 | 33 | 22.4 | +10.6 |
| 5 | Dresden | 17 | 24 | 18.8 | 21.2 | -2.4 | 17 | 21.4 | -4.4 |
| 6 | Magdeburg | 17 | 29 | 24.3 | 26.9 | -2.5 | 22 | 22.2 | -0.2 |
| 7 | Hertha | 17 | 31 | 19.9 | 23.7 | -3.7 | 28 | 21.1 | +6.9 |
| 8 | Greuther Furth | 17 | 23 | 20.5 | 24.8 | -4.3 | 14 | 20.0 | -6.0 |
| 9 | Preußen Münster | 17 | 16 | 17.6 | 22.0 | -4.4 | 13 | 20.0 | -7.0 |
| 10 | Braunschweig | 17 | 16 | 17.4 | 22.0 | -4.6 | 14 | 20.2 | -6.2 |
| 11 | Holstein Kiel | 17 | 22 | 15.8 | 24.2 | -8.4 | 19 | 17.3 | +1.7 |
| 12 | Fortuna Dusseldorf | 17 | 11 | 16.6 | 25.6 | -9.0 | 13 | 17.8 | -4.8 |
| 13 | Nurnberg | 17 | 20 | 18.9 | 28.1 | -9.1 | 15 | 17.6 | -2.6 |
| 14 | Bielefeld | 17 | 19 | 17.1 | 26.3 | -9.3 | 13 | 17.0 | -4.0 |
| 15 | Bochum | 17 | 19 | 16.9 | 26.3 | -9.4 | 15 | 17.3 | -2.3 |
| 16 | Darmstadt | 17 | 25 | 18.7 | 28.6 | -9.8 | 17 | 17.1 | -0.1 |
| 17 | Kaiserslautern | 17 | 17 | 16.9 | 27.0 | -10.1 | 18 | 16.5 | +1.5 |
| 18 | Karlsruhe | 17 | 19 | 16.0 | 29.5 | -13.5 | 14 | 14.8 | -0.8 |
First half / second half
Descriptive — actual half-time and full-time facts (2025/26), not predictions.
| Team | Pld | Goals scored in the first half. | Goals scored in the second half (full-time minus half-time). | Goals conceded in the first half. | Goals conceded in the second half. | Share of the team's goals scored in the second half. Shown only when there are enough goals to be meaningful. | Comebacks: matches the team was trailing at half-time but ended up winning or drawing. | Leads lost: matches the team was leading at half-time but ended up drawing or losing. |
|---|---|---|---|---|---|---|---|---|
| Bielefeld | 34 | 21 | 32 | 24 | 27 | 60% | 6 | 4 |
| Bochum | 34 | 22 | 27 | 21 | 26 | 55% | 4 | 2 |
| Braunschweig | 34 | 19 | 17 | 24 | 30 | 47% | 2 | 2 |
| Darmstadt | 34 | 23 | 34 | 25 | 20 | 60% | 5 | 3 |
| Dresden | 34 | 32 | 22 | 23 | 30 | 41% | 1 | 6 |
| Elversberg | 34 | 28 | 36 | 19 | 20 | 56% | 4 | 3 |
| Fortuna Dusseldorf | 34 | 14 | 19 | 20 | 33 | 58% | 2 | 1 |
| Greuther Furth | 34 | 21 | 28 | 29 | 39 | 57% | 1 | 2 |
| Hannover | 34 | 28 | 32 | 18 | 26 | 53% | 4 | 4 |
| Hertha | 34 | 22 | 25 | 17 | 27 | 53% | 1 | 5 |
| Holstein Kiel | 34 | 21 | 23 | 24 | 24 | 52% | 2 | 3 |
| Kaiserslautern | 34 | 22 | 30 | 19 | 28 | 58% | 0 | 1 |
| Karlsruhe | 34 | 17 | 36 | 27 | 37 | 68% | 5 | 2 |
| Magdeburg | 34 | 24 | 28 | 25 | 33 | 54% | 0 | 1 |
| Nurnberg | 34 | 22 | 25 | 18 | 27 | 53% | 3 | 4 |
| Paderborn | 34 | 24 | 35 | 24 | 21 | 59% | 5 | 4 |
| Preußen Münster | 34 | 14 | 24 | 31 | 30 | 63% | 5 | 3 |
| Schalke 04 | 34 | 26 | 24 | 12 | 19 | 48% | 1 | 1 |
| League total | 612 | 400 | 497 | 400 | 497 | 55% | 51 | 51 |
Home advantage
Realized home vs away results (2025/26). "Edge" = home PPG − away PPG. Descriptive, not a prediction.
League-wide home edge (PPG) over 26 seasons — the long decline:
| Team | HP | Home win percentage. | Home points per game (3 for a win, 1 for a draw). | Away points per game. | Home edge: home points per game minus away points per game — the size of the team's home advantage. Caveated when either home or away matches are few. | Home goal difference per game. | Away goal difference per game. |
|---|---|---|---|---|---|---|---|
| Bielefeld | 17 | 41% | 1.53 | 0.76 | +0.76 | +0.76 | -0.65 |
| Bochum | 17 | 47% | 1.71 | 0.88 | +0.82 | +0.53 | -0.41 |
| Braunschweig | 17 | 35% | 1.35 | 0.82 | +0.53 | -0.35 | -0.71 |
| Darmstadt | 17 | 59% | 2.06 | 1.00 | +1.06 | +0.88 | -0.18 |
| Dresden | 17 | 41% | 1.41 | 1.00 | +0.41 | +0.47 | -0.41 |
| Elversberg | 17 | 65% | 2.18 | 1.47 | +0.71 | +1.24 | +0.24 |
| Fortuna Dusseldorf | 17 | 41% | 1.41 | 0.76 | +0.65 | -0.24 | -0.94 |
| Greuther Furth | 17 | 35% | 1.35 | 0.82 | +0.53 | -0.29 | -0.82 |
| Hannover | 17 | 41% | 1.59 | 1.94 | -0.35 | +0.24 | +0.71 |
| Hertha | 17 | 35% | 1.35 | 1.65 | -0.29 | -0.12 | +0.29 |
| Holstein Kiel | 17 | 35% | 1.29 | 1.12 | +0.18 | +0.18 | -0.41 |
| Kaiserslautern | 17 | 65% | 2.00 | 1.06 | +0.94 | +0.94 | -0.65 |
| Karlsruhe | 17 | 53% | 1.76 | 0.82 | +0.94 | +0.29 | -0.94 |
| Magdeburg | 17 | 29% | 1.00 | 1.29 | -0.29 | -0.29 | -0.06 |
| Nurnberg | 17 | 53% | 1.82 | 0.88 | +0.94 | +0.59 | -0.47 |
| Paderborn | 17 | 59% | 1.94 | 1.71 | +0.24 | +0.47 | +0.35 |
| Preußen Münster | 17 | 18% | 1.00 | 0.76 | +0.24 | -0.24 | -1.12 |
| Schalke 04 | 17 | 76% | 2.47 | 1.65 | +0.82 | +0.88 | +0.24 |
| League total | 306 | 46% | 1.62 | 1.13 | +0.49 | +0.33 | -0.33 |
Corners
Descriptive — actual corner counts (2025/26), shown where available. Not a prediction.
League-wide corners per team, per match over 12 seasons — the decline:
| Team | Pld | Corners won (total). | Corners conceded (total). | Corners won per game. | Corners conceded per game. | Home corners won per game. | Away corners won per game. |
|---|---|---|---|---|---|---|---|
| Bielefeld | 34 | 208 | 144 | 6.1 | 4.2 | 6.6 | 5.6 |
| Bochum | 34 | 169 | 199 | 5.0 | 5.9 | 4.9 | 5.0 |
| Braunschweig | 34 | 161 | 197 | 4.7 | 5.8 | 4.8 | 4.6 |
| Darmstadt | 34 | 165 | 188 | 4.9 | 5.5 | 5.1 | 4.6 |
| Dresden | 34 | 171 | 195 | 5.0 | 5.7 | 4.8 | 5.2 |
| Elversberg | 34 | 207 | 142 | 6.1 | 4.2 | 6.2 | 6.0 |
| Fortuna Dusseldorf | 34 | 151 | 151 | 4.4 | 4.4 | 4.5 | 4.4 |
| Greuther Furth | 34 | 154 | 191 | 4.5 | 5.6 | 4.1 | 5.0 |
| Hannover | 34 | 211 | 139 | 6.2 | 4.1 | 8.1 | 4.4 |
| Hertha | 34 | 151 | 200 | 4.4 | 5.9 | 4.8 | 4.1 |
| Holstein Kiel | 34 | 176 | 169 | 5.2 | 5.0 | 6.1 | 4.2 |
| Kaiserslautern | 34 | 160 | 166 | 4.7 | 4.9 | 5.6 | 3.8 |
| Karlsruhe | 34 | 156 | 165 | 4.6 | 4.9 | 4.8 | 4.4 |
| Magdeburg | 34 | 177 | 164 | 5.2 | 4.8 | 5.3 | 5.1 |
| Nurnberg | 34 | 175 | 155 | 5.1 | 4.6 | 5.2 | 5.1 |
| Paderborn | 34 | 174 | 155 | 5.1 | 4.6 | 6.0 | 4.2 |
| Preußen Münster | 34 | 141 | 199 | 4.1 | 5.9 | 4.9 | 3.4 |
| Schalke 04 | 34 | 164 | 152 | 4.8 | 4.5 | 5.4 | 4.3 |
| League total | 612 | 3071 | 3071 | 5.0 | 5.0 | — | — |