2026 · Metropolitan council
Buffalo City
No party has a majority
Council seats
| Party / entry | Seats | Share of seats (%) |
|---|---|---|
| AFRICAN NATIONAL CONGRESS | 42 | 42 |
| UNITED DEMOCRATIC MOVEMENT | 19 | 19 |
| DEMOCRATIC ALLIANCE | 17 | 17 |
| ECONOMIC FREEDOM FIGHTERS | 7 | 7 |
| SOUTH AFRICAN COMMUNIST PARTY | 5 | 5 |
| ACTIONSA | 2 | 2 |
| AFRICAN TRANSFORMATION MOVEMENT | 2 | 2 |
| PATRIOTIC ALLIANCE | 2 | 2 |
| AFRICAN INDEPENDENT CONGRESS | 1 | 1 |
| PAN AFRICANIST CONGRESS OF AZANIA | 1 | 1 |
| UMKHONTO WESIZWE PARTY | 1 | 1 |
| VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 | 1 |
| AFRICAN CHRISTIAN DEMOCRATIC PARTY | 0 | 0 |
| AFRICAN CONGRESS FOR TRANSFORMATION | 0 | 0 |
| AFRICAN HEART CONGRESS | 0 | 0 |
| AFRICAN MOVEMENT CONGRESS | 0 | 0 |
| AFRICAN PEOPLE'S CONVENTION | 0 | 0 |
| AFRICAN UNEMPLOYED CONGRESS | 0 | 0 |
| AFRIKA MAYIBUYE MOVEMENT | 0 | 0 |
| AL JAMA-AH | 0 | 0 |
| ARUSHA ECONOMIC COALITION | 0 | 0 |
| CONGRESS OF THE PEOPLE | 0 | 0 |
| INDEPENDENTS | 0 | 0 |
| INKATHA FREEDOM PARTY | 0 | 0 |
| ONE LOVE ALLIANCE | 0 | 0 |
| PROGRESSIVE COMMUNITY MOVEMENT | 0 | 0 |
| RISE MZANSI | 0 | 0 |
| SERVICE DELIVERY PARTY | 0 | 0 |
| SOCIAL DEMOCRATIC MOVEMENT | 0 | 0 |
| THINA BANTU MOVEMENT | 0 | 0 |
100 seats; 51 needed for a majority.
Municipal PR votes
Municipal PR votes
Other: show remaining parties: hide remaining parties10.8%26 928 votes
| Party / entry | Candidate | Votes | Vote share (%) |
|---|---|---|---|
| AFRICAN NATIONAL CONGRESS | — | 103 657 | 41,6862 |
| UNITED DEMOCRATIC MOVEMENT | — | 50 818 | 20,4367 |
| DEMOCRATIC ALLIANCE | — | 40 907 | 16,451 |
| ECONOMIC FREEDOM FIGHTERS | — | 16 082 | 6,4675 |
| SOUTH AFRICAN COMMUNIST PARTY | — | 10 268 | 4,1293 |
| AFRICAN TRANSFORMATION MOVEMENT | — | 4 795 | 1,9283 |
| PATRIOTIC ALLIANCE | — | 4 124 | 1,6585 |
| ACTIONSA | — | 3 742 | 1,5049 |
| VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | — | 3 333 | 1,3404 |
| UMKHONTO WESIZWE PARTY | — | 1 676 | 0,674 |
| PAN AFRICANIST CONGRESS OF AZANIA | — | 1 502 | 0,604 |
| AFRICAN INDEPENDENT CONGRESS | — | 1 244 | 0,5003 |
| AFRICAN CHRISTIAN DEMOCRATIC PARTY | — | 1 009 | 0,4058 |
| THINA BANTU MOVEMENT | — | 1 002 | 0,403 |
| RISE MZANSI | — | 847 | 0,3406 |
| SOCIAL DEMOCRATIC MOVEMENT | — | 660 | 0,2654 |
| AFRICAN HEART CONGRESS | — | 647 | 0,2602 |
| AL JAMA-AH | — | 377 | 0,1516 |
| INKATHA FREEDOM PARTY | — | 287 | 0,1154 |
| AFRICAN UNEMPLOYED CONGRESS | — | 276 | 0,111 |
| AFRICAN PEOPLE'S CONVENTION | — | 251 | 0,1009 |
| CONGRESS OF THE PEOPLE | — | 200 | 0,0804 |
| AFRIKA MAYIBUYE MOVEMENT | — | 200 | 0,0804 |
| ONE LOVE ALLIANCE | — | 186 | 0,0748 |
| PROGRESSIVE COMMUNITY MOVEMENT | — | 173 | 0,0696 |
| AFRICAN CONGRESS FOR TRANSFORMATION | — | 160 | 0,0643 |
| AFRICAN MOVEMENT CONGRESS | — | 148 | 0,0595 |
| ARUSHA ECONOMIC COALITION | — | 49 | 0,0197 |
| SERVICE DELIVERY PARTY | — | 40 | 0,0161 |
| INDEPENDENTS | — | 0 | 0 |
248660 valid votes. Shares use this ballot’s party totals. All published entries are included.
Ward ballot votes
Other: show remaining parties: hide remaining parties12.4%30 724 votes
| Party / entry | Candidate | Votes | Vote share (%) |
|---|---|---|---|
| AFRICAN NATIONAL CONGRESS | — | 104 916 | 42,1814 |
| DEMOCRATIC ALLIANCE | — | 42 917 | 17,2547 |
| UNITED DEMOCRATIC MOVEMENT | — | 40 645 | 16,3413 |
| ECONOMIC FREEDOM FIGHTERS | — | 17 668 | 7,1034 |
| SOUTH AFRICAN COMMUNIST PARTY | — | 11 856 | 4,7667 |
| AFRICAN TRANSFORMATION MOVEMENT | — | 5 363 | 2,1562 |
| ACTIONSA | — | 4 387 | 1,7638 |
| PATRIOTIC ALLIANCE | — | 4 299 | 1,7284 |
| VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | — | 3 142 | 1,2632 |
| UMKHONTO WESIZWE PARTY | — | 2 877 | 1,1567 |
| PAN AFRICANIST CONGRESS OF AZANIA | — | 1 745 | 0,7016 |
| AFRICAN INDEPENDENT CONGRESS | — | 1 535 | 0,6171 |
| SOCIAL DEMOCRATIC MOVEMENT | — | 1 005 | 0,4041 |
| THINA BANTU MOVEMENT | — | 994 | 0,3996 |
| AFRICAN CHRISTIAN DEMOCRATIC PARTY | — | 971 | 0,3904 |
| RISE MZANSI | — | 874 | 0,3514 |
| AFRICAN HEART CONGRESS | — | 672 | 0,2702 |
| AL JAMA-AH | — | 467 | 0,1878 |
| INDEPENDENTS | — | 421 | 0,1693 |
| CONGRESS OF THE PEOPLE | — | 355 | 0,1427 |
| AFRICAN PEOPLE'S CONVENTION | — | 349 | 0,1403 |
| AFRICAN UNEMPLOYED CONGRESS | — | 332 | 0,1335 |
| AFRIKA MAYIBUYE MOVEMENT | — | 250 | 0,1005 |
| ONE LOVE ALLIANCE | — | 222 | 0,0893 |
| PROGRESSIVE COMMUNITY MOVEMENT | — | 203 | 0,0816 |
| SERVICE DELIVERY PARTY | — | 95 | 0,0382 |
| ARUSHA ECONOMIC COALITION | — | 81 | 0,0326 |
| INKATHA FREEDOM PARTY | — | 45 | 0,0181 |
| AFRICAN CONGRESS FOR TRANSFORMATION | — | 23 | 0,0092 |
| AFRICAN MOVEMENT CONGRESS | — | 17 | 0,0068 |
248726 valid votes. Shares use this ballot’s party totals. All published entries are included.
Coalition scenarios
51 for a majorityHow the vote changed
Council seats by election
Swipe to see history
| Election | Party / entry | Seats | Council total | Majority needed |
|---|---|---|---|---|
| 2 021 | AFRICAN NATIONAL CONGRESS | 61 | 100 | 51 |
| 2 021 | DEMOCRATIC ALLIANCE | 20 | 100 | 51 |
| 2 021 | ECONOMIC FREEDOM FIGHTERS | 13 | 100 | 51 |
| 2 021 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 1 | 100 | 51 |
| 2 021 | AFRICAN INDEPENDENT CONGRESS | 1 | 100 | 51 |
| 2 021 | AFRICAN TRANSFORMATION MOVEMENT | 1 | 100 | 51 |
| 2 021 | PAN AFRICANIST CONGRESS OF AZANIA | 1 | 100 | 51 |
| 2 021 | UNITED DEMOCRATIC MOVEMENT | 1 | 100 | 51 |
| 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 | 100 | 51 |
| 2 021 | AFRICAN MULTICULTURAL ECONOMIC CONGRESS | 0 | 100 | 51 |
| 2 021 | INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 0 | 100 | 51 |
| 2 021 | INDEPENDENTS | 0 | 100 | 51 |
| 2 021 | OTHER | 0 | 100 | 51 |
| 2 021 | PATRIOTIC ALLIANCE | 0 | 100 | 51 |
| 2 026 | AFRICAN NATIONAL CONGRESS | 42 | 100 | 51 |
| 2 026 | UNITED DEMOCRATIC MOVEMENT | 19 | 100 | 51 |
| 2 026 | DEMOCRATIC ALLIANCE | 17 | 100 | 51 |
| 2 026 | ECONOMIC FREEDOM FIGHTERS | 7 | 100 | 51 |
| 2 026 | SOUTH AFRICAN COMMUNIST PARTY | 5 | 100 | 51 |
| 2 026 | ACTIONSA | 2 | 100 | 51 |
| 2 026 | AFRICAN TRANSFORMATION MOVEMENT | 2 | 100 | 51 |
| 2 026 | PATRIOTIC ALLIANCE | 2 | 100 | 51 |
| 2 026 | AFRICAN INDEPENDENT CONGRESS | 1 | 100 | 51 |
| 2 026 | PAN AFRICANIST CONGRESS OF AZANIA | 1 | 100 | 51 |
| 2 026 | UMKHONTO WESIZWE PARTY | 1 | 100 | 51 |
| 2 026 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 | 100 | 51 |
| 2 026 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 0 | 100 | 51 |
| 2 026 | AFRICAN CONGRESS FOR TRANSFORMATION | 0 | 100 | 51 |
| 2 026 | AFRICAN HEART CONGRESS | 0 | 100 | 51 |
| 2 026 | AFRICAN MOVEMENT CONGRESS | 0 | 100 | 51 |
| 2 026 | AFRICAN PEOPLE'S CONVENTION | 0 | 100 | 51 |
| 2 026 | AFRICAN UNEMPLOYED CONGRESS | 0 | 100 | 51 |
| 2 026 | AFRIKA MAYIBUYE MOVEMENT | 0 | 100 | 51 |
| 2 026 | AL JAMA-AH | 0 | 100 | 51 |
| 2 026 | ARUSHA ECONOMIC COALITION | 0 | 100 | 51 |
| 2 026 | CONGRESS OF THE PEOPLE | 0 | 100 | 51 |
| 2 026 | INDEPENDENTS | 0 | 100 | 51 |
| 2 026 | INKATHA FREEDOM PARTY | 0 | 100 | 51 |
| 2 026 | ONE LOVE ALLIANCE | 0 | 100 | 51 |
| 2 026 | PROGRESSIVE COMMUNITY MOVEMENT | 0 | 100 | 51 |
| 2 026 | RISE MZANSI | 0 | 100 | 51 |
| 2 026 | SERVICE DELIVERY PARTY | 0 | 100 | 51 |
| 2 026 | SOCIAL DEMOCRATIC MOVEMENT | 0 | 100 | 51 |
| 2 026 | THINA BANTU MOVEMENT | 0 | 100 | 51 |
Ward + municipal PR votes. Missing and grouped entries are not assumed to be zero. Published boundaries may differ between elections.
Ward + municipal PR votes by election
Swipe to see history
| Election | Party | Votes | Vote share (%) | Valid ballot total | Availability |
|---|---|---|---|---|---|
| 2 021 | AFRICAN NATIONAL CONGRESS | 214 118 | 59,4287 | 360 294 | Reported |
| 2 021 | DEMOCRATIC ALLIANCE | 70 334 | 19,5213 | 360 294 | Reported |
| 2 021 | UNITED DEMOCRATIC MOVEMENT | 3 466 | 0,962 | 360 294 | Reported |
| 2 021 | ECONOMIC FREEDOM FIGHTERS | 43 466 | 12,064 | 360 294 | Reported |
| 2 021 | SOUTH AFRICAN COMMUNIST PARTY | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | AFRICAN TRANSFORMATION MOVEMENT | 3 270 | 0,9076 | 360 294 | Reported |
| 2 021 | PATRIOTIC ALLIANCE | 1 115 | 0,3095 | 360 294 | Reported |
| 2 021 | ACTIONSA | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 848 | 0,5129 | 360 294 | Reported |
| 2 021 | PAN AFRICANIST CONGRESS OF AZANIA | 3 383 | 0,939 | 360 294 | Reported |
| 2 021 | UMKHONTO WESIZWE PARTY | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | AFRICAN INDEPENDENT CONGRESS | 2 562 | 0,7111 | 360 294 | Reported |
| 2 021 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 2 011 | 0,5582 | 360 294 | Reported |
| 2 021 | THINA BANTU MOVEMENT | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | RISE MZANSI | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | SOCIAL DEMOCRATIC MOVEMENT | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | AFRICAN HEART CONGRESS | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 795 | 0,2207 | 360 294 | Reported |
| 2 021 | AFRICAN MULTICULTURAL ECONOMIC CONGRESS | 750 | 0,2082 | 360 294 | Reported |
| 2 021 | AL JAMA-AH | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | AFRICAN UNEMPLOYED CONGRESS | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | AFRICAN PEOPLE'S CONVENTION | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | CONGRESS OF THE PEOPLE | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | AFRIKA MAYIBUYE MOVEMENT | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | ONE LOVE ALLIANCE | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | PROGRESSIVE COMMUNITY MOVEMENT | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | INKATHA FREEDOM PARTY | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | AFRICAN CONGRESS FOR TRANSFORMATION | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | AFRICAN MOVEMENT CONGRESS | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | SERVICE DELIVERY PARTY | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 021 | ARUSHA ECONOMIC COALITION | Unavailable | Unavailable | 360 294 | Not separately listed in this source. |
| 2 026 | AFRICAN NATIONAL CONGRESS | 208 573 | 41,9338 | 497 386 | Reported |
| 2 026 | DEMOCRATIC ALLIANCE | 83 824 | 16,8529 | 497 386 | Reported |
| 2 026 | UNITED DEMOCRATIC MOVEMENT | 91 463 | 18,3887 | 497 386 | Reported |
| 2 026 | ECONOMIC FREEDOM FIGHTERS | 33 750 | 6,7855 | 497 386 | Reported |
| 2 026 | SOUTH AFRICAN COMMUNIST PARTY | 22 124 | 4,4481 | 497 386 | Reported |
| 2 026 | AFRICAN TRANSFORMATION MOVEMENT | 10 158 | 2,0423 | 497 386 | Reported |
| 2 026 | PATRIOTIC ALLIANCE | 8 423 | 1,6935 | 497 386 | Reported |
| 2 026 | ACTIONSA | 8 129 | 1,6343 | 497 386 | Reported |
| 2 026 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 6 475 | 1,3018 | 497 386 | Reported |
| 2 026 | PAN AFRICANIST CONGRESS OF AZANIA | 3 247 | 0,6528 | 497 386 | Reported |
| 2 026 | UMKHONTO WESIZWE PARTY | 4 553 | 0,9154 | 497 386 | Reported |
| 2 026 | AFRICAN INDEPENDENT CONGRESS | 2 779 | 0,5587 | 497 386 | Reported |
| 2 026 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 1 980 | 0,3981 | 497 386 | Reported |
| 2 026 | THINA BANTU MOVEMENT | 1 996 | 0,4013 | 497 386 | Reported |
| 2 026 | RISE MZANSI | 1 721 | 0,346 | 497 386 | Reported |
| 2 026 | SOCIAL DEMOCRATIC MOVEMENT | 1 665 | 0,3348 | 497 386 | Reported |
| 2 026 | AFRICAN HEART CONGRESS | 1 319 | 0,2652 | 497 386 | Reported |
| 2 026 | INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 0 | 0 | 497 386 | No votes recorded in the complete party list. |
| 2 026 | AFRICAN MULTICULTURAL ECONOMIC CONGRESS | 0 | 0 | 497 386 | No votes recorded in the complete party list. |
| 2 026 | AL JAMA-AH | 844 | 0,1697 | 497 386 | Reported |
| 2 026 | AFRICAN UNEMPLOYED CONGRESS | 608 | 0,1222 | 497 386 | Reported |
| 2 026 | AFRICAN PEOPLE'S CONVENTION | 600 | 0,1206 | 497 386 | Reported |
| 2 026 | CONGRESS OF THE PEOPLE | 555 | 0,1116 | 497 386 | Reported |
| 2 026 | AFRIKA MAYIBUYE MOVEMENT | 450 | 0,0905 | 497 386 | Reported |
| 2 026 | ONE LOVE ALLIANCE | 408 | 0,082 | 497 386 | Reported |
| 2 026 | PROGRESSIVE COMMUNITY MOVEMENT | 376 | 0,0756 | 497 386 | Reported |
| 2 026 | INKATHA FREEDOM PARTY | 332 | 0,0667 | 497 386 | Reported |
| 2 026 | AFRICAN CONGRESS FOR TRANSFORMATION | 183 | 0,0368 | 497 386 | Reported |
| 2 026 | AFRICAN MOVEMENT CONGRESS | 165 | 0,0332 | 497 386 | Reported |
| 2 026 | SERVICE DELIVERY PARTY | 135 | 0,0271 | 497 386 | Reported |
| 2 026 | ARUSHA ECONOMIC COALITION | 130 | 0,0261 | 497 386 | Reported |
Ward + municipal PR votes. Missing and grouped entries are not assumed to be zero. Published boundaries may differ between elections.
History data & sources
Ward + municipal PR votes. Connecting bands show the same party’s share or seats between elections, not individual voters moving between parties. Select a year to inspect its values; use the election-year selector to explore its results and places.
The chart names the five largest parties across these elections. The vote list also names parties gaining at least 2 percentage points since the previous election; remaining votes are combined under Other. Other’s change compares the same group of parties in both elections. Missing values remain unavailable.
Election history is temporarily unavailable; showing the snapshots already loaded.
- All points use the same ballot basis. Ballot totals are not counts of individual voters.
- 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.
- Missing or grouped party rows remain gaps unless a complete, ungrouped list establishes zero votes.
- Municipal boundaries can change between elections. Published area results are not boundary-adjusted.
Council government
Who has governed here
Administrations & sources
ANC single-party majority
61 of 100 seats at the 2021 election
Buffalo City’s 2024/25 annual report records that the ANC formed the city government after winning a council majority in November 2021. The seat figures are the 2021 election allocation, not a new 2026 result.
Evidence: 2024/25 municipal annual report, covering the year ended 30 Jun 2025.
Ward results
Find my wardFind your ward
Loading map…
Wards in Buffalo City
50 wards
| Ward | Election | Party / entry | Votes | Vote share (%) |
|---|---|---|---|---|
| Ward 1 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 313 | 39,3033 |
| Ward 1 | 2 026 | DEMOCRATIC ALLIANCE | 1 464 | 24,8768 |
| Ward 2 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 200 | 51,7891 |
| Ward 2 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 747 | 41,1252 |
| Ward 3 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 221 | 27,7689 |
| Ward 3 | 2 026 | DEMOCRATIC ALLIANCE | 990 | 22,5154 |
| Ward 4 | 2 026 | DEMOCRATIC ALLIANCE | 3 049 | 51,2868 |
| Ward 4 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 164 | 19,5795 |
| Ward 5 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 2 432 | 49,0817 |
| Ward 5 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 532 | 30,9183 |
| Ward 6 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 994 | 48,8965 |
| Ward 6 | 2 026 | DEMOCRATIC ALLIANCE | 941 | 23,075 |
| Ward 7 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 740 | 46,7178 |
| Ward 7 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 2 387 | 40,6991 |
| Ward 8 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 341 | 28,417 |
| Ward 8 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 980 | 20,7671 |
| Ward 9 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 368 | 29,0138 |
| Ward 9 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 365 | 28,9502 |
| Ward 10 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 640 | 37,9474 |
| Ward 10 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 801 | 25,8876 |
| Ward 11 | 2 026 | AFRICAN NATIONAL CONGRESS | 3 060 | 69,9588 |
| Ward 11 | 2 026 | ECONOMIC FREEDOM FIGHTERS | 571 | 13,0544 |
| Ward 12 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 047 | 45,1577 |
| Ward 12 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 711 | 37,7454 |
| Ward 13 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 362 | 54,841 |
| Ward 13 | 2 026 | ACTIONSA | 730 | 16,9492 |
| Ward 14 | 2 026 | AFRICAN NATIONAL CONGRESS | 3 220 | 67,8609 |
| Ward 14 | 2 026 | ECONOMIC FREEDOM FIGHTERS | 496 | 10,4531 |
| Ward 15 | 2 026 | ECONOMIC FREEDOM FIGHTERS | 1 753 | 26,833 |
| Ward 15 | 2 026 | DEMOCRATIC ALLIANCE | 1 722 | 26,3585 |
| Ward 16 | 2 026 | DEMOCRATIC ALLIANCE | 2 645 | 51,4692 |
| Ward 16 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 084 | 21,0936 |
| Ward 17 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 777 | 60,2517 |
| Ward 17 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 945 | 20,5034 |
| Ward 18 | 2 026 | DEMOCRATIC ALLIANCE | 4 936 | 80,6668 |
| Ward 18 | 2 026 | AFRICAN NATIONAL CONGRESS | 305 | 4,9845 |
| Ward 19 | 2 026 | DEMOCRATIC ALLIANCE | 2 314 | 54,1667 |
| Ward 19 | 2 026 | AFRICAN NATIONAL CONGRESS | 700 | 16,3858 |
| Ward 20 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 063 | 51,5879 |
| Ward 20 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 139 | 28,4821 |
| Ward 21 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 258 | 45,913 |
| Ward 21 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 102 | 22,4075 |
| Ward 22 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 455 | 50,3383 |
| Ward 22 | 2 026 | AFRICAN TRANSFORMATION MOVEMENT | 605 | 12,4052 |
| Ward 23 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 683 | 61,9487 |
| Ward 23 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 850 | 19,626 |
| Ward 24 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 502 | 52,2556 |
| Ward 24 | 2 026 | ECONOMIC FREEDOM FIGHTERS | 661 | 13,8053 |
| Ward 25 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 230 | 46,304 |
| Ward 25 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 509 | 31,3331 |
| Ward 26 | 2 026 | AFRICAN NATIONAL CONGRESS | 3 240 | 61,2476 |
| Ward 26 | 2 026 | SOUTH AFRICAN COMMUNIST PARTY | 808 | 15,2741 |
| Ward 27 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 2 756 | 46,4129 |
| Ward 27 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 546 | 26,0357 |
| Ward 28 | 2 026 | DEMOCRATIC ALLIANCE | 4 526 | 71,3655 |
| Ward 28 | 2 026 | AFRICAN NATIONAL CONGRESS | 520 | 8,1993 |
| Ward 29 | 2 026 | DEMOCRATIC ALLIANCE | 3 769 | 71,2881 |
| Ward 29 | 2 026 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 571 | 10,8001 |
| Ward 30 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 814 | 57,2533 |
| Ward 30 | 2 026 | ECONOMIC FREEDOM FIGHTERS | 1 031 | 20,9766 |
| Ward 31 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 551 | 44,2651 |
| Ward 31 | 2 026 | DEMOCRATIC ALLIANCE | 1 297 | 22,5056 |
| Ward 32 | 2 026 | AFRICAN NATIONAL CONGRESS | 3 693 | 63,53 |
| Ward 32 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 752 | 12,9365 |
| Ward 33 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 581 | 55,9991 |
| Ward 33 | 2 026 | SOUTH AFRICAN COMMUNIST PARTY | 930 | 20,1779 |
| Ward 34 | 2 026 | AFRICAN NATIONAL CONGRESS | 3 127 | 60,5187 |
| Ward 34 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 344 | 26,0112 |
| Ward 35 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 491 | 55,0376 |
| Ward 35 | 2 026 | UMKHONTO WESIZWE PARTY | 1 052 | 23,2435 |
| Ward 36 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 909 | 59,2947 |
| Ward 36 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 683 | 13,9217 |
| Ward 37 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 843 | 36,8232 |
| Ward 37 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 390 | 27,7722 |
| Ward 38 | 2 026 | AFRICAN NATIONAL CONGRESS | 3 228 | 69,4492 |
| Ward 38 | 2 026 | ECONOMIC FREEDOM FIGHTERS | 461 | 9,9182 |
| Ward 39 | 2 026 | AFRICAN NATIONAL CONGRESS | 3 109 | 55,0168 |
| Ward 39 | 2 026 | AFRICAN TRANSFORMATION MOVEMENT | 869 | 15,3778 |
| Ward 40 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 960 | 47,1154 |
| Ward 40 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 980 | 23,5577 |
| Ward 41 | 2 026 | SOUTH AFRICAN COMMUNIST PARTY | 2 071 | 48,9598 |
| Ward 41 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 438 | 33,9953 |
| Ward 42 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 332 | 54,6008 |
| Ward 42 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 295 | 30,3208 |
| Ward 43 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 073 | 45,1044 |
| Ward 43 | 2 026 | DEMOCRATIC ALLIANCE | 1 246 | 27,1105 |
| Ward 44 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 948 | 35,4762 |
| Ward 44 | 2 026 | DEMOCRATIC ALLIANCE | 918 | 16,7183 |
| Ward 45 | 2 026 | AFRICAN NATIONAL CONGRESS | 2 309 | 48,7851 |
| Ward 45 | 2 026 | SOUTH AFRICAN COMMUNIST PARTY | 1 230 | 25,9877 |
| Ward 46 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 769 | 29,5671 |
| Ward 46 | 2 026 | DEMOCRATIC ALLIANCE | 1 062 | 17,7503 |
| Ward 47 | 2 026 | ECONOMIC FREEDOM FIGHTERS | 1 310 | 30,8889 |
| Ward 47 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 972 | 22,9191 |
| Ward 48 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 856 | 50,2572 |
| Ward 48 | 2 026 | UNITED DEMOCRATIC MOVEMENT | 1 243 | 33,6583 |
| Ward 49 | 2 026 | AFRICAN NATIONAL CONGRESS | 3 205 | 76,0921 |
| Ward 49 | 2 026 | ECONOMIC FREEDOM FIGHTERS | 435 | 10,3276 |
| Ward 50 | 2 026 | AFRICAN NATIONAL CONGRESS | 1 923 | 37,4708 |
| Ward 50 | 2 026 | SOUTH AFRICAN COMMUNIST PARTY | 1 478 | 28,7997 |
The two largest published entries shown on each ward card. Open a ward for all entries.
Sources & result details
IEC: 08 Nov 2026, 21:21 SAST · checked 10 Nov 2026, 13:44 SAST
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. Reporting progress measures voting districts, not turnout.
Historical comparisons use published area results. Boundaries may change between elections. Vote shares use the ballot labelled on each chart; ballots are not individual voters.
Government comparisons use the confirmed pre-election administration when available, otherwise the latest dated record. The new government appears when its membership is confirmed. A retained or changed government requires confirmed records on both sides; seats alone cannot establish it.
Vote percentages beside council seats combine ward and municipal PR ballots. Seat counts include both ward and PR councillors.
Seat calculation & source
These are the ward and PR seats published by the IEC. The totals add up to all 100 council seats. 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. A seat majority does not establish a governing agreement or who will become mayor.
IEC result time: 08 Nov 2026, 21:21 SAST · Source figures ↗
Ward vs PR ballots
Ward: choose a person. PR: choose a party.
The candidate with the most votes in the whole ward wins one seat. They do not need more than 50%.
PR means proportional representation. Party-list seats balance the council’s overall party representation.
Party ward votes and municipal PR votes both count towards the party’s overall seat allocation.
Outside metros, voters also have a separate district PR ballot. An independent can stand in a ward but not on a party PR list.
IEC guide to council seats