# 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.
| Event | ACDP | ANC | AZAPO | COPE | DA | EFF | FF+ | IFP | PAC | Other | Total |
| 2000 election | 3 | 86 | 0 | — | 54 | — | — | 1 | 2 | 6 | 152 |
| 2002 floor-crossing | 3 | 88 | 0 | — | 44 | — | — | 1 | 2 | 14 | 152 |
| 2004 floor-crossing | 2 | 93 | 0 | — | 47 | — | — | 1 | 2 | 7 | 152 |
| 2006 election | 3 | 87 | 1 | — | 47 | — | 7 | 1 | 2 | 4 | 152 |
| 2007 floor-crossing | 3 | 87 | 1 | — | 47 | — | 7 | 2 | 1 | 4 | 152 |
| 2011 election | 1 | 118 | 1 | 2 | 82 | — | 4 | 0 | 1 | 1 | 210 |
| 2016 election | 1 | 89 | 0 | 1 | 93 | 25 | 4 | 0 | 1 | 0 | 214 |
| 2021 election | 2 | 75 | 0 | 1 | 69 | 23 | 17 | 1 | 1 | 25 | 214 |

## December 2000 election

The following table shows the results of the 2000 election.
| Party | Party | Ward | Ward | Ward | List | List | List | Total seats |
| Party | Party | Votes | % | Seats | Votes | % | Seats | Total seats |
| | African National Congress | 230,654 | 55.39 | 48 | 236,654 | 57.22 | 38 | 86 |
| | Democratic Alliance | 144,690 | 34.75 | 27 | 146,286 | 35.37 | 27 | 54 |
| | African Christian Democratic Party | 10,000 | 2.40 | 0 | 8,530 | 2.06 | 3 | 3 |
| | Vision 2000+ | 6,551 | 1.57 | 0 | 6,018 | 1.46 | 2 | 2 |
| | Independent candidates | 11,866 | 2.85 | 1 | | | | 1 |
| | Pan Africanist Congress of Azania | 3,909 | 0.94 | 0 | 4,854 | 1.17 | 2 | 2 |
| | United Christian Democratic Party | 2,876 | 0.69 | 0 | 3,848 | 0.93 | 1 | 1 |
| | United Democratic Movement | 1,986 | 0.48 | 0 | 2,268 | 0.55 | 1 | 1 |
| | Inkatha Freedom Party | 1,432 | 0.34 | 0 | 1,584 | 0.38 | 1 | 1 |
| | Ascora | 1,279 | 0.31 | 0 | 1,358 | 0.33 | 1 | 1 |
| | Azanian People's Organisation | 765 | 0.18 | 0 | 1,143 | 0.28 | 0 | 0 |
| | Christen Protestante Party van Suider Afrika | 352 | 0.08 | 0 | 1,035 | 0.25 | 0 | 0 |
| | Green Party of South Africa | 73 | 0.02 | 0 | | | | 0 |
| Total | Total | 416,433 | 100.00 | 76 | 413,578 | 100.00 | 76 | 152 |
| Valid votes | Valid votes | 416,433 | 98.63 | | 413,578 | 98.23 | | |
| Invalid/blank votes | Invalid/blank votes | 5,769 | 1.37 | | 7,433 | 1.77 | | |
| Total votes | Total votes | 422,202 | 100.00 | | 421,011 | 100.00 | | |
| Registered voters/turnout | Registered voters/turnout | 925,884 | 45.60 | | 925,884 | 45.47 | | |

### 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.
| Party | Seats before | Net change | Seats after |
| African National Congress | 86 | 2 | 88 |
| Democratic Alliance | 54 | 10 | 44 |
| New National Party | – | 7 | 7 |
| African Christian Democratic Party | 3 | 0 | 3 |
| Independent | 1 | 1 | 2 |
| Pan Africanist Congress of Azania | 2 | 0 | 2 |
| Christian Democratic Party | — | 2 | 2 |
| United Christian Democratic Party | 1 | 1 | 2 |
| Inkatha Freedom Party | 1 | 0 | 1 |
| Ascora | 1 | 0 | 1 |
| Vision 2000+ | 2 | 2 | 0 |
| United Democratic Movement | 1 | 1 | 0 |

