KwaZamokuhle, Mpumalanga
ANC loses its majority
Council seats
| Party / entry | Seats | Share of seats (%) |
|---|---|---|
| AFRICAN NATIONAL CONGRESS | 21 | 36,2069 |
| DEMOCRATIC ALLIANCE | 17 | 29,3103 |
| ECONOMIC FREEDOM FIGHTERS | 9 | 15,5172 |
| MIDDELBURG AND HENDRINA RESIDENTS FRONT | 7 | 12,069 |
| VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 3 | 5,1724 |
| INDEPENDENTS | 1 | 1,7241 |
| AFRICAN CHRISTIAN DEMOCRATIC PARTY | 0 | 0 |
| AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 |
| BOLSHEVIKS PARTY OF SOUTH AFRICA | 0 | 0 |
| DISABILITY AND OLDER PERSON POLITICAL PARTY | 0 | 0 |
| PATRIOTIC ALLIANCE | 0 | 0 |
| SPECTRUM NATIONAL PARTY | 0 | 0 |
| UNITED INDEPENDENT MOVEMENT | 0 | 0 |
58 seats; 30 needed for a majority.
Combined ballot votes
Combined ballot votes
Other: show remaining parties: hide remaining parties3.3%3 043 votes
| Party / entry | Candidate | Votes | Vote share (%) |
|---|---|---|---|
| AFRICAN NATIONAL CONGRESS | — | 34 358 | 36,8462 |
| DEMOCRATIC ALLIANCE | — | 26 454 | 28,3698 |
| ECONOMIC FREEDOM FIGHTERS | — | 13 922 | 14,9302 |
| MIDDELBURG AND HENDRINA RESIDENTS FRONT | — | 10 337 | 11,0856 |
| VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | — | 5 133 | 5,5047 |
| INDEPENDENTS | — | 1 338 | 1,4349 |
| AFRICAN CHRISTIAN DEMOCRATIC PARTY | — | 631 | 0,6767 |
| PATRIOTIC ALLIANCE | — | 440 | 0,4719 |
| AFRICAN TRANSFORMATION MOVEMENT | — | 324 | 0,3475 |
| UNITED INDEPENDENT MOVEMENT | — | 172 | 0,1845 |
| SPECTRUM NATIONAL PARTY | — | 100 | 0,1072 |
| BOLSHEVIKS PARTY OF SOUTH AFRICA | — | 33 | 0,0354 |
| DISABILITY AND OLDER PERSON POLITICAL PARTY | — | 5 | 0,0054 |
93247 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.
24 for a majority · 47 seats
30 for a majority · 58 seats
30 for a majority · 58 seats
30 for a majority · 58 seats
| Election | Party / entry | Seats | Council total | Majority needed |
|---|---|---|---|---|
| 2 000 | Seat allocation unavailable | Unavailable | Unavailable | Unavailable |
| 2 006 | AFRICAN NATIONAL CONGRESS | 29 | 47 | 24 |
| 2 006 | DEMOCRATIC ALLIANCE | 11 | 47 | 24 |
| 2 006 | GREATER MIDDELBURG RESIDENTS ASSOCIATION | 4 | 47 | 24 |
| 2 006 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 1 | 47 | 24 |
| 2 006 | MIDDELBURG RESIDENTS ORGANISATION | 1 | 47 | 24 |
| 2 006 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 | 47 | 24 |
| 2 011 | AFRICAN NATIONAL CONGRESS | 39 | 58 | 30 |
| 2 011 | DEMOCRATIC ALLIANCE | 17 | 58 | 30 |
| 2 011 | CONGRESS OF THE PEOPLE | 1 | 58 | 30 |
| 2 011 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 | 58 | 30 |
| 2 011 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 0 | 58 | 30 |
| 2 011 | INDEPENDENTS | 0 | 58 | 30 |
| 2 011 | NATIONAL FREEDOM PARTY | 0 | 58 | 30 |
| 2 011 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 58 | 30 |
| 2 016 | AFRICAN NATIONAL CONGRESS | 32 | 58 | 30 |
| 2 016 | DEMOCRATIC ALLIANCE | 17 | 58 | 30 |
| 2 016 | ECONOMIC FREEDOM FIGHTERS | 7 | 58 | 30 |
| 2 016 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 2 | 58 | 30 |
| 2 016 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 0 | 58 | 30 |
| 2 016 | AFRICAN PEOPLE'S CONVENTION | 0 | 58 | 30 |
| 2 016 | CONGRESS OF THE PEOPLE | 0 | 58 | 30 |
| 2 016 | INDEPENDENTS | 0 | 58 | 30 |
| 2 016 | SINDAWONYE PROGRESSIVE PARTY | 0 | 58 | 30 |
| 2 016 | UNITED CONSTRUCTIVE PARTY | 0 | 58 | 30 |
| 2 021 | AFRICAN NATIONAL CONGRESS | 21 | 58 | 30 |
| 2 021 | DEMOCRATIC ALLIANCE | 17 | 58 | 30 |
| 2 021 | ECONOMIC FREEDOM FIGHTERS | 9 | 58 | 30 |
| 2 021 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 7 | 58 | 30 |
| 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 3 | 58 | 30 |
| 2 021 | INDEPENDENTS | 1 | 58 | 30 |
| 2 021 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 0 | 58 | 30 |
| 2 021 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 58 | 30 |
| 2 021 | BOLSHEVIKS PARTY OF SOUTH AFRICA | 0 | 58 | 30 |
| 2 021 | DISABILITY AND OLDER PERSON POLITICAL PARTY | 0 | 58 | 30 |
| 2 021 | PATRIOTIC ALLIANCE | 0 | 58 | 30 |
| 2 021 | SPECTRUM NATIONAL PARTY | 0 | 58 | 30 |
| 2 021 | UNITED INDEPENDENT MOVEMENT | 0 | 58 | 30 |
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 | 48 196 | 68,6025 | 70 254 | Reported |
| 2 000 | DEMOCRATIC ALLIANCE | 17 757 | 25,2754 | 70 254 | Reported |
| 2 000 | ECONOMIC FREEDOM FIGHTERS | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | GREATER MIDDELBURG RESIDENTS ASSOCIATION | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | MIDDELBURG RESIDENTS ORGANISATION | 1 845 | 2,6262 | 70 254 | Reported |
| 2 000 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 1 351 | 1,923 | 70 254 | Reported |
| 2 000 | CONGRESS OF THE PEOPLE | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | NATIONAL FREEDOM PARTY | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | PATRIOTIC ALLIANCE | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | INKATHA FREEDOM PARTY | 297 | 0,4228 | 70 254 | Reported |
| 2 000 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | AFRICAN PEOPLE'S CONVENTION | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | UNITED INDEPENDENT MOVEMENT | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | UNITED CONSTRUCTIVE PARTY | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | SINDAWONYE PROGRESSIVE PARTY | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | SPECTRUM NATIONAL PARTY | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | BOLSHEVIKS PARTY OF SOUTH AFRICA | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 000 | DISABILITY AND OLDER PERSON POLITICAL PARTY | 0 | 0 | 70 254 | No votes recorded in the complete party list. |
| 2 006 | AFRICAN NATIONAL CONGRESS | 45 937 | 62,5725 | 73 414 | Reported |
| 2 006 | DEMOCRATIC ALLIANCE | 16 558 | 22,5543 | 73 414 | Reported |
| 2 006 | ECONOMIC FREEDOM FIGHTERS | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | GREATER MIDDELBURG RESIDENTS ASSOCIATION | 6 865 | 9,3511 | 73 414 | Reported |
| 2 006 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 627 | 2,2162 | 73 414 | Reported |
| 2 006 | MIDDELBURG RESIDENTS ORGANISATION | 1 410 | 1,9206 | 73 414 | Reported |
| 2 006 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 1 017 | 1,3853 | 73 414 | Reported |
| 2 006 | CONGRESS OF THE PEOPLE | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | NATIONAL FREEDOM PARTY | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | PATRIOTIC ALLIANCE | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | INKATHA FREEDOM PARTY | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | AFRICAN PEOPLE'S CONVENTION | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | UNITED INDEPENDENT MOVEMENT | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | UNITED CONSTRUCTIVE PARTY | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | SINDAWONYE PROGRESSIVE PARTY | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | SPECTRUM NATIONAL PARTY | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | BOLSHEVIKS PARTY OF SOUTH AFRICA | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 006 | DISABILITY AND OLDER PERSON POLITICAL PARTY | 0 | 0 | 73 414 | No votes recorded in the complete party list. |
| 2 011 | AFRICAN NATIONAL CONGRESS | 72 264 | 67,8153 | 106 560 | Reported |
| 2 011 | DEMOCRATIC ALLIANCE | 30 114 | 28,2601 | 106 560 | Reported |
| 2 011 | ECONOMIC FREEDOM FIGHTERS | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | GREATER MIDDELBURG RESIDENTS ASSOCIATION | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 736 | 0,6907 | 106 560 | Reported |
| 2 011 | MIDDELBURG RESIDENTS ORGANISATION | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 702 | 0,6588 | 106 560 | Reported |
| 2 011 | CONGRESS OF THE PEOPLE | 1 883 | 1,7671 | 106 560 | Reported |
| 2 011 | NATIONAL FREEDOM PARTY | 558 | 0,5236 | 106 560 | Reported |
| 2 011 | PATRIOTIC ALLIANCE | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | INKATHA FREEDOM PARTY | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | AFRICAN PEOPLE'S CONVENTION | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | PAN AFRICANIST CONGRESS OF AZANIA | 238 | 0,2233 | 106 560 | Reported |
| 2 011 | UNITED INDEPENDENT MOVEMENT | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | UNITED CONSTRUCTIVE PARTY | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | SINDAWONYE PROGRESSIVE PARTY | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | SPECTRUM NATIONAL PARTY | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | BOLSHEVIKS PARTY OF SOUTH AFRICA | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 011 | DISABILITY AND OLDER PERSON POLITICAL PARTY | 0 | 0 | 106 560 | No votes recorded in the complete party list. |
| 2 016 | AFRICAN NATIONAL CONGRESS | 64 124 | 55,4883 | 115 563 | Reported |
| 2 016 | DEMOCRATIC ALLIANCE | 33 603 | 29,0776 | 115 563 | Reported |
| 2 016 | ECONOMIC FREEDOM FIGHTERS | 13 027 | 11,2726 | 115 563 | Reported |
| 2 016 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | GREATER MIDDELBURG RESIDENTS ASSOCIATION | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 2 967 | 2,5674 | 115 563 | Reported |
| 2 016 | MIDDELBURG RESIDENTS ORGANISATION | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 557 | 0,482 | 115 563 | Reported |
| 2 016 | CONGRESS OF THE PEOPLE | 141 | 0,122 | 115 563 | Reported |
| 2 016 | NATIONAL FREEDOM PARTY | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | PATRIOTIC ALLIANCE | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | INKATHA FREEDOM PARTY | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | AFRICAN PEOPLE'S CONVENTION | 382 | 0,3306 | 115 563 | Reported |
| 2 016 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | UNITED INDEPENDENT MOVEMENT | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | UNITED CONSTRUCTIVE PARTY | 168 | 0,1454 | 115 563 | Reported |
| 2 016 | SINDAWONYE PROGRESSIVE PARTY | 134 | 0,116 | 115 563 | Reported |
| 2 016 | SPECTRUM NATIONAL PARTY | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | BOLSHEVIKS PARTY OF SOUTH AFRICA | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 016 | DISABILITY AND OLDER PERSON POLITICAL PARTY | 0 | 0 | 115 563 | No votes recorded in the complete party list. |
| 2 021 | AFRICAN NATIONAL CONGRESS | 34 358 | 36,8462 | 93 247 | Reported |
| 2 021 | DEMOCRATIC ALLIANCE | 26 454 | 28,3698 | 93 247 | Reported |
| 2 021 | ECONOMIC FREEDOM FIGHTERS | 13 922 | 14,9302 | 93 247 | Reported |
| 2 021 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 10 337 | 11,0856 | 93 247 | Reported |
| 2 021 | GREATER MIDDELBURG RESIDENTS ASSOCIATION | 0 | 0 | 93 247 | No votes recorded in the complete party list. |
| 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 5 133 | 5,5047 | 93 247 | Reported |
| 2 021 | MIDDELBURG RESIDENTS ORGANISATION | 0 | 0 | 93 247 | No votes recorded in the complete party list. |
| 2 021 | AFRICAN CHRISTIAN DEMOCRATIC PARTY | 631 | 0,6767 | 93 247 | Reported |
| 2 021 | CONGRESS OF THE PEOPLE | 0 | 0 | 93 247 | No votes recorded in the complete party list. |
| 2 021 | NATIONAL FREEDOM PARTY | 0 | 0 | 93 247 | No votes recorded in the complete party list. |
| 2 021 | PATRIOTIC ALLIANCE | 440 | 0,4719 | 93 247 | Reported |
| 2 021 | INKATHA FREEDOM PARTY | 0 | 0 | 93 247 | No votes recorded in the complete party list. |
| 2 021 | AFRICAN TRANSFORMATION MOVEMENT | 324 | 0,3475 | 93 247 | Reported |
| 2 021 | AFRICAN PEOPLE'S CONVENTION | 0 | 0 | 93 247 | No votes recorded in the complete party list. |
| 2 021 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 0 | 93 247 | No votes recorded in the complete party list. |
| 2 021 | UNITED INDEPENDENT MOVEMENT | 172 | 0,1845 | 93 247 | Reported |
| 2 021 | UNITED CONSTRUCTIVE PARTY | 0 | 0 | 93 247 | No votes recorded in the complete party list. |
| 2 021 | SINDAWONYE PROGRESSIVE PARTY | 0 | 0 | 93 247 | No votes recorded in the complete party list. |
| 2 021 | SPECTRUM NATIONAL PARTY | 100 | 0,1072 | 93 247 | Reported |
| 2 021 | BOLSHEVIKS PARTY OF SOUTH AFRICA | 33 | 0,0354 | 93 247 | Reported |
| 2 021 | DISABILITY AND OLDER PERSON POLITICAL PARTY | 5 | 0,0054 | 93 247 | 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.
Council government
Who governed after 2021
Administrations & sources
MISTRA records the administrations that governed after the 2021 election, through 28 February 2026. The latest recorded administration is shown below, followed by its predecessors. Party roles and officeholders are recorded at formation; later changes may appear in the notes.
Members at formation · majority coalition · Around 05 Dec 2024 · recorded active at source cutoff
Inaugural mayor: P. M. Masilela (ANC)
2 recorded administrations · 2021–February 2026
- ANC + EFF
Around 05 Dec 2024 → Active at cutoff · 28 Feb 2026
Members at formation. Inaugural mayor: P. M. Masilela.
- ANC + Independents (grouped)
Around 22 Nov 2021 → 05 Dec 2024 · Recomposition
Members at formation. Inaugural mayor: P. M. Masilela.
Speaker T. Mpye resigned the chair in August 2023 while remaining a councillor. He co-sponsored a motion against Mayor P. M. Masilela.
Ward results
Browse wardsWards in Steve Tshwete
29 wards
| Ward | Election | Party / entry | Votes | Vote share (%) |
|---|---|---|---|---|
| Ward 1 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 836 | 70,4798 |
| Ward 1 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 593 | 22,7639 |
| Ward 2 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 384 | 49,82 |
| Ward 2 | 2 021 | INDEPENDENTS | 822 | 29,5896 |
| Ward 3 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 455 | 46,875 |
| Ward 3 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 712 | 22,9381 |
| Ward 4 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 173 | 51,178 |
| Ward 4 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 392 | 17,103 |
| Ward 5 | 2 021 | AFRICAN NATIONAL CONGRESS | 795 | 44,265 |
| Ward 5 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 393 | 21,882 |
| Ward 6 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 756 | 62,1153 |
| Ward 6 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 582 | 20,5872 |
| Ward 7 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 556 | 60,9957 |
| Ward 7 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 407 | 15,9545 |
| Ward 8 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 146 | 38,6509 |
| Ward 8 | 2 021 | DEMOCRATIC ALLIANCE | 1 006 | 33,9292 |
| Ward 9 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 245 | 56,5652 |
| Ward 9 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 350 | 15,9019 |
| Ward 10 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 240 | 39,1661 |
| Ward 10 | 2 021 | DEMOCRATIC ALLIANCE | 666 | 21,036 |
| Ward 11 | 2 021 | DEMOCRATIC ALLIANCE | 974 | 33,4134 |
| Ward 11 | 2 021 | AFRICAN NATIONAL CONGRESS | 875 | 30,0172 |
| Ward 12 | 2 021 | DEMOCRATIC ALLIANCE | 4 212 | 70,6119 |
| Ward 12 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 726 | 12,171 |
| Ward 13 | 2 021 | DEMOCRATIC ALLIANCE | 3 353 | 70,5598 |
| Ward 13 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 762 | 16,0354 |
| Ward 14 | 2 021 | DEMOCRATIC ALLIANCE | 3 317 | 79,4111 |
| Ward 14 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 513 | 12,2815 |
| Ward 15 | 2 021 | DEMOCRATIC ALLIANCE | 2 285 | 80,5144 |
| Ward 15 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 363 | 12,7907 |
| Ward 16 | 2 021 | DEMOCRATIC ALLIANCE | 4 716 | 78,0149 |
| Ward 16 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 899 | 14,8718 |
| Ward 17 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 745 | 67,0657 |
| Ward 17 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 945 | 23,0882 |
| Ward 18 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 175 | 35,8123 |
| Ward 18 | 2 021 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 802 | 24,4438 |
| Ward 19 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 157 | 45,7493 |
| Ward 19 | 2 021 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 899 | 35,5476 |
| Ward 20 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 525 | 46,0308 |
| Ward 20 | 2 021 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 1 038 | 31,3311 |
| Ward 21 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 048 | 42,0377 |
| Ward 21 | 2 021 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 829 | 33,2531 |
| Ward 22 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 092 | 40,5948 |
| Ward 22 | 2 021 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 1 002 | 37,2491 |
| Ward 23 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 759 | 44,2293 |
| Ward 23 | 2 021 | MIDDELBURG AND HENDRINA RESIDENTS FRONT | 1 132 | 28,4637 |
| Ward 24 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 610 | 49,3109 |
| Ward 24 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 751 | 23,0015 |
| Ward 25 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 035 | 44,9024 |
| Ward 25 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 887 | 38,4816 |
| Ward 26 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 294 | 52,1008 |
| Ward 26 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 1 090 | 24,7558 |
| Ward 27 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 566 | 57,9142 |
| Ward 27 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 512 | 18,9349 |
| Ward 28 | 2 021 | AFRICAN NATIONAL CONGRESS | 447 | 45,3807 |
| Ward 28 | 2 021 | DEMOCRATIC ALLIANCE | 244 | 24,7716 |
| Ward 29 | 2 021 | DEMOCRATIC ALLIANCE | 1 629 | 38,4924 |
| Ward 29 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 421 | 33,5775 |
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:38 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 58 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 Steve Tshwete. Ward results include areas outside KwaZamokuhle.
This page uses the Stats SA statistical main-place boundary labelled 2016. It overlaps 3 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.