# 2024 Porto Alegre mayoral election

The 2024 Porto Alegre mayoral election took place on 6 October 2024. Voters elected a mayor, a vice mayor, and 36 councillors. The incumbent mayor, Sebastião Melo, a member of the Brazilian Democratic Movement (MDB), was elected in 2020 for his first term and ran for reelection.
The mayor's term will begin on 1 January 2025 and end on 31 December 2028.

## Background
### 2020 election

The last mayoral election in Porto Alegre, held in 2020, resulted in the victory of the lawyer and politician Sebastião Melo in the second round. Melo obtained 370,550 votes (54.63% of the valid votes) against the 307,745 votes (45,37% of the valid votes) obtained by his opponent, Manuela d'Ávila (PCdoB).

### Approval ratings and 2024 Rio Grande do Sul floods

In a poll conducted in the end of March 2024, Melo's government was approved by 58% of the citizens of Porto Alegre, making him the front-runner in most of the election scenarios. However, after the 2024 Rio Grande do Sul floods that happened in the end of April to May, that also affected the city of Porto Alegre, his lead in polls may be contested. One of the main themes of the 2024 elections will be the reconstruction of the city that is still flooded. The city's protection against floods are responsibility of the mayor of Porto Alegre and during the electoral campaign, his opponents may question his leadership and decisions that've been taken by his government during the floods.

### Possible postponement

There was a debate among national political forces about a possible postponement of the elections due to the floods in the state. However, the president of the Superior Electoral Court, Alexandre de Moraes, confirmed on 21 May 2024 that there is no discussions about a postponement. He states that there was no structural damage to the Regional Electoral Court of Rio Grande do Sul and to the electoral courts that would prevent the election from being held in the month of October throughout the state and in the city of Porto Alegre.

## Electoral calendar

Electoral calendar announced by the Superior Electoral Court (TSE) on 3 January 2024 :
| 7 March – 5 April | Period of the 'party window' for councillors. During this period, the councillors are able to move to other political parties in order to run for election while not losing their respective political terms. |
| 6 April | Deadline for all parties and party federations to obtain the registration of their statutes at the Superior Electoral Court and for all candidates to have their electoral domicile in the constituency in which they wish to contest the elections with the affiliation granted by the party. |
| 15 May | Start of the preliminary fundraising campaign in the form of collective financing for potential candidates. During this period, candidates are not allowed to ask for votes and are still subjected to obey the rules regarding electoral propaganda on the Internet. |
| 20 July – 5 August | On this date, party conventions begin to deliberate on coalitions and choose candidates for mayors and councillors tickets. Parties have until 15 August to register their names with the Brazilian Election Justice. |
| 16 August | Beginning of electoral campaigns on an equal basis, with any advertising or demonstration explicitly requesting for votes before the date being considered irregular and subject to fines. |
| 30 August –3 October | Broadcasting of free electoral propaganda on radio and television. |
| 6 October | Date of mayoral elections. |
| 27 October | Date of a possible second round in cities with more than 200,000 voters in which the most voted candidate for mayor has not reached 50% of the valid votes. |

## Candidates
### Presumptive candidates

| Party | Mayoral candidate | Running mate | Running mate | Coalition |
| Democratic Labour Party (PDT 12) | Juliana Brizola State Deputy of Rio Grande do Sul (2011–2023) Councillor of Porto Alegre (2009–2011) | Brazil Union (UNIÃO) | Thiago Duarte State Deputy of Rio Grande do Sul (2019–present) Councillor of Porto Alegre (2008; 2011–2018) | United for Porto Alegre Democratic Labour Party (PDT) Brazil Union (UNIÃO) Always Forward Federation (PSDB, Cidadania) |
| Workers' Party (PT 13) | Maria do Rosário Federal Deputy of Rio Grande do Sul (2003–present) Minister of Human Rights (2011–2014) State Deputy of Rio Grande do Sul (1999–2003) Councillor of Porto Alegre (1993–1999) | Socialism and Liberty Party (PSOL) | Tamyres Filgueira Black Movement Activist Civil Servant | The People at City Hall Again Brazil of Hope (PT, PCdoB, PV) PSOL REDE Federation (PSOL, REDE) Brazilian Socialist Party (PSB) Avante |
| Brazilian Democratic Movement (MDB 15) | Sebastião Melo Mayor of Porto Alegre (2021–present) State Deputy of Rio Grande do Sul (2019–2021) Vice Mayor of Porto Alegre (2013–2017) Councillor of Porto Alegre (2001–2013) | Liberal Party (PL) | Betina Worm Lieutenant colonel of the Brazilian Army | We Are Together, Porto Alegre Brazilian Democratic Movement (MDB) Liberal Party (PL) Progressistas (PP) Democratic Renewal Party (PRD) Podemos (PODE) Republicans Social Democratic Party (PSD) Solidarity |
| United Socialist Workers' Party (PSTU 16) | Fabiana Sanguiné Medical Nursing Assistant Trade Union Organizer | United Socialist Workers' Party (PSTU) | Régis Ethur Teacher | United Socialist Workers' Party (PSTU) |
| Brazilian Labour Renewal Party (PRTB 28) | Carlos Rosa Alan de Castro Businessman | Christian Democracy (DC) | João Alberto Morsch Civil Engineer and Businessman | Renew Porto Alegre Brazilian Labour Renewal Party (PRTB) Christian Democracy (DC) |
| New Party (NOVO 30) | Felipe Camozzato State Deputy of Rio Grande do Sul (2023–present) Councillor of Porto Alegre (2017–2023) | New Party (NOVO) | Raqueli Baumbach Businesswoman Vice-president of the Sindha (Accommodation and Food Union of Porto Alegre Metropolis) | New Party (NOVO) |
| Popular Unity (UP 80) | Luciano Schafer National Coordinator of the Neighborhood Struggle Movement (NSM) | Popular Unity (UP) | Amanda Benedett University Student | Popular Unity (UP) |