### 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.
| Date | Ward | Party of the previous councillor | Party of the newly elected councillor |
| 22 January 2003 | 40 | Democratic Alliance | Democratic Alliance |
| 19 March 2003 | 53 | New National Party | Democratic Alliance |
| 23 June 2004 | 1 | Democratic Alliance | Democratic Alliance |
| 23 June 2004 | 44 | Democratic Alliance | Democratic Alliance |
| 23 June 2004 | 69 | Democratic Alliance | Democratic Alliance |

### 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.
| Party | Seats before | Net change | Seats after |
| African National Congress | 88 | 5 | 93 |
| Democratic Alliance | 45 | 2 | 47 |
| African Christian Democratic Party | 3 | 1 | 2 |
| Independent | 2 | 0 | 2 |
| United Christian Democratic Party | 2 | 0 | 2 |
| Pan Africanist Congress of Azania | 2 | 1 | 1 |
| Christian Democratic Party | 2 | 1 | 1 |
| Inkatha Freedom Party | 1 | 0 | 1 |
| Ascora | 1 | 0 | 1 |
| Independent Democrats | — | 1 | 1 |
| Freedom Front Plus | — | 1 | 1 |
| New National Party | 6 | 6 | 0 |

### 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.
| Date | Ward | Party of the previous councillor | Party of the previous councillor | Party of the newly elected councillor | Party of the newly elected councillor |
| 26 January 2005 | 71 | | African National Congress | | African National Congress |
| 7 September 2005 | 48 | | African National Congress | | African National Congress |

## March 2006 election

The following table shows the results of the 2006 election.
| Party | Party | Ward | Ward | Ward | List | List | List | Total seats |
| Party | Party | Votes | % | Seats | Votes | % | Seats | Total seats |
| | African National Congress | 239,923 | 55.39 | 52 | 247,470 | 57.32 | 35 | 87 |
| | Democratic Alliance | 132,926 | 30.69 | 24 | 132,528 | 30.70 | 23 | 47 |
| | Freedom Front Plus | 19,300 | 4.46 | 0 | 19,172 | 4.44 | 7 | 7 |
| | African Christian Democratic Party | 8,954 | 2.07 | 0 | 8,465 | 1.96 | 3 | 3 |
| | Pan Africanist Congress of Azania | 5,733 | 1.32 | 0 | 4,553 | 1.05 | 2 | 2 |
| | Independent candidates | 9,861 | 2.28 | 0 | | | | 0 |
| | Independent Democrats | 3,201 | 0.74 | 0 | 4,059 | 0.94 | 1 | 1 |
| | United Christian Democratic Party | 2,704 | 0.62 | 0 | 3,149 | 0.73 | 1 | 1 |
| | African Christian Alliance | 1,057 | 0.24 | 0 | 1,951 | 0.45 | 1 | 1 |
| | Inkatha Freedom Party | 1,484 | 0.34 | 0 | 1,409 | 0.33 | 1 | 1 |
| | Azanian People's Organisation | 1,334 | 0.31 | 0 | 1,389 | 0.32 | 1 | 1 |
| | Christian Democratic Party | 1,284 | 0.30 | 0 | 1,323 | 0.31 | 1 | 1 |
| | United Democratic Movement | 1,020 | 0.24 | 0 | 1,459 | 0.34 | 0 | 0 |
| | Soshanguve Civic Association | 975 | 0.23 | 0 | 1,068 | 0.25 | 0 | 0 |
| | National Democratic Convention | 910 | 0.21 | 0 | 1,067 | 0.25 | 0 | 0 |
| | Ascora | 625 | 0.14 | 0 | 1,017 | 0.24 | 0 | 0 |
| | United Independent Front | 611 | 0.14 | 0 | 869 | 0.20 | 0 | 0 |
| | Federal Alliance | 595 | 0.14 | 0 | 808 | 0.19 | 0 | 0 |
| | United Community Independent Party | 681 | 0.16 | 0 | | | | 0 |
| Total | Total | 433,178 | 100.00 | 76 | 431,756 | 100.00 | 76 | 152 |
| Valid votes | Valid votes | 433,178 | 98.77 | | 431,756 | 98.53 | | |
| Invalid/blank votes | Invalid/blank votes | 5,404 | 1.23 | | 6,447 | 1.47 | | |
| Total votes | Total votes | 438,582 | 100.00 | | 438,203 | 100.00 | | |
| Registered voters/turnout | Registered voters/turnout | 1,064,759 | 41.19 | | 1,064,759 | 41.16 | | |

