2026 local elections
FF+
Freedom Front Plus
What stands out
89 comparable councilsPhumelela
Free State
JB Marks
North West
Cape Town
Western Cape
JB Marks
North West
Kgetlengrivier
North West
Collins Chabane
Limpopo
The long view
Local elections| Election | Votes | Vote share (%) | Availability |
|---|---|---|---|
| 2 000 | Unavailable | Unavailable | Not separately listed in this source. |
| 2 006 | 186 179 | 0,944 | Reported |
| 2 011 | 120 519 | 0,4512 | Reported |
| 2 016 | 228 929 | 0,7666 | Reported |
| 2 021 | 549 877 | 2,3432 | Reported |
| 2 026 | 890 081 | 2,9886 | Reported |
Gaps mean unavailable data. All elections use the same ballot basis.
Ward + municipal PR vote · Gaps mean unavailable data
Across the provinces
| Province | Vote share (%) | Basis / status |
|---|---|---|
| Eastern Cape | Unavailable | Unavailable |
| Free State | Unavailable | Unavailable |
| Gauteng | Unavailable | Unavailable |
| KwaZulu-Natal | Unavailable | Unavailable |
| Limpopo | Unavailable | Unavailable |
| Mpumalanga | Unavailable | Unavailable |
| North West | Unavailable | Unavailable |
| Northern Cape | Unavailable | Unavailable |
| Western Cape | Unavailable | Unavailable |
Ward + municipal PR vote · * Count in progress
The council picture
211 of 213 local + metro allocations reported · Majority changes across 212 comparable councils, 2021–2026
Coalition possibilities
Ekurhuleni
Mangaung
Seat arithmetic, not confirmed agreements. The marker shows the majority needed.
Past partners
Shared governments · Nov 2021–Feb 2026
Local results
162 councilsNo matching councils.
| Council | Province | 2026 vote share (%) | 2021 vote share (%) | Change (pp) | 2026 seats | 2021 seats |
|---|---|---|---|---|---|---|
| Kgetlengrivier | North West | 14,3486 | 11,6068 | 2,7418 | 2 | 2 |
| Thembelihle | Northern Cape | 13,8715 | 9,3601 | 4,5114 | 2 | 1 |
| Mafube | Free State | 13,6942 | 9,3967 | 4,2975 | 2 | 2 |
| Phumelela | Free State | 12,7515 | 5,5107 | 7,2407 | 2 | 1 |
| Modimolle-Mookgophong | Limpopo | 12,2843 | 10,2847 | 1,9996 | 3 | 3 |
| Cape Agulhas | Western Cape | 11,4044 | Unavailable | Unavailable | 1 | 1 |
| Oudtshoorn | Western Cape | 10,1789 | Unavailable | Unavailable | 3 | 3 |
| Hessequa | Western Cape | 10,003 | 7,7092 | 2,2938 | 2 | 1 |
| Mossel Bay | Western Cape | 9,7805 | Unavailable | Unavailable | 3 | 2 |
| Thabazimbi | Limpopo | 9,5045 | 9,0256 | 0,4789 | 2 | 2 |
| JB Marks | North West | 9,2936 | 13,5442 | -4,2505 | 6 | 9 |
| Mogale City | Gauteng | 9,1752 | Unavailable | Unavailable | 7 | 6 |
| Overstrand | Western Cape | 8,7917 | Unavailable | Unavailable | 3 | 2 |
| Karoo Hoogland | Northern Cape | 8,5519 | 5,1242 | 3,4277 | 1 | 1 |
| Mamusa | North West | 8,225 | 6,5017 | 1,7233 | 1 | 1 |
| Langeberg | Western Cape | 8,1943 | Unavailable | Unavailable | 2 | 3 |
| Lekwa | Mpumalanga | 8,1465 | 9,0495 | -0,9031 | 2 | 3 |
| Ngwathe | Free State | 7,9188 | 6,3807 | 1,5381 | 2 | 3 |
| Letsemeng | Free State | 7,7747 | 5,0863 | 2,6884 | 1 | 1 |
| Midvaal | Gauteng | 7,6538 | Unavailable | Unavailable | 2 | 2 |
| Tshwane | Gauteng | 7,6284 | Unavailable | Unavailable | 17 | 17 |
| Matlosana | North West | 7,6138 | Unavailable | Unavailable | 6 | 7 |
| Metsimaholo | Free State | 7,6005 | Unavailable | Unavailable | 3 | 3 |
| Breede Valley | Western Cape | 7,4301 | Unavailable | Unavailable | 3 | 2 |
| Phokwane | Northern Cape | 7,4198 | 5,7634 | 1,6564 | 1 | 1 |
| George | Western Cape | 7,2453 | Unavailable | Unavailable | 4 | 4 |
| Moqhaka | Free State | 7,223 | Unavailable | Unavailable | 3 | 3 |
| Mohokare | Free State | 7,2122 | 4,395 | 2,8173 | 1 | 1 |
| Bela-Bela | Limpopo | 7,0721 | 7,2407 | -0,1686 | 1 | 1 |
| Nala | Free State | 7,0221 | 6,02 | 1,0021 | 2 | 2 |
| Nketoana | Free State | 6,9767 | 7,8946 | -0,918 | 1 | 2 |
| Swartland | Western Cape | 6,9467 | Unavailable | Unavailable | 2 | 2 |
| Dipaleseng | Mpumalanga | 6,8308 | 7,131 | -0,3003 | 1 | 1 |
| Matzikama | Western Cape | 6,7856 | 7,4649 | -0,6793 | 1 | 1 |
| Hantam | Northern Cape | 6,6868 | 7,268 | -0,5811 | 1 | 1 |
| Govan Mbeki | Mpumalanga | 6,6694 | Unavailable | Unavailable | 4 | 3 |
| Kgatelopele | Northern Cape | 6,5682 | 8,6157 | -2,0476 | 1 | 1 |
| Madibeng | North West | 6,4795 | Unavailable | Unavailable | 6 | 4 |
| Lesedi | Gauteng | 6,3568 | Unavailable | Unavailable | 2 | 3 |
| Steve Tshwete | Mpumalanga | 6,2556 | 5,5047 | 0,7509 | 3 | 3 |
| Lekwa-Teemane | North West | 6,0944 | 6,6099 | -0,5156 | 1 | 1 |
| Mangaung | Free State | 5,9227 | Unavailable | Unavailable | 6 | 5 |
| Saldanha Bay | Western Cape | 5,793 | Unavailable | Unavailable | 2 | 1 |
| Setsoto | Free State | 5,6287 | 4,8444 | 0,7842 | 2 | 2 |
| Tokologo | Free State | 5,627 | 4,1241 | 1,5029 | 1 | 1 |
| Emfuleni | Gauteng | 5,6107 | Unavailable | Unavailable | 5 | 6 |
| Drakenstein | Western Cape | 5,4564 | Unavailable | Unavailable | 4 | 3 |
| Dihlabeng | Free State | 5,4452 | Unavailable | Unavailable | 2 | 2 |
| Bergrivier | Western Cape | 5,4193 | 4,0276 | 1,3917 | 1 | 0 |
| Bitou | Western Cape | 5,272 | Unavailable | Unavailable | 1 | Unavailable |
| eNdumeni | KwaZulu-Natal | 5,2526 | 0 | 5,2526 | 1 | 0 |
| Thaba Chweu | Mpumalanga | 5,2488 | 3,6174 | 1,6314 | 1 | 1 |
| Emalahleni | Mpumalanga | 5,1089 | Unavailable | Unavailable | 4 | 4 |
| Witzenberg | Western Cape | 5,1029 | Unavailable | Unavailable | 1 | 1 |
| Ekurhuleni | Gauteng | 4,949 | Unavailable | Unavailable | 11 | 8 |
| Inxuba Yethemba | Eastern Cape | 4,7355 | 1,0758 | 3,6597 | 1 | 0 |
| Kannaland | Western Cape | 4,7007 | 3,0992 | 1,6015 | 0 | 0 |
| Kopanong | Free State | 4,6363 | 5,1951 | -0,5588 | 1 | 1 |
| Victor Khanye | Mpumalanga | 4,6255 | 4,2505 | 0,375 | 1 | 1 |
| Naledi | North West | 4,566 | 4,5828 | -0,0169 | 1 | 1 |
| Stellenbosch | Western Cape | 4,5515 | Unavailable | Unavailable | 2 | 1 |
| Knysna | Western Cape | 4,4708 | Unavailable | Unavailable | 1 | 0 |
| Merafong City | Gauteng | 4,4373 | Unavailable | Unavailable | 2 | 4 |
| Rand West City | Gauteng | 4,4057 | Unavailable | Unavailable | 3 | 3 |
| Siyancuma | Northern Cape | 4,3752 | 6,2563 | -1,881 | 1 | 1 |
| Kouga | Eastern Cape | 4,3578 | 3,081 | 1,2768 | 1 | 1 |
| Sol Plaatje | Northern Cape | 4,226 | Unavailable | Unavailable | 3 | 3 |
| Swellendam | Western Cape | 4,1892 | 3,1159 | 1,0733 | 1 | 1 |
| Okhahlamba | KwaZulu-Natal | 4,1831 | Unavailable | Unavailable | 1 | 0 |
| Msukaligwa | Mpumalanga | 4,1743 | 5,8989 | -1,7247 | 2 | 2 |
| Masilonyana | Free State | 4,0918 | 5,3615 | -1,2698 | 1 | 1 |
| Theewaterskloof | Western Cape | 4,0485 | Unavailable | Unavailable | 1 | 1 |
| Matjhabeng | Free State | 3,991 | Unavailable | Unavailable | 3 | 2 |
| Renosterberg | Northern Cape | 3,9701 | 3,9742 | -0,004 | 0 | 0 |
| Cederberg | Western Cape | 3,9558 | 3,1551 | 0,8007 | 0 | 1 |
| Kai !Garib | Northern Cape | 3,9203 | 3,0286 | 0,8917 | 1 | 1 |
| City of Mbombela | Mpumalanga | 3,8948 | 3,2524 | 0,6424 | 4 | 3 |
| Tswelopele | Free State | 3,7326 | 3,5048 | 0,2278 | 1 | 1 |
| Emakhazeni | Mpumalanga | 3,4415 | 2,8527 | 0,5888 | 1 | 0 |
| Cape Town | Western Cape | 3,4189 | Unavailable | Unavailable | 8 | 4 |
| Lephalale | Limpopo | 3,3328 | 2,4195 | 0,9133 | 1 | 1 |
| Kou-Kamma | Eastern Cape | 3,2528 | 2,8287 | 0,424 | 0 | 1 |
| Rustenburg | North West | 3,1858 | Unavailable | Unavailable | 3 | 3 |
| Magareng | Northern Cape | 3,0751 | 2,6178 | 0,4573 | 0 | 0 |
| Laingsburg | Western Cape | 2,9945 | 3,8432 | -0,8487 | 0 | 0 |
| Tsantsabane | Northern Cape | 2,9836 | 2,3666 | 0,617 | 0 | 0 |
| Dr. Beyers Naude | Eastern Cape | 2,966 | 3,0189 | -0,0529 | 1 | 1 |
| Ephraim Mogale | Limpopo | 2,9648 | Unavailable | Unavailable | 1 | 1 |
| Mkhondo | Mpumalanga | 2,956 | 3,0698 | -0,1138 | 1 | 1 |
| Tswaing | North West | 2,9098 | 2,9142 | -0,0044 | 1 | 1 |
| Ditsobotla | North West | 2,8791 | Unavailable | Unavailable | 1 | 2 |
| Ramotshere Moiloa | North West | 2,8649 | Unavailable | Unavailable | 1 | 1 |
| Dikgatlong | Northern Cape | 2,8324 | 1,7206 | 1,1118 | 1 | 0 |
| Dr Pixley Ka Isaka Seme | Mpumalanga | 2,8077 | 2,3389 | 0,4689 | 1 | 0 |
| Nama Khoi | Northern Cape | 2,7748 | 1,4612 | 1,3136 | 0 | 1 |
| Elias Motsoaledi | Limpopo | 2,6543 | Unavailable | Unavailable | 2 | 1 |
| Polokwane | Limpopo | 2,6397 | Unavailable | Unavailable | 3 | 2 |
| Ndlambe | Eastern Cape | 2,6149 | 0 | 2,6149 | 1 | 0 |
| Ba-Phalaborwa | Limpopo | 2,6054 | Unavailable | Unavailable | 1 | 1 |
| Ubuntu | Northern Cape | 2,5079 | 3,8244 | -1,3165 | 0 | 1 |
| Nelson Mandela Bay | Eastern Cape | 2,4775 | Unavailable | Unavailable | 3 | 2 |
| Ray Nkonyeni | KwaZulu-Natal | 2,438 | Unavailable | Unavailable | 2 | 1 |
| Dawid Kruiper | Northern Cape | 2,393 | 2,4717 | -0,0787 | 1 | 1 |
| Maquassi Hills | North West | 2,2833 | 3,6145 | -1,3312 | 0 | 1 |
| uPhongolo | KwaZulu-Natal | 2,2772 | Unavailable | Unavailable | 1 | Unavailable |
| Great Kei | Eastern Cape | 2,2651 | 0 | 2,2651 | 0 | 0 |
| Mogalakwena | Limpopo | 2,2618 | Unavailable | Unavailable | 1 | 2 |
| Siyathemba | Northern Cape | 2,2262 | 2,8327 | -0,6065 | 0 | 0 |
| Musina | Limpopo | 2,2152 | 1,1788 | 1,0363 | 1 | 1 |
| Kamiesberg | Northern Cape | 2,2124 | 2,4057 | -0,1932 | 0 | 0 |
| Beaufort West | Western Cape | 2,2094 | 1,3861 | 0,8234 | 0 | 0 |
| Walter Sisulu | Eastern Cape | 2,2026 | 0 | 2,2026 | 1 | 0 |
| Greater Tzaneen | Limpopo | 2,1544 | Unavailable | Unavailable | 2 | 1 |
| KHâI-MA | Northern Cape | 2,119 | 3,3291 | -1,2101 | 0 | 0 |
| Sundays River Valley | Eastern Cape | 2,0519 | 2,2789 | -0,2271 | 0 | 0 |
| Mantsopa | Free State | 1,9792 | 1,2561 | 0,7231 | 1 | 0 |
| Emthanjeni | Northern Cape | 1,956 | 2,4579 | -0,5018 | 0 | 0 |
| Maruleng | Limpopo | 1,9049 | 1,6322 | 0,2727 | 1 | 1 |
| Johannesburg | Gauteng | 1,8325 | Unavailable | Unavailable | 5 | 4 |
| Prince Albert | Western Cape | 1,8149 | 0 | 1,8149 | 0 | 0 |
| AbaQulusi | KwaZulu-Natal | 1,7978 | Unavailable | Unavailable | 1 | 1 |
| Newcastle | KwaZulu-Natal | 1,7498 | Unavailable | Unavailable | 1 | 1 |
| Greater Kokstad | KwaZulu-Natal | 1,7147 | 0 | 1,7147 | 0 | 0 |
| !Kheis | Northern Cape | 1,681 | 3,4285 | -1,7475 | 0 | 0 |
| Umsobomvu | Northern Cape | 1,6439 | 3,6166 | -1,9726 | 0 | 0 |
| Richtersveld | Northern Cape | 1,5886 | 2,2843 | -0,6957 | 0 | 0 |
| Fetakgomo Tubatse | Limpopo | 1,5633 | Unavailable | Unavailable | 1 | 1 |
| Kareeberg | Northern Cape | 1,5332 | 3,3286 | -1,7953 | 0 | 0 |
| uMhlathuze | KwaZulu-Natal | 1,4654 | Unavailable | Unavailable | 1 | 1 |
| Makhado | Limpopo | 1,4097 | Unavailable | Unavailable | 1 | 1 |
| Maluti a Phofung | Free State | 1,3671 | Unavailable | Unavailable | 1 | 1 |
| Buffalo City | Eastern Cape | 1,3018 | Unavailable | Unavailable | 1 | 1 |
| Blouberg | Limpopo | 1,1443 | Unavailable | Unavailable | 1 | 0 |
| Nkomazi | Mpumalanga | 1,1408 | Unavailable | Unavailable | 1 | 1 |
| Blue Crane Route | Eastern Cape | 1,0856 | 0 | 1,0856 | 0 | 0 |
| uMngeni | KwaZulu-Natal | 1,0495 | 0 | 1,0495 | 0 | 0 |
| Senqu | Eastern Cape | 0,9413 | 1,0954 | -0,1542 | 0 | 0 |
| Mafikeng | North West | 0,9218 | Unavailable | Unavailable | 1 | 1 |
| Ga-Segonyana | Northern Cape | 0,902 | 1,0428 | -0,1407 | 0 | 0 |
| Gamagara | Northern Cape | 0,8924 | 1,8987 | -1,0063 | 0 | 0 |
| Thembisile Hani | Mpumalanga | 0,8643 | Unavailable | Unavailable | 1 | Unavailable |
| eThekwini | KwaZulu-Natal | 0,8566 | Unavailable | Unavailable | 2 | Unavailable |
| Dr JS Moroka | Mpumalanga | 0,7289 | Unavailable | Unavailable | 1 | Unavailable |
| Makana | Eastern Cape | 0,6956 | 0,735 | -0,0394 | 0 | 0 |
| KwaDukuza | KwaZulu-Natal | 0,632 | Unavailable | Unavailable | 0 | Unavailable |
| Dannhauser | KwaZulu-Natal | 0,6308 | Unavailable | Unavailable | 0 | Unavailable |
| Joe Morolong | Northern Cape | 0,6276 | 0,9013 | -0,2737 | 0 | 0 |
| Chief Albert Luthuli | Mpumalanga | 0,6175 | 0,6619 | -0,0444 | 0 | 0 |
| uMuziwabantu | KwaZulu-Natal | 0,6156 | 0 | 0,6156 | 0 | 0 |
| Msunduzi | KwaZulu-Natal | 0,6015 | Unavailable | Unavailable | 1 | Unavailable |
| Molemole | Limpopo | 0,5824 | Unavailable | Unavailable | 0 | Unavailable |
| Moretele | North West | 0,5675 | Unavailable | Unavailable | 0 | Unavailable |
| Raymond Mhlaba | Eastern Cape | 0,5408 | 0,416 | 0,1248 | 0 | 0 |
| uMlalazi | KwaZulu-Natal | 0,5221 | Unavailable | Unavailable | 0 | Unavailable |
| Greater Letaba | Limpopo | 0,4677 | Unavailable | Unavailable | 0 | 0 |
| Greater Taung | North West | 0,3772 | Unavailable | Unavailable | 0 | Unavailable |
| uMzumbe | KwaZulu-Natal | 0,3593 | Unavailable | Unavailable | 0 | Unavailable |
| Makhuduthamaga | Limpopo | 0,2948 | Unavailable | Unavailable | 0 | Unavailable |
| Bushbuckridge | Mpumalanga | 0,2117 | Unavailable | Unavailable | 0 | Unavailable |
| Collins Chabane | Limpopo | 0,1989 | Unavailable | Unavailable | 0 | Unavailable |
| Kagisano-Molopo | North West | 0 | 1,1041 | -1,1041 | 0 | 0 |
| Ratlou | North West | 0 | 0,8687 | -0,8687 | 0 | 0 |
Ward + municipal PR ballots. Missing comparisons remain unavailable; changes use comparable completed counts.
Ward + municipal PR vote · Change in percentage points since 2021 · Missing comparisons shown as —