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.
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)
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.
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)
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.
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)
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.
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)
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')
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)
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...').
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.
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.
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.
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.
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.
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.
EWN. Published 26 June 2025.
Where to look: paragraphs 1-6
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.
Pretoria News. Published 10 October 2024.
Where to look: paragraph 3
As of 1 Oct 2024: Cilliers Brink (DA) was removed as mayor by a motion of no confidence on 26 September 2024.
Daily Maverick. Published 1 October 2024.
Where to look: paragraph 4
How were the seats split?
The 2021 result
Who won the 214 seats in 2021.
Electoral Commission of South Africa (IEC). Page is undated.
Where to look: pp. 4-6 of 6, seat table, Total Party Seats column
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).
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
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)
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.
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
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)
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.
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)
Nothing matches. Try another word.