Soccer › xG ladders

xG Team Ladders

Built from Signal Labs' own expected-goals model. Descriptive record — not a prediction and not priced against any market.

EPL

3660 of 3797 xG matches joined to a result (96.4%) · 34 clubs, 0 unrated

ClubxG diff/matchGoals−xG/matchMatches
mancity+1.203+0.316371
liverpool+0.882+0.103371
chelsea+0.558+0.031372
arsenal+0.493+0.125372
tottenham+0.156+0.275369
manunited+0.117+0.089370
brentford+0.083-0.220114
brighton+0.057-0.301264
southampton-0.015-0.227335
everton-0.059-0.198371
leicester-0.076+0.069334
westham-0.102-0.156372
newcastle-0.177-0.116337
astonvilla-0.198-0.110261
leeds-0.202-0.218113
stoke-0.204-0.179143
cardiff-0.227-0.55638
crystalpalace-0.233-0.131369
wolves-0.239-0.191227
watford-0.336-0.135221
bournemouth-0.360-0.090262
fulham-0.375-0.257150
burnley-0.440-0.321299
nottmforest-0.446-0.14576
swansea-0.477-0.055144
hull-0.491-0.19270
huddersfield-0.517-0.37974
sunderland-0.563-0.154109
middlesbrough-0.656-0.29036
sheffieldunited-0.664-0.311113
westbromwichalbion-0.683-0.22694
norwich-0.746-0.353113
luton-0.779-0.19338
queensparkrangers-0.949-0.22618

Goals minus xG per match, by season

Same 3660 matches as the ladder above. Above zero = scoring more than our xG expected.

02014-15: -0.204 goals/match vs xG · n=3412015-16: -0.062 goals/match vs xG · n=3492016-17: +0.006 goals/match vs xG · n=3502017-18: -0.100 goals/match vs xG · n=3602018-19: -0.150 goals/match vs xG · n=3802019-20: -0.323 goals/match vs xG · n=3142020-21: -0.101 goals/match vs xG · n=4272021-22: -0.170 goals/match vs xG · n=3802022-23: -0.253 goals/match vs xG · n=3802023-24: -0.180 goals/match vs xG · n=37914151617181920212223

LaLiga

3614 of 3797 xG matches joined to a result (95.2%) · 31 clubs, 0 unrated

ClubxG diff/matchGoals−xG/matchMatches
barcelona+0.857+0.544371
realmadrid+0.798+0.346370
atleticomadrid+0.389+0.206369
sevilla+0.314-0.084367
athleticclub+0.220-0.150372
eibar+0.137-0.191252
realsociedad+0.130+0.013364
girona+0.088+0.021149
leganes+0.029-0.278147
villarreal-0.000+0.110370
rayovallecano-0.014-0.276219
getafe-0.076-0.144334
realbetis-0.092+0.028322
malaga-0.106-0.211141
deportivolacoruna-0.134-0.244139
valencia-0.134+0.077368
celtavigo-0.137+0.044361
osasuna-0.173-0.137223
mallorca-0.210-0.212150
espanyol-0.227-0.101295
alaves-0.268-0.222259
cadiz-0.301-0.363149
granada-0.439-0.045257
sportinggijon-0.487-0.00974
levante-0.493+0.014256
sdhuesca-0.499-0.26236
laspalmas-0.534-0.035141
elche-0.540-0.145149
almeria-0.557-0.108113
cordoba-0.615-0.41638
realvalladolid-1.051-0.13873

Goals minus xG per match, by season

Same 3614 matches as the ladder above. Above zero = scoring more than our xG expected.

02014-15: +0.022 goals/match vs xG · n=3792015-16: +0.107 goals/match vs xG · n=3282016-17: +0.321 goals/match vs xG · n=3672017-18: +0.042 goals/match vs xG · n=3772018-19: -0.192 goals/match vs xG · n=3422019-20: -0.040 goals/match vs xG · n=3082020-21: +0.019 goals/match vs xG · n=3942021-22: -0.153 goals/match vs xG · n=3792022-23: -0.261 goals/match vs xG · n=3612023-24: -0.214 goals/match vs xG · n=37914151617181920212223

SerieA

3483 of 3799 xG matches joined to a result (91.7%) · 35 clubs, 0 unrated

ClubxG diff/matchGoals−xG/matchMatches
inter+0.787-0.029362
juventus+0.733+0.122363
napoli+0.671+0.265361
atalanta+0.609+0.024363
roma+0.584+0.039362
fiorentina+0.359-0.082361
lazio+0.271+0.299364
torino+0.043-0.074364
acmilan-0.011+0.189182
udinese-0.178-0.141361
bologna-0.200-0.011326
genoa-0.202-0.156327
carpi-0.233-0.18137
sassuolo-0.263+0.088363
verona-0.286-0.176292
cagliari-0.327-0.198288
sampdoria-0.338+0.016326
palermo-0.355-0.066109
chievo-0.377-0.205181
monza-0.377-0.10274
lecce-0.413-0.284109
spezia-0.447-0.131110
parma-0.451-0.18837
benevento-0.489-0.24072
empoli-0.545-0.138256
pescara-0.599-0.13737
frosinone-0.632-0.278109
spal2013-0.669-0.20552
cremonese-0.677-0.28237
cesena-0.689+0.04437
crotone-0.707+0.029109
salernitana-0.756-0.140111
brescia-0.814-0.37335
parmacalcio1913-1.041+0.37052
venezia-1.078-0.19937

Goals minus xG per match, by season

Same 3483 matches as the ladder above. Above zero = scoring more than our xG expected.

02014-15: +0.063 goals/match vs xG · n=3612015-16: +0.025 goals/match vs xG · n=3572016-17: +0.176 goals/match vs xG · n=3572017-18: -0.014 goals/match vs xG · n=3402018-19: -0.226 goals/match vs xG · n=3232019-20: +0.072 goals/match vs xG · n=2402020-21: +0.172 goals/match vs xG · n=4242021-22: -0.124 goals/match vs xG · n=3612022-23: -0.331 goals/match vs xG · n=3612023-24: -0.311 goals/match vs xG · n=35914151617181920212223
Reading this. A club with no xG rows that join to a result is shown unrated rather than dropped — an absent club and a last-placed club are different facts. The season chart uses the same joined matches as the ladder above it.

Generated 2026-08-02T12:24:45Z.

← All leagues