The presidential election, analysed
Lula beat Flávio Bolsonaro by 4,430,191 votes: the gap moved 5.45 points his way from the 1st round to the runoff, 211 municipalities turned to him, and 43 municipalities alone would cover his margin. Below, 12 analyses for students of politics, with the methodology and the data to download.
The count after 17:00
Polls closed at 17:00, Brasília time. The times below, in Brasília time, are those of the site's readings of the TSE's totals through the night, not of each section's release. The runoff's first votes appeared at 17:07; half of the sections were counted by 20:28, 90% by 21:03, and the last one at 23:23.
Lula led first, Flávio Bolsonaro went ahead at 19:45, and Lula took the lead back at 20:25, never to lose it: the lead changed hands 2 times.
The race was called at 21:28. After that, 158,328 more valid votes were counted: 108,970 for Lula and 49,358 for Flávio Bolsonaro.
The busiest half hour was from 20:30 to 21:00: 42 million valid votes, 53.39% of them for Lula.
In the 1st round, the count began at 17:22 and ended at 03:00.
- 50% of sections
- 20:28
- 90% of sections
- 21:03
- All sections
- 23:23
- Votes after the call
- 158 thousand
See each interval's votes
| Time | Sections | Flávio Bolsonaro | Lula | % for Lula in the batch | Counted |
|---|---|---|---|---|---|
| 17:00–17:30 | 1,225 | 142,169 | 193,574 | 57.66% | 0.25% |
| 19:00–19:30 | 22,720 | 2,786,668 | 2,881,590 | 50.84% | 4.80% |
| 19:30–20:00 | 81,457 | 10,278,116 | 9,868,789 | 48.98% | 21.11% |
| 20:00–20:30 | 156,495 | 19,026,507 | 19,534,218 | 50.66% | 52.46% |
| 20:30–21:00 | 169,499 | 19,628,311 | 22,479,641 | 53.39% | 86.41% |
| 21:00–21:30 | 67,238 | 7,917,248 | 9,192,945 | 53.73% | 99.88% |
| 21:30–22:00 | 474 | 37,930 | 85,825 | 69.35% | 99.97% |
| 22:00–22:30 | 115 | 7,301 | 15,702 | 68.26% | 99.99% |
| 22:30–23:00 | 23 | 1,734 | 3,607 | 67.53% | 100.00% |
| 23:00–23:30 | 2 | 57 | 341 | 85.68% | 100.00% |
Who decided the election
Lula won by 4,430,191 votes. The 2,875 municipalities he carried gave him 18 million votes more than Flávio Bolsonaro; Flávio Bolsonaro's 2,695 took back 13 million.
Lula's 43 biggest net municipalities alone add up to more than the final margin. On the other side, it would take Flávio's 71 biggest to match it.
The state capitals gave Lula a net 1,562,067 votes; the other municipalities, 2,839,467; voters abroad, 28,657.
Lula's biggest net votes
- 1São Paulo (SP)+766,431
- 2Salvador (BA)+732,320
- 3Fortaleza (CE)+312,648
- 4Recife (PE)+233,027
- 5Teresina (PI)+178,352
- 6São Luís (MA)+149,874
- 7Rio de Janeiro (RJ)+113,193
- 8Feira de Santana (BA)+103,297
- 9Porto Alegre (RS)+95,329
- 10Belém (PA)+85,434
Flávio's biggest net votes
- 1Curitiba (PR)−277,152
- 2Goiânia (GO)−203,524
- 3Joinville (SC)−172,564
- 4Brasília (DF)−154,318
- 5Manaus (AM)−137,474
- 6Londrina (PR)−120,488
- 7Campo Grande (MS)−113,746
- 8Blumenau (SC)−101,513
- 9Boa Vista (RR)−97,005
- 10Caxias do Sul (RS)−90,713
Lula's net votes by state
- BABahia+3,876,497
- PEPernambuco+2,284,959
- CECeará+2,216,646
- MAMaranhão+1,578,260
- PIPiauí+1,128,130
- PBParaíba+928,849
- RNRio Grande do Norte+676,187
- SESergipe+555,687
- PAPará+490,509
- ALAlagoas+408,481
- AMAmazonas+170,538
- MGMinas Gerais+109,313
- Abr.Abroad+28,657
- APAmapá+24,294
- TOTocantins−24,954
- RRRoraima−136,170
- ACAcre−143,202
- DFFederal District−154,318
- ESEspírito Santo−292,539
- MSMato Grosso do Sul−298,919
- RORondônia−379,936
- RJRio de Janeiro−603,640
- MTMato Grosso−656,932
- GOGoiás−759,779
- RSRio Grande do Sul−1,049,826
- PRParaná−1,724,940
- SCSanta Catarina−1,801,757
- SPSão Paulo−2,019,904
State by state, against Brazil
From the 1st round to the runoff, the gap between the two moved 5.45 points toward Lula in Brazil. It moved further than in the country in Rio de Janeiro (+1.95), Alagoas (+1.81), Sergipe (+1.49); less in Rondônia (−3.11), Acre (−2.76), Santa Catarina (−2.68).
Against the 2022 runoff, Brazil moved 1.78 points toward the PT. It went furthest in Federal District (+7.28), Amapá (+6.70), Acre (+5.68). Against 2022, each state's difference from Brazil is also how far it missed a "uniform swing": the forecast that every place would move as the country did.
Brazil: the gap moved 5.45 points toward Lula. Each bar is how much further (toward Lula) or shorter than the country the state moved.
- RJRio de Janeiro+1.95
- ALAlagoas+1.81
- SESergipe+1.49
- PBParaíba+1.23
- RNRio Grande do Norte+1.01
- SPSão Paulo+0.58
- MAMaranhão+0.54
- PEPernambuco+0.53
- CECeará+0.39
- MGMinas Gerais+0.32
- APAmapá+0.27
- BABahia−0.47
- PIPiauí−0.59
- AMAmazonas−0.64
- MSMato Grosso do Sul−0.73
- DFFederal District−0.81
- PAPará−0.82
- ESEspírito Santo−1.17
- TOTocantins−1.17
- RSRio Grande do Sul−1.22
- MTMato Grosso−1.60
- PRParaná−1.90
- RRRoraima−2.17
- GOGoiás−2.23
- SCSanta Catarina−2.68
- ACAcre−2.76
- RORondônia−3.11
See the table
| State | Since the 1st round | Against Brazil | Since 2022 | Against Brazil |
|---|---|---|---|---|
| Rio de Janeiro | +7.40 | +1.95 | +6.86 | +5.08 |
| Alagoas | +7.26 | +1.81 | +4.18 | +2.40 |
| Sergipe | +6.94 | +1.49 | +4.64 | +2.86 |
| Paraíba | +6.68 | +1.23 | +1.68 | −0.10 |
| Rio Grande do Norte | +6.46 | +1.01 | +1.24 | −0.54 |
| São Paulo | +6.03 | +0.58 | +2.78 | +1.00 |
| Maranhão | +5.99 | +0.54 | −3.20 | −4.98 |
| Pernambuco | +5.98 | +0.53 | +4.54 | +2.76 |
| Ceará | +5.84 | +0.39 | −2.08 | −3.86 |
| Minas Gerais | +5.77 | +0.32 | +0.46 | −1.32 |
| Amapá | +5.72 | +0.27 | +8.48 | +6.70 |
| Bahia | +4.98 | −0.47 | −1.62 | −3.40 |
| Piauí | +4.86 | −0.59 | −1.96 | −3.74 |
| Amazonas | +4.81 | −0.64 | +5.84 | +4.06 |
| Mato Grosso do Sul | +4.72 | −0.73 | −0.22 | −2.00 |
| Federal District | +4.64 | −0.81 | +9.06 | +7.28 |
| Pará | +4.63 | −0.82 | +0.54 | −1.24 |
| Espírito Santo | +4.28 | −1.17 | +3.34 | +1.56 |
| Tocantins | +4.28 | −1.17 | −5.46 | −7.24 |
| Rio Grande do Sul | +4.23 | −1.22 | −2.98 | −4.76 |
| Mato Grosso | +3.85 | −1.60 | −1.96 | −3.74 |
| Paraná | +3.55 | −1.90 | −0.36 | −2.14 |
| Roraima | +3.28 | −2.17 | +7.24 | +5.46 |
| Goiás | +3.22 | −2.23 | −1.90 | −3.68 |
| Santa Catarina | +2.77 | −2.68 | −0.30 | −2.08 |
| Acre | +2.69 | −2.76 | +7.46 | +5.68 |
| Rondônia | +2.34 | −3.11 | +2.10 | +0.32 |
Municipality by municipality: before and after
Each dot is a municipality: across, the earlier vote (the PT in the 2022 runoff, or Lula between the two finalists in the 1st round); up, Lula in the 2026 runoff, between the two. On the diagonal, nothing changed; on the line parallel to it, the municipality moved exactly as Brazil did.
Against 2022, 692 municipalities ended above Brazil's line (they moved more toward Lula than the country) and 4,878 below. The correlation between the two votes, weighted by electorate, is 0.985: the 2026 map is largely 2022's.
Against the 1st round, 2,083 ended above and 3,488 below (correlation 0.999).
The municipalities that turned
From the 1st round to the runoff, 212 municipalities changed winner between the two finalists: 211 turned to Lula (11 million voters) and 1 to Flávio Bolsonaro (3,080 voters).
Against the 2022 runoff, 31 municipalities went from the PL to the PT (7.2 million voters) and 278 from the PT to the PL (2.2 million voters); 5,258 kept their side.
The largest that turned to Lula since the 1st round
- 1Rio de Janeiro (RJ)5 million voters
- 2Osasco (SP)584 thousand voters
- 3Ananindeua (PA)358 thousand voters
- 4Macapá (AP)322 thousand voters
- 5São Vicente (SP)256 thousand voters
- 6Ribeirão das Neves (MG)219 thousand voters
- 7Cotia (SP)194 thousand voters
- 8Araraquara (SP)170 thousand voters
The largest that went from the PT to the PL since 2022
- 1Teixeira de Freitas (BA)105 thousand voters
- 2Balsas (MA)71 thousand voters
- 3Tailândia (PA)56 thousand voters
- 4Porto Nacional (TO)47 thousand voters
- 5Itamaraju (BA)46 thousand voters
- 6Alenquer (PA)46 thousand voters
- 7São Gabriel (RS)44 thousand voters
- 8Monte Carmelo (MG)36 thousand voters
See the table
| Municipality | State | Turned to | Voters | Since |
|---|---|---|---|---|
| Rio de Janeiro | RJ | Lula | 4,952,423 | 1st round |
| Osasco | SP | Lula | 583,999 | 1st round |
| Ananindeua | PA | Lula | 358,272 | 1st round |
| Macapá | AP | Lula | 321,520 | 1st round |
| São Vicente | SP | Lula | 256,038 | 1st round |
| Uirapuru | GO | Flávio Bolsonaro | 3,080 | 1st round |
| Rio de Janeiro | RJ | PT | 4,952,423 | 2022 |
| Ananindeua | PA | PT | 358,272 | 2022 |
| Macapá | AP | PT | 321,520 | 2022 |
| São Vicente | SP | PT | 256,038 | 2022 |
| Santa Luzia | MG | PT | 164,661 | 2022 |
| Teixeira de Freitas | BA | PL | 105,057 | 2022 |
| Balsas | MA | PL | 71,241 | 2022 |
| Tailândia | PA | PL | 55,599 | 2022 |
| Porto Nacional | TO | PL | 47,076 | 2022 |
| Itamaraju | BA | PL | 46,000 | 2022 |
By municipality size, capitals and regions
Lula took 54.22% in municipalities of up to 10,000 inhabitants and 53.25% in those over 1 million. In the state capitals, 52.75%; in the other municipalities, 51.49%.
From the 1st round to the runoff, the gap moved 3.88 points toward Lula in the smallest municipalities and 6.14 points in the largest. Each group is its municipalities' votes added up, not an average of them. Population: IBGE (5 bands).
| Group | Voters | Lula | Since the 1st round | Since 2022 | Abstention |
|---|---|---|---|---|---|
| Up to 10,000 inhabitants2,495 municipalities | 12 million | 54.22% | +3.88 | −5.52 | 19.39% |
| 10,000 to 50,0002,419 municipalities | 41 million | 56.50% | +4.82 | −2.24 | 19.69% |
| 50,000 to 200,000505 municipalities | 34 million | 49.39% | +5.54 | +1.44 | 18.86% |
| 200,000 to 1 million137 municipalities | 39 million | 47.00% | +5.93 | +4.42 | 18.31% |
| Over 1 million15 municipalities | 32 million | 53.25% | +6.14 | +6.08 | 18.91% |
| State capitals27 municipalities | 36 million | 52.75% | +6.11 | +6.12 | 18.61% |
| Other municipalities5,544 municipalities | 122 million | 51.49% | +5.24 | +0.44 | 19.10% |
| North450 municipalities | 13 million | 50.01% | +4.52 | +2.08 | 21.25% |
| Northeast1,794 municipalities | 44 million | 69.37% | +5.82 | +0.06 | 16.49% |
| Center-West468 municipalities | 12 million | 39.99% | +3.87 | +0.40 | 20.05% |
| Southeast1,668 municipalities | 66 million | 47.24% | +6.16 | +3.00 | 20.27% |
| South1,191 municipalities | 23 million | 37.42% | +3.64 | −1.48 | 18.19% |
| Abroad186 cities | 917 thousand | 53.86% | +3.64 | +5.16 | 58.37% |
The map by the size of the electorate
On an ordinary map, each municipality takes up the area of its territory, and the vast municipalities of the North and Centre-West seem to weigh more than the big cities. Here each municipality is a circle with an area proportional to its electorate, near where it is on the map.
Lula won in 2,875 municipalities, with 49.99% of the electorate; Flávio Bolsonaro, in 2,695, with 50.01%.
Polarization: 2022 and 2026
In 2026, 52.6% of the electorate lived in municipalities decided by 20 points or more (60% to 40%), against 52.8% in 2022; in municipalities won 70% to 30% or more, 21.3% (2022: 22.0%).
The average distance from a tie, weighted by electorate, was 24.53 points in 2026 and 25.27 points in 2022. Both runoffs set the same parties against each other, PT and PL: the comparison is between elections of the same kind, in the 5,570 municipalities that voted in both.
- Electorate in municipalities won 60–40 or more
- 52.6% in 2026 · 52.8% in 2022
- Electorate in municipalities won 70–30 or more
- 21.3% in 2026 · 22.0% in 2022
- Average distance from a tie
- 24.53 points in 2026 · 25.27 in 2022
See the table
| Indicator | 2022 | 2026 |
|---|---|---|
| Electorate in municipalities decided by 20 points or more | 52.8% | 52.6% |
| Electorate in municipalities decided by 40 points or more | 22.0% | 21.3% |
| Average distance from a tie (points, weighted by electorate) | 25.27 | 24.53 |
| Standard deviation of the lead across municipalities (points) | 31.44 | 30.27 |
| Municipalities won by the PT | 3,123 | 2,875 |
| Municipalities won by the PL | 2,444 | 2,694 |
Where the 1st round's votes went
Estimate: of Escritor Augusto Cury's 3.4 million voters, 52% would have voted for Lula, 30% for Flávio, 15% blank or null and 4% didn't vote; of Renan Santos's 2.7 million voters, 68% would have voted for Lula, 25% for Flávio, 5% blank or null and 1% didn't vote; of Ronaldo Caiado's 2.6 million voters, 27% would have voted for Lula, 55% for Flávio, 13% blank or null and 6% didn't vote.
Of those who voted blank or null in the 1st round, 61% would have chosen Lula in the runoff and 0% Flávio. Of those who didn't vote, 86% didn't vote in the runoff either; 8% turned out for Lula and 4% for Flávio.
This is a statistical estimate, not a count: the vote is secret, and the TSE publishes only each place's totals. The ecological regression (Goodman) assumes that, within each state, a candidate's voters split the same way in every municipality; in brackets, the 90% interval from 200 resamples of the municipalities. The fit explains 88% to 100% of the variation between municipalities.
| In the 1st round | Flávio Bolsonaro | Lula | Blank and null | Didn't vote |
|---|---|---|---|---|
| Flávio Bolsonaro | 97.9%97.2–98.5 | 0.8%0.7–1.0 | 0.2%0.1–0.4 | 1.1%0.4–1.7 |
| Lula | 0.6%0.5–0.6 | 97.9%97.4–98.2 | 0.1%0.1–0.2 | 1.4%1.2–1.8 |
| Escritor Augusto Cury | 29.5%21.7–35.4 | 51.6%44.2–62.9 | 15.3%10.1–19.5 | 3.7%0.8–8.8 |
| Renan Santos | 25.4%19.1–33.1 | 68.4%55.3–73.8 | 5.0%3.7–12.0 | 1.1%0.5–2.6 |
| Ronaldo Caiado | 54.7%46.9–58.2 | 26.6%22.9–35.8 | 12.8%9.2–15.6 | 5.9%3.6–10.5 |
| Other 7 candidates | 37.9%28.6–64.8 | 47.1%20.7–65.4 | 14.6%1.7–20.7 | 0.4%0.4–6.8 |
| Blank and null | 0.4%0.4–3.1 | 61.1%56.0–64.1 | 36.7%33.2–38.6 | 1.8%1.2–4.7 |
| Didn't vote | 3.8%2.8–4.6 | 8.4%7.6–9.7 | 2.0%1.8–2.5 | 85.8%84.1–87.0 |
Abstention and blank and null votes
Abstention was 19.22% in the runoff (30,509,005 voters), against 21.08% in the 1st round and 20.58% in the 2022 runoff. Blank and null votes were 3.24% of the votes cast, against 4.77% in the 1st round and 4.59% in 2022.
Among municipalities with 10,000 voters or more, abstention rose most in Marechal Thaumaturgo (AC), from 21.39% to 40.65%; blank and null votes, in Lagoa da Confusão (TO), from 1.92% to 4.07%.
Abstention is measured as the TSE measures it: over turnout plus abstention. Blank and null votes, over the votes cast.
Where abstention rose most
- 1Marechal Thaumaturgo (AC)21.39 → 40.65%
- 2Tartarugalzinho (AP)18.91 → 34.56%
- 3Mazagão (AP)14.51 → 29.79%
- 4Caracaraí (RR)18.40 → 31.71%
- 5Primeira Cruz (MA)17.01 → 29.65%
- 6Sena Madureira (AC)20.10 → 32.33%
- 7Rodrigues Alves (AC)16.14 → 28.19%
- 8Tarauacá (AC)24.58 → 36.25%
Where abstention fell most
- 1São João (PE)21.96 → 14.02%
- 2Amambai (MS)30.60 → 22.68%
- 3Conceição do Jacuípe (BA)21.48 → 14.87%
- 4Caetés (PE)25.23 → 19.14%
- 5Missão Velha (CE)19.93 → 13.92%
- 6Valparaíso (SP)29.54 → 23.71%
- 7Divino (MG)27.37 → 21.60%
- 8Lajedo (PE)19.44 → 13.77%
Where blank and null votes rose most
- 1Lagoa da Confusão (TO)1.92 → 4.07%
- 2Jutaí (AM)2.93 → 5.08%
- 3Tapauá (AM)2.35 → 4.37%
- 4Marechal Thaumaturgo (AC)2.93 → 4.65%
- 5Ipixuna (AM)3.78 → 5.47%
- 6Rodrigues Alves (AC)2.81 → 4.47%
- 7Lábrea (AM)2.03 → 3.63%
- 8Tocantinópolis (TO)3.58 → 5.11%
See the table
| Place | Abstention, 1st round | Abstention, runoff | Abstention, 2022 | Blank and null, 1st round | Blank and null, runoff | Blank and null, 2022 |
|---|---|---|---|---|---|---|
| Brazil | 21.08% | 19.22% | 20.58% | 4.77% | 3.24% | 4.59% |
| North | 19.43% | 21.25% | 22.94% | 3.44% | 2.61% | 3.13% |
| Northeast | 18.39% | 16.49% | 19.31% | 5.08% | 3.00% | 4.95% |
| Center-West | 21.70% | 20.05% | 20.64% | 3.32% | 2.68% | 3.35% |
| Southeast | 22.70% | 20.27% | 21.25% | 5.46% | 3.81% | 5.15% |
| South | 20.46% | 18.19% | 18.60% | 3.76% | 2.76% | 3.72% |
| Acre | 20.43% | 26.08% | 28.41% | 3.94% | 4.72% | 2.72% |
| Alagoas | 20.63% | 20.08% | 23.25% | 6.17% | 2.81% | 6.74% |
| Amazonas | 20.16% | 21.67% | 21.88% | 2.85% | 3.24% | 4.89% |
| Amapá | 17.41% | 25.47% | 27.17% | 2.46% | 1.94% | 2.55% |
| Bahia | 19.97% | 16.71% | 20.48% | 5.45% | 3.48% | 5.76% |
| Ceará | 15.52% | 13.89% | 17.14% | 4.95% | 2.81% | 3.66% |
| Federal District | 18.90% | 17.30% | 16.72% | 3.20% | 3.40% | 3.69% |
| Espírito Santo | 21.37% | 19.47% | 20.53% | 4.30% | 4.68% | 4.88% |
| Goiás | 21.83% | 20.34% | 20.74% | 3.62% | 2.88% | 3.24% |
| Maranhão | 19.73% | 20.36% | 23.51% | 3.60% | 2.17% | 2.69% |
| Minas Gerais | 22.81% | 20.33% | 20.99% | 5.23% | 3.46% | 4.15% |
| Mato Grosso do Sul | 23.87% | 21.24% | 22.35% | 3.31% | 2.36% | 4.50% |
| Mato Grosso | 22.20% | 20.95% | 22.53% | 2.87% | 1.92% | 2.28% |
| Pará | 19.10% | 20.32% | 22.65% | 4.01% | 1.99% | 2.53% |
| Paraíba | 17.38% | 15.54% | 16.74% | 6.34% | 3.07% | 6.59% |
| Pernambuco | 18.17% | 15.18% | 17.31% | 5.25% | 2.88% | 6.22% |
| Piauí | 17.15% | 17.19% | 18.74% | 4.22% | 2.68% | 3.36% |
| Paraná | 20.57% | 18.04% | 18.63% | 3.75% | 2.85% | 3.40% |
| Rio de Janeiro | 23.32% | 21.62% | 22.24% | 4.97% | 3.40% | 4.15% |
| Rio Grande do Norte | 18.38% | 16.06% | 17.44% | 4.57% | 3.66% | 3.35% |
| Rondônia | 21.71% | 21.92% | 24.68% | 2.32% | 1.99% | 3.28% |
| Roraima | 17.12% | 23.15% | 21.92% | 2.17% | 1.76% | 1.96% |
| Rio Grande do Sul | 21.35% | 19.16% | 19.31% | 4.18% | 2.77% | 4.41% |
| Santa Catarina | 18.95% | 16.96% | 17.42% | 3.17% | 2.60% | 3.15% |
| Sergipe | 17.30% | 15.71% | 18.89% | 5.20% | 3.02% | 5.27% |
| São Paulo | 22.54% | 19.81% | 21.06% | 5.86% | 4.04% | 6.00% |
| Tocantins | 18.34% | 19.23% | 20.38% | 3.60% | 4.60% | 2.87% |
| Abroad | 62.71% | 58.37% | 55.41% | 3.18% | 2.57% | 3.86% |
President and governor on one ballot
In 6 states voters chose a president and a governor in the same runoff. In each municipality, the two votes move together where the correlation is close to 1 (or to −1, when the governor candidate compared is on the other side) and are independent near 0.
Acre (estimate): 75% of Lula's voters and 57% of Flávio's would have voted for Mailza Assis (PP), who was elected.
Amazonas (estimate): 96% of Lula's voters and 2% of Flávio's would have voted for Omar Aziz (PSD), who was elected.
Espírito Santo (estimate): 14% of Lula's voters and 78% of Flávio's would have voted for Lorenzo Pazolini (Republicanos), who was elected.
Rio Grande do Norte (estimate): 71% of Lula's voters and 0% of Flávio's would have voted for Cadu de Lula (PT), who was elected.
Tocantins (estimate): 49% of Lula's voters and 65% of Flávio's would have voted for Vicentinho Júnior (PSDB), who was elected.
Federal District is a single municipality: there's no way to estimate the split ticket from its totals.
Acre: Mailza Assis (PP), elected, against Alan Rick (Republicanos). Correlation across municipalities: −0.17.
Municipalities by pair of winners
Estimate: how each presidential voter voted for governor
- In brackets, the 90% interval. With 22 municipalities, the estimate is imprecise.
- Who voted for Lula for president (145 thousand voters)Mailza Assis 75% (51–98) · Alan Rick 7% (0–33) · Blank or null 13% (1–15) · Didn't vote 5% (0–14)
- Who voted for Flávio for president (288 thousand voters)Mailza Assis 57% (44–68) · Alan Rick 34% (23–46) · Blank or null 8% (6–10)
See the table
| State | Elected governor | Correlation | Lula's voters who voted for the winner | Flávio's voters who voted for the winner |
|---|---|---|---|---|
| Acre | Mailza Assis (PP) | −0.17 | 75.1% (51.2–98.5) | 57.1% (44.5–67.7) |
| Amazonas | Omar Aziz (PSD) | −0.96 | 96.1% (93.3–98.8) | 1.8% (0.4–23.4) |
| Federal District | Celina Leão (PP) | — | — | — |
| Espírito Santo | Lorenzo Pazolini (Republicanos) | 0.75 | 14.3% (2.1–26.1) | 78.1% (69.1–86.5) |
| Rio Grande do Norte | Cadu de Lula (PT) | −0.72 | 71.3% (65.7–76.7) | 0.0% (0.0–7.0) |
| Tocantins | Vicentinho Júnior (PSDB) | 0.25 | 48.5% (40.8–58.6) | 65.0% (59.2–73.1) |
Inside the cities: the electoral zones
190 municipalities have more than one electoral zone, and in the biggest cities they voted very differently.
Among the state capitals, the widest gap was in Rio de Janeiro: 60.44 points between zone 16 (Laranjeiras), where Lula had the biggest lead, and zone 9 (Recreio).
São Paulo: 9.1 million voters in 57 zones; 51.08 points between the zone most for Lula and the one most for Flávio.
- 372ª Piraporinha+34.02
- 371ª Grajaú+33.82
- 1ª Bela Vista+33.32
- 20ª Valo Velho+32.74
- 404ª Cidade Tiradentes+32.36
- 381ª Parelheiros+31.64
- 373ª Capão Redondo+27.38
- 375ª São Mateus+22.66
- 353ª Guaianases+22.34
- 405ª Conjunto José Bonifácio+21.86
- 376ª Brasilândia+21.68
- 328ª Campo Limpo+21.64
- 408ª Jardim São Luís+21.46
- 418ª Pedreira+20.80
- 389ª Perus+20.14
- 403ª Jaraguá+18.40
- 280ª Capela do Socorro+17.64
- 351ª Cidade Ademar+17.50
- 374ª Rio Pequeno+17.44
- 352ª Itaim Paulista+17.40
- 397ª Jardim Helena+17.00
- 320ª Jabaquara+16.18
- 251ª Pinheiros+15.20
- 421ª Teotônio Vilela+13.18
- 248ª Itaquera+12.72
- 2ª Perdizes+12.50
- 3ª Santa Ifigênia+11.98
- 326ª Ermelino Matarazzo+11.02
- 247ª São Miguel Paulista+10.88
- 417ª Parque do Carmo+9.76
- 413ª Cursino+8.00
- 260ª Ipiranga+7.78
- 327ª Nossa Senhora do Ó+7.24
- 392ª Ponte Rasa+6.90
- 6ª Vila Mariana+6.32
- 350ª Sapopemba+5.94
- 346ª Morumbi+5.28
- 390ª Cangaíba+4.00
- 255ª Casa Verde+3.42
- 422ª Lauzane Paulista+3.32
- 349ª Jaçanã+3.02
- 259ª Saúde+2.72
- 325ª Pirituba+0.30
- 347ª Vila Matilde−0.26
- 256ª Tucuruvi−1.36
- 250ª Lapa−1.78
- 252ª Penha de França−2.40
- 420ª Vila Sabrina−3.76
- 257ª Vila Prudente−6.82
- 254ª Vila Maria−7.30
- 246ª Santo Amaro−8.36
- 348ª Vila Formosa−9.72
- 5ª Jardim Paulista−10.18
- 249ª Santana−12.16
- 4ª Moóca−14.36
- 258ª Indianópolis−15.76
- 253ª Tatuapé−17.06
Positive: in Lula's favour; negative: in Flávio's. In points of the valid vote. Tap a zone to open it on the map.
See the table
| City | Zones | Zone most for Lula | Zone most for Flávio | Gap (points) |
|---|---|---|---|---|
| Rio de Janeiro (RJ) | 49 | zone 16 (Laranjeiras): +39.96 | zone 9 (Recreio): −20.48 | 60.44 |
| São Paulo (SP) | 57 | zone 372 (Piraporinha): +34.02 | zone 253 (Tatuapé): −17.06 | 51.08 |
| Salvador (BA) | 19 | zone 3 (Fazenda Grande do Retiro): +56.50 | zone 13 (Pituba): +23.22 | 33.28 |
| Porto Alegre (RS) | 10 | zone 159 (Lomba do Pinheiro): +23.98 | zone 111 (Passo d'Areia): −7.60 | 31.58 |
| Brasília (DF) | 19 | zone 14 (Asa Norte): +12.66 | zone 19 (Taguatinga Norte): −18.90 | 31.56 |
| São Luís (MA) | 6 | zone 1 (Anjo da Guarda): +38.18 | zone 76 (Turu): +8.02 | 30.16 |
| Recife (PE) | 11 | zone 4 (Santo Amaro): +32.92 | zone 149 (Boa Viagem): +9.76 | 23.16 |
| Fortaleza (CE) | 17 | zone 82 (Monte Castelo): +27.16 | zone 3 (Aldeota): +5.92 | 21.24 |
| Campo Grande (MS) | 6 | zone 53 (Jardim Aero Rancho): −14.04 | zone 36 (Centro): −33.62 | 19.58 |
| Vitória (ES) | 2 | zone 1 (Centro): +6.34 | zone 52 (Jardim Camburi): −12.56 | 18.90 |
| Florianópolis (SC) | 3 | zone 13 (Trindade): +8.80 | zone 100 (Ingleses): −10.06 | 18.86 |
| Belém (PA) | 10 | zone 29 (Guamá): +19.54 | zone 98 (Marambaia): +1.52 | 18.02 |
| Curitiba (PR) | 10 | zone 177 (Água Verde): −15.04 | zone 178 (Santa Felicidade): −31.78 | 16.74 |
| Manaus (AM) | 13 | zone 68 (Jorge Teixeira): −5.20 | zone 2 (Parque 10 de Novembro): −20.50 | 15.30 |
| Belo Horizonte (MG) | 18 | zone 28 (Vera Cruz): +5.68 | zone 34 (Cidade Jardim): −9.54 | 15.22 |
| Cuiabá (MT) | 4 | zone 55 (Pedra 90): −14.58 | zone 1 (Jardim Santa Isabel): −29.10 | 14.52 |
| Porto Velho (RO) | 4 | zone 21 (Juscelino Kubitschek): −16.28 | zone 6 (Eletronorte): −30.42 | 14.14 |
| Goiânia (GO) | 9 | zone 146 (Vila Itatiaia): −16.16 | zone 136 (Jardim Vila Boa): −30.10 | 13.94 |
| Natal (RN) | 5 | zone 69 (Lagoa Azul): +17.28 | zone 3 (Lagoa Nova): +5.72 | 11.56 |
| Teresina (PI) | 5 | zone 1 (Mocambinho): +42.30 | zone 98 (Piçarreira I): +32.34 | 9.96 |
| Aracaju (SE) | 3 | zone 1 (Santos Dumont): +27.82 | zone 2 (Grageru): +18.46 | 9.36 |
| Maceió (AL) | 5 | zone 3 (Vergel do Lago): −0.08 | zone 1 (Farol): −6.80 | 6.72 |
| João Pessoa (PB) | 5 | zone 1 (Torre): +10.14 | zone 76 (Bancários): +4.36 | 5.78 |
| Boa Vista (RR) | 2 | zone 1 (Caranã): −49.40 | zone 5 (Pintolândia): −53.96 | 4.56 |
| Macapá (AP) | 3 | zone 14 (Perpétuo Socorro): +4.32 | zone 2 (Buritizal): +0.84 | 3.48 |
| Rio Branco (AC) | 2 | zone 1 (Centro): −33.02 | zone 9 (Distrito Industrial): −33.18 | 0.16 |
How each number was computed
Source: the Tribunal Superior Eleitoral (TSE) totals by municipality, electoral zone and city abroad, read once each round's last section was counted. 2022's are that election's official results.
Shares to two decimals, rounded as the TSE rounds them (half up). Every change is the difference of the figures shown: the 3.58-point lead is 51.79 − 48.21.
Change in the gap: how much the distance between the two finalists moved, in points of the valid vote. From the 1st round, against each one's vote among every candidate; from 2022, against the PT–PL runoff. Against Brazil: the place's change minus the country's.
Turned: the place changed winner between the two finalists (in the 1st round, whichever of the two was ahead of the other, whoever led overall); a tie isn't a turn.
Vote transfer and split ticket: Goodman's ecological regression, weighted by electorate, with each row held to a valid split (each part between 0% and 100%, adding up to 100%), fitted state by state and added up; 90% interval by bootstrapping the municipalities. It is an estimate: it assumes that, within a state, each group split the same way in every municipality.
Cartogram: Dorling circles, with an area proportional to the runoff's electorate, pushed apart until none overlap. Population strata: IBGE's estimate for each municipality.
Boa Esperança do Norte (MT), installed in 2025, has no 1st-round file of its own: its figures are its state's total minus the other municipalities. It didn't exist in 2022. A few municipalities' electorates change by a few voters between the rounds (transfers and voting away from home). More at /en/sobre.
Download the data
Every number on this page comes from these files, in CSV (comma-separated, UTF-8, counts only: every share can be recomputed). In Excel, open them through Data › Get Data › From Text/CSV. More formats and the API at https://eleicoes2026brasil.com/en/dados.
- President by municipalityEach row: a municipality: 1st round, runoff and the 2022 electionpresidente-municipios.csv
- President by stateEach row: a state or abroad: 1st round, runoff and 2022presidente-estados.csv
- President by electoral zoneEach row: an electoral zone of the municipalities with more than one: 1st round and runoffpresidente-zonas.csv
- President abroadEach row: a city abroad: 1st round and runoffpresidente-exterior.csv
- The presidential count, minute by minuteEach row: the national totals the TSE published at a moment of the night, from 17:00 Brasília time, in both roundspresidente-apuracao.csv
- Governor runoffsEach row: a municipality of the six states with a governor runoffgovernador-2t-municipios.csv
Frequently asked questions
By how many votes did Lula win?
By 4,430,191 valid votes: 51.79% to 48.21%.
How many municipalities changed sides from the 1st round to the runoff?
212: 211 went from giving more votes to Flávio Bolsonaro to giving more to Lula, and 1 the other way round.
Where did the eliminated candidates' votes go?
There are only estimates, because the vote is secret. By ecological regression state by state, of Escritor Augusto Cury's 3.4 million voters, 52% would have voted for Lula, 30% for Flávio, 15% blank or null and 4% didn't vote; of Renan Santos's 2.7 million voters, 68% would have voted for Lula, 25% for Flávio, 5% blank or null and 1% didn't vote; of Ronaldo Caiado's 2.6 million voters, 27% would have voted for Lula, 55% for Flávio, 13% blank or null and 6% didn't vote.
When was the runoff result known?
The TSE published the first votes at 17:07; the race was called at 21:28, and the last section was counted at 23:23.
Where can I download the results by municipality?
At https://eleicoes2026brasil.com/data/2026/presidente-municipios.csv (president by municipality, both rounds and 2022), and the other files at https://eleicoes2026brasil.com/en/analise#dados.