Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2025 - 06/2029 | ![]() | Bolton Wanderers | Midfield | 21 | |
| 07/2023 - 07/2025 | ![]() | Lincoln City | Midfield | 6 | |
| 01/2023 - 06/2023 | ![]() | Lincoln City | Midfield | 12 | |
| 07/2021 - 01/2023 | ![]() | St. Mirren FC | Midfield | 16 | |
| 07/2020 - 06/2021 | ![]() | St. Mirren FC | Midfield | 25 | |
| 01/2020 - 06/2020 | ![]() | Barnsley FC | Midfield | ||
| 07/2019 - 01/2020 | ![]() | St. Mirren FC | Midfield | 25 | |
| 07/2017 - 06/2019 | ![]() | St. Mirren FC | Midfield | 39 |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Championship | 11 | 9 | 2 | 6 | 727 | 1 | - | - | 1 | - | - | » All matches | |
| FA Cup | 4 | 3 | 1 | - | 286 | - | - | - | - | - | - | » All matches | |
| League Cup | 5 | 5 | - | 2 | 447 | - | - | 1 | 1 | - | - | » All matches | |
| League One | 123 | 111 | 12 | 25 | 9.548 | 2 | - | 9 | 23 | 2 | - | » All matches | |
| EFL Trophy | 10 | 5 | 5 | 3 | 464 | - | - | - | 3 | - | - | » All matches | |
| Playoffs | 2 | 2 | - | 2 | 147 | - | - | - | - | - | - | » All matches | |
| Premiership | 94 | 81 | 13 | 31 | 6.922 | 3 | - | 4 | 16 | 1 | 2 | » All matches | |
| Championship | 1 | 1 | - | 1 | 56 | - | - | - | - | - | - | » All matches | |
| FA Cup | 8 | 4 | 4 | 2 | 477 | 1 | - | - | - | - | - | » All matches | |
| League Cup | 18 | 15 | 3 | 3 | 1.446 | - | - | 1 | 2 | - | - | » All matches | |
| Total | 276 | 236 | 40 | 75 | 20.520 | 7 | - | 15 | 46 | 3 | 2 |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | U21 Friendlies | 2 | 1 | 1 | 1 | 82 | - | - | - | - | - | - | » All matches |
| Total | 2 | 1 | 1 | 1 | 82 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 Friendlies | 2 | 2 | - | 2 | 135 | - | - | - | - | - | - | » All matches |
| Total | 2 | 2 | - | 2 | 135 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U18 Friendlies | 1 | 1 | - | 1 | 64 | - | - | - | - | - | - | » All matches |
| Total | 1 | 1 | - | 1 | 64 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U17 Friendlies | 2 | 2 | - | - | 180 | - | - | - | - | - | - | » All matches |
![]() | U17 EURO Qualifiers | 5 | 5 | - | - | 450 | - | - | - | 2 | - | - | » All matches |
| Total | 7 | 7 | - | - | 630 | - | - | - | 2 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U16 Friendlies | 4 | 2 | 2 | 2 | 193 | - | - | - | - | - | - | » All matches |
| Total | 4 | 2 | 2 | 2 | 193 | - | - | - | - | - | - |






