xgEdge

Expected goals

Grasshopper Club Zürich expected goals (xG) 2026/2027

Swiss Super League · after 9 matches · updated 1 Oct

Grasshopper Club Zürich's attacking and defensive expected goals in Swiss Super League 2026/2027, compared with the results they produced and with the rest of the competition.

Grasshopper Club Zürich xG and xGA per match

Every match ↓
Attack
2.01 xG per match
#3/12
Attack (xG per match) across Swiss Super League, best first
Rank Club xG per match
#1 FC Sion 2.31
#2 Young Boys 2.28
#3 Grasshopper Club Zürich 2.01
#4 FC Luzern 1.95
#5 FC St. Gallen 1879 1.95
#6 FC Lugano 1.70
#7 FC Vaduz 1.66
#8 FC Thun 1.53
#9 Servette FC 1.41
#10 FC Zürich 1.38
#11 Basel 1.22
#12 FC Lausanne-Sport 0.85
League avg
1.69
Total
18.07 9 matches
Defence
2.18 xGA per match
#11/12
Defence (xGA per match) across Swiss Super League, best first
Rank Club xGA per match
#1 FC Lugano 1.26
#2 FC Lausanne-Sport 1.37
#3 Basel 1.39
#4 Young Boys 1.41
#5 FC St. Gallen 1879 1.43
#6 FC Sion 1.48
#7 Servette FC 1.53
#8 FC Zürich 1.93
#9 FC Vaduz 2.00
#10 FC Luzern 2.02
#11 Grasshopper Club Zürich 2.18
#12 FC Thun 2.23
League avg
1.69
Total
19.66 9 matches
xG difference
-0.18 xGD per match
#8/12
xG difference (xGD per match) across Swiss Super League, best first
Rank Club xGD per match
#1 Young Boys +0.87
#2 FC Sion +0.82
#3 FC St. Gallen 1879 +0.51
#4 FC Lugano +0.44
#5 FC Luzern -0.08
#6 Servette FC -0.12
#7 Basel -0.17
#8 Grasshopper Club Zürich -0.18
#9 FC Vaduz -0.34
#10 FC Lausanne-Sport -0.52
#11 FC Zürich -0.55
#12 FC Thun -0.70
League avg
0.00
Total
-1.59 9 matches
Expected points Model — Model output — computed from each match's xG, not a result. How xPts works →
1.29 xPts per match
#7/12
Expected points (xPts per match) across Swiss Super League, best first
Rank Club xPts per match
#1 Young Boys 1.90
#2 FC Sion 1.90
#3 FC St. Gallen 1879 1.71
#4 FC Lugano 1.71
#5 FC Luzern 1.36
#6 Servette FC 1.30
#7 Grasshopper Club Zürich 1.29
#8 Basel 1.26
#9 FC Vaduz 1.18
#10 FC Zürich 1.12
#11 FC Thun 1.00
#12 FC Lausanne-Sport 0.94
League avg
1.39
Total
11.60 vs 8 actual pts

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

What the xG says

Grasshopper Club Zürich's underlying numbers sit close to the Swiss Super League average. They rank #8 for xG difference at -0.18 per match, built on elite chance quality rather than about average shot volume. Their 13 goals are 5.07 below 18.07 xG, while 8 points are 3.60 below 11.60 xPts. After only 9 matches, those gaps should still be read cautiously.

Actual vs expected

Measure Actual Expected Difference Reading
Goals vs xG Includes 1.73 xG from penalties
13 18.07 -5.07 scored 5.07 fewer than xG outside normal variance
24 19.66 +4.34 conceded 4.34 more than xGA within normal variance

Select a row to chart it across the season.

Goals minus xG, match by match

Grasshopper Club Zürich are 5.07 goals below their xG after 9 matches. The gap was widest at -5.18, against FC Thun on Sat 12/09.

