Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Burton | 2026/27 | 12 | 1 | 0 |
| Bradford | 2025/26 | 35 | 0 | 1 |
| Salford | 2023/24 – 2024/25 | 92 | 6 | 2 |
| Wigan | 2020/21 – 2023/24 | 65 | 3 | — |
| Jamaica | 2021 – 2022 | 2 | 0 | — |
| Rotherham | 2019/20 – 2021/22 | 1 | 0 | — |
| Blackpool | 2017/18 – 2020/21 | 111 | 5 | — |
| Forest Green | 2016/17 | 7 | 0 | — |
| Wrexham | 2016/17 | 38 | 1 | — |
| AFC Telford United | 2015/16 | 32 | 0 | — |
| Hednesford Town | 2015/16 | 7 | 2 | — |
| Halesowen Town | 2014/15 | 1 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 18 Jul 2023 | Wigan | Salford City | — |
| 25 Jan 2022 | Rotherham | Wigan | — |
| 31 Aug 2021 | Rotherham | Wigan | Loan |
| 1 Jun 2021 | Wigan | Rotherham | — |
| 29 Jan 2021 | Rotherham | Wigan | Loan |
| 5 Jan 2021 | Wigan | Rotherham | — |
| 15 Oct 2020 | Rotherham | Wigan | Loan |
| 1 Feb 2020 | Blackpool | Rotherham | — |
| 15 Jun 2017 | Wrexham | Blackpool | Free |
| 23 Mar 2017 | Wrexham | Forest Green | Loan |
| 1 Jul 2016 | AFC Telford United | Wrexham | Free |
| 4 Sept 2015 | Hednesford Town | AFC Telford United | Free |
| 1 Jul 2015 | Halesowen Town | Hednesford Town | Free |
| 30 Jun 2025 | Salford City | Bradford | Free agent |
| 29 Jun 2026 | Bradford | Burton Albion | Transfer |
| 30 Jun 2026 | Bradford | Burton Albion | Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Burton | 1 | 1 | 68 | 0 | 0 | 0 | 0 | 7.90 |
| 2026/27 | League One | Burton | 11 | 11 | 983 | 1 | 0 | 4 | 1 | 6.60 |
| 2025/26 | League Cup | Bradford | 1 | 0 | 47 | 0 | 0 | 1 | 0 | 6.70 |
| 2025/26 | League One | Bradford | 34 | 33 | 2849 | 0 | 1 | 11 | 0 | 6.79 |
| 2024/25 | League Two | Salford | 37 | 32 | 2908 | 1 | 0 | 10 | 0 | 6.98 |
| 2024/25 | League Cup | Salford | 1 | 1 | 46 | 0 | 0 | 0 | 0 | 7.30 |
| 2024/25 | FA Cup | Salford | 3 | 3 | 270 | 0 | 0 | 1 | 0 | 5.90 |
| 2023/24 | League Two | Salford | 45 | 44 | 3975 | 3 | 2 | 10 | 1 | 6.94 |
| 2023/24 | League Cup | Salford | 3 | 3 | 252 | 0 | — | 0 | 0 | 6.83 |
| 2023/24 | EFL Trophy | Salford | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.90 |
| 2023/24 | FA Cup | Salford | 2 | 2 | 210 | 2 | — | 0 | 0 | — |
| 2022/23 | Championship | Wigan | 26 | 25 | 2239 | 1 | — | 8 | 0 | 6.68 |
| 2022/23 | FA Cup | Wigan | 2 | 2 | 167 | 0 | — | 1 | 0 | — |
| 2021/22 | League One | Wigan | 20 | 18 | 1653 | 2 | — | 3 | 0 | — |
| 2021/22 | League Cup | Wigan | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.00 |
| 2021/22 | FA Cup | Wigan | 1 | 0 | 26 | 0 | — | 0 | 0 | — |
| 2021/22 | EFL Trophy | Wigan | 2 | 2 | 180 | 0 | — | 0 | 0 | 7.30 |
| 2021 | Friendlies | Jamaica | 2 | 0 | 37 | 0 | — | 0 | 0 | — |
| 2020/21 | League One | Wigan | 13 | 13 | 1149 | 0 | — | 3 | 0 | 6.90 |
| 2019/20 | League One | Rotherham | 1 | 1 | 60 | 0 | — | 0 | 0 | 6.92 |
| 2019/20 | League One | Blackpool | 20 | 17 | 1521 | 0 | — | 4 | 0 | 6.92 |
| 2019/20 | FA Cup | Blackpool | 2 | 2 | 180 | 0 | — | 1 | 0 | — |
| 2019/20 | EFL Trophy | Blackpool | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2018/19 | League One | Blackpool | 37 | 37 | 3211 | 4 | — | 6 | 0 | — |
| 2018/19 | League Cup | Blackpool | 2 | 2 | 180 | 0 | — | 2 | 0 | — |
| 2018/19 | FA Cup | Blackpool | 3 | 3 | 300 | 0 | — | 0 | 0 | 7.10 |
| 2017/18 | League One | Blackpool | 42 | 42 | 3762 | 1 | — | 12 | 0 | — |
| 2017/18 | EFL Trophy | Blackpool | 3 | 3 | 226 | 0 | — | 0 | 0 | — |
| 2016/17 | National League | Forest Green | 7 | 5 | 480 | 0 | — | 0 | 0 | — |
| 2016/17 | National League | Wrexham | 36 | 36 | 3205 | 1 | — | 5 | 0 | — |
| 2016/17 | FA Trophy | Wrexham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | FA Cup | Wrexham | 1 | 1 | 120 | 0 | — | 0 | 0 | — |
| 2015/16 | National League N / S | AFC Telford United | 31 | 30 | 2670 | 0 | — | 0 | 0 | — |
| 2015/16 | National League N / S | Hednesford Town | 7 | 7 | 630 | 2 | — | 0 | 0 | — |
| 2015/16 | FA Trophy | AFC Telford United | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2014/15 | FA Trophy | Halesowen Town | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Suspended | 27 Oct 2019 | 3 Nov 2019 | 7 |
| Suspended | 7 Jan 2018 | 21 Jan 2018 | 14 |
| Suspended | 29 Oct 2017 | 5 Nov 2017 | 7 |
Trophies
| Competition | Season | Place |
|---|---|---|
| League One (England) | 2021/2022 | Winner |
| League One (England) | 2019/2020 | 2nd Place |
