Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Chesterfield | 2025/26 – 2026/27 | 18 | 1 | 1 |
| CF Montréal | 2024/25 – 2025/26 | 36 | 2 | 3 |
| Wigan | 2019/20 – 2023/24 | 114 | 3 | 14 |
| Leeds | 2017/18 – 2019/20 | 10 | 1 | — |
| England U21 | 2018 – 2019 | 2 | 0 | — |
| England U20 | 2019 | 3 | 0 | — |
| Scunthorpe | 2018/19 | 9 | 1 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 18 Jul 2024 | Wigan | CF Montreal | Free |
| 31 Jan 2019 | Leeds | Scunthorpe | Loan |
| 18 Oct 2025 | CF Montreal | Chesterfield | Free agent |
| 8 Jan 2026 | CF Montreal | Chesterfield | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | EFL Trophy | Chesterfield | 2 | 2 | 110 | 0 | 0 | 0 | 0 | 6.11 |
| 2026/27 | League Two | Chesterfield | 4 | 0 | 45 | 0 | 0 | 0 | 0 | 5.20 |
| 2025/26 | Leagues Cup | CF Montréal | 1 | 0 | 12 | 0 | 0 | 0 | 0 | 7.30 |
| 2025/26 | Canadian Championship | CF Montréal | 2 | 1 | 134 | 0 | — | 0 | 0 | — |
| 2025/26 | Major League Soccer | CF Montréal | 21 | 9 | 919 | 0 | 1 | 2 | 0 | 6.78 |
| 2025/26 | League Two | Chesterfield | 12 | 9 | 819 | 1 | 1 | 1 | 0 | 7.03 |
| 2024/25 | Major League Soccer | CF Montréal | 9 | 3 | 279 | 1 | 1 | 2 | 0 | 6.71 |
| 2024/25 | Leagues Cup | CF Montréal | 3 | 2 | 166 | 1 | 1 | 0 | 0 | 7.30 |
| 2023/24 | League One | Wigan | 26 | 20 | 1374 | 1 | 4 | 4 | 0 | 7.03 |
| 2023/24 | League Cup | Wigan | 1 | 1 | 82 | 0 | — | 0 | 0 | 7.30 |
| 2023/24 | FA Cup | Wigan | 1 | 1 | 85 | 0 | — | 0 | 0 | 6.90 |
| 2023/24 | EFL Trophy | Wigan | 2 | 1 | 134 | 1 | — | 0 | 0 | 7.60 |
| 2022/23 | Championship | Wigan | 20 | 10 | 392 | — | — | 1 | 0 | 6.52 |
| 2022/23 | League Cup | Wigan | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.90 |
| 2021/22 | League One | Wigan | 16 | 9 | 915 | 0 | 2 | 2 | 0 | 6.76 |
| 2021/22 | FA Cup | Wigan | 4 | 4 | 343 | 0 | 1 | 1 | 0 | 7.20 |
| 2021/22 | EFL Trophy | Wigan | 5 | 5 | 347 | 0 | 1 | 1 | 0 | 7.07 |
| 2021/22 | League Cup | Wigan | 2 | 2 | 180 | 0 | — | 1 | 0 | 6.55 |
| 2020/21 | League One | Wigan | 23 | 23 | 1976 | 0 | 3 | 1 | 0 | 6.90 |
| 2020/21 | League Cup | Wigan | 1 | 1 | 90 | 0 | 1 | 0 | 0 | 6.90 |
| 2020/21 | FA Cup | Wigan | 1 | 1 | 120 | 0 | — | 0 | 0 | — |
| 2020/21 | EFL Trophy | Wigan | 3 | 3 | 244 | 1 | 1 | 0 | 0 | 7.45 |
| 2019/20 | Championship | Wigan | 7 | 4 | 360 | 0 | 1 | 0 | 0 | 6.71 |
| 2019/20 | FA Cup | Wigan | 1 | 1 | 81 | 0 | — | 0 | 0 | 6.50 |
| 2019 | Tournoi Maurice Revello | England U20 | 3 | 3 | 253 | 0 | — | 1 | 0 | — |
| 2018/19 | League One | Scunthorpe | 9 | 9 | 781 | 1 | — | 0 | 0 | — |
| 2018/19 | Championship | Leeds | 2 | 0 | 72 | 0 | — | 0 | 0 | 6.80 |
| 2018/19 | League Cup | Leeds | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Leeds | 1 | 0 | 33 | 0 | — | 0 | 0 | — |
| 2018 | Tournoi Maurice Revello | England U21 | 2 | 1 | 63 | 0 | — | 0 | 0 | — |
| 2017/18 | Championship | Leeds | 5 | 5 | 430 | 1 | — | 0 | 0 | 7.04 |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Back Injury | 11 Jun 2019 | 5 Dec 2019 | 177 |
| Injury | 30 Aug 2022 | 4 Feb 2023 | 158 |
Trophies
| Competition | Season | Place |
|---|---|---|
| League One (England) | 2021/2022 | Winner |
| Tournoi Maurice Revello (World) | 2018 | Winner |
