Counted.co.zaPlay game

What changed

2021 → 2026 local elections

Majorities changed8072 became hung councilsHung councils137of 211No party has a seat majorityMK gains the most seats+7990 → 799 council seats

212 comparable councils · 211 published allocations. Summaries: 213/257 councils. 45 incomplete allocations.

Majorities & seats

Council seats

2021 → 2026 · ward + PR seats

  1. MK2021: 0 ; 2026: 799 seats+799
  2. SACP2021: 0 ; 2026: 263 seats+263
  3. ActionSA2021: 90 ; 2026: 320 seats+230
  4. DA2021: 1 494 ; 2026: 1 719 seats+225
  5. PA2021: 75 ; 2026: 192 seats+117
  6. IFP2021: 544 ; 2026: 488 seats−56
  7. EFF2021: 972 ; 2026: 588 seats−384
  8. ANC2021: 4 455 ; 2026: 3 229 seats−1 226

211 comparable councils · 8 largest changes. Total seats: 8 658 → 8 689.

Council seat changes · 2021 to 2026
Party2021 seats2026 seatsChange (seats)
UMKHONTO WESIZWE PARTY0799799
SOUTH AFRICAN COMMUNIST PARTY0263263
ACTIONSA90320230
DEMOCRATIC ALLIANCE1 4941 719225
PATRIOTIC ALLIANCE75192117
INKATHA FREEDOM PARTY544488-56
ECONOMIC FREEDOM FIGHTERS972588-384
AFRICAN NATIONAL CONGRESS4 4553 229-1 226

211 comparable councils. 8 largest changes shown.

Source data

Where the vote shifted

Ward + municipal PR vote · 119 comparable completed counts

Explore party results

Biggest gains

20212026Change in points
  1. MK0.0% 56.3%
  2. MK0.0% 47.8%
  3. MK0.0% 47.0%
  4. MK0.0% 42.6%
  5. Mkhondo+41.2
    MK0.0% 41.2%
Biggest gains · Ward + municipal PR vote
MunicipalityParty2021 vote share (%)2026 vote share (%)Change (pp)
RichmondUMKHONTO WESIZWE PARTY056,269856,2698
Johannes Phumani PungulaUMKHONTO WESIZWE PARTY047,838447,8384
uMshwathiUMKHONTO WESIZWE PARTY047,028247,0282
TSANTSABANERISE TSANTSABANE COMMUNITIES043,800143,8001
iMpendleUMKHONTO WESIZWE PARTY042,608642,6086
MkhondoUMKHONTO WESIZWE PARTY041,249641,2496

Only comparable completed counts are included.

Source data

Biggest losses

20212026Change in points
  1. Richmond−39.6
    ANC69.8% 30.2%
  2. Mpofana−36.0
    ANC65.7% 29.7%
  3. ANC63.0% 29.5%
  4. iMpendle−31.9
    ANC58.3% 26.4%
  5. UMSOBOMVU−29.3
    UMSOBOMVU RESIDENTS ASSOCIATION29.3% 0.0%
Biggest losses · Ward + municipal PR vote
MunicipalityParty2021 vote share (%)2026 vote share (%)Change (pp)
RichmondAFRICAN NATIONAL CONGRESS69,762630,1513-39,6113
MpofanaAFRICAN NATIONAL CONGRESS65,711129,7151-35,9961
Johannes Phumani PungulaAFRICAN NATIONAL CONGRESS63,041729,5336-33,5081
iMpendleAFRICAN NATIONAL CONGRESS58,29926,3685-31,9305
SIYATHEMBASIYATHEMBA COMMUNITY MOVEMENT39,67168,7552-30,9164
UMSOBOMVUUMSOBOMVU RESIDENTS ASSOCIATION29,290-29,29

Only comparable completed counts are included.

Source data

Paths to a majority

Select a council to build a seat combination.

Most divided councils

Largest party’s share · line marks a majority

  1. OkhahlambaIFP / MK tied · 8 seats each27.6%
  2. DannhauserIFP / MK tied · 7 seats each28.0%
  3. EkurhuleniDA · 66 of 224 seats29.5%
  4. KannalandDA / INDEPENDENT CIVIC ORGANISATION OF SOUTH AFRICA tied · 3 seats each30.0%
  5. LaingsburgActionSA / DA tied · 3 seats each30.0%
  6. Maluti a PhofungANC · 21 of 70 seats30.0%