Goals
13
xG
18.07
Gap
-5.07
Sat 25/07 Sun 02/08 Sat 08/08 Sun 30/08 Wed 02/09 Sat 05/09 Sat 12/09 Tue 15/09 Sat 19/09 -6 -5 -4 -3 -2 -1 0 +1 +0.26 -0.57 -0.54 -1.53 -1.76 -3.92 -5.18 -4.28 -5.07 +0.26 -0.83 +0.03 -0.99 -0.23 -2.16 -1.26 +0.90 -0.79 Running gap goals − xG Each match goals − xG
Grasshopper Club Zürich: Goals vs xG, the gap after every match with xG
Date Opponent Goals xG Match gap Running gap
Sat 25/07 FC Lausanne-Sport 1 0.74 +0.26 +0.26
Sun 02/08 FC Lugano 1 1.83 -0.83 -0.57
Sat 08/08 Servette FC 1 0.97 +0.03 -0.54
Sun 30/08 FC Vaduz 2 2.99 -0.99 -1.53
Wed 02/09 FC St. Gallen 1879 2 2.23 -0.23 -1.76
Sat 05/09 FC Zürich 2 4.16 -2.16 -3.92
Sat 12/09 FC Thun 1 2.26 -1.26 -5.18
Tue 15/09 FC Sion 2 1.10 +0.90 -4.28
Sat 19/09 FC Luzern 1 1.79 -0.79 -5.07

Goals vs xG ranking → Expected points ranking → Compare with every club in Europe →

Grasshopper Club Zürich xG trend

Current form -0.02 npxGD per match

The last 6 matches with xG.

Out-created the opponent in 4 of 9 matches. The worst was against FC Sion on Tue 15/09 (-3.16).

npxG · last 6
2.13
npxGA · last 6
2.15
-4 -3 -2 -1 0 +1 +2 +3 -0.05 Sat 25/07 -0.30 Sun 02/08 -1.20 Sat 08/08 +1.46 Sun 30/08 +0.85 Wed 02/09 +2.62 Sat 05/09 +0.41 Sat 12/09 -3.16 Tue 15/09 -2.29 Sat 19/09 -0.18 season avg
Grasshopper Club Zürich: 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 25/07 FC Lausanne-Sport 0.74 0.79 -0.05 -0.05
Sun 02/08 FC Lugano 1.83 2.13 -0.30 -0.17
Sat 08/08 Servette FC 0.97 2.17 -1.20 -0.52
Sun 30/08 FC Vaduz 2.99 1.53 +1.46 -0.02
Wed 02/09 FC St. Gallen 1879 2.23 1.38 +0.85 +0.15
Sat 05/09 FC Zürich 3.39 0.77 +2.62 +0.56
Sat 12/09 FC Thun 2.08 1.67 +0.41 +0.54
Tue 15/09 FC Sion 0.32 3.48 -3.16 +0.08
Sat 19/09 FC Luzern 1.79 4.08 -2.29 -0.18

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.82 npxG and 2.00 npxGA per match. Current form is the same difference over the last 6 matches with xG.

Form ranking →

Strength of schedule

Season so far
number 4 hardest of 12 in Swiss Super League
+0.02 xG vs league average
Over 9 league matches
Last 5
tied number 3 hardest of 12 in Swiss Super League
+0.07 xG vs league average
Over 5 league matches
Opponents behind the figures

Season so far

+0.02 xG vs league average · over 9 matches · number 4 hardest of 12

  1. FC Luzern Away −0.05
  2. FC Sion Home +0.34
  3. FC Thun Away −0.14
  4. FC Zürich Home −0.27
  5. FC St. Gallen 1879 Home +0.47
  6. FC Vaduz Away −0.23
  7. Servette FC Away +0.10
  8. FC Lugano Home +0.33
  9. FC Lausanne-Sport Away −0.37

Last 5

+0.07 xG vs league average · over 5 matches · tied number 3 hardest of 12

  1. FC Luzern Away −0.05
  2. FC Sion Home +0.34
  3. FC Thun Away −0.14
  4. FC Zürich Home −0.27
  5. FC St. Gallen 1879 Home +0.47