### Potential candidates

Cidadania
* Any Ortiz – Member of the Chamber of Deputies from Rio Grande do Sul (2023–present); Member of the Legislative Assembly of Rio Grande do Sul (2015–2023) and Councillor of Porto Alegre (2013–2014).
* Federal Deputy Any Ortiz (Cidadania) from Canoas

### Withdrawn candidates

Socialism and Liberty Party (PSOL)
* Luciana Genro – Member of the Legislative Assembly of Rio Grande do Sul (1995–2003; 2019–present) and member of the Chamber of Deputies from Rio Grande do Sul (2003–2011); she withdrew her candidacy on 2 March 2024 and will support Maria do Rosário's candidacy along with the party and the PSOL REDE Federation.
Brazilian Social Democracy Party (PSDB)
* Nadine Anflor – Member of the Legislative Assembly of Rio Grande do Sul (2023–present).
Liberal Party (PL)
* Comandante Nádia – Councillor of Porto Alegre (2017–present).
* Luciano Zucco – Member of the Chamber of Deputies from Rio Grande do Sul (2023–present) and Member of the Legislative Assembly of Rio Grande do Sul (2019–2023).
Both Nádia and Zucco's candidacies were automatically withdrawn by the Liberal Party of Porto Alegre when the party nominated Betina Worm as the running mate of Sebastião Melo.
* State Deputy Luciana Genro (PSOL) from Santa Maria
* Councillor Comandante Nádia (PL) from Porto Alegre
* Federal Deputy Luciano Zucco (PL) from Alegrete

## Outgoing Municipal Chamber

The result of the last municipal election and the current situation in the Municipal Chamber is given below:
| Affiliation | Affiliation | Members | Members | +/– |
| Affiliation | Affiliation | Elected | Current | +/– |
| | MDB | 3 | 4 | 1 |
| | PT | 4 | 4 | |
| | PSOL | 4 | 4 | |
| | PL | 1 | 3 | 2 |
| | Republicanos | 2 | 3 | 1 |
| | PSDB | 4 | 3 | 1 |
| | PODE | 0 | 2 | 2 |
| | PCdoB | 2 | 2 | |
| | PDT | 2 | 2 | |
| | PP | 2 | 2 | |
| | NOVO | 2 | 2 | |
| | UNIÃO | didn't exist | 1 | 1 |
| | PSB | 1 | 1 | |
| | Cidadania | 1 | 1 | |
| | PSD | 1 | 1 | |
| | Solidarity | 1 | 1 | |
| | PRTB | 1 | 0 | 1 |
| | PSL | 1 | extinct party | 1 |
| | DEM | 1 | extinct party | 1 |
| | PTB | 3 | extinct party | 3 |
| Total | Total | 36 | 36 | 36 |

## Opinion polls
### First round

