xgEdge

Squad

Cardiff City squad 2026/2027

Championship · 12 matches played

Cardiff City's 2026/2027 squad, ranked by minutes played. Compare goals, assists, xG, xA and expected goal involvement across the squad.

Top scorer 6 Jack Moylan · from 4.04 xG
Most xG 6.76 Yousef Salech · 3 goals
Most xA 3.19 Joel Bagan · 0 assists
Most xGI 7.20 Yousef Salech · 6.76 xG + 0.44 xA

What the squad numbers say

Yousef Salech leads the squad for expected goal involvement, with 7.20: 6.76 expected goals and 0.44 expected assists. The top scorer is Jack Moylan, with 6 goals from 4.04 expected goals. Joel Bagan leads the squad for expected assists, with 3.19, against 0 assists.

Expected goals

  1. 1 Yousef Salech 6.76
  2. 2 Jack Moylan 4.04
  3. 3 Ollie Tanner 2.90

Expected assists

  1. 1 Joel Bagan 3.19
  2. 2 Jack Moylan 2.45
  3. 3 Chris Willock 2.28

Expected goal involvement

  1. 1 Yousef Salech 7.20
  2. 2 Jack Moylan 6.49
  3. 3 Ollie Tanner 5.07

Goals above xG

Jack Moylan +1.96

6 goals · 4.04 xG

Goals below xG

Yousef Salech −3.76

3 goals · 6.76 xG

Taken over players with at least 180 minutes and 2.00 expected goals, so the gap is measured against chances actually taken rather than against one afternoon of them.

The squad

Every player with a season at this club: appearances, starts, minutes, goals, assists and the chances behind them.
Player POS APP ST MIN MIN% G A xG xA xGI
Nathan Trott Goalkeeper 12 12 1080 100% 0 0 0.00 0.02 0.02
Alex Robertson Midfielder 12 12 1068 99% 0 0 0.51 2.21 2.72
Joel Bagan Defender 12 12 1059 98% 0 0 0.24 3.19 3.43
Jack Moylan Midfielder 12 12 1014 94% 6 3 4.04 2.45 6.49
Perry Ng Defender 11 11 990 92% 1 1 0.40 0.78 1.18
Ollie Tanner Forward 12 12 946 88% 2 4 2.90 2.17 5.07
Gabriel Osho Defender 10 10 885 82% 0 0 0.46 0.18 0.64
Yousef Salech Forward 9 9 790 73% 3 1 6.76 0.44 7.20
Cian Ashford Forward 12 9 660 61% 2 2 1.47 0.98 2.45
Joel Colwill Midfielder 12 7 627 58% 1 0 1.60 0.52 2.12
Chris Willock Forward 12 7 623 58% 0 1 1.62 2.28 3.90
Krystian Bielik Defender 7 6 583 54% 0 0 0.49 0.17 0.66
Calum Scanlon Defender 11 5 353 33% 0 0 0.00 0.24 0.24
Rubin Colwill Midfielder 5 3 293 27% 1 1 0.36 0.71 1.07
David Turnbull Midfielder 8 2 246 23% 0 1 0.17 0.27 0.44
Ronan Kpakio Defender 6 2 208 19% 0 1 0.09 0.38 0.47
William Fish Defender 3 1 178 16% 0 0 — 0.25 —
Dylan Lawlor Defender 3 3 115 11% 0 0 0.04 0.03 0.07
Callum Robinson Forward 6 1 114 11% 2 0 0.70 0.11 0.81
Isaak Davies Forward 8 0 78 7% 0 0 0.50 0.02 0.52
Charlie Holt Midfielder — — — — — — — — —
Harry Tyrer Goalkeeper — — — — — — — — —
Matthew Turner Goalkeeper — — — — — — — — —
Noah Anyadike Defender — — — — — — — — —
Paul Moreno Midfielder — — — — — — — — —
Rob Tankiewicz Midfielder — — — — — — — — —
Troy Perret Midfielder — — — — — — — — —

Rates per ninety minutes are shown for a player with at least 270 minutes behind him — the control above moves that floor, and it moves nothing else. Minutes share is a player's minutes against the 12 matches this club has played in this competition, at ninety minutes each. Expected goals, non-penalty expected goals and expected assists are summed from this competition's per-match feed, so a player it holds no figures for carries a dash rather than a nought.

About the data

Where these figures come from, and what they leave out

Data source
Where the per-match feed covers Championship, every figure on a row — appearances, starts, minutes, goals, assists, shots, and the expected goals, expected assists and non-penalty expected goals beside them — is summed from it over the matches he played for this club. Where it does not, the counts are the provider's season line. Championship only — no figure here adds two competitions together.
Calculated by xgEdge
xGI, the per-90 rates, goals minus expected goals, xGI share and minutes share are worked out here from those figures. Nothing on this page is a model's output.
Missing data
A dash means a figure was not measured; a nought means it was measured and came to nothing. Per-90 figures are hidden below the minimum-minutes setting, which opens at 270 and never removes a row.

How every figure on this site is made →

How the model works →