Counted.co.zaPlay game

2026 local elections · South Africa

Latest updates

Majority or hung council?

More than half the seats makes an outright majority.

Outright majority

One party holds more than half the council seats.

Hung council

No party has a majority. Parties may work together in a coalition or support agreement.

Seats pending

The allocation is incomplete. Estimates can change as more results arrive.

Illustration: a 10-seat council needs 6 seats for a majority. Exactly half is not enough. Election results alone do not tell us who governs now.

Understanding the results

Government guide to coalitions

All updates

Earlier updates

Clear filters

7 November 2026

  1. Correction SAST ↗

    Thabazimbi Limpopo

    Correction: ANC wins Ward 9

    NKELE LETTAH MALULEKA. 175 votes ahead.

    View the earlier announcement →

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  2. Count complete SAST ↗

    Thabazimbi Limpopo

    Counting complete in Thabazimbi

    All 58 voting districts have reported.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  3. Ward result SAST ↗

    Emfuleni Gauteng

    DA wins Ward 24

    HLANGANI HEZEKIA SHABALALA. 465 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  4. Correction SAST ↗

    Thabazimbi Limpopo

    Correction: Hung council in Thabazimbi

    12 seats needed for a majority.

    View the 23-seat allocation
    • ANC8 seats
    • DA4 seats
    • SACP3 seats
    • EFF2 seats
    • FF+2 seats
    • LABOUR PARTY OF SOUTH AFRICA1 seats
    • SUCCESS AFRICAN MOVEMENT1 seats
    • THABAZIMBI RESIDENTS ASSOCIATION1 seats
    • UNITED RESIDENT'S PARTY1 seats

    View the earlier announcement →

    Build a majority Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  5. Ward result SAST ↗

    Rustenburg North West

    ANC wins Ward 40

    JOSEPH QOBEKA. 472 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  6. Ward result SAST ↗

    eThekwini KwaZulu-Natal

    MK wins Ward 59

    ZIBUYILE WINNFRED CYNTHIA GUMEDE. 1 980 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  7. Ward result SAST ↗

    eThekwini KwaZulu-Natal

    ANC wins Ward 9

    SIYABONGA NALA. 65 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  8. Ward result SAST ↗

    City of Johannesburg Gauteng

    ActionSA wins Ward 27

    ZANDILE DABULA. 120 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  9. Correction SAST ↗

    City of Tshwane Gauteng

    Correction: Counting complete in City of Tshwane

    All 796 voting districts have reported.

    View the earlier announcement →

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  10. Ward result SAST ↗

    eThekwini KwaZulu-Natal

    MK wins Ward 8

    ALSON SIFISO BHENGU. 221 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  11. Correction SAST ↗

    City of Tshwane Gauteng

    Correction: DA wins Ward 57

    JOHANNES LODEWICUS PAGE. 1 599 votes ahead.

    View the earlier announcement →

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  12. Correction SAST ↗

    City of Tshwane Gauteng

    Correction: Hung council in City of Tshwane

    108 seats needed for a majority.

    View the 214-seat allocation
    • DA74 seats
    • ActionSA48 seats
    • ANC44 seats
    • FF+17 seats
    • EFF13 seats
    • MK4 seats
    • SACP3 seats
    • PA2 seats
    • ACDP1 seats
    • AFRICAN INDEPENDENT CONGRESS1 seats
    • AFRICAN TRANSFORMATION MOVEMENT1 seats
    • AFRIKA MAYIBUYE MOVEMENT1 seats
    • BUILD ONE SOUTH AFRICA1 seats
    • RISE MZANSI1 seats
    • SECURITY PERSONNEL PARTY OF SOUTH AFRICA1 seats
    • SERVICE DELIVERY PARTY1 seats
    • UNITED AFRICANS TRANSFORMATION1 seats

    View the earlier announcement →

    Build a majority Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  13. Correction SAST ↗

    Thabazimbi Limpopo

    Ward 9 result under revision

    Read the correction →

    The latest IEC figures no longer support the previously reported ward winner.

    View the earlier announcement →Previously: ANC wins Ward 9.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  14. Correction SAST ↗

    Thabazimbi Limpopo

    Thabazimbi seat allocation under revision

    Read the correction →

    The latest IEC figures no longer support the previously reported council allocation.

    View the earlier announcement →Previously: Hung council in Thabazimbi.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  15. Ward result SAST ↗

    eThekwini KwaZulu-Natal

    DA wins Ward 73

    DANIEL LOGAN MEA. 5 705 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  16. Ward result SAST ↗

    eThekwini KwaZulu-Natal

    MK wins Ward 46

    SAKHILE EDWIN SOKHELA. 2 208 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  17. Ward result SAST ↗

    Emfuleni Gauteng

    DA wins Ward 7

    SENZO TSOOANE. 630 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  18. Count complete SAST ↗

    Ekurhuleni Gauteng

    Counting complete in Ekurhuleni

    All 653 voting districts have reported.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  19. Ward result SAST ↗

    Rustenburg North West

    ANC wins Ward 21

    DAVID THABANG RAMPOU. 1 312 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  20. Ward result SAST ↗

    Ekurhuleni Gauteng

    ANC wins Ward 63

    UNATHI QHAYIYA KUWANE. 929 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  21. Council outcome SAST ↗

    Ekurhuleni Gauteng

    Hung council in Ekurhuleni

    113 seats needed for a majority.

    View the 224-seat allocation
    • DA66 seats
    • ANC59 seats
    • ActionSA40 seats
    • MK15 seats
    • EFF14 seats
    • FF+11 seats
    • IFP3 seats
    • PA3 seats
    • AFRICAN TRANSFORMATION MOVEMENT2 seats
    • RISE MZANSI2 seats
    • SACP2 seats
    • ACDP1 seats
    • AFRICAN INDEPENDENT CONGRESS1 seats
    • AFRIKA MAYIBUYE MOVEMENT1 seats
    • BUILD ONE SOUTH AFRICA1 seats
    • PAC1 seats
    • THE MOVEMENT FOR SOCIAL JUSTICE1 seats
    • UNITED AFRICANS TRANSFORMATION1 seats
    Build a majority Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  22. Count complete SAST ↗

    Msunduzi KwaZulu-Natal

    Counting complete in Msunduzi

    Read the correction →

    All 240 voting districts have reported.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  23. Ward result SAST ↗

    City of Johannesburg Gauteng

    ANC wins Ward 131

    MAKHOSAZANA CYNTHIA NDLELA. 348 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  24. Correction SAST ↗

    City of Johannesburg Gauteng

    Correction: ANC wins Ward 26

    SITHEMBISO MASHININI. 725 votes ahead.

    View the earlier announcement →

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  25. Council outcome SAST ↗

    Maluti a Phofung Free State

    Hung council in Maluti a Phofung

    36 seats needed for a majority.

    View the 70-seat allocation
    • ANC21 seats
    • AFRICAN CONTENT MOVEMENT15 seats
    • DA14 seats
    • MAPSIXTEEN CIVIC MOVEMENT6 seats
    • EFF3 seats
    • AFRICAN TRANSFORMATION MOVEMENT2 seats
    • SACP2 seats
    • AFRICAN CONGRESS FOR TRANSFORMATION1 seats
    • AFRICAN PEOPLE'S MOVEMENT1 seats
    • BAAHI CIVIC MOVEMENT1 seats
    • COMMUNITY FIRST ALLIANCE1 seats
    • DIKWANKWETLA PARTY OF SOUTH AFRICA1 seats
    • PA1 seats
    • FF+1 seats
    Build a majority Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  26. Ward result SAST ↗

    Msunduzi KwaZulu-Natal

    ENRIQUE WARREN KRUGER wins Ward 34

    97 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  27. Ward result SAST ↗

    Msunduzi KwaZulu-Natal

    MK wins Ward 24

    BONGIWE JUDITH MCHUNU. 158 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  28. Council outcome SAST ↗

    Msunduzi KwaZulu-Natal

    Hung council in Msunduzi

    Read the correction →

    41 seats needed for a majority.

    View the 81-seat allocation
    • MK31 seats
    • ANC17 seats
    • DA17 seats
    • IFP7 seats
    • INDEPENDENT COUNCILLORS3 seats
    • ActionSA1 seats
    • AFRIKA MAYIBUYE MOVEMENT1 seats
    • EFF1 seats
    • Independent candidates (combined)1 seats
    • SACP1 seats
    • FF+1 seats
    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  29. Ward result SAST ↗

    Ekurhuleni Gauteng

    ANC wins Ward 62

    SITHEMBILE RUTH SIBEKO. 510 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

  30. Ward result SAST ↗

    Msunduzi KwaZulu-Natal

    DA wins Ward 35

    GOODNESS NOMPUMELELO KHUMALO. 38 votes ahead.

    View latest results Saved update
    Source & timing
    IEC report
    Observed by Counted
    Published here

    This is the snapshot recorded at that time, not a certified final allocation. View the latest results and any corrections. These timestamps do not identify when the last vote was counted.

Earlier updates ↓

Back to latest updates ↑

About these updates

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. This feed records saved observations, not certified final snapshots. Follow corrections and latest results.

Give something back

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

Donations go directly to each organisation.

Share results