Ward 4

Get the app
Voting district 65000102: ANC 51.5% (PR ballot)Voting district 65000258: DA 44.7% (PR ballot)St Johns Methodiste Kerk (VD 65000102)Evangelical Lutheran Church (VD 65000258)
Voting districtsANC 1DA 1darker = bigger win
Dots: voting stations
Election yearDrag or tap a yearDrag the handle or click a year · ← → keys work too

ANC 46.9%down 6.2 pts from 53.1% in 2021

African National Congress · won the ward ballot

Stations open 7am–9pm · results from 9pm · SourceSpecial votes 2 and 3 Nov, 8am–5pm.

This wardAll 2 voting districts in
Turnout63.7%
Voters on the roll3 146
South Africa · Counting20 307 of 23 696 voting districts in (85.7%)
checked Latest results

Elected ward councillor ?

Festus Frank StevensAfrican National Congress

Ward ballot ? · 1 993 valid votes

Hours off in Ward 4 ?

Reported in the ESP app

Power0hours offNo outages
Water0hours offNo outages
Internet0hours offNo outages

Voting districts · 2 ?

Candidates · 11

  • Festus Frank StevensAfrican National Congress
  • Rocxane BosmanAfrika Mayibuye Movement
  • Sandra Elisabeth PalmerCongress of the People
  • Heinrich Martin HavengaDemocratic Alliance
  • Shamice Elrene CoetzeeEconomic Freedom Fighters
  • Micheal DuikerKhoisan Revolution
  • Will Marco SquaerPatriotic Alliance
  • Maria Elizabeth van RooyPeople's Movement for Change
  • Ruben PietersRestoration SA
  • Theodore-Joshua-Henry MedicanSouth African Communist Party
  • Hendrik Paulus RouxVryheidsfront Plus | Freedom Front Plus

Source: IEC certified candidate list (PDF, 16 Sept 2026)

This ward in earlier elections ?

ESP areas in this ward · 2 ?

About these figures

Notes on the IEC's figures for this page

