Full Back · Newport County · season-by-season, by competition, and every match.
Below his 2020/21 peak but holding a solid level — the platform for a return is there.
The record covers 6 seasons (2020/21–2025/26) across 2 clubs — 139 appearances with 17 goal contributions from defence.
His best campaign on record is 2020/21 at Newport County — Season rating 39, 2 goals and 1 assist in 45 games. Output has held steady across his last 3 full seasons (7 → 6). The gap to his peak is 33 Season points.
| Season | Club | Apps | G | A | Rating | Season |
|---|---|---|---|---|---|---|
| 2025/26 | Newport County | 14 | 1 | 0 | 12 | 6 |
| 2024/25 | Salford City | 22 | 1 | 1 | 19 | 14 |
| 2023/24 | Salford City | 12 | 0 | 1 | 20 | 7 |
| 2022/23 | Salford City | 11 | 0 | 4 | 24 | 6 |
| 2021/22 | Salford City | 35 | 3 | 3 | 29 | 30 |
| 2020/21 | Newport County | 45 | 2 | 1 | 35 | 39 |
| Competition | Apps | Min | G | A | Rating |
|---|---|---|---|---|---|
| League Two | 14 | 914 | 1 | 0 | 6.8 |
| Date | Competition | Opponent | Res | Status | Min | G | A | Rating |
|---|---|---|---|---|---|---|---|---|
| Jul 12 | Friendlies Clubs | A Worcester City | 1-0 | Not in squad | — | |||
| Jul 15 | Friendlies Clubs | A Weston-super-Mare | 1-0 | Not in squad | — | |||
| Jul 19 | Friendlies Clubs | A Torquay | 1-3 | Not in squad | — | |||
| Jul 22 | Friendlies Clubs | A Bristol City | 0-1 | Not in squad | — | |||
| Jul 29 | League Cup | A Barnet | 2-2 | Not in squad | — | |||
| Aug 2 | League Two | H Notts County | 1-1 | Not in squad | — | |||
| Aug 9 | League Two | A Crawley Town | 2-1 | Played | 90 | 1 | 7.5 | |
| Aug 12 | League Cup | H Millwall | 0-1 | Not in squad | — | |||
| Aug 16 | League Two | A Grimsby | 1-2 | Played | 71 | 6.6 | ||
| Aug 19 | League Two | H Salford City | 0-1 | Not in squad | — | |||
| Aug 23 | League Two | H Milton Keynes Dons | 1-2 | Not in squad | — | |||
| Aug 30 | League Two | A Cambridge United | 0-2 | Not in squad | — | |||
| Sep 6 | League Two | H Bristol Rovers | 2-3 | Not in squad | — | |||
| Sep 13 | League Two | A Tranmere | 1-1 | Not in squad | — | |||
| Sep 20 | League Two | H Gillingham | 1-3 | Not in squad | — | |||
| Sep 23 | EFL Trophy | H Arsenal U21 | 1-2 | Not in squad | — | |||
| Sep 27 | League Two | A Chesterfield | 1-4 | Not in squad | — | |||
| Oct 4 | League Two | H Swindon Town | 0-1 | Not in squad | — | |||
| Oct 7 | EFL Trophy | A Cardiff | 1-0 | Not in squad | — | |||
| Oct 11 | League Two | A Accrington ST | 1-0 | Not in squad | — | |||
| Oct 18 | League Two | H Cheltenham | 0-2 | Not in squad | — | |||
| Oct 25 | League Two | A Harrogate Town | 3-0 | Not in squad | — | |||
| Nov 1 | FA Cup | H Gillingham | 1-1 | Not in squad | — | |||
| Nov 8 | League Two | H Walsall | 2-4 | Not in squad | — | |||
| Nov 11 | EFL Trophy | H Exeter City | 0-1 | Not in squad | — | |||
| Nov 15 | League Two | A Shrewsbury | 0-1 | Not in squad | — | |||
| Nov 22 | League Two | A Oldham | 0-3 | Not in squad | — | |||
| Nov 29 | League Two | H Barrow | 2-2 | Not in squad | — | |||
| Dec 7 | FA Cup | A Boreham Wood | 0-3 | Not in squad | — | |||
| Dec 10 | League Two | A Crewe | 2-2 | Not in squad | — | |||
| Dec 13 | League Two | H Fleetwood Town | 0-2 | Not in squad | — | |||
| Dec 20 | League Two | A Colchester | 1-4 | Not in squad | — | |||
| Dec 26 | League Two | H Barnet | 0-0 | Played | 25 | 7.0 | ||
| Dec 29 | League Two | H Crewe | 2-0 | Played | 11 | 6.6 | ||
| Jan 1 | League Two | A Bromley | 1-2 | Unused sub | 0 | — | ||
| Jan 17 | League Two | A Gillingham | 2-3 | Played | 88 | 7.0 | ||
| Jan 24 | League Two | H Chesterfield | 2-1 | Played | 90 | 6.9 | ||
| Jan 27 | League Two | H Accrington ST | 1-4 | Not in squad | — | |||
| Jan 31 | League Two | A Bristol Rovers | 0-3 | Played | 56 | 6.2 | ||
| Feb 7 | League Two | H Grimsby | 0-0 | Played | 68 | 7.0 | ||
| Feb 11 | League Two | A Swindon Town | 0-2 | Not in squad | — | |||
| Feb 14 | League Two | A Milton Keynes Dons | 0-1 | Not in squad | — | |||
| Feb 17 | League Two | A Salford City | 3-1 | Played | 45 | 7.2 | ||
| Feb 21 | League Two | H Cambridge United | 0-2 | Not in squad | — | |||
| Feb 28 | League Two | A Fleetwood Town | 0-0 | Not in squad | — | |||
| Mar 3 | League Two | H Tranmere | 3-1 | Not in squad | — | |||
| Mar 7 | League Two | H Colchester | 1-2 | Not in squad | — | |||
| Mar 14 | League Two | A Barnet | 2-1 | Not in squad | — | |||
| Mar 17 | League Two | H Bromley | 0-1 | Unused sub | 0 | — | ||
| Mar 21 | League Two | A Walsall | 1-2 | Played | 85 | 6.3 | ||
| Mar 28 | League Two | H Shrewsbury | 1-0 | Played | 73 | 7.0 | ||
| Apr 3 | League Two | H Crawley Town | 0-2 | Played | 90 | 6.9 | ||
| Apr 6 | League Two | A Notts County | 1-3 | Not in squad | — | |||
| Apr 11 | League Two | H Harrogate Town | 2-1 | Not in squad | — | |||
| Apr 18 | League Two | A Cheltenham | 0-1 | Played | 90 | 7.2 | ||
| Apr 25 | League Two | H Oldham | 3-2 | Played | 32 | 6.2 | ||
| May 2 | League Two | A Barrow | 2-1 | Unused sub | 0 | — |