xgEdge

Expected goals

Basel expected goals (xG) 2026/2027

Swiss Super League · after 9 matches · updated 1 Oct

Basel'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.

Basel xG and xGA per match

Every match ↓
Attack
1.22 xG per match
#11/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
11.00 9 matches
Defence
1.39 xGA per match
#3/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
12.51 9 matches
xG difference
-0.17 xGD per match
#7/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.51 9 matches
Expected points Model — Model output — computed from each match's xG, not a result. How xPts works →
1.26 xPts per match
#8/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.30 vs 13 actual pts

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

What the xG says

Basel's underlying numbers sit close to the Swiss Super League average. They rank #7 for xG difference at -0.17 per match, from low shot volume and low chance quality. Their 17 goals are 6.00 above 11.00 xG, while 13 points are 1.70 above 11.30 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.58 xG from penalties
17 11.00 +6.00 scored 6.00 more than xG outside normal variance
17 12.51 +4.49 conceded 4.49 more than xGA outside normal variance

Select a row to chart it across the season.

Goals minus xG, match by match

Basel are 6.00 goals above their xG after 9 matches. The gap was widest at +6.22, against FC Luzern on Sun 13/09.

Goals
17
xG
11.00
Gap
+6.00
Sat 25/07 Sat 01/08 Sun 09/08 Sat 22/08 Sat 29/08 Thu 03/09 Sun 06/09 Sun 13/09 Sun 20/09 -2 0 +2 +4 +6 -0.61 -1.59 +1.32 +1.68 +3.40 +3.46 +4.15 +6.22 +6.00 -0.61 -0.98 +2.91 +0.36 +1.72 +0.06 +0.69 +2.07 -0.22 Running gap goals − xG Each match goals − xG
Basel: Goals vs xG, the gap after every match with xG
Date Opponent Goals xG Match gap Running gap
Sat 25/07 Servette FC 1 1.61 -0.61 -0.61
Sat 01/08 FC Lausanne-Sport 0 0.98 -0.98 -1.59
Sun 09/08 FC Thun 4 1.09 +2.91 +1.32
Sat 22/08 FC Zürich 2 1.64 +0.36 +1.68
Sat 29/08 Young Boys 3 1.28 +1.72 +3.40
Thu 03/09 FC Sion 1 0.94 +0.06 +3.46
Sun 06/09 FC Lugano 1 0.31 +0.69 +4.15
Sun 13/09 FC Luzern 4 1.93 +2.07 +6.22
Sun 20/09 FC St. Gallen 1879 1 1.22 -0.22 +6.00

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

Basel xG trend

Current form -0.62 npxGD per match

The last 6 matches with xG.

Out-created the opponent in 4 of 9 matches. The worst was against FC St. Gallen 1879 on Sun 20/09 (-1.61).

npxG · last 6
1.09
npxGA · last 6
1.71
-2 -1 0 +1 -0.29 Sat 25/07 +0.47 Sat 01/08 +0.45 Sun 09/08 +0.29 Sat 22/08 -0.49 Sat 29/08 -0.86 Thu 03/09 -1.36 Sun 06/09 +0.32 Sun 13/09 -1.61 Sun 20/09 -0.34 season avg
Basel: 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 Servette FC 0.82 1.11 -0.29 -0.29
Sat 01/08 FC Lausanne-Sport 0.98 0.51 +0.47 +0.09
Sun 09/08 FC Thun 1.09 0.64 +0.45 +0.21
Sat 22/08 FC Zürich 1.64 1.35 +0.29 +0.23
Sat 29/08 Young Boys 1.28 1.77 -0.49 +0.09
Thu 03/09 FC Sion 0.94 1.80 -0.86 -0.07
Sun 06/09 FC Lugano 0.31 1.67 -1.36 -0.26
Sun 13/09 FC Luzern 1.93 1.61 +0.32 -0.18
Sun 20/09 FC St. Gallen 1879 0.43 2.04 -1.61 -0.34

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.05 npxG and 1.39 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 1 hardest of 12 in Swiss Super League
+0.09 xG vs league average
Over 9 league matches
Last 5
number 1 hardest of 12 in Swiss Super League
+0.30 xG vs league average
Over 5 league matches
Opponents behind the figures

Season so far

+0.09 xG vs league average · over 9 matches · number 1 hardest of 12

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

Last 5

+0.30 xG vs league average · over 5 matches · number 1 hardest of 12

  1. FC St. Gallen 1879 Home +0.47
  2. FC Luzern Away −0.05
  3. FC Lugano Home +0.33
  4. FC Sion Home +0.34
  5. Young Boys Away +0.42

League schedule strength → How this is calculated →

Basel shots and chance quality

Low volume, low quality. Basel take 11.8 shots a match (league 15.3) at 0.09 npxG a shot (league 0.10), #11 in Swiss Super League for volume and #10 for quality. 69% of their shots come from inside the box (league 68%), and set pieces produce 20% of their npxG (league 27%).

Attack

Shot volume
11.8 shots per match
#11/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
106 shots from 9 matches
Chance quality
0.09 npxG per shot
#10/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
9.42 npxG from 106 shots

Defence

Shots allowed
17.6 shots per match
#10/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
158 shots allowed from 9 matches
Chance quality allowed
0.08 npxGA per shot
#1/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
12.50 npxGA from 158 shots

Shot profile

Shot location

69% inside the box

League avg 68%

From 73 of 106 shots over 9 matches

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

Shots allowed, location

62% allowed inside the box

League avg 68%

From 98 of 158 shots allowed over 9 matches

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

Where the npxG comes from

80% open play · 20% set pieces

League avg 27% set pieces

From 1.8 of 8.6 npxG over 9 matches

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

Where the npxG allowed comes from

76% open play · 24% set pieces

League avg 27% set pieces

From 2.8 of 11.7 npxG allowed over 9 matches

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

Basel home and away xG

Basel per-match figures at home and away
Measure Home Away
Matches 5 4
xG / match 0.91 1.62
xGA / match 1.33 1.47
xGD / match -0.42 +0.15
xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → 1.08 1.48

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

Every Basel 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 3.00. 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 →

Basel 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 →