xgEdge

Expected goals

Nantes expected goals (xG) 2025/2026

Ligue 1 · after 33 matches · updated 4 Oct

Nantes's attacking and defensive expected goals in Ligue 1 2025/2026, compared with the results they produced and with the rest of the competition.

Nantes xG and xGA per match

Every match ↓
Attack
1.09 xG per match
#15/18
Attack (xG per match) across Ligue 1, best first
Rank Club xG per match
#1 Paris Saint-Germain 2.05
#2 RC Lens 1.98
#3 Olympique de Marseille 1.79
#4 AS Monaco 1.67
#5 Lille 1.61
#6 Stade Rennais 1.60
#7 RC Strasbourg 1.55
#8 Olympique Lyonnais 1.51
#9 Lorient 1.34
#10 Paris FC 1.33
#11 Stade Brestois 1.32
#12 Toulouse 1.30
#13 Nice 1.28
#14 Le Havre 1.12
#15 Nantes 1.09
#16 Auxerre 1.04
#17 Metz 1.02
#18 Angers 0.95
League avg
1.42
Total
35.93 33 matches
Defence
1.43 xGA per match
#10/18
Defence (xGA per match) across Ligue 1, best first
Rank Club xGA per match
#1 Paris Saint-Germain 0.93
#2 Lille 1.08
#3 RC Lens 1.28
#4 Olympique Lyonnais 1.29
#5 Toulouse 1.29
#6 RC Strasbourg 1.34
#7 Lorient 1.35
#8 Olympique de Marseille 1.36
#9 Auxerre 1.41
#10 Nantes 1.43
#11 AS Monaco 1.43
#12 Stade Brestois 1.47
#13 Le Havre 1.52
#14 Stade Rennais 1.57
#15 Paris FC 1.63
#16 Angers 1.64
#17 Nice 1.71
#18 Metz 1.84
League avg
1.42
Total
47.20 33 matches
xG difference
-0.34 xGD per match
#13/18
xG difference (xGD per match) across Ligue 1, best first
Rank Club xGD per match
#1 Paris Saint-Germain +1.12
#2 RC Lens +0.71
#3 Lille +0.53
#4 Olympique de Marseille +0.43
#5 AS Monaco +0.24
#6 Olympique Lyonnais +0.22
#7 RC Strasbourg +0.21
#8 Stade Rennais +0.03
#9 Toulouse +0.00
#10 Lorient -0.01
#11 Stade Brestois -0.16
#12 Paris FC -0.30
#13 Nantes -0.34
#14 Auxerre -0.37
#15 Le Havre -0.40
#16 Nice -0.43
#17 Angers -0.69
#18 Metz -0.82
League avg
0.00
Total
-11.27 33 matches
Expected points Model — Model output — computed from each match's xG, not a result. How xPts works →
1.12 xPts per match
#16/18
Expected points (xPts per match) across Ligue 1, best first
Rank Club xPts per match
#1 Paris Saint-Germain 2.10
#2 RC Lens 1.81
#3 Lille 1.72
#4 Olympique de Marseille 1.66
#5 Olympique Lyonnais 1.53
#6 AS Monaco 1.51
#7 RC Strasbourg 1.47
#8 Stade Rennais 1.42
#9 Toulouse 1.39
#10 Lorient 1.35
#11 Stade Brestois 1.32
#12 Paris FC 1.21
#13 Le Havre 1.16
#14 Auxerre 1.13
#15 Nice 1.13
#16 Nantes 1.12
#17 Angers 0.93
#18 Metz 0.89
League avg
1.38
Total
36.91 vs 23 actual pts

What the xG says

Nantes's underlying numbers are among the weakest in Ligue 1. They rank #13 for xG difference at -0.34 per match, from about average shot volume at low chance quality. Their 29 goals are 6.93 below 35.93 xG, while 23 points are 13.91 below 36.91 xPts.

Actual vs expected

