Partial coverage: some seasons of this career are not stored yet (2026/27).
Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Sunderland | 2018/19 – 2025/26 | 330 | 23 | 8 |
| Wycombe | 2015/16 – 2017/18 | 119 | 16 | — |
| Wealdstone | 2014/15 | 33 | 4 | — |
| Watford | 2013/14 – 2014/15 | 1 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 30 Jul 2018 | Wycombe | Sunderland | — |
| 27 Jul 2015 | Watford | Wycombe | Free |
| 1 Jun 2015 | Wealdstone | Watford | — |
| 22 Aug 2014 | Watford | Wealdstone | Loan |
| 29 Apr 2014 | Wealdstone | Watford | — |
| 28 Mar 2014 | Watford | Wealdstone | Loan |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | FA Cup | Sunderland | 3 | 3 | 300 | 0 | 0 | 1 | 0 | 7.73 |
| 2025/26 | Premier League | Sunderland | 12 | 5 | 604 | 0 | 1 | 1 | 1 | 6.63 |
| 2024/25 | Championship | Sunderland | 48 | 47 | 4153 | 3 | 1 | 9 | 0 | 7.14 |
| 2024/25 | FA Cup | Sunderland | 1 | 1 | 120 | 0 | 0 | 0 | 0 | 7.20 |
| 2023/24 | Championship | Sunderland | 43 | 43 | 3870 | 2 | — | 12 | 0 | 7.14 |
| 2023/24 | FA Cup | Sunderland | 1 | 1 | 90 | 0 | — | 1 | 0 | 6.20 |
| 2022/23 | Championship | Sunderland | 43 | 36 | 3360 | 2 | 1 | 11 | 1 | 6.80 |
| 2022/23 | League Cup | Sunderland | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.90 |
| 2022/23 | FA Cup | Sunderland | 2 | 1 | 116 | 1 | — | 0 | 0 | 6.70 |
| 2022/23 | Friendlies Clubs | Sunderland | 1 | 1 | 45 | 0 | — | 1 | 0 | — |
| 2021/22 | League One | Sunderland | 29 | 27 | 2379 | 3 | 1 | 6 | 0 | 7.04 |
| 2021/22 | League Cup | Sunderland | 3 | 3 | 270 | 1 | — | 2 | 0 | 7.13 |
| 2021/22 | FA Cup | Sunderland | 1 | 0 | 19 | 0 | — | 0 | 0 | — |
| 2021/22 | EFL Trophy | Sunderland | 2 | 1 | 96 | 0 | — | 0 | 0 | 7.30 |
| 2020/21 | League One | Sunderland | 40 | 36 | 3228 | 2 | — | 10 | 0 | 7.11 |
| 2020/21 | League Cup | Sunderland | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.20 |
| 2020/21 | EFL Trophy | Sunderland | 4 | 4 | 360 | 0 | — | 1 | 0 | 7.28 |
| 2019/20 | League One | Sunderland | 35 | 35 | 3131 | 4 | 2 | 5 | 1 | 7.08 |
| 2019/20 | EFL Trophy | Sunderland | 2 | 2 | 155 | 0 | — | 0 | 1 | — |
| 2019/20 | FA Cup | Sunderland | 2 | 2 | 210 | 0 | — | 2 | 0 | — |
| 2019/20 | League Cup | Sunderland | 4 | 3 | 289 | 0 | 2 | 0 | 0 | 6.85 |
| 2018/19 | League One | Sunderland | 40 | 27 | 2617 | 5 | — | 7 | 0 | 6.90 |
| 2018/19 | League Cup | Sunderland | 1 | 1 | 90 | 0 | — | 1 | 0 | 6.30 |
| 2018/19 | EFL Trophy | Sunderland | 8 | 7 | 705 | 0 | — | 1 | 0 | — |
| 2018/19 | FA Cup | Sunderland | 3 | 2 | 189 | 0 | — | 1 | 0 | 5.90 |
| 2017/18 | League Two | Wycombe | 35 | 34 | 2949 | 7 | — | 8 | 1 | — |
| 2017/18 | EFL Trophy | Wycombe | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Wycombe | 2 | 2 | 180 | 1 | — | 0 | 0 | 6.70 |
| 2016/17 | League Two | Wycombe | 31 | 28 | 2512 | 3 | — | 8 | 0 | — |
| 2016/17 | EFL Trophy | Wycombe | 4 | 3 | 278 | 0 | — | 1 | 0 | — |
| 2016/17 | FA Cup | Wycombe | 4 | 4 | 360 | 0 | — | 2 | 0 | 6.50 |
| 2015/16 | League Two | Wycombe | 35 | 33 | 2984 | 5 | — | 7 | 0 | — |
| 2015/16 | FA Cup | Wycombe | 4 | 4 | 360 | 0 | — | 1 | 0 | — |
| 2015/16 | EFL Trophy | Wycombe | 1 | 0 | 17 | 0 | — | 0 | 0 | — |
| 2014/15 | National League N / S | Wealdstone | 31 | 28 | 2499 | 4 | — | 0 | 0 | — |
| 2014/15 | FA Trophy | Wealdstone | 2 | 2 | 150 | 0 | — | 0 | 0 | — |
| 2013/14 | Championship | Watford | 1 | 0 | 2 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
