Election day Wed 4 Nov

Checked 16 October 2026

Where the facts about the City of Tshwane come from

Every fact on the City of Tshwane page, with the sources we used. We save a copy of each source on the day we read it.

Back to the City of Tshwane page

Who is the mayor, and which parties run the council?

Nasiphi Moya (ActionSA)

Mayor from 9 Oct 2024 to now. Parties running the council: ActionSA, ANC, EFF.

Dr Nasiphi Moya elected as Tshwane mayor (opens in a new tab)

TimesLIVE. Published 9 October 2024.

Where to look: Paragraph 1 (ActionSA's Moya elected mayor); paragraph 2 (122 votes to 86); paragraph 8 (she was acting mayor after Brink's removal; counting the 'LISTEN HERE' line)

We leave Tshwane better than we found it, says outgoing coalition (opens in a new tab)

TimesLIVE. Published 12 October 2026.

Where to look: Paragraph 2 ('The ANC/EFF/ActionSA coalition took over in October 2024 ... Nasiphi Moya was elected as executive mayor')

Cilliers Brink (DA)

Mayor from 28 Mar 2023 to 26 Sep 2024. Parties running the council: DA, ActionSA, FF+, ACDP, IFP.

How the DA's Cilliers Brink was elected as the City of Tshwane's executive mayor (opens in a new tab)

Daily Maverick. Published 28 March 2023.

Where to look: Dateline 28 Mar 2023 and paragraph 1 (third attempt to elect a mayor); paragraph 2 (coalition partners); paragraph 3 (109 votes for Brink)

Cilliers Brink is out: Tshwane has 14 days to elect new mayor (opens in a new tab)

Daily Maverick. Published 26 September 2024.

Where to look: Paragraph 1 (Brink voted out by 120 councillors to 87 on Thursday 26 Sep 2024); paragraph 2 (ANC, EFF and ActionSA hold 117 seats, supported by GOOD, AIC and DOP); paragraph 4 (ActionSA had decided to ditch the DA). Counting body paragraphs, not 'Read more' lines

Murunwa Makwarela (Congress of the People)

Mayor from 28 Feb 2023 to 10 Mar 2023. Parties running the council: ANC, EFF, PA, Al Jama-ah, ATM, African Independent Congress.

COPE's Murunwa Makwarela beats DA's Cilliers, is Tshwane's new mayor (opens in a new tab)

TimesLIVE. Published 28 February 2023.