Measure Actual Expected Difference Reading
Goals vs xG Includes 3.67 xG from penalties
29 35.93 -6.93 scored 6.93 fewer than xG outside normal variance
52 47.20 +4.80 conceded 4.80 more than xGA within normal variance

Select a row to chart it across the season.

Goals minus xG, match by match

Nantes are 6.93 goals below their xG after 33 matches.

Goals
29
xG
35.93
Gap
-6.93
Sun 17/08 Sun 24/08 Sat 30/08 Sat 13/09 Sat 20/09 Sat 27/09 Sat 04/10 Sun 19/10 Fri 24/10 Wed 29/10 Sun 02/11 Sat 08/11 Sun 23/11 Sun 30/11 Sat 06/12 Fri 12/12 Sun 04/01 Sun 18/01 Sun 25/01 Sat 31/01 Sat 07/02 Fri 13/02 Sun 22/02 Sun 01/03 Sat 07/03 Sun 22/03 Sun 05/04 Sat 11/04 Sun 19/04 Wed 22/04 Sun 26/04 Sat 02/05 Fri 08/05 -7 -5 -3 -1 +1 -0.14 -0.58 -0.06 -0.81 -0.92 -0.38 -0.53 -0.98 +0.12 +1.50 +0.69 +1.48 +1.64 +0.78 +0.59 +1.24 -0.39 +0.25 -0.34 -0.39 -1.12 -1.05 -0.37 -0.58 -1.42 -1.09 -1.55 -3.28 -3.20 -4.09 -5.26 -5.68 -6.93 -0.14 -0.44 +0.52 -0.75 -0.11 +0.54 -0.15 -0.45 +1.10 +1.38 -0.81 +0.79 +0.16 -0.86 -0.19 +0.65 -1.63 +0.64 -0.59 -0.05 -0.73 +0.07 +0.68 -0.21 -0.84 +0.33 -0.46 -1.73 +0.08 -0.89 -1.17 -0.42 -1.25 Running gap goals − xG Each match goals − xG
Nantes: Goals vs xG, the gap after every match with xG
Date Opponent Goals xG Match gap Running gap
Sun 17/08 Paris Saint-Germain 0 0.14 -0.14 -0.14
Sun 24/08 RC Strasbourg 0 0.44 -0.44 -0.58
Sat 30/08 Auxerre 1 0.48 +0.52 -0.06
Sat 13/09 Nice 0 0.75 -0.75 -0.81
Sat 20/09 Stade Rennais 2 2.11 -0.11 -0.92
Sat 27/09 Toulouse 2 1.46 +0.54 -0.38
Sat 04/10 Stade Brestois 0 0.15 -0.15 -0.53
Sun 19/10 Lille 0 0.45 -0.45 -0.98
Fri 24/10 Paris FC 2 0.90 +1.10 +0.12
Wed 29/10 AS Monaco 3 1.62 +1.38 +1.50
Sun 02/11 Metz 0 0.81 -0.81 +0.69
Sat 08/11 Le Havre 1 0.21 +0.79 +1.48
Sun 23/11 Lorient 1 0.84 +0.16 +1.64
Sun 30/11 Olympique Lyonnais 0 0.86 -0.86 +0.78
Sat 06/12 RC Lens 1 1.19 -0.19 +0.59
Fri 12/12 Angers 1 0.35 +0.65 +1.24
Sun 04/01 Olympique de Marseille 2 3.63 -1.63 -0.39
Sun 18/01 Paris FC 1 0.36 +0.64 +0.25
Sun 25/01 Nice 1 1.59 -0.59 -0.34
Sat 31/01 Lorient 1 1.05 -0.05 -0.39
Sat 07/02 Olympique Lyonnais 0 0.73 -0.73 -1.12
Fri 13/02 AS Monaco 1 0.93 +0.07 -1.05
Sun 22/02 Le Havre 2 1.32 +0.68 -0.37
Sun 01/03 Lille 0 0.21 -0.21 -0.58
Sat 07/03 Angers 0 0.84 -0.84 -1.42
Sun 22/03 RC Strasbourg 2 1.67 +0.33 -1.09
Sun 05/04 Metz 0 0.46 -0.46 -1.55
Sat 11/04 Auxerre 0 1.73 -1.73 -3.28
Sun 19/04 Stade Brestois 1 0.92 +0.08 -3.20
Wed 22/04 Paris Saint-Germain 0 0.89 -0.89 -4.09
Sun 26/04 Stade Rennais 1 2.17 -1.17 -5.26
Sat 02/05 Olympique de Marseille 3 3.42 -0.42 -5.68
Fri 08/05 RC Lens 0 1.25 -1.25 -6.93

