
| 2026 | Major League Soccer | Charlotte | Defender | 10 | 913 | 0 | 0 | 1 | 0 | 2 | 84 | 1 | 0 | 6.53 |
| 2025 | Leagues Cup | Charlotte | Defender | 3 | 22 | 0 | 0 | 0 | 0 | 0 | — | 2 | 0 | 6.20 |
| 2025 | Canadian Championship | Charlotte | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2025 | US Open Cup | Charlotte | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2025 | Major League Soccer | Charlotte | Defender | 19 | 1803 | 0 | 0 | 0 | 0 | 8 | — | 4 | 0 | 6.95 |
| 2024 | Major League Soccer | Charlotte | Defender | 34 | 3060 | 0 | 2 | 4 | 1 | 22 | — | 7 | 0 | 6.92 |
| 2024 | Leagues Cup | Charlotte | Defender | 1 | 90 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2023 | Major League Soccer | Charlotte | Defender | 34 | 2690 | 0 | 1 | 6 | 5 | 9 | — | 7 | 0 | 6.58 |
| 2023 | US Open Cup | Charlotte | Defender | 34 | 2690 | 0 | 1 | 6 | 5 | 9 | — | 7 | 0 | 6.58 |
| 2023 | Leagues Cup | Charlotte | Defender | 4 | 360 | 0 | 0 | 0 | 0 | 0 | 57 | 3 | 0 | 6.60 |
| 2022 | Major League Soccer | Charlotte | Defender | 5 | 289 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | 6.72 |
| 2022 | Friendlies Clubs | Charlotte | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2021 | Championship | Derby | Defender | 41 | 3663 | 0 | 1 | 3 | 1 | 15 | — | 12 | 0 | 6.61 |
| 2021 | League Cup | Derby | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2021 | FA Cup | Derby | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2021 | Friendlies Clubs | Derby | Defender | 1 | 61 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2020 | Championship | Derby | Defender | 41 | 3465 | 0 | 4 | 5 | 3 | 58 | — | 10 | 0 | 6.90 |
| 2020 | League One | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2020 | FA Cup | Derby | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2020 | League Cup | Derby | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | 6.00 |
| 2020 | League Cup | Wigan | Defender | 1 | 90 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | 6.00 |
| 2020 | FA Cup | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2020 | EFL Trophy | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2019 | Championship | Wigan | Defender | 39 | 3493 | 1 | 7 | 13 | 2 | 34 | 71 | 9 | 0 | 6.80 |
| 2019 | League Cup | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2019 | FA Cup | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2018 | Championship | Wigan | Defender | 30 | 2349 | 1 | 3 | 12 | 2 | 18 | 64 | 3 | 0 | 6.53 |
| 2018 | FA Cup | Wigan | Defender | 1 | 90 | 0 | 0 | 0 | 0 | 0 | 52 | 1 | 0 | 6.20 |
| 2017 | League One | Wigan | Defender | 44 | 3919 | 0 | 0 | 0 | 0 | 0 | — | 9 | 0 | — |
| 2017 | League Cup | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2017 | EFL Trophy | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2017 | FA Cup | Wigan | Defender | 7 | 620 | 0 | 2 | 2 | 0 | 6 | 72 | 0 | 0 | 6.83 |
| 2017 | Club Friendlies | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2016 | League One | Charlton | Defender | 17 | 1424 | 1 | 0 | 0 | 0 | 0 | — | 5 | 1 | — |
| 2016 | Championship | Wigan | Defender | 14 | 677 | 0 | 0 | 8 | 1 | 8 | 78 | 0 | 0 | 6.54 |
| 2016 | Championship | Wolves | Defender | 0 | 0 | 0 | 0 | 8 | 1 | 8 | 78 | 0 | 0 | 6.54 |
| 2016 | League Cup | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2016 | Club Friendlies | Wigan | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2015 | Championship | Wolves | Defender | 24 | 921 | 2 | 3 | 19 | 3 | 14 | 42 | 0 | 0 | 6.64 |
| 2015 | League One | Swindon Town | Defender | 5 | 447 | 3 | 0 | 0 | 0 | 0 | — | 1 | 0 | — |
| 2015 | FA Cup | Wolves | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2015 | League Cup | Swindon Town | Defender | 1 | 90 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2015 | EFL Trophy | Swindon Town | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2015 | Club Friendlies | Swindon Town | Defender | 1 | 81 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2014 | League One | Swindon Town | Defender | 45 | 4050 | 4 | 0 | 0 | 0 | 0 | — | 5 | 0 | — |
| 2014 | EFL Trophy | Swindon Town | Defender | 1 | 13 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2014 | FA Cup | Swindon Town | Defender | 1 | 90 | 0 | 0 | 0 | 0 | 0 | — | 1 | 0 | — |
| 2014 | League Cup | Swindon Town | Defender | 2 | 210 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2013 | League One | Swindon Town | Defender | 36 | 2563 | 4 | 0 | 0 | 0 | 0 | — | 4 | 1 | — |
| 2013 | League Cup | Swindon Town | Defender | 2 | 180 | 0 | 0 | 0 | 0 | 0 | — | 1 | 0 | — |
| 2013 | EFL Trophy | Swindon Town | Defender | 4 | 271 | 0 | 0 | 0 | 0 | 0 | — | 1 | 0 | — |
| 2013 | FA Cup | Swindon Town | Defender | 1 | 90 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2012 | League One | Swindon Town | Defender | 9 | 766 | 0 | 0 | 0 | 0 | 0 | — | 2 | 0 | — |
| 2012 | League One | Crawley Town | Defender | 12 | 961 | 1 | 0 | 0 | 0 | 0 | — | 1 | 0 | — |
| 2012 | EFL Trophy | Crawley Town | Defender | 1 | 90 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2012 | League Cup | Crawley Town | Defender | 1 | 90 | 0 | 0 | 0 | 0 | 0 | — | 1 | 0 | — |
| 2012 | FA Cup | Crawley Town | Defender | 1 | 26 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2011 | League One | Bournemouth | Defender | 9 | 738 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2011 | League Cup | Bournemouth | Defender | 2 | 180 | 0 | 0 | 0 | 0 | 0 | — | 1 | 0 | — |
| 2011 | EFL Trophy | Bournemouth | Defender | 1 | 90 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |
| 2010 | League One | Brentford | Defender | 11 | 444 | 0 | 0 | 0 | 0 | 0 | — | 1 | 0 | — |
| 2010 | EFL Trophy | Brentford | Defender | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | — |