# | Stage name | Distance | Surface | Weather | Tyre/setup choice | Set tyre |
Leg 1 | 80.6 km | |
1 | Ermelo City 1 (Narva Kreenholmi Rahvasprint 22) | 3.3 km | Dry (New) | Evening LightFog HeavyCloud | yes / yes | Gravel Dry |
2 | Overaal 1 (Kinamba Yala) | 13.7 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
3 | Ngwempisi 1 (Greenhills) | 6.0 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
4 | Piet Relief 1 (Elmenteita) | 3.6 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
| Service Park - 15 minutes - 3 Proficient mechanic |
5 | Syde 1 (El Cubilete) | 13.7 km | Dry (New) | Morning Crisp Clear | no / yes | Keep previous |
6 | Mangcongco 1 (Mineshaft II) | 8.2 km | Dry (New) | Noon Crisp Clear | no / no | Keep previous |
| Road side service - 5 minutes |
7 | Lithole A (Antaramanana II) | 14.5 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
8 | Westoe 1 (East-West II) | 9.6 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
| Road side service - 5 minutes |
9 | Sheepmoor (Ubunapa Kabula) | 6.2 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
10 | Golfview Mine (TMF A 2021) | 1.9 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
Leg 2 | 137.3 km | |
| Service Park - 45 minutes - 4 Competent mechanic |
11 | Ermelo City 2 (Narva Kreenholmi Rahvasprint 22) | 3.3 km | Dry (Normal) | Evening LightFog HeavyCloud | yes / yes | Gravel Dry |
12 | Overaal 2 (Kinamba Yala) | 13.7 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
13 | Ngwempisi 2 (Greenhills) | 6.0 km | Dry (Worn) | Noon Crisp Clear | no / no | Keep previous |
14 | Piet Relief 2 (Elmenteita) | 3.6 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
| Service Park - 15 minutes - 3 Proficient mechanic |
15 | Syde 2 (El Cubilete) | 13.7 km | Dry (New) | Morning Crisp Clear | no / yes | Keep previous |
16 | Mangcongco 2 (Mineshaft II) | 8.2 km | Dry (Normal) | Noon Crisp PartCloud | no / no | Keep previous |
17 | Bhunya (Diamond Creek) | 7.1 km | Dry (New) | Noon NoRain LightCloud | no / no | Keep previous |
| Road side service - 5 minutes |
18 | Mhlambanyatsi - Malkerns (Hualapai Nation) | 8.6 km | Dry (Normal) | Evening NoRain LightCloud | no / no | Keep previous |
19 | Mdzimba Mpi (Fraizer Wells II) | 5.1 km | Wet (Normal) | Morning HeavyRain HeavyCloud | no / no | Keep previous |
| Service Park - 30 minutes - 3 Competent mechanic |
20 | Bhunya Reverse (Diamond Creek II) | 6.8 km | Wet (Worn) | Evening HeavyRain HeavyCloud | yes / yes | Gravel Dry |
| Road side service - 2 minutes |
21 | Lithole B (Miadamanjaka) | 11.2 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
22 | Giants Foot 1 (Karagita Ruma) | 4.4 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
23 | Warburton 1 (Ulu Karagita) | 8.6 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
| Road side service - 5 minutes |
24 | Lothair 1 (NewBobs) | 10.1 km | Dry (Normal) | Evening Crisp Clear | no / no | Keep previous |
25 | Chrissiesmeer 1 (Sleeping Warrior 2019) | 27.0 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
Leg 3 | 115.0 km | |
| Service Park - 45 minutes - 4 Competent mechanic |
26 | Ermelo City 3 (Narva Kreenholmi Rahvasprint 22) | 3.3 km | Dry (Worn) | Evening LightFog HeavyCloud | yes / yes | Gravel Dry |
27 | Sheepmoor Reverse (Ubunapa Kabula II) | 6.1 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
| Road side service - 3 minutes |
28 | Westoe Reverse (East-West) | 9.5 km | Dry (Normal) | Evening Crisp Clear | no / no | Keep previous |
29 | Syde 3 (El Cubilete) | 13.7 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
30 | Mangcongco 3 (Mineshaft II) | 8.2 km | Dry (Worn) | Noon Crisp Clear | no / no | Keep previous |
| Road side service - 5 minutes |
31 | Lithole A (Antaramanana II) | 14.5 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
32 | Westoe 2 (East-West II) | 9.6 km | Dry (Worn) | Morning Crisp Clear | no / no | Keep previous |
| Road side service - 5 minutes |
33 | Giants Foot 2 (Karagita Ruma) | 4.4 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
34 | Warburton 2 (Ulu Karagita) | 8.6 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |
35 | Lothair 2 (NewBobs) | 10.1 km | Dry (Worn) | Evening Crisp Clear | no / no | Keep previous |
| Road side service - 2 minutes |
36 | Chrissiesmeer 2 (Sleeping Warrior 2019) | 27.0 km | Dry (New) | Morning Crisp Clear | no / no | Keep previous |