Most divided councils · Reported seat allocations
CouncilParty / entrySeatsCouncil totalMajority needed
OkhahlambaINKATHA FREEDOM PARTY82915
OkhahlambaUMKHONTO WESIZWE PARTY82915
OkhahlambaAFRICAN NATIONAL CONGRESS52915
OkhahlambaAFRICAN PEOPLE'S MOVEMENT22915
OkhahlambaDEMOCRATIC ALLIANCE22915
OkhahlambaNATIONAL PEOPLES AMBASSADORS22915
OkhahlambaECONOMIC FREEDOM FIGHTERS12915
OkhahlambaVRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS12915
DannhauserINKATHA FREEDOM PARTY72513
DannhauserUMKHONTO WESIZWE PARTY72513
DannhauserAFRICAN NATIONAL CONGRESS52513
DannhauserACTIONSA12513
DannhauserAMANDLA AWETHU MOVEMENT12513
DannhauserDEMOCRATIC ALLIANCE12513
DannhauserECONOMIC FREEDOM FIGHTERS12513
DannhauserMAJUBA PROGRESSIVE MOVEMENT12513
DannhauserSISONKE SOLIDARITY MOVEMENT12513
EkurhuleniDEMOCRATIC ALLIANCE66224113
EkurhuleniAFRICAN NATIONAL CONGRESS59224113
EkurhuleniACTIONSA40224113
EkurhuleniUMKHONTO WESIZWE PARTY15224113
EkurhuleniECONOMIC FREEDOM FIGHTERS14224113
EkurhuleniVRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS11224113
EkurhuleniINKATHA FREEDOM PARTY3224113
EkurhuleniPATRIOTIC ALLIANCE3224113
EkurhuleniAFRICAN TRANSFORMATION MOVEMENT2224113
EkurhuleniRISE MZANSI2224113
EkurhuleniSOUTH AFRICAN COMMUNIST PARTY2224113
EkurhuleniAFRICAN CHRISTIAN DEMOCRATIC PARTY1224113
EkurhuleniAFRICAN INDEPENDENT CONGRESS1224113
EkurhuleniAFRIKA MAYIBUYE MOVEMENT1224113
EkurhuleniBUILD ONE SOUTH AFRICA1224113
EkurhuleniPAN AFRICANIST CONGRESS OF AZANIA1224113
EkurhuleniTHE MOVEMENT FOR SOCIAL JUSTICE1224113
EkurhuleniUNITED AFRICANS TRANSFORMATION1224113
KannalandDEMOCRATIC ALLIANCE3106
KannalandINDEPENDENT CIVIC ORGANISATION OF SOUTH AFRICA3106
KannalandPATRIOTIC ALLIANCE2106
KannalandAFRICAN NATIONAL CONGRESS1106
KannalandKANNALAND INDEPENDENT PARTY1106
LaingsburgACTIONSA3106
LaingsburgDEMOCRATIC ALLIANCE3106
LaingsburgAFRICAN NATIONAL CONGRESS2106
LaingsburgPATRIOTIC ALLIANCE1106
LaingsburgPEOPLE'S MOVEMENT FOR CHANGE1106
Maluti a PhofungAFRICAN NATIONAL CONGRESS217036
Maluti a PhofungAFRICAN CONTENT MOVEMENT157036
Maluti a PhofungDEMOCRATIC ALLIANCE147036
Maluti a PhofungMAPSIXTEEN CIVIC MOVEMENT67036
Maluti a PhofungECONOMIC FREEDOM FIGHTERS37036
Maluti a PhofungAFRICAN TRANSFORMATION MOVEMENT27036
Maluti a PhofungSOUTH AFRICAN COMMUNIST PARTY27036
Maluti a PhofungAFRICAN CONGRESS FOR TRANSFORMATION17036
Maluti a PhofungAFRICAN PEOPLE'S MOVEMENT17036
Maluti a PhofungBAAHI CIVIC MOVEMENT17036
Maluti a PhofungCOMMUNITY FIRST ALLIANCE17036
Maluti a PhofungDIKWANKWETLA PARTY OF SOUTH AFRICA17036
Maluti a PhofungPATRIOTIC ALLIANCE17036
Maluti a PhofungVRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS17036

Source data

Seat combinations show what is possible, not agreed coalitions.

The provincial picture

Councils with and without a seat majority

Sources & methodology

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.

National vote shares & history →Latest announcements →

Give something back

Found Counted useful? Support the South African non-profits holding power to account.

Donations go directly to each organisation.

Share results