### 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.
| Date | Ward | Party of the previous councillor | Party of the previous councillor | Party of the newly elected councillor | Party of the newly elected councillor |
| 15 November 2006 | 37 | | African National Congress | | African National Congress |

### 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.
| Party | Seats before | Net change | Seats after |
| African National Congress | 87 | 0 | 87 |
| Democratic Alliance | 47 | 0 | 47 |
| Freedom Front Plus | 7 | 0 | 7 |
| African Christian Democratic Party | 3 | 0 | 3 |
| Inkatha Freedom Party | 1 | 1 | 2 |
| Pan Africanist Congress of Azania | 2 | 1 | 1 |
| United Christian Democratic Party | 1 | 0 | 1 |
| African Christian Alliance | 1 | 0 | 1 |
| Azanian People's Organisation | 1 | 0 | 1 |
| Christian Democratic Party | 1 | 0 | 1 |
| African People's Convention | — | 1 | 1 |
| Independent Democrats | 1 | 1 | 0 |

### 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.
| Date | Ward | Party of the previous councillor | Party of the newly elected councillor |
| 28 November 2007 | 59 | Democratic Alliance | Democratic Alliance |
| 16 July 2008 | 55 | Democratic Alliance | Democratic Alliance |
| 10 December 2008 | 22 | African National Congress | African National Congress |
| 2 September 2009 | 76 | African National Congress | African National Congress |
| 5 May 2010 | 74 | African National Congress | African National Congress |

## 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.
| Party | Party | Ward | Ward | Ward | List | List | List | Total seats |
| Party | Party | Votes | % | Seats | Votes | % | Seats | Total seats |
| | African National Congress | 391,954 | 54.18 | 68 | 408,413 | 56.46 | 50 | 118 |
| | Democratic Alliance | 278,998 | 38.56 | 37 | 280,288 | 38.74 | 45 | 82 |
| | Freedom Front Plus | 12,485 | 1.73 | 0 | 11,511 | 1.59 | 4 | 4 |
| | Independent candidates | 16,833 | 2.33 | 0 | | | | 0 |
| | Congress of the People | 6,661 | 0.92 | 0 | 6,432 | 0.89 | 2 | 2 |
| | African Christian Democratic Party | 4,880 | 0.67 | 0 | 4,267 | 0.59 | 1 | 1 |
| | African People's Convention | 2,529 | 0.35 | 0 | 3,335 | 0.46 | 1 | 1 |
| | Pan Africanist Congress of Azania | 2,014 | 0.28 | 0 | 1,813 | 0.25 | 1 | 1 |
| | Azanian People's Organisation | 1,495 | 0.21 | 0 | 1,308 | 0.18 | 1 | 1 |
| | United Christian Democratic Party | 894 | 0.12 | 0 | 1,085 | 0.15 | 0 | 0 |
| | Inkatha Freedom Party | 907 | 0.13 | 0 | 848 | 0.12 | 0 | 0 |
| | Christian Democratic Party | 925 | 0.13 | 0 | 774 | 0.11 | 0 | 0 |
| | African Christian Alliance | 1,002 | 0.14 | 0 | 633 | 0.09 | 0 | 0 |
| | United Democratic Movement | 426 | 0.06 | 0 | 648 | 0.09 | 0 | 0 |
| | Independent Ratepayers Association of SA | 358 | 0.05 | 0 | 674 | 0.09 | 0 | 0 |
| | Christian Front | 458 | 0.06 | 0 | 301 | 0.04 | 0 | 0 |
| | National Freedom Party | 119 | 0.02 | 0 | 491 | 0.07 | 0 | 0 |
| | Black Consciousness Party | 244 | 0.03 | 0 | 353 | 0.05 | 0 | 0 |
| | Movement Democratic Party | 290 | 0.04 | 0 | 244 | 0.03 | 0 | 0 |
| Total | Total | 723,472 | 100.00 | 105 | 723,418 | 100.00 | 105 | 210 |
| Valid votes | Valid votes | 723,472 | 98.62 | | 723,418 | 98.74 | | |
| Invalid/blank votes | Invalid/blank votes | 10,091 | 1.38 | | 9,213 | 1.26 | | |
| Total votes | Total votes | 733,563 | 100.00 | | 732,631 | 100.00 | | |
| Registered voters/turnout | Registered voters/turnout | 1,326,427 | 55.30 | | 1,326,427 | 55.23 | | |