Goals vs xG ranking → Expected points ranking →

Nantes xG trend

Current form +0.70 npxGD per match

The last 6 matches with xG.

Out-created the opponent in 11 of 33 matches. The worst was against AS Monaco on Wed 29/10 (-2.76).

npxG · last 6
1.60
npxGA · last 6
0.90
-3 -2 -1 0 +1 +2 -1.29 Sun 17/08 -1.34 Sun 24/08 -0.20 Sat 30/08 -0.97 Sat 13/09 +0.73 Sat 20/09 -0.05 Sat 27/09 -1.33 Sat 04/10 -2.01 Sun 19/10 -0.29 Fri 24/10 -2.76 Wed 29/10 -0.46 Sun 02/11 -0.71 Sat 08/11 +0.62 Sun 23/11 -1.32 Sun 30/11 -1.33 Sat 06/12 -0.96 Fri 12/12 +1.31 Sun 04/01 -0.61 Sun 18/01 +0.71 Sun 25/01 +0.50 Sat 31/01 -0.48 Sat 07/02 -0.72 Fri 13/02 -0.04 Sun 22/02 -0.30 Sun 01/03 +0.18 Sat 07/03 -0.57 Sun 22/03 -2.03 Sun 05/04 +0.79 Sat 11/04 +0.55 Sun 19/04 -0.49 Wed 22/04 +1.72 Sun 26/04 +1.30 Sat 02/05 +0.34 Fri 08/05 -0.35 season avg
Nantes: 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
Sun 17/08 Paris Saint-Germain 0.14 1.43 -1.29 -1.29
Sun 24/08 RC Strasbourg 0.44 1.78 -1.34 -1.32
Sat 30/08 Auxerre 0.48 0.68 -0.20 -0.94
Sat 13/09 Nice 0.78 1.75 -0.97 -0.95
Sat 20/09 Stade Rennais 1.32 0.59 +0.73 -0.61
Sat 27/09 Toulouse 1.31 1.36 -0.05 -0.52
Sat 04/10 Stade Brestois 0.18 1.51 -1.33 -0.64
Sun 19/10 Lille 0.59 2.60 -2.01 -0.81
Fri 24/10 Paris FC 0.90 1.19 -0.29 -0.75
Wed 29/10 AS Monaco 1.66 4.42 -2.76 -0.95
Sun 02/11 Metz 0.88 1.34 -0.46 -0.91
Sat 08/11 Le Havre 0.23 0.94 -0.71 -0.89
Sun 23/11 Lorient 0.94 0.32 +0.62 -0.77
Sun 30/11 Olympique Lyonnais 1.03 2.35 -1.32 -0.81
Sat 06/12 RC Lens 0.99 2.32 -1.33 -0.85
Fri 12/12 Angers 0.39 1.35 -0.96 -0.85
Sun 04/01 Olympique de Marseille 2.06 0.75 +1.31 -0.73
Sun 18/01 Paris FC 0.36 0.97 -0.61 -0.72
Sun 25/01 Nice 1.58 0.87 +0.71 -0.65
Sat 31/01 Lorient 1.05 0.55 +0.50 -0.59
Sat 07/02 Olympique Lyonnais 0.73 1.21 -0.48 -0.58
Fri 13/02 AS Monaco 0.92 1.64 -0.72 -0.59
Sun 22/02 Le Havre 0.53 0.57 -0.04 -0.57
Sun 01/03 Lille 0.21 0.51 -0.30 -0.55
Sat 07/03 Angers 0.84 0.66 +0.18 -0.52
Sun 22/03 RC Strasbourg 1.66 2.23 -0.57 -0.53
Sun 05/04 Metz 0.48 2.51 -2.03 -0.58
Sat 11/04 Auxerre 1.44 0.65 +0.79 -0.53
Sun 19/04 Stade Brestois 0.91 0.36 +0.55 -0.50
Wed 22/04 Paris Saint-Germain 0.87 1.36 -0.49 -0.50
Sun 26/04 Stade Rennais 2.23 0.51 +1.72 -0.42
Sat 02/05 Olympique de Marseille 3.02 1.72 +1.30 -0.37
Fri 08/05 RC Lens 1.11 0.77 +0.34 -0.35

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

