2021 · JB Marks council results
Mooivallei Park, North West
ANC loses its majority
Council seats
| Party / entry | Seats | Share of seats (%) |
|---|---|---|
| AFRICAN NATIONAL CONGRESS | 33 | 49,2537 |
| DEMOCRATIC ALLIANCE | 17 | 25,3731 |
| VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 9 | 13,4328 |
| ECONOMIC FREEDOM FIGHTERS | 6 | 8,9552 |
| PATRIOTIC ALLIANCE | 2 | 2,9851 |
| ABANTU BATHO CONGRESS | 0 | 0 |
| AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 |
| BLACK FIRST LAND FIRST | 0 | 0 |
| FORUM 4 SERVICE DELIVERY | 0 | 0 |
| INDEPENDENTS | 0 | 0 |
67 seats; 34 needed for a majority.
Combined ballot votes
Combined ballot votes
Other: show remaining parties: hide remaining parties4.1%4 141 votes
| Party / entry | Candidate | Votes | Vote share (%) |
|---|---|---|---|
| AFRICAN NATIONAL CONGRESS | — | 48 911 | 48,0042 |
| DEMOCRATIC ALLIANCE | — | 25 837 | 25,358 |
| VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | — | 13 800 | 13,5442 |
| ECONOMIC FREEDOM FIGHTERS | — | 9 200 | 9,0294 |
| PATRIOTIC ALLIANCE | — | 2 389 | 2,3447 |
| INDEPENDENTS | — | 450 | 0,4417 |
| BLACK FIRST LAND FIRST | — | 428 | 0,4201 |
| ABANTU BATHO CONGRESS | — | 340 | 0,3337 |
| AFRICAN TRANSFORMATION MOVEMENT | — | 330 | 0,3239 |
| FORUM 4 SERVICE DELIVERY | — | 204 | 0,2002 |
101889 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
34 for a majority · 67 seats
34 for a majority · 67 seats
| Election | Party / entry | Seats | Council total | Majority needed |
|---|---|---|---|---|
| 2 016 | AFRICAN NATIONAL CONGRESS | 34 | 67 | 34 |
| 2 016 | DEMOCRATIC ALLIANCE | 22 | 67 | 34 |
| 2 016 | ECONOMIC FREEDOM FIGHTERS | 5 | 67 | 34 |
| 2 016 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 4 | 67 | 34 |
| 2 016 | INDEPENDENT COUNCILLORS | 2 | 67 | 34 |
| 2 016 | CONGRESS OF THE PEOPLE | 0 | 67 | 34 |
| 2 016 | INDEPENDENTS | 0 | 67 | 34 |
| 2 016 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 67 | 34 |
| 2 021 | AFRICAN NATIONAL CONGRESS | 33 | 67 | 34 |
| 2 021 | DEMOCRATIC ALLIANCE | 17 | 67 | 34 |
| 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 9 | 67 | 34 |
| 2 021 | ECONOMIC FREEDOM FIGHTERS | 6 | 67 | 34 |
| 2 021 | PATRIOTIC ALLIANCE | 2 | 67 | 34 |
| 2 021 | ABANTU BATHO CONGRESS | 0 | 67 | 34 |
| 2 021 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 67 | 34 |
| 2 021 | BLACK FIRST LAND FIRST | 0 | 67 | 34 |
| 2 021 | FORUM 4 SERVICE DELIVERY | 0 | 67 | 34 |
| 2 021 | INDEPENDENTS | 0 | 67 | 34 |
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 016 | AFRICAN NATIONAL CONGRESS | 66 689 | 50,8641 | 131 112 | Reported |
| 2 016 | DEMOCRATIC ALLIANCE | 42 231 | 32,2099 | 131 112 | Reported |
| 2 016 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 7 057 | 5,3824 | 131 112 | Reported |
| 2 016 | ECONOMIC FREEDOM FIGHTERS | 9 812 | 7,4837 | 131 112 | Reported |
| 2 016 | INDEPENDENT COUNCILLORS | 4 137 | 3,1553 | 131 112 | Reported |
| 2 016 | PATRIOTIC ALLIANCE | 0 | 0 | 131 112 | No votes recorded in the complete party list. |
| 2 016 | CONGRESS OF THE PEOPLE | 595 | 0,4538 | 131 112 | Reported |
| 2 016 | BLACK FIRST LAND FIRST | 0 | 0 | 131 112 | No votes recorded in the complete party list. |
| 2 016 | ABANTU BATHO CONGRESS | 0 | 0 | 131 112 | No votes recorded in the complete party list. |
| 2 016 | AFRICAN TRANSFORMATION MOVEMENT | 0 | 0 | 131 112 | No votes recorded in the complete party list. |
| 2 016 | FORUM 4 SERVICE DELIVERY | 0 | 0 | 131 112 | No votes recorded in the complete party list. |
| 2 016 | PAN AFRICANIST CONGRESS OF AZANIA | 195 | 0,1487 | 131 112 | Reported |
| 2 021 | AFRICAN NATIONAL CONGRESS | 48 911 | 48,0042 | 101 889 | Reported |
| 2 021 | DEMOCRATIC ALLIANCE | 25 837 | 25,358 | 101 889 | Reported |
| 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 13 800 | 13,5442 | 101 889 | Reported |
| 2 021 | ECONOMIC FREEDOM FIGHTERS | 9 200 | 9,0294 | 101 889 | Reported |
| 2 021 | INDEPENDENT COUNCILLORS | 0 | 0 | 101 889 | No votes recorded in the complete party list. |
| 2 021 | PATRIOTIC ALLIANCE | 2 389 | 2,3447 | 101 889 | Reported |
| 2 021 | CONGRESS OF THE PEOPLE | 0 | 0 | 101 889 | No votes recorded in the complete party list. |
| 2 021 | BLACK FIRST LAND FIRST | 428 | 0,4201 | 101 889 | Reported |
| 2 021 | ABANTU BATHO CONGRESS | 340 | 0,3337 | 101 889 | Reported |
| 2 021 | AFRICAN TRANSFORMATION MOVEMENT | 330 | 0,3239 | 101 889 | Reported |
| 2 021 | FORUM 4 SERVICE DELIVERY | 204 | 0,2002 | 101 889 | Reported |
| 2 021 | PAN AFRICANIST CONGRESS OF AZANIA | 0 | 0 | 101 889 | No votes recorded in the complete party list. |
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 · 22 Nov 2021 · recorded active at source cutoff
Inaugural mayor: G. K. Qhele (ANC)
1 recorded administration · 2021–February 2026
- ANC + PA
22 Nov 2021 → Active at cutoff · 28 Feb 2026
Members at formation. Inaugural mayor: G. K. Qhele.
Ward results
Browse wardsWards in JB Marks
34 wards
| Ward | Election | Party / entry | Votes | Vote share (%) |
|---|---|---|---|---|
| Ward 1 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 368 | 71,7141 |
| Ward 1 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 407 | 12,3259 |
| Ward 2 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 780 | 43,5208 |
| Ward 2 | 2 021 | DEMOCRATIC ALLIANCE | 1 670 | 40,8313 |
| Ward 3 | 2 021 | DEMOCRATIC ALLIANCE | 3 543 | 61,4038 |
| Ward 3 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 611 | 27,9203 |
| Ward 4 | 2 021 | DEMOCRATIC ALLIANCE | 1 683 | 44,9159 |
| Ward 4 | 2 021 | AFRICAN NATIONAL CONGRESS | 922 | 24,6064 |
| Ward 5 | 2 021 | DEMOCRATIC ALLIANCE | 2 282 | 53,6058 |
| Ward 5 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 815 | 42,6357 |
| Ward 6 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 413 | 62,7442 |
| Ward 6 | 2 021 | DEMOCRATIC ALLIANCE | 402 | 17,8508 |
| Ward 7 | 2 021 | DEMOCRATIC ALLIANCE | 2 044 | 68,8911 |
| Ward 7 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 785 | 26,4577 |
| Ward 8 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 651 | 77,804 |
| Ward 8 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 299 | 14,0905 |
| Ward 9 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 765 | 65,2495 |
| Ward 9 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 486 | 17,9667 |
| Ward 10 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 651 | 79,4896 |
| Ward 10 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 269 | 12,9514 |
| Ward 11 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 403 | 77,2152 |
| Ward 11 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 189 | 10,4018 |
| Ward 12 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 309 | 81,2742 |
| Ward 12 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 312 | 10,982 |
| Ward 13 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 008 | 57,5193 |
| Ward 13 | 2 021 | PATRIOTIC ALLIANCE | 581 | 16,6428 |
| Ward 14 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 490 | 79,6366 |
| Ward 14 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 246 | 13,148 |
| Ward 15 | 2 021 | DEMOCRATIC ALLIANCE | 2 036 | 58,4721 |
| Ward 15 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 155 | 33,1706 |
| Ward 16 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 320 | 82,0948 |
| Ward 16 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 316 | 11,1819 |
| Ward 17 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 151 | 74,9477 |
| Ward 17 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 505 | 17,5958 |
| Ward 18 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 117 | 80,3416 |
| Ward 18 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 288 | 10,9298 |
| Ward 19 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 648 | 83,7445 |
| Ward 19 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 386 | 12,2075 |
| Ward 20 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 243 | 71,229 |
| Ward 20 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 558 | 17,7199 |
| Ward 21 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 411 | 43,929 |
| Ward 21 | 2 021 | PATRIOTIC ALLIANCE | 953 | 29,67 |
| Ward 22 | 2 021 | DEMOCRATIC ALLIANCE | 1 517 | 68,6115 |
| Ward 22 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 517 | 23,3831 |
| Ward 23 | 2 021 | DEMOCRATIC ALLIANCE | 3 116 | 66,2556 |
| Ward 23 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 1 495 | 31,7882 |
| Ward 24 | 2 021 | DEMOCRATIC ALLIANCE | 1 812 | 71,0867 |
| Ward 24 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 605 | 23,7348 |
| Ward 25 | 2 021 | DEMOCRATIC ALLIANCE | 1 407 | 61,5755 |
| Ward 25 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 690 | 30,1969 |
| Ward 26 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 503 | 75,4825 |
| Ward 26 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 530 | 15,9831 |
| Ward 27 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 705 | 67,8202 |
| Ward 27 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 430 | 17,1042 |
| Ward 28 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 007 | 41,906 |
| Ward 28 | 2 021 | DEMOCRATIC ALLIANCE | 658 | 27,3824 |
| Ward 29 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 069 | 83,9351 |
| Ward 29 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 332 | 13,4686 |
| Ward 30 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 861 | 76,8691 |
| Ward 30 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 331 | 13,672 |
| Ward 31 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 140 | 80,1798 |
| Ward 31 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 320 | 11,9895 |
| Ward 32 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 559 | 49,872 |
| Ward 32 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 860 | 27,5112 |
| Ward 33 | 2 021 | AFRICAN NATIONAL CONGRESS | 2 775 | 76,594 |
| Ward 33 | 2 021 | ECONOMIC FREEDOM FIGHTERS | 651 | 17,9685 |
| Ward 34 | 2 021 | AFRICAN NATIONAL CONGRESS | 1 783 | 60,2568 |
| Ward 34 | 2 021 | VRYHEIDSFRONT PLUS | FREEDOM FRONT PLUS | 635 | 21,46 |
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:39 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 67 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 JB Marks. Ward results include areas outside Mooivallei Park.
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.