2021 · Amahlathi council results
Hokwana, Eastern Cape
ANC retains its majority
Council seats
| Party / entry | Seats | Share of seats (%) |
|---|---|---|
| AFRICAN NATIONAL CONGRESS | 23 | 76,6667 |
| DEMOCRATIC ALLIANCE | 3 | 10 |
| ECONOMIC FREEDOM FIGHTERS | 2 | 6,6667 |
| AFRICAN PEOPLE'S CONVENTION | 1 | 3,3333 |
| INDEPENDENTS | 1 | 3,3333 |
| AFRICAN INDEPENDENT CONGRESS | 0 | 0 |
| AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 |
| CONGRESS OF THE PEOPLE | 0 | 0 |
| INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 0 | 0 |
| INKATHA FREEDOM PARTY | 0 | 0 |
| NATIONAL FREEDOM PARTY | 0 | 0 |
| PAN AFRICANIST CONGRESS OF AZANIA | 0 | 0 |
| UNITED INDEPENDENT MOVEMENT | 0 | 0 |
30 seats; 16 needed for a majority.
Combined ballot votes
Combined ballot votes
Other: show remaining parties: hide remaining parties5.1%2 332 votes
| Party / entry | Candidate | Votes | Vote share (%) |
|---|---|---|---|
| AFRICAN NATIONAL CONGRESS | — | 33 285 | 73,0575 |
| DEMOCRATIC ALLIANCE | — | 4 374 | 9,6005 |
| ECONOMIC FREEDOM FIGHTERS | — | 3 091 | 6,7845 |
| INDEPENDENTS | — | 2 478 | 5,439 |
| AFRICAN PEOPLE'S CONVENTION | — | 674 | 1,4794 |
| INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | — | 385 | 0,845 |
| AFRICAN TRANSFORMATION MOVEMENT | — | 382 | 0,8385 |
| AFRICAN INDEPENDENT CONGRESS | — | 381 | 0,8363 |
| PAN AFRICANIST CONGRESS OF AZANIA | — | 145 | 0,3183 |
| CONGRESS OF THE PEOPLE | — | 124 | 0,2722 |
| UNITED INDEPENDENT MOVEMENT | — | 122 | 0,2678 |
| INKATHA FREEDOM PARTY | — | 83 | 0,1822 |
| NATIONAL FREEDOM PARTY | — | 36 | 0,079 |
45560 valid votes. Shares use this ballot’s party totals. All published entries are included.
How the vote changed
Council seats by election
Swipe to see history
Seats unavailable for this election.
21 for a majority · 40 seats
21 for a majority · 40 seats
16 for a majority · 30 seats
16 for a majority · 30 seats
| Election | Party / entry | Seats | Council total | Majority needed |
|---|---|---|---|---|
| 2 000 | Seat allocation unavailable | Unavailable | Unavailable | Unavailable |
| 2 006 | AFRICAN NATIONAL CONGRESS | 36 | 40 | 21 |
| 2 006 | DEMOCRATIC ALLIANCE | 2 | 40 | 21 |
| 2 006 | PAN AFRICANIST CONGRESS OF AZANIA | 1 | 40 | 21 |
| 2 006 | UNITED DEMOCRATIC MOVEMENT | 1 | 40 | 21 |
| 2 006 | INDEPENDENT DEMOCRATS | 0 | 40 | 21 |
| 2 006 | INDEPENDENTS | 0 | 40 | 21 |
| 2 011 | AFRICAN NATIONAL CONGRESS | 33 | 40 | 21 |
| 2 011 | CONGRESS OF THE PEOPLE | 3 | 40 | 21 |
| 2 011 | DEMOCRATIC ALLIANCE | 2 | 40 | 21 |
| 2 011 | CATHCART RESIDENTS ASSOCIATION | 1 | 40 | 21 |
| 2 011 | UNITED DEMOCRATIC MOVEMENT | 1 | 40 | 21 |
| 2 011 | AFRICAN PEOPLE'S CONVENTION | 0 | 40 | 21 |
| 2 011 | AZANIAN PEOPLE'S ORGANISATION | 0 | 40 | 21 |
| 2 011 | INDEPENDENTS | 0 | 40 | 21 |
| 2 011 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 40 | 21 |
| 2 016 | AFRICAN NATIONAL CONGRESS | 24 | 30 | 16 |
| 2 016 | DEMOCRATIC ALLIANCE | 3 | 30 | 16 |
| 2 016 | ECONOMIC FREEDOM FIGHTERS | 3 | 30 | 16 |
| 2 016 | CONGRESS OF THE PEOPLE | 0 | 30 | 16 |
| 2 016 | CONSERVATIVES IN ACTION | 0 | 30 | 16 |
| 2 016 | INDEPENDENTS | 0 | 30 | 16 |
| 2 016 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 30 | 16 |
| 2 016 | PAN AFRICANIST MOVEMENT | 0 | 30 | 16 |
| 2 016 | UNITED DEMOCRATIC MOVEMENT | 0 | 30 | 16 |
| 2 016 | UNITED RESIDENTS FRONT | 0 | 30 | 16 |
| 2 021 | AFRICAN NATIONAL CONGRESS | 23 | 30 | 16 |
| 2 021 | DEMOCRATIC ALLIANCE | 3 | 30 | 16 |
| 2 021 | ECONOMIC FREEDOM FIGHTERS | 2 | 30 | 16 |
| 2 021 | AFRICAN PEOPLE'S CONVENTION | 1 | 30 | 16 |
| 2 021 | INDEPENDENTS | 1 | 30 | 16 |
| 2 021 | AFRICAN INDEPENDENT CONGRESS | 0 | 30 | 16 |
| 2 021 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 30 | 16 |
| 2 021 | CONGRESS OF THE PEOPLE | 0 | 30 | 16 |
| 2 021 | INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 0 | 30 | 16 |
| 2 021 | INKATHA FREEDOM PARTY | 0 | 30 | 16 |
| 2 021 | NATIONAL FREEDOM PARTY | 0 | 30 | 16 |
| 2 021 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 30 | 16 |
| 2 021 | UNITED INDEPENDENT MOVEMENT | 0 | 30 | 16 |
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 000 | AFRICAN NATIONAL CONGRESS | 64 361 | 89,3158 | 72 060 | Reported |
| 2 000 | DEMOCRATIC ALLIANCE | 5 202 | 7,219 | 72 060 | Reported |
| 2 000 | ECONOMIC FREEDOM FIGHTERS | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | CONGRESS OF THE PEOPLE | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | UNITED DEMOCRATIC MOVEMENT | 2 497 | 3,4652 | 72 060 | Reported |
| 2 000 | CATHCART RESIDENTS ASSOCIATION | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | AFRICAN PEOPLE'S CONVENTION | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | AFRICAN INDEPENDENT CONGRESS | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | UNITED RESIDENTS FRONT | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | INDEPENDENT DEMOCRATS | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | UNITED INDEPENDENT MOVEMENT | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | PAN AFRICANIST MOVEMENT | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | AZANIAN PEOPLE'S ORGANISATION | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | INKATHA FREEDOM PARTY | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | CONSERVATIVES IN ACTION | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 000 | NATIONAL FREEDOM PARTY | 0 | 0 | 72 060 | No votes recorded in the complete party list. |
| 2 006 | AFRICAN NATIONAL CONGRESS | 69 099 | 90,3538 | 76 476 | Reported |
| 2 006 | DEMOCRATIC ALLIANCE | 3 532 | 4,6184 | 76 476 | Reported |
| 2 006 | ECONOMIC FREEDOM FIGHTERS | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | CONGRESS OF THE PEOPLE | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | UNITED DEMOCRATIC MOVEMENT | 2 136 | 2,793 | 76 476 | Reported |
| 2 006 | CATHCART RESIDENTS ASSOCIATION | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | PAN AFRICANIST CONGRESS OF AZANIA | 1 167 | 1,526 | 76 476 | Reported |
| 2 006 | AFRICAN PEOPLE'S CONVENTION | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | AFRICAN INDEPENDENT CONGRESS | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | UNITED RESIDENTS FRONT | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | INDEPENDENT DEMOCRATS | 481 | 0,629 | 76 476 | Reported |
| 2 006 | UNITED INDEPENDENT MOVEMENT | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | PAN AFRICANIST MOVEMENT | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | AZANIAN PEOPLE'S ORGANISATION | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | INKATHA FREEDOM PARTY | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | CONSERVATIVES IN ACTION | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 006 | NATIONAL FREEDOM PARTY | 0 | 0 | 76 476 | No votes recorded in the complete party list. |
| 2 011 | AFRICAN NATIONAL CONGRESS | 59 184 | 81,2733 | 72 821 | Reported |
| 2 011 | DEMOCRATIC ALLIANCE | 3 737 | 5,1318 | 72 821 | Reported |
| 2 011 | ECONOMIC FREEDOM FIGHTERS | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | CONGRESS OF THE PEOPLE | 5 679 | 7,7986 | 72 821 | Reported |
| 2 011 | UNITED DEMOCRATIC MOVEMENT | 766 | 1,0519 | 72 821 | Reported |
| 2 011 | CATHCART RESIDENTS ASSOCIATION | 1 345 | 1,847 | 72 821 | Reported |
| 2 011 | PAN AFRICANIST CONGRESS OF AZANIA | 543 | 0,7457 | 72 821 | Reported |
| 2 011 | AFRICAN PEOPLE'S CONVENTION | 335 | 0,46 | 72 821 | Reported |
| 2 011 | INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | AFRICAN INDEPENDENT CONGRESS | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | UNITED RESIDENTS FRONT | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | INDEPENDENT DEMOCRATS | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | UNITED INDEPENDENT MOVEMENT | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | PAN AFRICANIST MOVEMENT | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | AZANIAN PEOPLE'S ORGANISATION | 150 | 0,206 | 72 821 | Reported |
| 2 011 | INKATHA FREEDOM PARTY | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | CONSERVATIVES IN ACTION | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 011 | NATIONAL FREEDOM PARTY | 0 | 0 | 72 821 | No votes recorded in the complete party list. |
| 2 016 | AFRICAN NATIONAL CONGRESS | 43 290 | 77,5987 | 55 787 | Reported |
| 2 016 | DEMOCRATIC ALLIANCE | 4 857 | 8,7063 | 55 787 | Reported |
| 2 016 | ECONOMIC FREEDOM FIGHTERS | 4 575 | 8,2008 | 55 787 | Reported |
| 2 016 | CONGRESS OF THE PEOPLE | 669 | 1,1992 | 55 787 | Reported |
| 2 016 | UNITED DEMOCRATIC MOVEMENT | 186 | 0,3334 | 55 787 | Reported |
| 2 016 | CATHCART RESIDENTS ASSOCIATION | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 016 | PAN AFRICANIST CONGRESS OF AZANIA | 144 | 0,2581 | 55 787 | Reported |
| 2 016 | AFRICAN PEOPLE'S CONVENTION | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 016 | INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 016 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 016 | AFRICAN INDEPENDENT CONGRESS | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 016 | UNITED RESIDENTS FRONT | 351 | 0,6292 | 55 787 | Reported |
| 2 016 | INDEPENDENT DEMOCRATS | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 016 | UNITED INDEPENDENT MOVEMENT | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 016 | PAN AFRICANIST MOVEMENT | 123 | 0,2205 | 55 787 | Reported |
| 2 016 | AZANIAN PEOPLE'S ORGANISATION | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 016 | INKATHA FREEDOM PARTY | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 016 | CONSERVATIVES IN ACTION | 55 | 0,0986 | 55 787 | Reported |
| 2 016 | NATIONAL FREEDOM PARTY | 0 | 0 | 55 787 | No votes recorded in the complete party list. |
| 2 021 | AFRICAN NATIONAL CONGRESS | 33 285 | 73,0575 | 45 560 | Reported |
| 2 021 | DEMOCRATIC ALLIANCE | 4 374 | 9,6005 | 45 560 | Reported |
| 2 021 | ECONOMIC FREEDOM FIGHTERS | 3 091 | 6,7845 | 45 560 | Reported |
| 2 021 | CONGRESS OF THE PEOPLE | 124 | 0,2722 | 45 560 | Reported |
| 2 021 | UNITED DEMOCRATIC MOVEMENT | 0 | 0 | 45 560 | No votes recorded in the complete party list. |
| 2 021 | CATHCART RESIDENTS ASSOCIATION | 0 | 0 | 45 560 | No votes recorded in the complete party list. |
| 2 021 | PAN AFRICANIST CONGRESS OF AZANIA | 145 | 0,3183 | 45 560 | Reported |
| 2 021 | AFRICAN PEOPLE'S CONVENTION | 674 | 1,4794 | 45 560 | Reported |
| 2 021 | INDEPENDENT SOUTH AFRICAN NATIONAL CIVIC ORGANISATION | 385 | 0,845 | 45 560 | Reported |
| 2 021 | AFRICAN TRANSFORMATION MOVEMENT | 382 | 0,8385 | 45 560 | Reported |
| 2 021 | AFRICAN INDEPENDENT CONGRESS | 381 | 0,8363 | 45 560 | Reported |
| 2 021 | UNITED RESIDENTS FRONT | 0 | 0 | 45 560 | No votes recorded in the complete party list. |
| 2 021 | INDEPENDENT DEMOCRATS | 0 | 0 | 45 560 | No votes recorded in the complete party list. |
| 2 021 | UNITED INDEPENDENT MOVEMENT | 122 | 0,2678 | 45 560 | Reported |
| 2 021 | PAN AFRICANIST MOVEMENT | 0 | 0 | 45 560 | No votes recorded in the complete party list. |
| 2 021 | AZANIAN PEOPLE'S ORGANISATION | 0 | 0 | 45 560 | No votes recorded in the complete party list. |
| 2 021 | INKATHA FREEDOM PARTY | 83 | 0,1822 | 45 560 | Reported |
| 2 021 | CONSERVATIVES IN ACTION | 0 | 0 | 45 560 | No votes recorded in the complete party list. |
| 2 021 | NATIONAL FREEDOM PARTY | 36 | 0,079 | 45 560 | 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.
- All points use the same ballot basis. Ballot totals are not counts of individual voters.
- 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.
Ward results
Browse wardsWards in Amahlathi
15 wards
| Ward | Election | Party / entry | Votes | Vote share (%) |
|---|---|---|---|---|
| Ward 1 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 965 | 86,1464 |
| Ward 1 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 152 | 6,6637 |
| Ward 2 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 184 | 90,36 |
| Ward 2 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 130 | 5,3786 |
| Ward 3 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 166 | 80,4905 |
| Ward 3 | 2 021 | DEMOCRATIC ALLIANCE | 205 | 7,618 |
| Ward 4 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 222 | 49,3937 |
| Ward 4 | 2 021 | INDEPENDENTS | 434 | 17,5424 |
| Ward 5 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 121 | 58,9658 |
| Ward 5 | 2 021 | AFRICAN PEOPLE'S CONVENTION | 425 | 11,8154 |
| Ward 6 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 370 | 70,8097 |
| Ward 6 | 2 021 | DEMOCRATIC ALLIANCE | 746 | 22,2886 |
| Ward 7 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 435 | 69,5516 |
| Ward 7 | 2 021 | INDEPENDENTS | 887 | 25,3356 |
| Ward 8 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 378 | 71,39 |
| Ward 8 | 2 021 | INDEPENDENTS | 284 | 8,526 |
| Ward 9 | 2 021 | AFRICAN NATIONAL CONGRESS | 3 345 | 86,2336 |
| Ward 9 | 2 021 | DEMOCRATIC ALLIANCE | 245 | 6,3161 |
| Ward 10 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 819 | 70,7507 |
| Ward 10 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 441 | 17,1529 |
| Ward 11 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 996 | 80,777 |
| Ward 11 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 293 | 11,8575 |
| Ward 12 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 572 | 77,6336 |
| Ward 12 | 2 021 | INDEPENDENTS | 394 | 11,8925 |
| Ward 13 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 493 | 60,5538 |
| Ward 13 | 2 021 | DEMOCRATIC ALLIANCE | 1 381 | 33,5438 |
| Ward 14 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 029 | 75,1203 |
| Ward 14 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 330 | 12,2177 |
| Ward 15 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 190 | 76,3332 |
| Ward 15 | 2 021 | DEMOCRATIC ALLIANCE | 470 | 16,382 |
The two largest published entries shown on each ward card. Open a ward for all entries.
Sources & result details
IEC: 15 Jan 2022, 17:50 SAST · checked 05 Nov 2026, 15:37 SAST
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.
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 30 council seats. This is the historical election allocation, not a record of government changes during the term. Any grouped “Other” seats remain grouped.
IEC result time: 15 Jan 2022, 17:50 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 seatsThe council results cover all of Amahlathi. Ward results include areas outside Hokwana.
This page uses the Stats SA statistical main-place boundary labelled 2016. It overlaps 1 of the 2026 wards; the everyday town boundary may differ.
Town-to-ward mappings are available for 2026 only. The historical wards above belong to the whole municipality in 2021.
Positive-area intersections of the full-precision 2016 Stats SA main-place polygon and the MDB 2026 ward polygons. Display simplification is applied separately. Full-ward figures include votes outside the place; votes are never allocated by overlap area.