| Season | League | Team | A | G | Assists | Y/YR/R | MP |
|---|---|---|---|---|---|---|---|
| 2020/2021 | FA Cup |
Carlisle United
|
1 | 0 | 0 | 1/0/0 | 78 |
| 2020/2021 | EFL Trophy |
Carlisle United
|
1 | 0 | 0 | 0/0/0 | 44 |
| 2020/2021 | League Two |
Carlisle United
|
17 | 0 | 2 | 1/0/0 | 675 |
| 2020/2021 | Carabao Cup |
Carlisle United
|
1 | 0 | 0 | 0/0/0 | 45 |
| 2019/2020 | Premier League |
SuperSport United
|
22 | 2 | 0 | 5/0/0 | 1972 |
| 2019/2020 | MTN8 Cup |
SuperSport United
|
4 | 0 | 0 | 1/0/0 | 360 |
| 2019/2020 | Nedbank Cup |
SuperSport United
|
1 | 0 | 0 | 0/0/0 | 90 |
| 2019 | League Cup |
SuperSport United
|
2 | 0 | 0 | 1/0/0 | 180 |
| 2018/2019 | MTN8 Cup |
SuperSport United
|
3 | 1 | 0 | 0/0/0 | 300 |
| 2018/2019 | Premier League |
SuperSport United
|
13 | 0 | 0 | 4/1/0 | 1038 |
| 2018/2019 | Nedbank Cup |
SuperSport United
|
1 | 0 | 0 | 0/0/0 | 90 |
| 2018 | League Cup |
SuperSport United
|
8 | 0 | 0 | 3/0/0 | 641 |
| 2017/2018 | MTN8 Cup |
SuperSport United
|
2 | 0 | 0 | 3/0/0 | 180 |
| 2017/2018 | Premier League |
SuperSport United
|
27 | 1 | 1 | 7/1/0 | 2414 |
| 2017 | CAF Confederations Cup |
SuperSport United
|
8 | 0 | 1 | 3/0/0 | 720 |
| 2016/2017 | Premier League |
SuperSport United
|
27 | 1 | 0 | 8/0/0 | 2430 |
| 2016/2017 | Nedbank Cup |
SuperSport United
|
1 | 0 | 0 | 0/0/0 | 90 |
| 2015/2016 | Premier League |
SuperSport United
|
24 | 1 | 0 | 9/1/0 | 0 |
| 2014/2015 | League One |
Doncaster Rovers
|
34 | 2 | 2 | 6/0/0 | 2791 |
| 2014/2015 | FA Cup |
Doncaster Rovers
|
2 | 0 | 0 | 0/0/0 | 0 |
| 2014/2015 | Carabao Cup |
Doncaster Rovers
|
3 | 0 | 1 | 0/0/0 | 0 |
| 2013/2014 | Carabao Cup |
Doncaster Rovers
|
2 | 0 | 0 | 0/0/0 | 0 |
| 2013/2014 | Championship |
Doncaster Rovers
|
32 | 1 | 0 | 5/1/0 | 2184 |
| 2012/2013 | FA Cup |
Oldham Athletic
|
5 | 0 | 0 | 1/0/0 | 0 |
| 2012/2013 | League One |
Doncaster Rovers
|
8 | 0 | 0 | 1/0/0 | 568 |
| 2012/2013 | League One |
Oldham Athletic
|
28 | 2 | 0 | 6/0/0 | 2214 |
| 2011/2012 | League One |
Oldham Athletic
|
23 | 1 | 0 | 4/0/0 | 1919 |
| 2011/2012 | FA Cup |
Oldham Athletic
|
3 | 1 | 0 | 1/0/0 | 0 |
| 2010/2011 | League One |
Oldham Athletic
|
42 | 5 | 0 | 12/0/0 | 3673 |
| 2009/2010 | League One |
Oldham Athletic
|
38 | 0 | 0 | 10/0/0 | 2846 |
| 2008/2009 | League Two |
Bradford City
|
31 | 4 | 0 | 5/0/0 | 0 |
| 2007/2008 | Premiership |
Rangers
|
1 | 0 | 0 | 0/0/0 | 38 |
| Total: | 415 | 22 | 7 | 97/4/0 | 27580 |
| Season | League | Team | A | G | Assists | Y/YR/R | MP |
|---|---|---|---|---|---|---|---|
| 2021 | Africa Cup of Nations Qualifications |
South Africa
|
1 | 0 | 1 | 0/0/0 | 90 |
| 2019 | Friendly International |
South Africa
|
2 | 1 | 0 | 1/0/0 | 134 |
| 2019 | Africa Cup of Nations Qualifications |
South Africa
|
2 | 0 | 0 | 0/0/0 | 114 |
| 2019 | Africa Cup of Nations |
South Africa
|
3 | 0 | 0 | 0/0/0 | 270 |
| 2018 | World Cup Qualification Africa |
South Africa
|
7 | 1 | 0 | 4/0/0 | 572 |
| 2018 | Friendly International |
South Africa
|
2 | 0 | 0 | 0/0/0 | 114 |
| 2017 | Friendly International |
South Africa
|
1 | 0 | 0 | 0/0/0 | 90 |
| 2016 | Friendly International |
South Africa
|
2 | 0 | 0 | 1/0/0 | 180 |
| 2015 | Africa Cup of Nations |
South Africa
|
3 | 0 | 0 | 2/0/0 | 0 |
| 2014 | World Cup Qualification Africa |
South Africa
|
4 | 1 | 0 | 0/0/0 | 0 |
| 2013 | Africa Cup of Nations |
South Africa
|
3 | 0 | 0 | 0/0/0 | 270 |
| 2013 | Friendly International |
South Africa
|
6 | 0 | 0 | 1/0/0 | 0 |
| 2012 | Friendly International |
South Africa
|
8 | 0 | 0 | 1/0/0 | 0 |
| Total: | 44 | 3 | 1 | 10/0/0 | 1834 |
| From | To | Date | Amount |
|---|---|---|---|
Rylands
|
Altrincham
|
28/01/2022 | Free |
Altrincham
|
Carlisle United
|
25/08/2021 | Free |
Carlisle United
|
SuperSport United
|
28/08/2020 | N/a |
Doncaster Rovers
|
Oldham Athletic
|
14/03/2013 | Loan |
Bradford City
|
Rangers
|
01/08/2008 | Loan |