Council majorities
Outright majorities gained or lost
- ANC−68
- IFP−4
- MK+3
- DA0
- RISE TSANTSABANE COMMUNITIES+1
212 comparable councils · 211 published allocations. Summaries: 213/257 councils. 45 incomplete allocations.
Outright majorities gained or lost
2021 → 2026 · ward + PR seats
211 comparable councils · 8 largest changes. Total seats: 8 658 → 8 689.
| Party | 2021 seats | 2026 seats | Change (seats) |
|---|---|---|---|
| UMKHONTO WESIZWE PARTY | 0 | 799 | 799 |
| SOUTH AFRICAN COMMUNIST PARTY | 0 | 263 | 263 |
| ACTIONSA | 90 | 320 | 230 |
| DEMOCRATIC ALLIANCE | 1 494 | 1 719 | 225 |
| PATRIOTIC ALLIANCE | 75 | 192 | 117 |
| INKATHA FREEDOM PARTY | 544 | 488 | -56 |
| ECONOMIC FREEDOM FIGHTERS | 972 | 588 | -384 |
| AFRICAN NATIONAL CONGRESS | 4 455 | 3 229 | -1 226 |
211 comparable councils. 8 largest changes shown.
Ward + municipal PR vote · 119 comparable completed counts
| Municipality | Party | 2021 vote share (%) | 2026 vote share (%) | Change (pp) |
|---|---|---|---|---|
| Richmond | UMKHONTO WESIZWE PARTY | 0 | 56,2698 | 56,2698 |
| Johannes Phumani Pungula | UMKHONTO WESIZWE PARTY | 0 | 47,8384 | 47,8384 |
| uMshwathi | UMKHONTO WESIZWE PARTY | 0 | 47,0282 | 47,0282 |
| TSANTSABANE | RISE TSANTSABANE COMMUNITIES | 0 | 43,8001 | 43,8001 |
| iMpendle | UMKHONTO WESIZWE PARTY | 0 | 42,6086 | 42,6086 |
| Mkhondo | UMKHONTO WESIZWE PARTY | 0 | 41,2496 | 41,2496 |
Only comparable completed counts are included.
| Municipality | Party | 2021 vote share (%) | 2026 vote share (%) | Change (pp) |
|---|---|---|---|---|
| Richmond | AFRICAN NATIONAL CONGRESS | 69,7626 | 30,1513 | -39,6113 |
| Mpofana | AFRICAN NATIONAL CONGRESS | 65,7111 | 29,7151 | -35,9961 |
| Johannes Phumani Pungula | AFRICAN NATIONAL CONGRESS | 63,0417 | 29,5336 | -33,5081 |
| iMpendle | AFRICAN NATIONAL CONGRESS | 58,299 | 26,3685 | -31,9305 |
| SIYATHEMBA | SIYATHEMBA COMMUNITY MOVEMENT | 39,6716 | 8,7552 | -30,9164 |
| UMSOBOMVU | UMSOBOMVU RESIDENTS ASSOCIATION | 29,29 | 0 | -29,29 |
Only comparable completed counts are included.
Select a council to build a seat combination.
Largest party’s seats · line marks a majority
Largest party’s share · line marks a majority
| Council | Party / entry | Seats | Council total | Majority needed |
|---|---|---|---|---|
| Okhahlamba | INKATHA FREEDOM PARTY | 8 | 29 | 15 |
| Okhahlamba | UMKHONTO WESIZWE PARTY | 8 | 29 | 15 |
| Okhahlamba | AFRICAN NATIONAL CONGRESS | 5 | 29 | 15 |
| Okhahlamba | AFRICAN PEOPLE'S MOVEMENT | 2 | 29 | 15 |
| Okhahlamba | DEMOCRATIC ALLIANCE | 2 | 29 | 15 |
| Okhahlamba | NATIONAL PEOPLES AMBASSADORS | 2 | 29 | 15 |
| Okhahlamba | ECONOMIC FREEDOM FIGHTERS | 1 | 29 | 15 |
| Okhahlamba | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 | 29 | 15 |
| Dannhauser | INKATHA FREEDOM PARTY | 7 | 25 | 13 |
| Dannhauser | UMKHONTO WESIZWE PARTY | 7 | 25 | 13 |
| Dannhauser | AFRICAN NATIONAL CONGRESS | 5 | 25 | 13 |
| Dannhauser | ACTIONSA | 1 | 25 | 13 |
| Dannhauser | AMANDLA AWETHU MOVEMENT | 1 | 25 | 13 |
| Dannhauser | DEMOCRATIC ALLIANCE | 1 | 25 | 13 |
| Dannhauser | ECONOMIC FREEDOM FIGHTERS | 1 | 25 | 13 |
| Dannhauser | MAJUBA PROGRESSIVE MOVEMENT | 1 | 25 | 13 |
| Dannhauser | SISONKE SOLIDARITY MOVEMENT | 1 | 25 | 13 |
| Ekurhuleni | DEMOCRATIC ALLIANCE | 66 | 224 | 113 |
| Ekurhuleni | AFRICAN NATIONAL CONGRESS | 59 | 224 | 113 |
| Ekurhuleni | ACTIONSA | 40 | 224 | 113 |
| Ekurhuleni | UMKHONTO WESIZWE PARTY | 15 | 224 | 113 |
| Ekurhuleni | ECONOMIC FREEDOM FIGHTERS | 14 | 224 | 113 |
| Ekurhuleni | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 11 | 224 | 113 |
| Ekurhuleni | INKATHA FREEDOM PARTY | 3 | 224 | 113 |
| Ekurhuleni | PATRIOTIC ALLIANCE | 3 | 224 | 113 |
| Ekurhuleni | AFRICAN TRANSFORMATION MOVEMENT | 2 | 224 | 113 |
| Ekurhuleni | RISE MZANSI | 2 | 224 | 113 |
| Ekurhuleni | SOUTH AFRICAN COMMUNIST PARTY | 2 | 224 | 113 |
| Ekurhuleni | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 1 | 224 | 113 |
| Ekurhuleni | AFRICAN INDEPENDENT CONGRESS | 1 | 224 | 113 |
| Ekurhuleni | AFRIKA MAYIBUYE MOVEMENT | 1 | 224 | 113 |
| Ekurhuleni | BUILD ONE SOUTH AFRICA | 1 | 224 | 113 |
| Ekurhuleni | PAN AFRICANIST CONGRESS OF AZANIA | 1 | 224 | 113 |
| Ekurhuleni | THE MOVEMENT FOR SOCIAL JUSTICE | 1 | 224 | 113 |
| Ekurhuleni | UNITED AFRICANS TRANSFORMATION | 1 | 224 | 113 |
| Kannaland | DEMOCRATIC ALLIANCE | 3 | 10 | 6 |
| Kannaland | INDEPENDENT CIVIC ORGANISATION OF SOUTH AFRICA | 3 | 10 | 6 |
| Kannaland | PATRIOTIC ALLIANCE | 2 | 10 | 6 |
| Kannaland | AFRICAN NATIONAL CONGRESS | 1 | 10 | 6 |
| Kannaland | KANNALAND INDEPENDENT PARTY | 1 | 10 | 6 |
| Laingsburg | ACTIONSA | 3 | 10 | 6 |
| Laingsburg | DEMOCRATIC ALLIANCE | 3 | 10 | 6 |
| Laingsburg | AFRICAN NATIONAL CONGRESS | 2 | 10 | 6 |
| Laingsburg | PATRIOTIC ALLIANCE | 1 | 10 | 6 |
| Laingsburg | PEOPLE'S MOVEMENT FOR CHANGE | 1 | 10 | 6 |
| Maluti a Phofung | AFRICAN NATIONAL CONGRESS | 21 | 70 | 36 |
| Maluti a Phofung | AFRICAN CONTENT MOVEMENT | 15 | 70 | 36 |
| Maluti a Phofung | DEMOCRATIC ALLIANCE | 14 | 70 | 36 |
| Maluti a Phofung | MAPSIXTEEN CIVIC MOVEMENT | 6 | 70 | 36 |
| Maluti a Phofung | ECONOMIC FREEDOM FIGHTERS | 3 | 70 | 36 |
| Maluti a Phofung | AFRICAN TRANSFORMATION MOVEMENT | 2 | 70 | 36 |
| Maluti a Phofung | SOUTH AFRICAN COMMUNIST PARTY | 2 | 70 | 36 |
| Maluti a Phofung | AFRICAN CONGRESS FOR TRANSFORMATION | 1 | 70 | 36 |
| Maluti a Phofung | AFRICAN PEOPLE'S MOVEMENT | 1 | 70 | 36 |
| Maluti a Phofung | BAAHI CIVIC MOVEMENT | 1 | 70 | 36 |
| Maluti a Phofung | COMMUNITY FIRST ALLIANCE | 1 | 70 | 36 |
| Maluti a Phofung | DIKWANKWETLA PARTY OF SOUTH AFRICA | 1 | 70 | 36 |
| Maluti a Phofung | PATRIOTIC ALLIANCE | 1 | 70 | 36 |
| Maluti a Phofung | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 | 70 | 36 |
Seat combinations show what is possible, not agreed coalitions.
Councils with and without a seat majority
Feed coverage and seat allocations are separate from the national declaration: missing figures remain missing and estimates remain estimates. Corrections and re-votes may follow. “Reported” refers to the published seat allocation. Majority and seat changes compare the same councils across elections. Hung council counts include all reported allocations. Majorities describe seats, not governing agreements.
Comparisons match published municipal area IDs across elections, using complete party lists for combined ward and PR vote shares. Boundaries may differ. Missing comparisons and unfinished current counts are excluded from the swing rankings. “pp” means percentage points.
Seat changes compare ward + PR seats across the same councils with reported allocations in both elections. Parties are matched by ID; a party absent from a complete allocation has zero seats. Independent seats are combined as a group. Council sizes can change, so gains and losses need not balance. Missing and estimated allocations are excluded from comparisons. Majority changes include majority-to-hung, hung-to-majority and changes of majority party. The closest-to-majority list requires a single largest party; the most divided list includes ties and ranks by seat share. Independent seats count towards council totals but are not treated as one party.
213/257 council summaries available. Local swings, close races and majority-threshold lists show up to six results each. The seat-change chart shows the eight largest net changes. All update as new results arrive.
Found Counted useful? Support the South African non-profits holding power to account.
Independent journalism exposing corruption and abuses of power.
DonateTurning public reports of corruption into investigations and action.
DonateChallenging corruption and the misuse of public money.
DonateDonations go directly to each organisation.