### 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.
| Date | Ward | Party of the previous councillor | Party of the newly elected councillor |
| 7 September 2011 | 78 | Democratic Alliance | Democratic Alliance |
| 15 February 2012 | 28 | African National Congress | African National Congress |
| 15 February 2012 | 80 | African National Congress | African National Congress |
| 7 November 2012 | 8 | African National Congress | African National Congress |
| 28 May 2014 | 27 | African National Congress | African National Congress |
| 28 May 2014 | 58 | Democratic Alliance | Democratic Alliance |
| 13 August 2014 | 52 | Democratic Alliance | Democratic Alliance |
| 17 September 2014 | 88 | African National Congress | African National Congress |
| 19 August 2015 | 55 | Democratic Alliance | Democratic Alliance |
| 11 November 2015 | 16 | African National Congress | African National Congress |
| 20 January 2016 | 42 | Democratic Alliance | Democratic Alliance |

## August 2016 election

The following table shows the results of the 2016 election.
| Party | Party | Ward | Ward | Ward | List | List | List | Total seats |
| Party | Party | Votes | % | Seats | Votes | % | Seats | Total seats |
| | Democratic Alliance | 381,146 | 43.20 | 39 | 381,044 | 43.10 | 54 | 93 |
| | African National Congress | 361,950 | 41.02 | 68 | 366,702 | 41.48 | 21 | 89 |
| | Economic Freedom Fighters | 102,511 | 11.62 | 0 | 102,895 | 11.64 | 25 | 25 |
| | Freedom Front Plus | 17,789 | 2.02 | 0 | 17,421 | 1.97 | 4 | 4 |
| | African Christian Democratic Party | 4,553 | 0.52 | 0 | 4,168 | 0.47 | 1 | 1 |
| | Independent candidates | 5,185 | 0.59 | 0 | | | | 0 |
| | Congress of the People | 2,347 | 0.27 | 0 | 1,975 | 0.22 | 1 | 1 |
| | Pan Africanist Congress of Azania | 1,767 | 0.20 | 0 | 1,269 | 0.14 | 1 | 1 |
| | African People's Convention | 417 | 0.05 | 0 | 2,151 | 0.24 | 0 | 0 |
| | United Democratic Movement | 889 | 0.10 | 0 | 1,157 | 0.13 | 0 | 0 |
| | African Mandate Congress | 504 | 0.06 | 0 | 786 | 0.09 | 0 | 0 |
| | Azanian People's Organisation | 693 | 0.08 | 0 | 543 | 0.06 | 0 | 0 |
| | African Christian Alliance | 561 | 0.06 | 0 | 654 | 0.07 | 0 | 0 |
| | Patriotic Alliance | 421 | 0.05 | 0 | 781 | 0.09 | 0 | 0 |
| | Inkatha Freedom Party | 220 | 0.02 | 0 | 862 | 0.10 | 0 | 0 |
| | Christian Democratic Party | 530 | 0.06 | 0 | 506 | 0.06 | 0 | 0 |
| | Agang South Africa | 194 | 0.02 | 0 | 392 | 0.04 | 0 | 0 |
| | Forum for Service Delivery | 194 | 0.02 | 0 | 360 | 0.04 | 0 | 0 |
| | African People's Socialist Party | 251 | 0.03 | 0 | 164 | 0.02 | 0 | 0 |
| | United Front of Civics | 79 | 0.01 | 0 | 184 | 0.02 | 0 | 0 |
| | Movement Democratic Party | 25 | 0.00 | 0 | 79 | 0.01 | 0 | 0 |
| | United Christian Democratic Party | 48 | 0.01 | 0 | | | | 0 |
| Total | Total | 882,274 | 100.00 | 107 | 884,093 | 100.00 | 107 | 214 |
| Valid votes | Valid votes | 882,274 | 98.86 | | 884,093 | 98.86 | | |
| Invalid/blank votes | Invalid/blank votes | 10,193 | 1.14 | | 10,224 | 1.14 | | |
| Total votes | Total votes | 892,467 | 100.00 | | 894,317 | 100.00 | | |
| Registered voters/turnout | Registered voters/turnout | 1,512,524 | 59.01 | | 1,512,524 | 59.13 | | |

