City of Tshwane elections

The City of Tshwane Metropolitan Municipality council consists of 214 members elected by mixed-member proportional representation. 107 are elected by first-past-the-post voting in 107 wards, while the remaining 107 are chosen from party lists so that the total number of party representatives is proportional to the number of votes received. In the election of 1 November 2021, no party won a majority of seats on the council.

Results
The following table shows the composition of the council after past elections.

December 2000 election
The following table shows the results of the 2000 election.

October 2002 floor crossing
In terms of the Eighth Amendment of the Constitution and the judgment of the Constitutional Court in United Democratic Movement v President of the Republic of South Africa and Others, in the period from 8–22 October 2002 councillors had the opportunity to cross the floor to a different political party without losing their seats.

In the Tshwane council, seven councillors crossed from the Democratic Alliance (DA) to the New National Party (NNP), which had formerly been part of the DA, one councillor crossed from the DA to the African National Congress (ANC), and two councillors left the DA to sit as independents. The two councillors of Vision 2000+ crossed to the Christian Democratic Party; the single United Democratic Movement councillor crossed to the United Christian Democratic Party; and one independent councillor joined the ANC.

By-elections from October 2002 to August 2004
The following by-elections were held to fill vacant ward seats in the period between the floor crossing periods in October 2002 and September 2004.

September 2004 floor crossing
Another floor-crossing period occurred on 1–15 September 2004. Five councillors crossed from the NNP to the ANC, while the remaining NNP councillor crossed to the Freedom Front Plus. One councillor crossed from the African Christian Democratic Party to the Independent Democrats, one crossed from the Christian Democratic Party to the DA, and one crossed from the Pan Africanist Congress to the DA.

By-elections from September 2004 to February 2006
The following by-elections were held to fill vacant ward seats in the period between the floor crossing periods in September 2004 and the election in March 2006.

March 2006 election
The following table shows the results of the 2006 election.

By-elections from March 2006 to August 2007
The following by-elections were held to fill vacant ward seats in the period between the election in March 2006 and the floor crossing period in September 2007.

September 2007 floor crossing
The final floor-crossing period occurred on 1–15 September 2007; floor-crossing was subsequently abolished in 2008 by the Fifteenth Amendment of the Constitution. In the Tshwane council one councillor crossed from the Pan Africanist Congress to the African People's Convention, and one councillor crossed from the Independent Democrats to the Inkatha Freedom Party.

By-elections from September 2007 to May 2011
The following by-elections were held to fill vacant ward seats in the period between the floor crossing period in September 2007 and the election in May 2011.

May 2011 election
The following table shows the results of the 2011 election. The council was expanded from 152 to 210 members, partly as a consequence of the annexation of the former Metsweding District Municipality to the City of Tshwane.

By-elections from May 2011 to August 2016
The following by-elections were held to fill vacant ward seats in the period between the elections in May 2011 and August 2016.

August 2016 election
The following table shows the results of the 2016 election.

By-elections from August 2016 to November 2021
The following by-elections were held to fill vacant ward seats in the period between the elections in August 2016 and November 2021.

November 2021 election
The following table shows the results of the 2021 election.

By-elections from November 2021
The following by-elections were held to fill vacant ward seats in the period since November 2021.