2024
| 17 July | 17 July | 17 July | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). | The Liberal Party (PL) nominates Betina Worm as the running mate of Sebastião Melo (MDB). |
| Pollster/client(s) | Date(s) conducted | Sample size | Melo MDB | Rosário PT | Ortiz Cidadania | Nádia PL | J. Brizola PDT | Camozzato NOVO | Duarte UNIÃO | Sanguiné PSTU | Others | Abst. Undec. | Lead |
| Futura Inteligência | 17–21 June | 800 | 28% | 29.2% | 5.8% | — | 10% | 2.9% | 5.1% | — | 3.1% | 15.7% | 1.2% |
| Futura Inteligência | 17–21 June | 800 | 27.2% | 29.6% | 8.9% | — | — | 4.2% | 6.5% | — | 5.9% | 17.7% | 2.4% |
| Futura Inteligência | 17–21 June | 800 | 25.3% | 28.1% | — | 9.6% | 10.1% | — | 7.9% | — | 4% | 15% | 2.8% |
| Veritá | 12–16 June | 1,002 | 25.3% | 15.4% | 3.8% | — | 4% | — | 1.4% | — | 30.6% | 19.5% | 6.2% |
| Atlas/CNN | 9–14 June | 1,798 | 24.8% | 30.2% | 9.1% | 8.5% | 8.2% | 6.7% | 1.3% | 1.3% | — | 9.9% | 5.4% |
| Atlas/CNN | 9–14 June | 1,798 | 28.3% | 31.8% | — | — | 11.7% | 9.1% | 1.9% | 1.5% | — | 15.7% | 3.5% |
| 29 April | 29 April | 29 April | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. | A severe flood hits the state of Rio Grande do Sul and the city of Porto Alegre, resulting in the worst environmental disaster in the city's history. |
| 1 April | 1 April | 1 April | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. | Nadine Anflor announces the withdrawal of her potential candidacy for mayor of Porto Alegre. |
| Pollster/client(s) | Date(s) conducted | Sample size | Melo MDB | Rosário PT | Ortiz Cidadania | Nádia PL | J. Brizola PDT | Camozzato NOVO | Duarte UNIÃO | Nadine PSDB | Others | Abst. Undec. | Lead |
| RealTime Big Data | 29–30 March | 1,000 | 40% | 22% | 5% | 4% | 5% | — | 2% | 2% | 7% | 15% | 18% |
| RealTime Big Data | 29–30 March | 1,000 | 41% | 22% | — | 5% | 6% | — | 2% | 2% | 7% | 15% | 19% |
| RealTime Big Data | 29–30 March | 1,000 | 41% | 26% | 6% | — | — | — | 2% | — | 7% | 18% | 15% |
| RealTime Big Data | 29–30 March | 1,000 | 42% | 26% | — | — | 8% | — | 3% | 3% | — | 18% | 16% |
| 2–22 March | 2–22 March | 2–22 March | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). | Luciana Genro withdraws her potential candidacy and decides to support Maria do Rosário (PT). Felipe Camozzato is announced as a potential candidate by the New Party (NOVO). Comandante Nádia leaves Progressistas (PP) in order to join the Liberal Party (PL). |
2023
| Pollster/client(s) | Date(s) conducted | Sample size | Melo MDB | Rosário PT | Genro PSOL | J. Brizola PDT | Duarte UNIÃO | Nadine PSDB | Pimentel NOVO | Cunha PDT | d'Ávila PCdoB | Others | Abst. Undec. | Lead |
| Futura Inteligência | 22–27 November | 1,024 | 33.5% | — | — | 4.7% | — | — | 0.6% | — | 13.1% | 34.2% | 14.1% | 20.4% |
| Futura Inteligência | 22–27 November | 1,024 | 36.1% | 9.2% | 6.6% | — | 9.2% | 2.1% | 0.3% | 8.1% | 14% | — | 14.4% | 22.1% |
| Futura Inteligência | 22–27 November | 1,024 | 43.6% | — | — | 11.4% | 10.7% | — | 0.5% | — | — | 11.3% | 22.6% | 32.2% |
| Futura Inteligência | 22–27 November | 1,024 | 40.5% | — | — | — | 10.4% | — | 0.8% | 8.8% | 17.6% | 6.1% | 15.9% | 22.9% |
| Instituto Ver | 28 October–3 November | 1,000 | 33% | 27% | — | 7% | 2% | 1% | 1% | — | — | — | 30% | 6% |
| Instituto Ver | 28 October–3 November | 1,000 | 30% | 24% | 7% | 7% | 2% | 1% | 1% | — | — | 2% | 28% | 6% |
| Instituto Ver | 28 October–3 November | 1,000 | 31% | 24% | — | 8% | 2% | 1% | 1% | — | — | 6% | 28% | 7% |
| Instituto Ver | 28 October–3 November | 1,000 | 38% | — | — | 9% | 3% | 1% | 2% | — | — | 13% | 34% | 25% |
| Instituto Ver | 28 October–3 November | 1,000 | 36% | — | 7% | 8% | 2% | 1% | 2% | — | — | 13% | 31% | 25% |
| Instituto Ver | 28 October–3 November | 1,000 | 34% | 23% | 7% | — | 2% | 1% | 2% | — | — | 2% | 28% | 11% |
| Instituto Methodus | November | 600 | 52% | — | — | 13% | 5% | 3% | 3% | — | — | — | 24% | 39% |
| Instituto Methodus | November | 600 | 48% | — | 17% | — | 5% | 3% | 3% | 4% | — | — | 20% | 31% |
| Instituto Methodus | November | 600 | 48% | 25% | — | — | 5% | 3% | 2% | — | — | — | 17% | 23% |
| Instituto Methodus | November | 600 | 46% | — | — | — | 5% | 4% | 1% | — | 27% | — | 17% | 19% |
| November | November | November | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). | Maria do Rosário is announced as a potential candidate by the Workers' Party (PT). |
| Pollster/client(s) | Date(s) conducted | Sample size | Melo MDB | Pretto PT | Lorenzoni PL | J. Brizola PDT | Fortunati UNIÃO | Marchezan Jr. PSDB | Ruas PSOL | Nádia PP | Camozzato NOVO | Others | Abst. Undec. | Lead |
| Instituto Methodus | 3–7 April | 600 | 35% | 14% | 11% | — | 2% | — | 1% | 1% | — | 16.7% | 18% | 20% |
| Paraná Pesquisas | 22–26 March | 806 | 31.8% | 14.4% | 8.3% | 6.8% | 6.2% | 6.1% | 5.6% | 3.5% | 2.4% | 3.6% | 11.4% | 17.4% |
| Paraná Pesquisas | 22–26 March | 806 | 36.7% | 16.5% | — | 7.9% | — | 8.2% | 6.3% | 6.2% | 3.1% | — | 15% | 20.2% |
| Paraná Pesquisas | 22–26 March | 806 | 36.2% | 16.4% | 10% | 8.8% | — | — | 6.2% | — | 3% | 4% | 15.4% | 19.8% |

