plays for St Mirren
| Match | Mins | Goals | Assists | Shots (on) | Rating |
|---|---|---|---|---|---|
| Dundee United v St Mirren Β· Mar 3, 26 Β· SPL Β· sub | 1 | 0 | 0 | β | β |
| Livingston v St Mirren Β· Feb 28, 26 Β· SPL Β· sub | 1 | 0 | 0 | β | β |
| St Mirren v Hearts Β· Feb 3, 26 Β· SPL Β· sub | 13 | 0 | 0 | β | 6.3 |
| St Mirren v Dundee Β· Jan 31, 26 Β· SPL | 45 | 0 | 0 | β | 6.7 |
| Rotherham v Peterboro Β· Jan 1, 26 Β· EL1 | 53 | 0 | 0 | 2 (1) | 6.9 |
| Blackpool v Rotherham Β· Dec 29, 25 Β· EL1 | 75 | 0 | 0 | 1 (1) | 6.2 |
| Bolton v Rotherham Β· Dec 26, 25 Β· EL1 | 53 | 0 | 0 | 1 | 6.9 |
| Rotherham v Huddersfield Β· Dec 20, 25 Β· EL1 Β· sub | 15 | 0 | 1 | β | 6.3 |
| Rotherham v Bradford Β· Oct 2, 25 Β· EL1 | 45 | 0 | 0 | 1 (1) | 6.5 |
| Mansfield v Rotherham Β· Sep 27, 25 Β· EL1 Β· sub | 13 | 0 | 0 | β | 6.2 |
| Rotherham v Exeter Β· Sep 6, 25 Β· EL1 | 22 | 0 | 0 | 1 (1) | 6.3 |
| Doncaster v Rotherham Β· Aug 30, 25 Β· EL1 | 89 | 0 | 0 | β | 6.0 |
| Rotherham v Wigan Β· Aug 23, 25 Β· EL1 Β· sub | 45 | 0 | 0 | 1 | 6.6 |
| Stevenage v Rotherham Β· Aug 9, 25 Β· EL1 Β· sub | 19 | 0 | 0 | 1 | 6.5 |
| Rotherham v Port Vale Β· Aug 2, 25 Β· EL1 Β· sub | 10 | 0 | 0 | β | 6.6 |
| Match | blocks | conceded | dribbles past | duels | duels won | fouls committed | fouls drawn | interceptions | key passes | passes | red | tackles | yellow |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Dundee United v St Mirren | β | 0 | β | 1 | 1 | β | 1 | β | β | 2 | 0 | β | 0 |
| Livingston v St Mirren | β | 0 | β | β | β | 1 | β | β | β | β | 0 | β | 0 |
| St Mirren v Hearts | β | 0 | β | 2 | 1 | β | β | 1 | 1 | 2 | 0 | β | 0 |
| St Mirren v Dundee | β | 0 | β | 14 | 5 | β | 3 | β | 1 | 8 | 0 | β |
| Season | Team | Apps | Goals | Assists | Minutes | Avg rating |
|---|---|---|---|---|---|---|
| 2025-26 Β· Scottish Premiership | St Mirren | 4 | 0 | 0 | 60 | 6.50 |
| 2025-26 Β· EFL League One | Rotherham | 11 | 0 | 1 | 439 | 6.45 |
| 2024-25 Β· EFL League One | Bolton | 5 | 0 | 0 | 78 | 6.16 |
| 2021-22 Β· EFL League Two | Northampton | 17 | 3 | 1 | 1,029 | 6.69 |
only matches where we hold the full stat line β coverage grows as the history backfill runs
| 0 |
| Rotherham v Peterboro | β | 0 | β | 5 | 1 | β | β | β | β | 10 | 0 | 1 | 0 |
| Blackpool v Rotherham | β | 0 | β | 19 | 8 | 3 | 3 | β | β | 9 | 0 | 1 | 1 |
| Bolton v Rotherham | β | 0 | β | 20 | 10 | 1 | β | β | β | 12 | 0 | 1 | 0 |
| Rotherham v Huddersfield | β | 0 | β | 6 | 2 | β | β | β | 1 | 2 | 0 | 1 | 0 |
| Rotherham v Bradford | 1 | 0 | β | 13 | 3 | 2 | 1 | β | 1 | 10 | 0 | β | 0 |
| Mansfield v Rotherham | β | 0 | β | 3 | 2 | 1 | 1 | β | β | 4 | 0 | β | 0 |
| Rotherham v Exeter | β | 0 | β | 3 | 1 | β | β | β | 2 | 3 | 0 | β | 0 |
| Doncaster v Rotherham | β | 0 | β | 21 | 5 | 1 | 2 | β | β | 10 | 0 | 1 | 1 |
| Rotherham v Wigan | β | 0 | 1 | 10 | 4 | 2 | 1 | β | 1 | 8 | 0 | β | 0 |
| Stevenage v Rotherham | β | 0 | β | 4 | 1 | β | 1 | β | β | 1 | 0 | β | 0 |
| Rotherham v Port Vale | β | 0 | β | 7 | 5 | β | β | β | β | 8 | 0 | β | 0 |