Where to look: Paragraph 2 (elected in council on Tuesday, 112 votes to Brink's 101); paragraph 7 (backed by the ANC, EFF, Patriotic Alliance, AIC, Al Jama-ah, ATM and COPE)

Makwarela resigns as Cope councillor, no longer Tshwane mayor (opens in a new tab)

Sowetan. Published 10 March 2023.

Where to look: Paragraph 1 (resigned as a councillor); paragraph 2 ('no longer mayor of the capital city'); paragraph 3 (COPE accepted the resignation on Friday)

Randall Williams (DA)

Mayor from 23 Nov 2021 to 13 Feb 2023. Parties running the council: DA, ActionSA, FF+, ACDP, IFP, Congress of the People.

DA's Randall Williams retained as mayor of Tshwane thanks to ActionSA boost (opens in a new tab)

Daily Maverick. Published 23 November 2021.

Where to look: Paragraph 1 (retained as mayor when the new council was inaugurated on Tuesday 23 Nov 2021); paragraph 2 (nomination uncontested); paragraph 10 (ActionSA said it would vote for a DA mayor)

How the DA's Cilliers Brink was elected as the City of Tshwane's executive mayor (opens in a new tab)

Daily Maverick. Published 28 March 2023.

Where to look: Paragraph 2 (coalition agreement: DA, ActionSA, Freedom Front Plus, ACDP and IFP); paragraph 13, or 11 without the embedded tweet's two lines ('The coalition government which has been at the helm since the 2021 elections has a majority')

Tshwane mayoral resignation chaos cleared (opens in a new tab)

TimesLIVE. Published 20 February 2023.

Where to look: Paragraph 8 (mayoral committee dissolved with effect from midnight on February 13, the day Williams handed in his first resignation letter)

Williams won't play 'black and white' game (opens in a new tab)

Sowetan. Published 15 December 2021.

Where to look: Body paragraph 3 ('The MMCs had been drawn from the DA, ActionSA, FF Plus, IFP and the ACDP'); paragraph 4 (the coalition agreement for Tshwane, Johannesburg and Ekurhuleni covers 'how power relations among the parties, including COPE, would be facilitated'). Paragraph 1 is the first body paragraph after the photo caption ('Tshwane executive mayor Randall Williams has come to the defense of the DA...').

Saved copy: kept on fileNews
DA-led Tshwane multiparty coalition partners vow to keep metro intact despite Joburg collapse (opens in a new tab)

Pretoria News. Published 7 October 2022.

Where to look: Body paragraph 2 (Williams was 'accompanied by ... speaker of council and Cope representative Dr Murunwa Makwarela'); paragraph 24 ('Makwarela said Cope was still behind the coalition'). Paragraph 1 is the first body paragraph ('Pretoria - The DA-led Tshwane multiparty coalition partners have vowed...'); the photo caption is not counted.

Saved copy: kept on fileNews
DA-led multiparty coalition committed to 'keeping ANC out of Tshwane' (opens in a new tab)

Business Day. Published 14 February 2023.

Where to look: Paragraph 3 (Williams said his exit was 'in the best interests of the multiparty coalition including the IFP, ActionSA, COPE, ACDP and Freedom Front Plus')

Dated reports

As of 12 Oct 2026: The coalition of ActionSA, the ANC and the EFF has governed Tshwane since October 2024. Nasiphi Moya of ActionSA is executive mayor. This is a mayor who makes many of the council's decisions. Eugene Modise is deputy executive mayor.

We leave Tshwane better than we found it, says outgoing coalition [title from URL slug; not confirmed on page] (opens in a new tab)

TimesLIVE. Published 12 October 2026.

Where to look: paragraph 2 (coalition and Moya); paragraph 11 (deputy executive mayor Eugene Modise)

As of 4 Sep 2026: Nasiphi Moya of ActionSA is executive mayor of Tshwane. The City's full coalition is the ANC, ActionSA, EFF, ACDP, African Independent Congress and Defenders of the People. It also includes the PA, PAC, ATM and GOOD. The coalition has governed for two years. It has no written coalition agreement.

'Coalitions are hard' – Tshwane mayor admits to cracks in the City's coalition government (opens in a new tab)

News24. Published 4 September 2026.

Where to look: summary bullets and paragraphs 1-4 ('The City of Tshwane's coalition comprises...')

As of 16 Aug 2026: The coalition of ActionSA, the ANC and the EFF governs Tshwane. Nasiphi Moya of ActionSA is mayor.

New tensions push Tshwane coalition to the verge of collapse (opens in a new tab)

Sunday Times. Published 16 August 2026.

Where to look: paragraph 1 ('The coalition between the ANC, ActionSA and the EFF that governs Tshwane'); paragraph 2 ('ActionSA and its mayor, Nasiphi Moya')

As of 16 Aug 2026: Nasiphi Moya is ActionSA's mayor of Tshwane. Moya governs in the coalition of ActionSA, the ANC and the EFF.

New tensions push Tshwane coalition to the verge of collapse (opens in a new tab)

Sunday Times. Published 16 August 2026.

Where to look: paragraph 1 ('The coalition between the ANC, ActionSA and the EFF that governs Tshwane'); paragraph 2 ('ActionSA and its mayor, Nasiphi Moya') (re-read 2026-10-18)

As of 26 Jun 2025: A DA motion of no confidence in Tshwane council Speaker Mncedi Ndzwanana failed. Ndzwanana is the ATM's only councillor in Tshwane and has been Speaker for over two years. The coalition of ActionSA, the ANC and the EFF backed him. It holds a majority of the 214 seats.

As of 10 Oct 2024: Nasiphi Moya (ActionSA) was elected mayor with 122 votes to 86 for Cilliers Brink. ActionSA, the EFF and the ANC backed Moya, and they have 117 seats between them. GOOD, the ATM and Defenders of the People also supported Moya.

Tshwane's political landscape transforms as Dr Moya sworn in as executive mayor (opens in a new tab)

Pretoria News. Published 10 October 2024.

Where to look: paragraph 3

Saved copy: not added yetNews

As of 1 Oct 2024: Cilliers Brink (DA) was removed as mayor by a motion of no confidence on 26 September 2024.

How were the seats split?

The 2021 result

Who won the 214 seats in 2021.

LGE 2021 Seat Calculation Detail: TSH City of Tshwane (opens in a new tab)

Electoral Commission of South Africa (IEC). Page is undated.

Where to look: pp. 4-6 of 6, seat table, Total Party Seats column

Saved copy Official record

Every party

The seats now, by party (ward seats and party seats). African National Congress: 75 (70 ward, 5 party). Democratic Alliance: 69 (37 ward, 32 party). Economic Freedom Fighters: 23 (0 ward, 23 party). ActionSA: 19 (0 ward, 19 party). Freedom Front Plus: 17 (0 ward, 17 party). African Christian Democratic Party: 2 (0 ward, 2 party). African Independent Congress: 1 (0 ward, 1 party). African Transformation Movement: 1 (0 ward, 1 party). Congress of the People: 1 (0 ward, 1 party). Defenders of the People: 1 (0 ward, 1 party). GOOD: 1 (0 ward, 1 party). Inkatha Freedom Party: 1 (0 ward, 1 party). Pan Africanist Congress of Azania: 1 (0 ward, 1 party). Patriotic Alliance: 1 (0 ward, 1 party). Republican Conference of Tshwane: 1 (0 ward, 1 party).

IEC Results Dashboard: municipal by-elections (opens in a new tab)

Electoral Commission of South Africa (IEC). Published 24 June 2026.

Where to look: winning party per ward for every by-election since 2021 (dashboard data files: MapsJason/2021/ByElections.js and LoadCouncillorsService); read 2026-10-18

Saved copy Official record
LGE 2021 Councillor Lists (9 Nov 2021) (opens in a new tab)

Electoral Commission of South Africa (IEC). Published 9 November 2021.

Where to look: ward councillor rows for this council (party per ward elected in 2021)

Saved copy Official record

The seats now

Who holds the 214 seats now, counted up to 24 Jun 2026. How we count: This is our own count, not an official IEC table. We start with the 2021 party seats from the IEC. Then we add the party that last won each ward, in 2021 or in a by-election. Party seats stay with their party, and councillors can't switch parties. So only ward by-elections change these totals. An empty seat is counted with the party that last held it. The IEC lists by-elections on 5 Oct 2022, but it does not show who won them. So any ward that changed hands that day is not counted.

IEC Results Dashboard: municipal by-elections (opens in a new tab)

Electoral Commission of South Africa (IEC). Published 24 June 2026.

Where to look: winning party per ward for every by-election since 2021 (dashboard data files: MapsJason/2021/ByElections.js and LoadCouncillorsService); read 2026-10-18

Saved copy Official record
LGE 2021 Councillor Lists (9 Nov 2021) (opens in a new tab)

Electoral Commission of South Africa (IEC). Published 9 November 2021.

Where to look: ward councillor rows for this council (party per ward elected in 2021)

Saved copy Official record

What the official records say

Audit result

The Auditor-General gave the City of Tshwane a qualified audit opinion for 2024-25. It got the same result in 2023-24.

Consolidated general report on local government audit outcomes 2024-25: City of Tshwane Metro (opens in a new tab)

Auditor-General of South Africa. Published 24 June 2026.

Where to look: 'Audit outcome for 2024-25' box and the change from 2023-24 under it (audit of separate financial statements, finalised by 30 April 2026)

Saved copy: kept on fileOfficial record