League schedule strength → How this is calculated →

Grasshopper Club Zürich shots and chance quality

Average volume, high quality. Grasshopper Club Zürich take 15.4 shots a match (league 15.3) at 0.12 npxG a shot (league 0.10), #7 in Swiss Super League for volume and #2 for quality. 65% of their shots come from inside the box (league 68%), and set pieces produce 34% of their npxG (league 27%).

Attack

Shot volume
15.4 shots per match
#7/12
Shot volume (shots per match) across Swiss Super League, best first
Rank Club shots per match
#1 FC St. Gallen 1879 20.9
#2 Young Boys 19.1
#3 FC Lugano 16.9
#4 FC Luzern 16.8
#5 FC Sion 16.6
#6 FC Thun 15.7
#7 Grasshopper Club Zürich 15.4
#8 Servette FC 14.3
#9 FC Vaduz 14.1
#10 FC Zürich 12.6
#11 Basel 11.8
#12 FC Lausanne-Sport 9.1
League avg
15.3
Total
139 shots from 9 matches
Chance quality
0.12 npxG per shot
#2/12
Chance quality (npxG per shot) across Swiss Super League, best first
Rank Club npxG per shot
#1 FC Sion 0.13
#2 Grasshopper Club Zürich 0.12
#3 FC Vaduz 0.11
#4 Young Boys 0.11
#5 FC Luzern 0.11
#6 FC Zürich 0.11
#7 FC Lugano 0.10
#8 FC Thun 0.10
#9 FC Lausanne-Sport 0.09
#10 Basel 0.09
#11 FC St. Gallen 1879 0.09
#12 Servette FC 0.09
League avg
0.10
Total
16.34 npxG from 139 shots

Defence

Shots allowed
15.9 shots per match
#7/12
Shots allowed (shots per match) across Swiss Super League, best first
Rank Club shots per match
#1 FC Lugano 11.8
#2 FC St. Gallen 1879 12.7
#3 FC Sion 13.0
#4 FC Zürich 13.9
#5 Young Boys 14.0
#6 Servette FC 14.3
#7 Grasshopper Club Zürich 15.9
#8 FC Lausanne-Sport 16.2
#9 FC Thun 17.1
#10 Basel 17.6
#11 FC Vaduz 18.2
#12 FC Luzern 18.6
League avg
15.3
Total
143 shots allowed from 9 matches
Chance quality allowed
0.13 npxGA per shot
#11/12
Chance quality allowed (npxGA per shot) across Swiss Super League, best first
Rank Club npxGA per shot
#1 Basel 0.08
#2 FC Lausanne-Sport 0.08
#3 Young Boys 0.10
#4 FC Sion 0.10
#5 FC Lugano 0.10
#6 FC Luzern 0.10
#7 Servette FC 0.10
#8 FC St. Gallen 1879 0.11
#9 FC Vaduz 0.11
#10 FC Thun 0.12
#11 Grasshopper Club Zürich 0.13
#12 FC Zürich 0.13
League avg
0.10
Total
18.00 npxGA from 143 shots

Shot profile

Shot location

65% inside the box

League avg 68%

From 90 of 139 shots over 9 matches

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

Shots allowed, location

69% allowed inside the box

League avg 68%

From 98 of 143 shots allowed over 9 matches

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

Where the npxG comes from

66% open play · 34% set pieces

League avg 27% set pieces

From 5.5 of 16.3 npxG over 9 matches

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

Where the npxG allowed comes from

83% open play · 17% set pieces

League avg 27% set pieces

From 3.1 of 18.0 npxG allowed over 9 matches

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

Grasshopper Club Zürich home and away xG

Grasshopper Club Zürich per-match figures at home and away
Measure Home Away
Matches 4 5
xG / match 2.33 1.75
xGA / match 2.05 2.30
xGD / match +0.29 -0.55
xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → 1.49 1.13

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

Every Grasshopper Club Zürich 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 4.55. 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 →

Grasshopper Club Zürich in Swiss Super League

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 →