Eredivisie
xG Table · 2025/26
Model figures — expected goals scored by TrueGoals, not actual match xG.
Season leaders
Top xG
- PSV Eindhoven71.2
- Twente68.0
- Nijmegen67.7
- Ajax63.3
- Feyenoord62.8
Biggest over-performers
- PSV Eindhoven+18.1
- Heerenveen+6.5
- Feyenoord+4.5
- Nijmegen+4.3
- Sparta Rotterdam+3.5
Biggest under-performers
- Heracles-11.3
- Volendam-9.1
- Groningen-8.8
- Go Ahead Eagles-8.1
- Telstar-6.9
Best defences (lowest xGA)
- Ajax36.2
- PSV Eindhoven36.8
- Feyenoord39.6
- Groningen40.3
- Twente43.4
Biggest xG difference
- PSV Eindhoven+34.4
- Ajax+27.1
- Twente+24.6
- Feyenoord+23.1
- Groningen+17.7
| # | 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 | PSV Eindhoven | 34 | 101 | 71.2 | 36.8 | +34.4 | 84 | 65.9 | +18.1 |
| 2 | Ajax | 34 | 62 | 63.3 | 36.2 | +27.1 | 56 | 61.1 | -5.1 |
| 3 | Twente | 34 | 59 | 68.0 | 43.4 | +24.6 | 58 | 59.3 | -1.3 |
| 4 | Feyenoord | 34 | 70 | 62.8 | 39.6 | +23.1 | 65 | 60.5 | +4.5 |
| 5 | Groningen | 34 | 49 | 58.0 | 40.3 | +17.7 | 48 | 56.8 | -8.8 |
| 6 | AZ Alkmaar | 34 | 58 | 60.7 | 43.6 | +17.1 | 52 | 56.0 | -4.0 |
| 7 | Nijmegen | 34 | 77 | 67.7 | 53.6 | +14.1 | 59 | 54.7 | +4.3 |
| 8 | Utrecht | 34 | 55 | 58.0 | 50.6 | +7.4 | 53 | 50.6 | +2.4 |
| 9 | Go Ahead Eagles | 34 | 54 | 54.1 | 54.9 | -0.8 | 38 | 46.1 | -8.1 |
| 10 | Telstar | 34 | 49 | 53.5 | 58.8 | -5.3 | 37 | 43.9 | -6.9 |
| 11 | Heerenveen | 34 | 57 | 54.5 | 61.0 | -6.5 | 51 | 44.5 | +6.5 |
| 12 | Volendam | 34 | 35 | 43.0 | 55.9 | -12.9 | 32 | 41.1 | -9.1 |
| 13 | Sparta Rotterdam | 34 | 40 | 47.2 | 66.6 | -19.4 | 43 | 39.5 | +3.5 |
| 14 | Excelsior | 34 | 43 | 46.0 | 65.6 | -19.5 | 38 | 36.4 | +1.6 |
| 15 | For Sittard | 34 | 49 | 48.1 | 67.8 | -19.7 | 39 | 37.5 | +1.5 |
| 16 | NAC Breda | 34 | 35 | 43.7 | 65.0 | -21.3 | 29 | 35.9 | -6.9 |
| 17 | Zwolle | 34 | 44 | 40.7 | 67.3 | -26.6 | 37 | 34.7 | +2.3 |
| 18 | Heracles | 34 | 35 | 41.0 | 74.5 | -33.5 | 19 | 30.3 | -11.3 |
| 1 | Twente | 17 | 29 | 38.6 | 17.5 | +21.1 | 32 | 34.0 | -2.0 |
| 2 | Ajax | 17 | 32 | 36.6 | 16.2 | +20.4 | 31 | 34.2 | -3.2 |
| 3 | PSV Eindhoven | 17 | 58 | 37.3 | 18.1 | +19.2 | 41 | 34.3 | +6.7 |
| 4 | Feyenoord | 17 | 39 | 35.9 | 17.0 | +19.0 | 36 | 35.4 | +0.6 |
| 5 | AZ Alkmaar | 17 | 39 | 33.8 | 20.0 | +13.8 | 31 | 32.0 | -1.0 |
| 6 | Go Ahead Eagles | 17 | 34 | 34.8 | 23.0 | +11.9 | 25 | 29.7 | -4.7 |
| 7 | Nijmegen | 17 | 41 | 35.0 | 24.0 | +11.0 | 32 | 29.3 | +2.7 |
| 8 | Groningen | 17 | 27 | 27.5 | 17.6 | +9.9 | 25 | 29.3 | -4.3 |
| 9 | Utrecht | 17 | 31 | 32.2 | 22.7 | +9.4 | 33 | 28.1 | +4.9 |
| 10 | Telstar | 17 | 31 | 31.1 | 24.9 | +6.2 | 20 | 27.4 | -7.4 |
| 11 | Volendam | 17 | 24 | 26.7 | 20.7 | +6.0 | 23 | 27.4 | -4.4 |
| 12 | Heerenveen | 17 | 33 | 30.4 | 27.9 | +2.5 | 30 | 24.5 | +5.5 |
| 13 | Sparta Rotterdam | 17 | 21 | 27.6 | 31.9 | -4.2 | 23 | 22.6 | +0.4 |
| 14 | Excelsior | 17 | 20 | 24.6 | 29.5 | -4.9 | 18 | 21.2 | -3.2 |
| 15 | Zwolle | 17 | 21 | 21.4 | 27.5 | -6.2 | 28 | 20.4 | +7.6 |
| 16 | NAC Breda | 17 | 20 | 24.1 | 30.4 | -6.3 | 20 | 20.1 | -0.1 |
| 17 | For Sittard | 17 | 28 | 23.0 | 30.5 | -7.4 | 25 | 20.3 | +4.7 |
| 18 | Heracles | 17 | 23 | 26.7 | 34.7 | -7.9 | 15 | 20.0 | -5.0 |
| 1 | PSV Eindhoven | 17 | 43 | 33.9 | 18.7 | +15.2 | 43 | 31.6 | +11.4 |
| 2 | Groningen | 17 | 22 | 30.5 | 22.7 | +7.8 | 23 | 27.5 | -4.5 |
| 3 | Ajax | 17 | 30 | 26.7 | 20.0 | +6.7 | 25 | 27.0 | -2.0 |
| 4 | Feyenoord | 17 | 31 | 26.8 | 22.7 | +4.2 | 29 | 25.1 | +3.9 |
| 5 | Twente | 17 | 30 | 29.4 | 25.9 | +3.5 | 26 | 25.3 | +0.7 |
| 6 | AZ Alkmaar | 17 | 19 | 26.9 | 23.6 | +3.4 | 21 | 24.0 | -3.0 |
| 7 | Nijmegen | 17 | 36 | 32.7 | 29.6 | +3.1 | 27 | 25.4 | +1.6 |
| 8 | Utrecht | 17 | 24 | 25.8 | 27.8 | -2.0 | 20 | 22.5 | -2.5 |
| 9 | Heerenveen | 17 | 24 | 24.1 | 33.0 | -8.9 | 21 | 20.0 | +1.0 |
| 10 | Telstar | 17 | 18 | 22.4 | 33.9 | -11.5 | 17 | 16.5 | +0.5 |
| 11 | For Sittard | 17 | 21 | 25.1 | 37.3 | -12.2 | 14 | 17.2 | -3.2 |
| 12 | Go Ahead Eagles | 17 | 20 | 19.3 | 31.9 | -12.7 | 13 | 16.4 | -3.4 |
| 13 | Excelsior | 17 | 23 | 21.4 | 36.0 | -14.6 | 20 | 15.2 | +4.8 |
| 14 | NAC Breda | 17 | 15 | 19.5 | 34.6 | -15.1 | 9 | 15.7 | -6.7 |
| 15 | Sparta Rotterdam | 17 | 19 | 19.6 | 34.8 | -15.2 | 20 | 16.8 | +3.2 |
| 16 | Volendam | 17 | 11 | 16.3 | 35.2 | -18.9 | 9 | 13.8 | -4.8 |
| 17 | Zwolle | 17 | 23 | 19.3 | 39.8 | -20.5 | 9 | 14.3 | -5.3 |
| 18 | Heracles | 17 | 12 | 14.3 | 39.8 | -25.5 | 4 | 10.2 | -6.2 |
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. |
|---|---|---|---|---|---|---|---|---|
| AZ Alkmaar | 34 | 32 | 26 | 24 | 27 | 45% | 1 | 4 |
| Ajax | 34 | 36 | 26 | 17 | 24 | 42% | 2 | 5 |
| Excelsior | 34 | 21 | 22 | 22 | 34 | 51% | 3 | 4 |
| Feyenoord | 34 | 32 | 38 | 20 | 24 | 54% | 4 | 2 |
| For Sittard | 34 | 25 | 24 | 31 | 32 | 49% | 1 | 3 |
| Go Ahead Eagles | 34 | 23 | 31 | 27 | 26 | 57% | 5 | 3 |
| Groningen | 34 | 21 | 28 | 18 | 27 | 57% | 1 | 1 |
| Heerenveen | 34 | 25 | 32 | 25 | 28 | 56% | 4 | 4 |
| Heracles | 34 | 18 | 17 | 38 | 47 | 49% | 3 | 3 |
| NAC Breda | 34 | 14 | 21 | 29 | 29 | 60% | 4 | 5 |
| Nijmegen | 34 | 30 | 47 | 30 | 23 | 61% | 6 | 1 |
| PSV Eindhoven | 34 | 50 | 51 | 23 | 22 | 50% | 4 | 0 |
| Sparta Rotterdam | 34 | 15 | 25 | 18 | 44 | 63% | 1 | 2 |
| Telstar | 34 | 19 | 30 | 24 | 31 | 61% | 0 | 4 |
| Twente | 34 | 22 | 37 | 15 | 25 | 63% | 4 | 3 |
| Utrecht | 34 | 23 | 32 | 16 | 26 | 58% | 2 | 4 |
| Volendam | 34 | 13 | 22 | 32 | 23 | 63% | 4 | 3 |
| Zwolle | 34 | 23 | 21 | 33 | 38 | 48% | 3 | 1 |
| League total | 612 | 442 | 530 | 442 | 530 | 55% | 52 | 52 |
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. |
|---|---|---|---|---|---|---|---|
| AZ Alkmaar | 17 | 47% | 1.82 | 1.24 | +0.59 | +0.76 | -0.35 |
| Ajax | 17 | 53% | 1.82 | 1.47 | +0.35 | +0.88 | +0.35 |
| Excelsior | 17 | 29% | 1.06 | 1.18 | -0.12 | -0.12 | -0.65 |
| Feyenoord | 17 | 65% | 2.12 | 1.71 | +0.41 | +0.94 | +0.59 |
| For Sittard | 17 | 41% | 1.47 | 0.82 | +0.65 | -0.06 | -0.76 |
| Go Ahead Eagles | 17 | 35% | 1.47 | 0.76 | +0.71 | +0.59 | -0.53 |
| Groningen | 17 | 41% | 1.47 | 1.35 | +0.12 | +0.53 | -0.29 |
| Heerenveen | 17 | 47% | 1.76 | 1.24 | +0.53 | +0.53 | -0.29 |
| Heracles | 17 | 24% | 0.88 | 0.24 | +0.65 | -0.76 | -2.18 |
| NAC Breda | 17 | 29% | 1.18 | 0.53 | +0.65 | -0.18 | -1.18 |
| Nijmegen | 17 | 53% | 1.88 | 1.59 | +0.29 | +0.94 | +0.47 |
| PSV Eindhoven | 17 | 76% | 2.41 | 2.53 | -0.12 | +1.88 | +1.41 |
| Sparta Rotterdam | 17 | 35% | 1.35 | 1.18 | +0.18 | -0.35 | -0.94 |
| Telstar | 17 | 29% | 1.18 | 1.00 | +0.18 | +0.18 | -0.53 |
| Twente | 17 | 53% | 1.88 | 1.53 | +0.35 | +0.76 | +0.35 |
| Utrecht | 17 | 59% | 1.94 | 1.18 | +0.76 | +1.06 | -0.29 |
| Volendam | 17 | 35% | 1.35 | 0.53 | +0.82 | +0.06 | -1.24 |
| Zwolle | 17 | 47% | 1.65 | 0.53 | +1.12 | 0.00 | -1.59 |
| League total | 306 | 44% | 1.59 | 1.14 | +0.45 | +0.42 | -0.42 |
Corners
Descriptive — actual corner counts (2025/26), shown where available. Not a prediction.
League-wide corners per team, per match over 9 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. |
|---|---|---|---|---|---|---|---|
| AZ Alkmaar | 34 | 196 | 154 | 5.8 | 4.5 | 5.9 | 5.6 |
| Ajax | 34 | 164 | 179 | 4.8 | 5.3 | 5.3 | 4.4 |
| Excelsior | 34 | 139 | 178 | 4.1 | 5.2 | 4.2 | 4.0 |
| Feyenoord | 34 | 246 | 114 | 7.2 | 3.4 | 7.9 | 6.6 |
| For Sittard | 34 | 147 | 230 | 4.3 | 6.8 | 4.9 | 3.7 |
| Go Ahead Eagles | 34 | 185 | 208 | 5.4 | 6.1 | 6.5 | 4.4 |
| Groningen | 34 | 212 | 168 | 6.2 | 4.9 | 6.9 | 5.6 |
| Heerenveen | 34 | 189 | 169 | 5.6 | 5.0 | 5.9 | 5.2 |
| Heracles | 34 | 153 | 204 | 4.5 | 6.0 | 4.8 | 4.2 |
| NAC Breda | 34 | 196 | 147 | 5.8 | 4.3 | 6.1 | 5.5 |
| Nijmegen | 34 | 208 | 133 | 6.1 | 3.9 | 6.8 | 5.5 |
| PSV Eindhoven | 34 | 243 | 150 | 7.1 | 4.4 | 7.6 | 6.7 |
| Sparta Rotterdam | 34 | 153 | 226 | 4.5 | 6.6 | 4.6 | 4.4 |
| Telstar | 34 | 161 | 215 | 4.7 | 6.3 | 5.4 | 4.1 |
| Twente | 34 | 182 | 141 | 5.4 | 4.1 | 5.7 | 5.0 |
| Utrecht | 34 | 176 | 152 | 5.2 | 4.5 | 5.1 | 5.2 |
| Volendam | 34 | 127 | 224 | 3.7 | 6.6 | 4.5 | 3.0 |
| Zwolle | 34 | 122 | 207 | 3.6 | 6.1 | 4.1 | 3.1 |
| League total | 612 | 3199 | 3199 | 5.2 | 5.2 | — | — |