### Second round

These are the hypothetical scenarios of a second round.
Sebastião Melo and Maria do Rosário
| Pollster/client(s) | Date(s) conducted | Sample size | Melo MDB | Rosário PT | Abst. Undec. | Lead |
| Futura Inteligência | 17–21 June 2024 | 800 | 47.2% | 39.5% | 13.3% | 7.7% |
| Atlas/CNN | 9–14 June 2024 | 1,798 | 43.7% | 38.2% | 18.1% | 5.5% |
| RealTime Big Data | 29–30 March 2024 | 1,000 | 53% | 33% | 14% | 20% |
Sebastião Melo and Luciana Genro
| Pollster/client(s) | Date(s) conducted | Sample size | Melo MDB | Genro PSOL | Abst. Undec. | Lead |
| RealTime Big Data | 29–30 March 2024 | 1,000 | 55% | 29% | 16% | 26% |
Maria do Rosário and Any Ortiz
| Pollster/client(s) | Date(s) conducted | Sample size | Rosário PT | Ortiz Cidadania | Abst. Undec. | Lead |
| Futura Inteligência | 17–21 June 2024 | 800 | 40.7% | 35.1% | 24.2% | 5.6% |

### Rejection of candidates

In some opinion polls, the interviewee can choose more than one alternative (the so-called "multiple rejection"), therefore, the sum of the percentages of all candidates can exceed 100% of the votes in some scenarios.
| Pollster/client(s) | Date(s) conducted | Sample size | Rosário PT | Genro PSOL | d'Ávila PCdoB | Melo MDB | Duarte UNIÃO | Pimentel NOVO | Nadine PSDB | J. Brizola PDT | Could vote in anyone | Others | Abst. Undec. |
| Futura Inteligência | 22–27 November 2023 | 1,024 | 36.5% | 23.2% | 29.6% | 21% | — | — | — | — | — | 31.1% | — |
| Instituto Methodus | November 2023 | 600 | 33% | 30% | 29% | 27% | 14% | 11% | 11% | 10% | 26% | 10% | 3% |

## Results
### Mayor