Votes cast 2 008 · spoilt 15 · special votes 202 · All 2 voting districts in (the IEC's voting-district results so far, out of its list of voting districts for this election)

PR ballot figures for this ward are the sum of the IEC's results for its 2 voting districts; the IEC publishes the ward ballot per ward and the PR ballot per voting district.

Turnout is calculated as PR ballots cast ÷ registered voters, from the IEC's results for the 2 voting districts here (2 005 of 3 146). The IEC publishes 63.8%.

The change beside the headline is the difference between the leading party's share here and its share in the 2021 election for the same ward (the ward that covered the same area then), both from the IEC's counts, with no votes re-allocated between boundaries.

Note: party 7: the IEC's cross-ballot total 934 differs from its ward + PR + DC 40% votes (2763); we show each ballot's own votes.

Note: party 52: the IEC's cross-ballot total 767 differs from its ward + PR + DC 40% votes (2334); we show each ballot's own votes.

Note: party 957: the IEC's cross-ballot total 208 differs from its ward + PR + DC 40% votes (631); we show each ballot's own votes.

Note: party 1936: the IEC's cross-ballot total 33 differs from its ward + PR + DC 40% votes (91); we show each ballot's own votes.

Note: party 1335: the IEC's cross-ballot total 14 differs from its ward + PR + DC 40% votes (43); we show each ballot's own votes.

Note: party 945: the IEC's cross-ballot total 10 differs from its ward + PR + DC 40% votes (30); we show each ballot's own votes.

Note: party 1061: the IEC's cross-ballot total 9 differs from its ward + PR + DC 40% votes (28); we show each ballot's own votes.

Note: party 4: the IEC's cross-ballot total 9 differs from its ward + PR + DC 40% votes (32); we show each ballot's own votes.

Note: party 445: the IEC's cross-ballot total 6 differs from its ward + PR + DC 40% votes (23); we show each ballot's own votes.

Note: party 499: the IEC's cross-ballot total 2 differs from its ward + PR + DC 40% votes (3); we show each ballot's own votes.

Note: party 1909: the IEC's cross-ballot total 1 differs from its ward + PR + DC 40% votes (3); we show each ballot's own votes.

Note: party 1318: the IEC's cross-ballot total 0 differs from its ward + PR + DC 40% votes (1); we show each ballot's own votes.

Note: party 1664: the IEC's cross-ballot total 0 differs from its ward + PR + DC 40% votes (1); we show each ballot's own votes.

Note: party 1960: the IEC's cross-ballot total 0 differs from its ward + PR + DC 40% votes (2); we show each ballot's own votes.

Note: voting district 65000102: party 7: the IEC's cross-ballot total 634 differs from its ward + PR + DC 40% votes (1901); we show each ballot's own votes.

Note: voting district 65000102: party 52: the IEC's cross-ballot total 444 differs from its ward + PR + DC 40% votes (1319); we show each ballot's own votes.

Note: voting district 65000102: party 957: the IEC's cross-ballot total 109 differs from its ward + PR + DC 40% votes (338); we show each ballot's own votes.

Note: voting district 65000102: party 1936: the IEC's cross-ballot total 8 differs from its ward + PR + DC 40% votes (25); we show each ballot's own votes.

Note: voting district 65000102: party 945: the IEC's cross-ballot total 7 differs from its ward + PR + DC 40% votes (22); we show each ballot's own votes.

Note: voting district 65000102: party 445: the IEC's cross-ballot total 7 differs from its ward + PR + DC 40% votes (21); we show each ballot's own votes.

Note: voting district 65000102: party 1061: the IEC's cross-ballot total 6 differs from its ward + PR + DC 40% votes (19); we show each ballot's own votes.

Note: voting district 65000102: party 4: the IEC's cross-ballot total 6 differs from its ward + PR + DC 40% votes (19); we show each ballot's own votes.

Note: voting district 65000102: party 1335: the IEC's cross-ballot total 7 differs from its ward + PR + DC 40% votes (19); we show each ballot's own votes.

Note: voting district 65000102: party 499: the IEC's cross-ballot total 0 differs from its ward + PR + DC 40% votes (3); we show each ballot's own votes.

Note: voting district 65000102: party 1909: the IEC's cross-ballot total 1 differs from its ward + PR + DC 40% votes (3); we show each ballot's own votes.

Note: voting district 65000102: party 1960: the IEC's cross-ballot total 0 differs from its ward + PR + DC 40% votes (2); we show each ballot's own votes.

Note: voting district 65000258: party 52: the IEC's cross-ballot total 341 differs from its ward + PR + DC 40% votes (1015); we show each ballot's own votes.

Note: voting district 65000258: party 7: the IEC's cross-ballot total 284 differs from its ward + PR + DC 40% votes (862); we show each ballot's own votes.

Note: voting district 65000258: party 957: the IEC's cross-ballot total 97 differs from its ward + PR + DC 40% votes (293); we show each ballot's own votes.

Note: voting district 65000258: party 1936: the IEC's cross-ballot total 21 differs from its ward + PR + DC 40% votes (66); we show each ballot's own votes.

Note: voting district 65000258: party 1335: the IEC's cross-ballot total 8 differs from its ward + PR + DC 40% votes (24); we show each ballot's own votes.

Note: voting district 65000258: party 4: the IEC's cross-ballot total 5 differs from its ward + PR + DC 40% votes (13); we show each ballot's own votes.

Note: voting district 65000258: party 1061: the IEC's cross-ballot total 3 differs from its ward + PR + DC 40% votes (9); we show each ballot's own votes.

Note: voting district 65000258: party 945: the IEC's cross-ballot total 3 differs from its ward + PR + DC 40% votes (8); we show each ballot's own votes.

Note: voting district 65000258: party 445: the IEC's cross-ballot total 1 differs from its ward + PR + DC 40% votes (2); we show each ballot's own votes.

Note: voting district 65000258: party 1664: the IEC's cross-ballot total 0 differs from its ward + PR + DC 40% votes (1); we show each ballot's own votes.

Percentages are calculated from the IEC's vote counts. Official results: results.elections.org.za.

The DC 40% ? ballot is published per municipality: Dawid Kruiper's DC 40% result.

Map boundaries: Municipal Demarcation Board (MDB) and the IEC.

IEC data last fetched 06 Nov 2026, 14:39 SAST.

Get the ESP App

Ask people in your area how long the queue is.

Outages, alerts and community updates for your area.

  1. 1Install the app
  2. 2Save your area to get alerts
Download on the App StoreGet it on Google Play
Already have the app? Open it