Form ranking →

Strength of schedule

Season so far
tied number 13 hardest of 18 in Ligue 1
−0.01 xG vs league average
Over 33 league matches
Last 5
number 1 hardest of 17 in Ligue 1
+0.31 xG vs league average
Over 5 league matches
Opponents behind the figures

Season so far

−0.01 xG vs league average · over 33 matches · tied number 13 hardest of 18

  1. RC Lens Away +0.74
  2. Olympique de Marseille Home +0.26
  3. Stade Rennais Away +0.11
  4. Paris Saint-Germain Away +0.69
  5. Stade Brestois Home −0.27
  6. Auxerre Away −0.18
  7. Metz Away −0.49
  8. RC Strasbourg Home −0.20
  9. Angers Home −0.48
  10. Lille Away +0.32
  11. Le Havre Home −0.32
  12. AS Monaco Away +0.04
  13. Olympique Lyonnais Home +0.02
  14. Lorient Away −0.09
  15. Nice Home −0.17
  16. Paris FC Home −0.09
  17. Olympique de Marseille Away +0.26
  18. Angers Away −0.48
  19. RC Lens Home +0.74
  20. Olympique Lyonnais Away +0.02
  21. Lorient Home −0.09
  22. Le Havre Away −0.32
  23. Metz Home −0.49
  24. AS Monaco Home +0.04
  25. Paris FC Away −0.09
  26. Lille Home +0.32
  27. Stade Brestois Away −0.27
  28. Toulouse Away −0.02
  29. Stade Rennais Home +0.11
  30. Nice Away −0.17
  31. Auxerre Home −0.18
  32. RC Strasbourg Away −0.20
  33. Paris Saint-Germain Home +0.69

Last 5

+0.31 xG vs league average · over 5 matches · number 1 hardest of 17

  1. RC Lens Away +0.74
  2. Olympique de Marseille Home +0.26
  3. Stade Rennais Away +0.11
  4. Paris Saint-Germain Away +0.69
  5. Stade Brestois Home −0.27

League schedule strength → How this is calculated →

Nantes shots and chance quality

Average volume, low quality. Nantes take 11.3 shots a match (league 12.4) at 0.09 npxG a shot (league 0.10), #11 in Ligue 1 for volume and #16 for quality. 65% of their shots come from inside the box (league 66%), and set pieces produce 33% of their npxG (league 22%).

Attack