| Candidate | Candidate | Running mate | Party | First round | First round | Second round | Second round |
| Candidate | Candidate | Running mate | Party | Votes | % | Votes | % |
| | Sebastião Melo (incumbent) | Betina Worm (PL) | Brazilian Democratic Movement | 345,420 | 49.72 | 406,467 | 61.53 |
| | Maria do Rosário | Tamyres Filgueira (PSOL) | Workers' Party | 182,553 | 26.28 | 254,128 | 38.47 |
| | Juliana Brizola | Thiago Duarte (UNIÃO) | Democratic Labour Party | 136,783 | 19.69 | | |
| | Felipe Camozzato | Raqueli Baumbach | New Party | 26,603 | 3.83 | | |
| | Luciano Schafer | Amanda Benedett | Popular Unity | 1,476 | 0.21 | | |
| | Fabiana Sanguiné | Regis Ethur | United Socialist Workers' Party | 1,163 | 0.17 | | |
| | Carlos Alan | João Morsch (DC) | Brazilian Labour Renewal Party | 483 | 0.07 | | |
| | Cesar Pontes | Ulisses Lima | Workers' Cause Party | 204 | 0.03 | | |
| Total | Total | Total | Total | 694,685 | 100.00 | 660,595 | 100.00 |
| Valid votes | Valid votes | Valid votes | Valid votes | 694,685 | 92.49 | 660,595 | 92.44 |
| Invalid votes | Invalid votes | Invalid votes | Invalid votes | 25,012 | 3.33 | 26,811 | 3.75 |
| Blank votes | Blank votes | Blank votes | Blank votes | 31,379 | 4.18 | 27,249 | 3.81 |
| Total votes | Total votes | Total votes | Total votes | 751,076 | 100.00 | 714,655 | 100.00 |
| Registered voters/turnout | Registered voters/turnout | Registered voters/turnout | Registered voters/turnout | 1,096,620 | 68.49 | 1,096,620 | 65.17 |
| | MDB hold | MDB hold | MDB hold | MDB hold | MDB hold | MDB hold | MDB hold |

### Municipal Chamber

| Party or alliance | Party or alliance | Party or alliance | Party or alliance | Votes | % | Seats | +/– |
| | Brazil of Hope | | Workers' Party | 80,771 | 12.04 | 5 | 1 |
| | Brazil of Hope | | Communist Party of Brazil | 17,771 | 2.65 | 2 | |
| | Brazil of Hope | | Green Party | 4,084 | 0.61 | 0 | |
| | Liberal Party | Liberal Party | Liberal Party | 78,451 | 11.69 | 4 | 3 |
| | PSOL REDE Federation | | Socialism and Liberty Party | 77,633 | 11.57 | 5 | 1 |
| | PSOL REDE Federation | | Sustainability Network | 3,066 | 0.46 | 0 | |
| | Brazilian Democratic Movement | Brazilian Democratic Movement | Brazilian Democratic Movement | 67,234 | 10.02 | 3 | |
| | Republicans | Republicans | Republicans | 45,871 | 6.84 | 3 | 1 |
| | PSDB Cidadania Federation | | Brazilian Social Democracy Party | 45,353 | 6.76 | 3 | 1 |
| | PSDB Cidadania Federation | | Cidadania | 17,403 | 2.59 | 1 | |
| | Progressistas | Progressistas | Progressistas | 43,226 | 6.44 | 3 | 1 |
| | New Party | New Party | New Party | 42,896 | 6.39 | 2 | |
| | Podemos | Podemos | Podemos | 42,138 | 6.28 | 2 | 2 |
| | Democratic Labour Party | Democratic Labour Party | Democratic Labour Party | 33,466 | 4.99 | 1 | 1 |
| | Brazil Union | Brazil Union | Brazil Union | 18,560 | 2.77 | 0 | New |
| | Social Democratic Party | Social Democratic Party | Social Democratic Party | 16,914 | 2.52 | 1 | |
| | Solidariedade | Solidariedade | Solidariedade | 15,106 | 2.25 | 0 | 1 |
| | Brazilian Socialist Party | Brazilian Socialist Party | Brazilian Socialist Party | 10,002 | 1.49 | 0 | 1 |
| | Democratic Renewal Party | Democratic Renewal Party | Democratic Renewal Party | 8,864 | 1.32 | 0 | New |
| | Popular Unity | Popular Unity | Popular Unity | 1,607 | 0.24 | 0 | |
| | United Socialist Workers' Party | United Socialist Workers' Party | United Socialist Workers' Party | 633 | 0.09 | 0 | |
| Total | Total | Total | Total | 671,049 | 100.00 | 35 | – |
| Valid votes | Valid votes | Valid votes | Valid votes | 671,049 | 89.35 | | |
| Invalid votes | Invalid votes | Invalid votes | Invalid votes | 29,967 | 3.99 | | |
| Blank votes | Blank votes | Blank votes | Blank votes | 50,060 | 6.67 | | |
| Total votes | Total votes | Total votes | Total votes | 751,076 | 100.00 | | |
| Registered voters/turnout | Registered voters/turnout | Registered voters/turnout | Registered voters/turnout | 1,096,620 | 68.49 | | |