Expected goals
FC Zürich expected goals (xG) 2026/2027
Swiss Super League · after 9 matches · updated 1 Oct
FC 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.
FC Zürich xG and xGA per match
Every match ↓| 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
- 12.40 9 matches
| 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
- 17.34 9 matches
| 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
- -4.94 9 matches
| 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
- 10.07 vs 11 actual pts
Early-season figures: after 9 matches, per-match rates can move quickly.
What the xG says
FC Zürich's underlying numbers are among the weakest in Swiss Super League. They rank #11 for xG difference at -0.55 per match, from low shot volume at about average chance quality. Their 14 goals are 1.60 above 12.40 xG, while 11 points are 0.93 above 10.07 xPts. After only 9 matches, those gaps should still be read cautiously.
Actual vs expected
Select a row to chart it across the season.
Goals minus xG, match by match
FC Zürich are 1.60 goals above their xG after 9 matches. The gap was widest at +2.82, against FC Vaduz on Sun 13/09.
- Goals
- 14
- xG
- 12.40
- Gap
- +1.60
- This match
- Match gap
- Running gap
| Date | Opponent | Goals | xG | Match gap | Running gap |
|---|---|---|---|---|---|
| Sun 26/07 | FC St. Gallen 1879 | 1 | 1.11 | -0.11 | -0.11 |
| Sat 01/08 | Servette FC | 2 | 1.48 | +0.52 | +0.41 |
| Sun 09/08 | FC Lugano | 0 | 0.87 | -0.87 | -0.46 |
| Sat 22/08 | Basel | 1 | 1.35 | -0.35 | -0.81 |
| Sat 29/08 | FC Lausanne-Sport | 3 | 1.71 | +1.29 | +0.48 |
| Tue 01/09 | Young Boys | 2 | 1.71 | +0.29 | +0.77 |
| Sat 05/09 | Grasshopper Club Zürich | 2 | 0.77 | +1.23 | +2.00 |
| Sun 13/09 | FC Vaduz | 2 | 1.18 | +0.82 | +2.82 |
| Sat 19/09 | FC Sion | 1 | 2.22 | -1.22 | +1.60 |
Goals vs xG ranking → Expected points ranking → Compare with every club in Europe →
FC Zürich xG trend
Current form -0.27 npxGD per match
The last 6 matches with xG.
Out-created the opponent in 4 of 9 matches. The worst was against Grasshopper Club Zürich on Sat 05/09 (-2.62).
- npxG · last 6
- 1.42
- npxGA · last 6
- 1.69
- npxG
- npxGA
- npxGD
- Avg so far
| Date | Opponent | npxG | npxGA | npxGD | Avg so far |
|---|---|---|---|---|---|
| Sun 26/07 | FC St. Gallen 1879 | 1.11 | 1.63 | -0.52 | -0.52 |
| Sat 01/08 | Servette FC | 1.48 | 1.53 | -0.05 | -0.29 |
| Sun 09/08 | FC Lugano | 0.96 | 2.46 | -1.50 | -0.69 |
| Sat 22/08 | Basel | 1.35 | 1.64 | -0.29 | -0.59 |
| Sat 29/08 | FC Lausanne-Sport | 1.72 | 1.06 | +0.66 | -0.34 |
| Tue 01/09 | Young Boys | 1.85 | 1.52 | +0.33 | -0.23 |
| Sat 05/09 | Grasshopper Club Zürich | 0.77 | 3.39 | -2.62 | -0.57 |
| Sun 13/09 | FC Vaduz | 1.18 | 1.03 | +0.15 | -0.48 |
| Sat 19/09 | FC Sion | 1.62 | 1.49 | +0.13 | -0.41 |
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.34 npxG and 1.75 npxGA per match. Current form is the same difference over the last 6 matches with xG.
Strength of schedule
- Season so far
- tied number 2 hardest of 12 in Swiss Super League
- +0.05 xG vs league average
- Over 9 league matches
- Last 5
- number 6 hardest of 12 in Swiss Super League
- −0.03 xG vs league average
- Over 5 league matches
Opponents behind the figures
Season so far
+0.05 xG vs league average · over 9 matches · tied number 2 hardest of 12
- FC Sion Away +0.34
- FC Vaduz Home −0.23
- Grasshopper Club Zürich Away −0.32
- Young Boys Home +0.42
- FC Lausanne-Sport Away −0.37
- Basel Home −0.28
- FC Lugano Away +0.33
- Servette FC Home +0.10
- FC St. Gallen 1879 Away +0.47
Last 5
−0.03 xG vs league average · over 5 matches · number 6 hardest of 12
- FC Sion Away +0.34
- FC Vaduz Home −0.23
- Grasshopper Club Zürich Away −0.32
- Young Boys Home +0.42
- FC Lausanne-Sport Away −0.37
FC Zürich shots and chance quality
Low volume, average quality. FC Zürich take 12.6 shots a match (league 15.3) at 0.11 npxG a shot (league 0.10), #10 in Swiss Super League for volume and #6 for quality. 65% of their shots come from inside the box (league 68%), and set pieces produce 33% of their npxG (league 27%).
Attack
| 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
- 113 shots from 9 matches
| 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
- 12.04 npxG from 113 shots
Defence
| 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
- 125 shots allowed from 9 matches
| 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
- 15.75 npxGA from 125 shots
Shot profile
65% inside the box
League avg 68%
From 73 of 113 shots over 9 matches
Early-season figure: after 9 matches, the share can move quickly.
78% allowed inside the box
League avg 68%
From 98 of 126 shots allowed over 9 matches
Early-season figure: after 9 matches, the share can move quickly.
67% open play · 33% set pieces
League avg 27% set pieces
From 3.7 of 11.2 npxG over 9 matches
Early-season figure: after 9 matches, the share can move quickly.
76% open play · 24% set pieces
League avg 27% set pieces
From 3.7 of 15.0 npxG allowed over 9 matches
Early-season figure: after 9 matches, the share can move quickly.
FC Zürich home and away xG
| Measure | Home | Away |
|---|---|---|
| Matches | 4 | 5 |
| xG / match | 1.43 | 1.34 |
| xGA / match | 1.43 | 2.32 |
| xGD / match | +0.00 | -0.99 |
| xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → | 1.36 | 0.92 |
Every figure divides by that half's matches with xG. A half with fewer than 3 matches with xG is muted.
Every FC Zürich match by xG
This season
- Matches
- 9
- xG / match
- 1.38
- xGA / match
- 1.93
- xGD / match
- -0.55
- Points
- 11 of 27
- Sat 19/09 FC Sion A xG 2.22 P xGA 2.28 P xGD -0.06 xPts 1.35
- Sun 13/09 FC Vaduz H xG 1.18 xGA 1.03 xGD +0.15 xPts 1.47
- Sat 05/09 Grasshopper Club Zürich A Weakest underlying xG 0.77 xGA 4.16 P xGD -3.39 xPts 0.07
- Tue 01/09 Young Boys H xG 1.71 xGA 1.52 xGD +0.19 xPts 1.52
- Sat 29/08 FC Lausanne-Sport A Best underlying xG 1.71 xGA 1.09 xGD +0.62 xPts 1.86
- Sat 22/08 Basel H xG 1.35 xGA 1.64 xGD -0.29 xPts 1.14
- Sun 09/08 FC Lugano A xG 0.87 xGA 2.46 xGD -1.59 xPts 0.40
- Sat 01/08 Servette FC H xG 1.48 xGA 1.53 xGD -0.05 xPts 1.32
- Sun 26/07 FC St. Gallen 1879 A xG 1.11 xGA 1.63 xGD -0.52 xPts 0.95
Newest first. The dot is xG and the ring is xGA, on one scale from 0 to 4.16. 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.
FC Zürich in Swiss Super League
Attack
- xG / match #10 of 12
- Shots / match #10 of 12
- Chance quality #6 of 12
- Home xG #10 of 12
- Away xG #7 of 12
Defence
- xGA / match #8 of 12
- Shots allowed #4 of 12
- Chance quality allowed #12 of 12
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.