Shot volume
11.3 shots per match
#11/18
Shot volume (shots per match) across Ligue 1, best first
Rank Club shots per match
#1 Paris Saint-Germain 17.7
#2 RC Lens 16.5
#3 Olympique de Marseille 15.1
#4 Stade Rennais 14.2
#5 Lille 13.6
#6 Toulouse 12.8
#7 AS Monaco 12.5
#8 Olympique Lyonnais 12.2
#9 Paris FC 11.7
#10 RC Strasbourg 11.4
#11 Nantes 11.3
#12 Lorient 11.3
#13 Nice 11.2
#14 Stade Brestois 11.2
#15 Le Havre 10.9
#16 Auxerre 10.7
#17 Metz 10.1
#18 Angers 9.3
League avg
12.4
Total
374 shots from 33 matches
Chance quality
0.09 npxG per shot
#16/18
Chance quality (npxG per shot) across Ligue 1, best first
Rank Club npxG per shot
#1 AS Monaco 0.13
#2 RC Strasbourg 0.12
#3 RC Lens 0.11
#4 Olympique Lyonnais 0.11
#5 Olympique de Marseille 0.11
#6 Lorient 0.11
#7 Nice 0.10
#8 Paris FC 0.10
#9 Lille 0.10
#10 Paris Saint-Germain 0.10
#11 Stade Rennais 0.10
#12 Stade Brestois 0.10
#13 Le Havre 0.10
#14 Toulouse 0.09
#15 Auxerre 0.09
#16 Nantes 0.09
#17 Metz 0.08
#18 Angers 0.08
League avg
0.10
Total
32.26 npxG from 374 shots

Defence

Shots allowed
13.5 shots per match
#13/18
Shots allowed (shots per match) across Ligue 1, best first
Rank Club shots per match
#1 Paris Saint-Germain 8.8
#2 Lille 9.1
#3 Olympique de Marseille 10.6
#4 Lorient 11.1
#5 RC Lens 11.1
=6 Auxerre 12.0
=6 Olympique Lyonnais 12.0
#8 Toulouse 12.2
#9 Paris FC 12.4
#10 RC Strasbourg 12.6
#11 Le Havre 13.0
#12 AS Monaco 13.4
#13 Nantes 13.5
#14 Stade Rennais 13.5
#15 Stade Brestois 13.9
#16 Angers 14.4
#17 Nice 15.0
#18 Metz 15.3
League avg
12.4
Total
445 shots allowed from 33 matches
Chance quality allowed
0.10 npxGA per shot
#6/18
Chance quality allowed (npxGA per shot) across Ligue 1, best first
Rank Club npxGA per shot
#1 RC Strasbourg 0.09
#2 Paris Saint-Germain 0.09
#3 Toulouse 0.10
#4 Stade Brestois 0.10
#5 Olympique Lyonnais 0.10
#6 Nantes 0.10
#7 Nice 0.10
#8 AS Monaco 0.10
#9 RC Lens 0.10
#10 Angers 0.10
#11 Stade Rennais 0.10
#12 Le Havre 0.10
#13 Metz 0.11
#14 Auxerre 0.11
#15 Lorient 0.11
#16 Paris FC 0.11
#17 Lille 0.11
#18 Olympique de Marseille 0.12
League avg
0.10
Total
43.77 npxGA from 445 shots

Shot profile

Shot location

65% inside the box

League avg 66%

From 242 of 374 shots over 33 matches

Shots allowed, location

69% allowed inside the box

League avg 66%

From 309 of 445 shots allowed over 33 matches

Where the npxG comes from

67% open play · 33% set pieces

League avg 22% set pieces

From 10.8 of 32.8 npxG over 33 matches

Where the npxG allowed comes from

79% open play · 21% set pieces

League avg 22% set pieces

From 9.1 of 44.1 npxG allowed over 33 matches

Nantes home and away xG

Nantes per-match figures at home and away
Measure Home Away
Matches 16 17
xG / match 1.16 1.03
xGA / match 1.41 1.45
xGD / match -0.25 -0.42
xPts / match Model — Model output — computed from each match's xG, not a result. How xPts works → 1.22 1.02

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

Every Nantes match by xG

Venue

Newest first. The dot is xG and the ring is xGA, on one scale from 0 to 3.63. 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 →

Nantes in Ligue 1

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 →