### 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.
| Date | Ward | Party of the previous councillor | Party of the newly elected councillor |
| 25 April 2018 | 47 | Democratic Alliance | Democratic Alliance |
| 5 September 2018 | 37 | African National Congress | African National Congress |
| 31 October 2018 | 9 | African National Congress | African National Congress |
| 12 December 2018 | 19 | African National Congress | African National Congress |
| 19 May 2021 | 3 | Democratic Alliance | Democratic Alliance |
| 19 May 2021 | 9 | African National Congress | African National Congress |
| 19 May 2021 | 24 | African National Congress | African National Congress |
| 19 May 2021 | 26 | African National Congress | African National Congress |
| 19 May 2021 | 30 | African National Congress | African National Congress |
| 19 May 2021 | 44 | Democratic Alliance | Democratic Alliance |
| 19 May 2021 | 58 | African National Congress | African National Congress |
| 19 May 2021 | 88 | African National Congress | African National Congress |
| 19 May 2021 | 92 | Democratic Alliance | Democratic Alliance |

## November 2021 election

The following table shows the results of the 2021 election.
| Party | Party | Ward | Ward | Ward | List | List | List | Total seats |
| Party | Party | Votes | % | Seats | Votes | % | Seats | Total seats |
| | African National Congress | 231,520 | 34.42 | 70 | 234,521 | 34.84 | 5 | 75 |
| | Democratic Alliance | 217,190 | 32.29 | 37 | 213,852 | 31.77 | 32 | 69 |
| | Economic Freedom Fighters | 73,605 | 10.94 | 0 | 70,228 | 10.43 | 23 | 23 |
| | ActionSA | 53,712 | 7.99 | 0 | 62,502 | 9.28 | 19 | 19 |
| | Freedom Front Plus | 53,506 | 7.96 | 0 | 52,458 | 7.79 | 17 | 17 |
| | African Christian Democratic Party | 6,281 | 0.93 | 0 | 6,094 | 0.91 | 2 | 2 |
| | Independent candidates | 9,623 | 1.43 | 0 | | | | 0 |
| | African Independent Congress | 2,581 | 0.38 | 0 | 5,442 | 0.81 | 1 | 1 |
| | Defenders of the People | 3,879 | 0.58 | 0 | 3,291 | 0.49 | 1 | 1 |
| | Patriotic Alliance | 3,525 | 0.52 | 0 | 3,219 | 0.48 | 1 | 1 |
| | Congress of the People | 1,351 | 0.20 | 0 | 1,246 | 0.19 | 1 | 1 |
| | Pan Africanist Congress of Azania | 1,194 | 0.18 | 0 | 1,393 | 0.21 | 1 | 1 |
| | Republican Conference of Tshwane | 1,700 | 0.25 | 0 | 869 | 0.13 | 1 | 1 |
| | African Transformation Movement | 1,109 | 0.16 | 0 | 1,197 | 0.18 | 1 | 1 |
| | Good | 1,131 | 0.17 | 0 | 1,065 | 0.16 | 1 | 1 |
| | Inkatha Freedom Party | 596 | 0.09 | 0 | 1,385 | 0.21 | 1 | 1 |
| | African Mandate Congress | 677 | 0.10 | 0 | 1,244 | 0.18 | 0 | 0 |
| | United Independent Movement | 491 | 0.07 | 0 | 1,173 | 0.17 | 0 | 0 |
| | Africa Restoration Alliance | 952 | 0.14 | 0 | 659 | 0.10 | 0 | 0 |
| | Christian Democratic Party | 741 | 0.11 | 0 | 614 | 0.09 | 0 | 0 |
| | Concern | 748 | 0.11 | 0 | 568 | 0.08 | 0 | 0 |
| | Abantu Batho Congress | 526 | 0.08 | 0 | 768 | 0.11 | 0 | 0 |
| | Party of Action | 500 | 0.07 | 0 | 763 | 0.11 | 0 | 0 |
| | United Democratic Movement | 494 | 0.07 | 0 | 760 | 0.11 | 0 | 0 |
| | African Covenant | 641 | 0.10 | 0 | 455 | 0.07 | 0 | 0 |
| | Azanian People's Organisation | 664 | 0.10 | 0 | 384 | 0.06 | 0 | 0 |
| | Al Jama-ah | 341 | 0.05 | 0 | 576 | 0.09 | 0 | 0 |
| | Arusha Economic Coalition | 345 | 0.05 | 0 | 547 | 0.08 | 0 | 0 |
| | Agang South Africa | | | | 761 | 0.11 | 0 | 0 |
| | Economic Emancipation Forum | 344 | 0.05 | 0 | 404 | 0.06 | 0 | 0 |
| | The People's Voice | 376 | 0.06 | 0 | 351 | 0.05 | 0 | 0 |
| | African People's Convention | 294 | 0.04 | 0 | 425 | 0.06 | 0 | 0 |
| | Federal Party SA | 354 | 0.05 | 0 | 329 | 0.05 | 0 | 0 |
| | United Christian Democratic Party | 37 | 0.01 | 0 | 624 | 0.09 | 0 | 0 |
| | Activists Movement of South Africa | 290 | 0.04 | 0 | 350 | 0.05 | 0 | 0 |
| | Black First Land First | 246 | 0.04 | 0 | 388 | 0.06 | 0 | 0 |
| | The Organic Humanity Movement | 325 | 0.05 | 0 | 271 | 0.04 | 0 | 0 |
| | Democratic Artists Party | 35 | 0.01 | 0 | 412 | 0.06 | 0 | 0 |
| | Forum for Service Delivery | 190 | 0.03 | 0 | 234 | 0.03 | 0 | 0 |
| | National Freedom Party | 99 | 0.01 | 0 | 292 | 0.04 | 0 | 0 |
| | God Save Africa | 23 | 0.00 | 0 | 210 | 0.03 | 0 | 0 |
| | Agency for New Agenda | | | | 222 | 0.03 | 0 | 0 |
| | Spectrum National Party | 132 | 0.02 | 0 | 82 | 0.01 | 0 | 0 |
| | United Cultural Movement | 29 | 0.00 | 0 | 152 | 0.02 | 0 | 0 |
| | South African Royal Kingdoms Organization | 5 | 0.00 | 0 | 167 | 0.02 | 0 | 0 |
| | Poelano Revelation Party | 8 | 0.00 | 0 | 142 | 0.02 | 0 | 0 |
| | Bolsheviks Party of South Africa | 54 | 0.01 | 0 | 76 | 0.01 | 0 | 0 |
| | Active Movement for Change | 51 | 0.01 | 0 | | | | 0 |
| | Khoisan Kingdom and All People | 38 | 0.01 | 0 | | | | 0 |
| | Disability and Older Person Political Party | 27 | 0.00 | 0 | | | | 0 |
| | Cape Coloured Congress | 23 | 0.00 | 0 | | | | 0 |
| Total | Total | 672,603 | 100.00 | 107 | 673,165 | 100.00 | 107 | 214 |
| Valid votes | Valid votes | 672,603 | 98.84 | | 673,165 | 98.70 | | |
| Invalid/blank votes | Invalid/blank votes | 7,918 | 1.16 | | 8,843 | 1.30 | | |
| Total votes | Total votes | 680,521 | 100.00 | | 682,008 | 100.00 | | |
| Registered voters/turnout | Registered voters/turnout | 1,526,585 | 44.58 | | 1,526,585 | 44.68 | | |

### By-elections from November 2021

The following by-elections were held to fill vacant ward seats in the period since November 2021.
| Date | Ward | Party of the previous councillor | Party of the newly elected councillor |
| 4 May 2022 | 96 | Democratic Alliance | Democratic Alliance |
| 3 Aug 2022 | 105 | Democratic Alliance | Democratic Alliance |
| 5 Apr 2023 | 42 | African National Congress | African National Congress |
| 28 Jun 2023 | 83 | Democratic Alliance | Democratic Alliance |
| 8 Nov 2023 | 47 | Democratic Alliance | Democratic Alliance |
| 8 Nov 2023 | 64 | Democratic Alliance | Democratic Alliance |
| 24 Apr 2024 | 2 | Democratic Alliance | Democratic Alliance |
| 28 Aug 2024 | 92 | Democratic Alliance | Democratic Alliance |
| 23 Oct 2024 | 84 | Democratic Alliance | Democratic Alliance |