Expected goals
FC St. Gallen 1879 expected goals (xG) 2026/2027
Swiss Super League · after 9 matches · updated 1 Oct
FC St. Gallen 1879'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 St. Gallen 1879 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
- 17.52 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
- 12.91 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.61 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
- 15.36 vs 13 actual pts
Early-season figures: after 9 matches, per-match rates can move quickly.
What the xG says
FC St. Gallen 1879's underlying numbers are among the best in Swiss Super League. They rank #3 for xG difference at +0.51 per match, built on the league's highest shot volume rather than low chance quality. Their 16 goals are 1.52 below 17.52 xG, while 13 points are 2.36 below 15.36 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 St. Gallen 1879 are 1.52 goals below their xG after 9 matches. The gap was widest at -2.52, against FC Lugano on Wed 16/09.
- Goals
- 16
- xG
- 17.52
- Gap
- -1.52
- This match
- Match gap
- Running gap
| Date | Opponent | Goals | xG | Match gap | Running gap |
|---|---|---|---|---|---|
| Sun 26/07 | FC Zürich | 2 | 1.63 | +0.37 | +0.37 |
| Sun 02/08 | FC Vaduz | 3 | 2.17 | +0.83 | +1.20 |
| Sun 09/08 | FC Luzern | 2 | 3.24 | -1.24 | -0.04 |
| Sun 30/08 | FC Thun | 3 | 2.88 | +0.12 | +0.08 |
| Wed 02/09 | Grasshopper Club Zürich | 0 | 1.80 | -1.80 | -1.72 |
| Sun 06/09 | Servette FC | 2 | 1.37 | +0.63 | -1.09 |
| Sat 12/09 | FC Sion | 0 | 1.29 | -1.29 | -2.38 |
| Wed 16/09 | FC Lugano | 1 | 1.14 | -0.14 | -2.52 |
| Sun 20/09 | Basel | 3 | 2.00 | +1.00 | -1.52 |
Goals vs xG ranking → Expected points ranking → Compare with every club in Europe →
FC St. Gallen 1879 xG trend
Current form +0.44 npxGD per match
The last 6 matches with xG.
Out-created the opponent in 7 of 9 matches. The worst was against Grasshopper Club Zürich on Wed 02/09 (-0.85).
- npxG · last 6
- 1.70
- npxGA · last 6
- 1.26
- npxG
- npxGA
- npxGD
- Avg so far
| Date | Opponent | npxG | npxGA | npxGD | Avg so far |
|---|---|---|---|---|---|
| Sun 26/07 | FC Zürich | 1.63 | 1.11 | +0.52 | +0.52 |
| Sun 02/08 | FC Vaduz | 2.12 | 2.03 | +0.09 | +0.31 |
| Sun 09/08 | FC Luzern | 2.52 | 1.37 | +1.15 | +0.59 |
| Sun 30/08 | FC Thun | 2.91 | 1.26 | +1.65 | +0.85 |
| Wed 02/09 | Grasshopper Club Zürich | 1.38 | 2.23 | -0.85 | +0.51 |
| Sun 06/09 | Servette FC | 1.37 | 0.90 | +0.47 | +0.50 |
| Sat 12/09 | FC Sion | 1.34 | 1.25 | +0.09 | +0.45 |
| Wed 16/09 | FC Lugano | 1.14 | 1.49 | -0.35 | +0.35 |
| Sun 20/09 | Basel | 2.04 | 0.43 | +1.61 | +0.49 |
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.83 npxG and 1.34 npxGA per match. Current form is the same difference over the last 6 matches with xG.
Strength of schedule
- Season so far
- tied number 11 hardest of 12 in Swiss Super League
- −0.06 xG vs league average
- Over 9 league matches
- Last 5
- number 5 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.06 xG vs league average · over 9 matches · tied number 11 hardest of 12
- Basel Away −0.28
- FC Lugano Away +0.33
- FC Sion Home +0.34
- Servette FC Away +0.10
- Grasshopper Club Zürich Away −0.32
- FC Thun Home −0.14
- FC Luzern Home −0.05
- FC Vaduz Away −0.23
- FC Zürich Home −0.27
Last 5
+0.03 xG vs league average · over 5 matches · number 5 hardest of 12
- Basel Away −0.28
- FC Lugano Away +0.33
- FC Sion Home +0.34
- Servette FC Away +0.10
- Grasshopper Club Zürich Away −0.32
FC St. Gallen 1879 shots and chance quality
High volume, low quality. FC St. Gallen 1879 take 20.9 shots a match (league 15.3) at 0.09 npxG a shot (league 0.10), #1 in Swiss Super League for volume and #11 for quality. 68% of their shots come from inside the box (league 68%), and set pieces produce 25% 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
- 188 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
- 16.45 npxG from 188 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
- 114 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
- 12.07 npxGA from 114 shots
Shot profile
68% inside the box
League avg 68%
From 127 of 188 shots over 9 matches
Early-season figure: after 9 matches, the share can move quickly.
74% allowed inside the box
League avg 68%
From 84 of 114 shots allowed over 9 matches
Early-season figure: after 9 matches, the share can move quickly.
75% open play · 25% set pieces
League avg 27% set pieces
From 4.2 of 16.4 npxG over 9 matches
Early-season figure: after 9 matches, the share can move quickly.
73% open play · 27% set pieces
League avg 27% set pieces
From 3.3 of 12.1 npxG allowed over 9 matches
Early-season figure: after 9 matches, the share can move quickly.
FC St. Gallen 1879 home and away xG
| Measure | Home | Away |
|---|---|---|
| Matches | 4 | 5 |
| xG / match | 2.26 | 1.70 |
| xGA / match | 1.29 | 1.55 |
| xGD / match | +0.97 | +0.14 |
| xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → | 1.99 | 1.48 |
Every figure divides by that half's matches with xG. A half with fewer than 3 matches with xG is muted.
Every FC St. Gallen 1879 match by xG
This season
- Matches
- 9
- xG / match
- 1.95
- xGA / match
- 1.43
- xGD / match
- +0.51
- Points
- 13 of 27
- Sun 20/09 Basel A xG 2.00 xGA 1.22 P xGD +0.78 xPts 1.95
- Wed 16/09 FC Lugano A xG 1.14 xGA 1.41 xGD -0.27 xPts 1.12
- Sat 12/09 FC Sion H xG 1.29 xGA 1.26 xGD +0.03 xPts 1.38
- Sun 06/09 Servette FC A xG 1.37 xGA 0.90 xGD +0.47 xPts 1.76
- Wed 02/09 Grasshopper Club Zürich A Weakest underlying xG 1.80 xGA 2.23 xGD -0.43 xPts 1.09
- Sun 30/08 FC Thun H Against the chances xG 2.88 xGA 1.26 xGD +1.62 xPts 2.39
- Sun 09/08 FC Luzern H Best underlying xG 3.24 P xGA 1.51 xGD +1.73 xPts 2.40
- Sun 02/08 FC Vaduz A xG 2.17 xGA 2.01 xGD +0.16 xPts 1.49
- Sun 26/07 FC Zürich H xG 1.63 xGA 1.11 xGD +0.52 xPts 1.78
Newest first. The dot is xG and the ring is xGA, on one scale from 0 to 3.24. 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 St. Gallen 1879 in Swiss Super League
Attack
- xG / match #5 of 12
- Shots / match #1 of 12
- Chance quality #11 of 12
- Home xG #5 of 12
- Away xG #2 of 12
Defence
- xGA / match #5 of 12
- Shots allowed #2 of 12
- Chance quality allowed #8 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.