- Height
- 181 cm
- Shirt
- 24
- Age
- 28
- Country
- South Africa
- Market value
- €524.7k
Premiership · 2025–2026
17Apps
16Starts
1367Minutes
0Goals
0Assists
8Clean sheets
15Tackles
7.1Rating
Player profile
CB
Per-90 percentiles against centre-backs in Premiership. 50 = average.
Shooting
| Stat | Total | Per 90 | Percentile |
| Goals |
0 |
0.00 |
0
|
| xG |
0.56 |
0.04 |
62
|
| xGOT |
0.28 |
0.02 |
62
|
| xG excl. penalty |
0.56 |
0.04 |
65
|
| Shots |
5 |
0.33 |
49
|
| Shots on target |
1 |
0.07 |
47
|
| Headed shots |
4 |
0.26 |
70
|
Passing
| Stat | Total | Per 90 | Percentile |
| Assists |
0 |
0.00 |
0
|
| xA |
0.38 |
0.03 |
69
|
| Accurate passes |
1243 |
81.8 |
100
|
| Pass accuracy |
93.7% |
— |
95
|
| Accurate long balls |
88 |
5.79 |
92
|
| Long ball accuracy |
71.0% |
— |
97
|
| Chances created |
3 |
0.20 |
46
|
| Successful crosses |
1 |
0.07 |
73
|
| Cross accuracy |
20.0% |
— |
74
|
Possession
| Stat | Total | Per 90 | Percentile |
| Dribbles |
1 |
0.07 |
23
|
| Dribbles success rate |
100.0% |
— |
100
|
| Duels won |
59 |
3.88 |
43
|
| Duels won % |
61.5% |
— |
64
|
| Aerials won |
24 |
1.58 |
34
|
| Aerials won % |
55.8% |
— |
53
|
| Touches |
1512 |
99.5 |
100
|
| Touches in opposition box |
10 |
0.66 |
54
|
| Dispossessed |
6 |
0.40 |
3
|
| Fouls won |
19 |
1.25 |
95
|
Defending
| Stat | Total | Per 90 | Percentile |
| Defensive actions |
87 |
5.73 |
5
|
| Tackles |
15 |
0.99 |
31
|
| Interceptions |
11 |
0.72 |
23
|
| Blocked scoring attempt |
8 |
0.53 |
50
|
| Fouls committed |
8 |
0.53 |
77
|
| Recoveries |
55 |
3.62 |
77
|
| Dribbled past |
4 |
0.26 |
55
|
| Clearances |
53 |
3.49 |
10
|
| Clean sheets |
8 |
0.53 |
90
|
| Goals conceded while on pitch |
8 |
0.53 |
93
|
| xG against while on pitch |
11.62 |
0.76 |
86
|
Discipline
| Stat | Total | Per 90 | Percentile |
| Yellow cards |
3 |
0.20 |
32
|
| Red cards |
0 |
0.00 |
100
|
Percentiles are per 90 minutes, against players in the same position in Premiership.
| Season | Team | Apps | G | A | Rating |
| ▸ 2025–2026 |
Mamelodi Sundowns FC |
33 |
0 |
0 |
7.0 |
|
South Africa 8 Cup |
3 |
0 |
0 |
7.0 |
|
Premier Soccer League |
17 |
0 |
0 |
7.1 |
|
CAF Champions League |
9 |
0 |
0 |
6.9 |
|
League Cup |
1 |
0 |
0 |
— |
|
FIFA Club World Cup |
3 |
0 |
0 |
6.2 |
| ▸ 2024–2025 |
Mamelodi Sundowns FC |
4 |
0 |
0 |
7.1 |
|
Premier Soccer League |
2 |
0 |
0 |
7.1 |
|
Nedbank Cup |
2 |
0 |
0 |
— |
| ▸ 2024–2025 |
Cape Town City FC |
15 |
0 |
0 |
7.1 |
|
South Africa 8 Cup |
3 |
0 |
0 |
— |
|
Premier Soccer League |
10 |
0 |
0 |
7.1 |
|
League Cup |
2 |
0 |
0 |
— |
| ▸ 2023–2024 |
Cape Town City FC |
31 |
0 |
2 |
7.2 |
|
South Africa 8 Cup |
1 |
0 |
0 |
— |
|
Premier Soccer League |
28 |
0 |
2 |
7.2 |
|
Nedbank Cup |
1 |
0 |
0 |
— |
|
League Cup |
1 |
0 |
0 |
— |
| ▸ 2022–2023 |
Cape Town City FC |
28 |
0 |
1 |
7.1 |
|
South Africa 8 Cup |
1 |
0 |
0 |
— |
|
CAF Confed Cup |
2 |
0 |
0 |
— |
|
Premier Soccer League |
22 |
0 |
1 |
7.1 |
|
Nedbank Cup |
1 |
0 |
0 |
— |
|
CAF Champions League |
2 |
0 |
0 |
— |
| ▸ 2021–2022 |
Cape Town City FC |
20 |
0 |
0 |
— |
|
South Africa 8 Cup |
2 |
0 |
0 |
— |
|
Premier Soccer League |
17 |
0 |
0 |
— |
|
Nedbank Cup |
1 |
0 |
0 |
— |
| ▸ 2020–2021 |
Cape Town City FC |
18 |
0 |
0 |
— |
|
Premier Soccer League |
16 |
0 |
0 |
— |
|
Nedbank Cup |
2 |
0 |
0 |
— |
| ▸ 2019–2020 |
Cape Town City FC |
11 |
1 |
0 |
— |
|
South Africa 8 Cup |
1 |
0 |
0 |
— |
|
Premier Soccer League |
9 |
1 |
0 |
— |
|
Nedbank Cup |
1 |
0 |
0 |
— |
| ▸ 2018–2019 |
Cape Town City FC |
21 |
1 |
0 |
— |
|
South Africa 8 Cup |
2 |
1 |
0 |
— |
|
Premier Soccer League |
15 |
0 |
0 |
— |
|
Nedbank Cup |
3 |
0 |
0 |
— |
|
League Cup |
1 |
0 |
0 |
— |
| ▸ 2017–2018 |
AC Ajaccio B |
18 |
0 |
0 |
— |
|
National 3 |
18 |
0 |
0 |
— |
Mamelodi Sundowns FC
| Competition | Won | Runner-up |
| South Africa 8 Cup ×1 |
2026/2027 |
— |
| CAF Champions League ×1 |
2025/2026 |
1 |
| Premier Soccer League ×1 |
2024/2025 |
1 |
Cape Town City FC
| Competition | Won | Runner-up |
| South Africa 8 Cup ×1 |
2018/2019 |
1 |