Serie A xG difference 2026/2027
Expected-goal difference per match for every Serie A club: the chances a side made, less the chances it allowed, over the matches with xG behind them.
Showing non-penalty xG. Penalties are removed from the expected-goal columns; goals, G − xG and the rates taken from goals are unchanged.
Attack and defence
Juventus
P 5 · Pts 10 · 7th
xG/match 1.52 · xGA/match 0.45 · xGD/match +1.07
xPts 11.14
Open JuventusSassuolo
P 5 · Pts 7 · 10th
xG/match 1.55 · xGA/match 1.09 · xGD/match +0.46
xPts 8.14
Open SassuoloFiorentina
P 5 · Pts 4 · 17th
xG/match 1.68 · xGA/match 1.34 · xGD/match +0.34
xPts 8.47
Open FiorentinaFrosinone
P 5 · Pts 10 · 6th
xG/match 1.43 · xGA/match 1.87 · xGD/match −0.44
xPts 4.92
Open FrosinoneCagliari
P 5 · Pts 12 · 4th
xG/match 0.85 · xGA/match 1.68 · xGD/match −0.83
xPts 5.54
Open CagliariAtalanta
P 5 · Pts 6 · 11th
xG/match 0.70 · xGA/match 1.79 · xGD/match −1.08
xPts 3.34
Open Atalanta| Club | xG/match | xGA/match | xGD/match |
|---|---|---|---|
| Roma ROM | 2.64 | 1.02 | +1.61 |
| Inter INT | 2.83 | 1.28 | +1.55 |
| Juventus JUV | 1.52 | 0.45 | +1.07 |
| Como COM | 1.93 | 1.36 | +0.57 |
| Monza MON | 1.59 | 1.09 | +0.50 |
| Sassuolo SAS | 1.55 | 1.09 | +0.46 |
| Fiorentina FIO | 1.68 | 1.34 | +0.34 |
| Napoli NAP | 1.52 | 1.21 | +0.31 |
| Lazio LAZ | 1.37 | 1.07 | +0.30 |
| Milan MIL | 1.39 | 1.13 | +0.26 |
| Bologna BOL | 1.20 | 0.97 | +0.23 |
| Frosinone FRO | 1.43 | 1.87 | −0.44 |
| Genoa GEN | 0.75 | 1.22 | −0.47 |
| Torino TOR | 0.89 | 1.40 | −0.51 |
| Udinese UDI | 1.22 | 1.89 | −0.67 |
| Venezia VEN | 1.40 | 2.13 | −0.73 |
| Cagliari CAG | 0.85 | 1.68 | −0.83 |
| Parma PAR | 0.67 | 1.70 | −1.03 |
| Atalanta ATA | 0.70 | 1.79 | −1.08 |
| Lecce LEC | 0.92 | 2.35 | −1.43 |
- Top 3 in the table
- Other clubs
- Above average at both ends
- Below average at both ends
Non-penalty xG. Hover, focus or tap a dot for its figures.
Ranked on xG difference per match
- Creates more than it allows
- Allows more than it creates
| # | Team | P | npxG | npxGA | npxGD | npxGD/match | Pts |
|---|---|---|---|---|---|---|---|
| 1 | Roma ROM | 5 | 13.18 | 5.12 | +8.06 | +1.61 | 13 |
| 2 | Inter INT | 5 | 14.13 | 6.38 | +7.75 | +1.55 | 13 |
| 3 | Juventus JUV | 5 | 7.62 | 2.27 | +5.35 | +1.07 | 10 |
| 4 | Como COM | 5 | 9.66 | 6.82 | +2.84 | +0.57 | 10 |
| 5 | Monza MON | 5 | 7.95 | 5.44 | +2.51 | +0.50 | 4 |
| 6 | Sassuolo SAS | 5 | 7.75 | 5.47 | +2.28 | +0.46 | 7 |
| 7 | Fiorentina FIO | 5 | 8.39 | 6.68 | +1.71 | +0.34 | 4 |
| 8 | Napoli NAP | 5 | 7.61 | 6.05 | +1.56 | +0.31 | 7 |
| 9 | Lazio LAZ | 5 | 6.85 | 5.37 | +1.48 | +0.30 | 13 |
| 10 | Milan MIL | 5 | 6.95 | 5.66 | +1.29 | +0.26 | 11 |
| 11 | Bologna BOL | 5 | 6.00 | 4.86 | +1.14 | +0.23 | 2 |
| 12 | Frosinone FRO | 5 | 7.16 | 9.36 | −2.20 | −0.44 | 10 |
| 13 | Genoa GEN | 5 | 3.73 | 6.10 | −2.37 | −0.47 | 1 |
| 14 | Torino TOR | 5 | 4.46 | 6.99 | −2.53 | −0.51 | 4 |
| 15 | Udinese UDI | 5 | 6.10 | 9.46 | −3.36 | −0.67 | 4 |
| 16 | Venezia VEN | 5 | 7.01 | 10.66 | −3.65 | −0.73 | 0 |
| 17 | Cagliari CAG | 5 | 4.24 | 8.40 | −4.16 | −0.83 | 12 |
| 18 | Parma PAR | 5 | 3.36 | 8.51 | −5.15 | −1.03 | 4 |
| 19 | Atalanta ATA | 5 | 3.51 | 8.93 | −5.42 | −1.08 | 6 |
| 20 | Lecce LEC | 5 | 4.61 | 11.74 | −7.13 | −1.43 | 6 |
Goals against chances made
Most goals above xG
Most goals below xG
Goals against chances allowed
Most conceded above xGA
Fewest conceded against xGA
A gap can come from finishing, goalkeeping, game state or chance. xG and xPts are model estimates, not the result a team deserved.
About these figures What each column measures, and the thresholds this ranking is under. Show Hide
- P
- — Matches played
- npxG
- — Non-penalty expected goals: xG with penalties removed
- npxGA
- — Non-penalty expected goals against: xGA with penalties removed
- npxGD
- — npxG minus npxGA
- npxGD/match
- — npxG minus npxGA, per match with xG data
- Pts
- — Points
A club is ranked once it has 3 matches with xG and at least 75% of what the median club has played. Below that its row stays in the table, its rates are dashed and it sorts last.