The comeback neighbourhood by neighbourhood in the state capitals
In the 27 state capitals, Lula's margin over Flávio went from −0.7 to +5.5 points between the two rounds. The comeback reached almost every neighbourhood, but not with the same strength. It was larger where, in the 1st round, more people had voted blank or spoiled their ballot for president, and smaller in the central neighbourhoods where the vote was already settled.
Daniel Pessini Sobreira · October 27, 2026 · TSE votes by polling station in both rounds and polling-place register
- 98.7%of the 36.1M voters in the capitals vote in polling places where the margin moved towards Lula.
- 256 × 0neighbourhoods that switched from Flávio to Lula, against none in the opposite direction, among the 2,539 with 3,000 voters or more.
- +3.0 to +7.8points of swing, from the polling places with the fewest to those with the most blank and spoiled ballots in the 1st round.
Each dot is a polling place
The results by municipality show that Lula's margin improved in almost every city. Within the capitals, where 36.1M voters cast their ballots, it is possible to go down to the neighbourhood level: on 10/26 the TSE published the result of every polling station in both rounds, and the polling-place register gives the address, the neighbourhood and the coordinates of each school. With the stations added up, there are 10,882 polling places. Choose the capital and what to colour on the map; hover over or tap a dot to see the polling place.
Loading the map…
The swing was larger where more of the vote was up for grabs
In each capital, the polling places were split into ten groups of the same size, from the one with the fewest to the one with the most blank and spoiled votes for president in the 1st round, always relative to the capital's own average. In the tenth with the fewest blank and spoiled ballots (3.1% of voters), Lula's margin moved +3.0 points. In the tenth with the most (8.0%), it moved +7.8.
Loading the chart…
The relationship is strong and shows up almost everywhere. Within each capital, each additional percentage point of blank and spoiled ballots in the 1st round corresponds, on average, to 0.96 more points of swing, and this variable alone explains 36% of the difference in swing between polling places (correlation of 0.60). It is positive in 26 of the 27 capitals and strongest in Belo Horizonte, Rio de Janeiro and João Pessoa (from 0.77 to 0.79). With the 1st-round margin, the third-party vote and the change in turnout in the same calculation, the effect is 1.11 points. The third-party vote barely matters, and turnout matters little.
The chart also shows where those votes went. In the polling places with the most blank and spoiled ballots, they fell from 8.0% to 4.6% of voters between the rounds. In those with the fewest, they stayed where they were (3.1% and 3.1%). It is the same pattern as in the analysis of the victory, which estimates that 65% of those who voted blank or spoiled their ballot in the 1st round voted for Lula in the 2nd. One possible explanation is the 1st-round voting machine, which asked for six votes: some of these voters left the president blank or got the number wrong and, in the 2nd round, with a single vote, made a choice.
The swing was not concentrated where Lula was already strong
If the comeback had been a matter of mobilising Lula's own electorate, it would have been larger in the most pro-Lula neighbourhoods. It was not. With the capitals' polling places split into four groups of equal electorate, from the most favourable to Flávio to the most favourable to Lula in the 1st round, the swing was +7.1 · +6.7 · +5.9 · +4.8 points. In 17 of the 27 capitals, the most pro-Lula quarter swung less than the one most favourable to Flávio.
Part of this is arithmetic: where a candidate already has 70% of the votes, the same shift of voters moves the margin less than where the race is close. To separate the two, we calculated, in each capital, the swing each polling place would have had if all of them had shifted in the same proportion (see the method). In São Paulo, for example, the swing stayed between +5.2 and +6.4 points in the four groups, close to what the proportional shift predicts. What sets one neighbourhood apart from another, within the same city, is not so much the 1st-round margin as the amount of vote that was still up for grabs.
Where the swing was largest, and where there was almost none
In most capitals, the neighbourhoods with the smallest swing are central, high-income neighbourhoods, where the vote was already settled and almost no one voted blank. In São Paulo, Santa Cecilia (−4.1), Higienopolis (−3.0) and Consolacao (−1.4). In Rio, Humaita (+0.3) and Flamengo (+0.6). In Belo Horizonte, Santo Antonio (+1.6) and Savassi (+1.7). In Brasília, Asa Norte (+1.6).
Those with the largest swing are on the edges of the cities: Vila Hebe (+12.3) and Jardim Imperador (Zona Leste) (+12.1) in São Paulo, Acari (+12.9) in Rio, Capitão Eduardo (+10.7) in Belo Horizonte and Vale do Amanhecer (+10.4) in the Federal District. In them, from 3.9% to 7.4% of voters had left the president blank or spoiled their ballot in the 1st round, against 2.0% to 3.5% in those with the smallest swing.
In all, 256 neighbourhoods switched from Flávio to Lula (2.95M voters) and none went the other way. In São Paulo there were 105, among them Vila Guarani, Saúde and Lapa; in Rio, 25, among them Praça Seca and Olaria; in Belo Horizonte, 36. The list for each capital is below the map.
The swing capital by capital
Lula's margin over Flávio, in points, between the two of them only. The swing by quarter goes from the quarter of the electorate most favourable to Flávio in the 1st round to the one most favourable to Lula. The correlation measures the relationship, within the capital, between 1st-round blank and spoiled ballots and the swing of each polling place. Tap a row to see the capital on the map.
| Capital | Voters | Margin 1st → 2nd | Swing | Swing by quarter (Flávio → Lula) | Blank and spoiled 1st → 2nd | Correlation | Neighbourhoods that switched |
|---|---|---|---|---|---|---|---|
| São Paulo SP | 9.14M | +5.0 → +11.0 | +6.0 | +6.2 · +6.4 · +6.1 · +5.2 | 6.5% → 4.4% | 0.61 | 105 of 819 |
| Rio de Janeiro RJ | 4.95M | −4.3 → +3.1 | +7.4 | +8.9 · +8.8 · +7.4 · +4.5 | 5.1% → 3.4% | 0.77 | 25 of 149 |
| Brasília DF | 2.26M | −14.8 → −8.6 | +6.2 | +7.6 · +7.2 · +6.6 · +3.6 | 3.2% → 3.4% | 0.73 | 7 of 59 |
| Belo Horizonte MG | 1.97M | −7.7 → −1.6 | +6.1 | +5.8 · +6.5 · +6.2 · +5.9 | 4.8% → 3.5% | 0.79 | 36 of 184 |
| Salvador BA | 1.96M | +41.4 → +46.5 | +5.1 | +4.4 · +5.6 · +5.1 · +4.6 | 7.3% → 4.3% | 0.52 | 2 of 129 |
| Fortaleza CE | 1.80M | +15.2 → +20.1 | +4.9 | +4.7 · +5.2 · +5.1 · +4.6 | 4.6% → 2.9% | 0.50 | 1 of 103 |
| Manaus AM | 1.48M | −18.8 → −11.7 | +7.1 | +7.2 · +7.2 · +7.2 · +7.0 | 3.3% → 3.3% | 0.19 | 1 of 60 |
| Curitiba PR | 1.42M | −30.9 → −24.6 | +6.3 | +6.6 · +6.6 · +6.6 · +5.3 | 3.8% → 3.4% | 0.63 | 1 of 62 |
| Recife PE | 1.22M | +17.9 → +22.5 | +4.5 | +4.4 · +4.9 · +4.7 · +4.1 | 5.0% → 2.8% | 0.60 | 0 of 77 |
| Porto Alegre RS | 1.06M | +7.4 → +11.7 | +4.3 | +4.4 · +4.6 · +4.4 · +3.6 | 4.0% → 2.7% | 0.67 | 5 of 73 |
| Belém PA | 1.05M | +4.6 → +10.0 | +5.4 | +5.4 · +5.5 · +5.6 · +5.0 | 4.7% → 2.5% | 0.42 | 10 of 49 |
| Goiânia GO | 1.02M | −31.9 → −25.3 | +6.6 | +6.9 · +6.9 · +6.9 · +5.7 | 3.1% → 3.0% | 0.46 | 0 of 108 |
| São Luís MA | 0.75M | +19.1 → +24.1 | +5.0 | +5.5 · +5.8 · +4.9 · +4.2 | 3.5% → 2.7% | 0.06 | 7 of 76 |
| Maceió AL | 0.65M | −12.1 → −4.0 | +8.1 | +7.5 · +8.2 · +7.7 · +8.7 | 5.6% → 3.0% | 0.63 | 8 of 39 |
| Campo Grande MS | 0.64M | −28.9 → −22.2 | +6.7 | +5.9 · +6.3 · +7.0 · +7.0 | 3.6% → 2.9% | 0.41 | 4 of 94 |
| Teresina PI | 0.59M | +32.2 → +36.1 | +3.9 | +4.8 · +4.1 · +3.8 · +3.1 | 4.0% → 2.8% | −0.02 | 2 of 62 |
| João Pessoa PB | 0.59M | +0.7 → +7.5 | +6.8 | +5.9 · +7.0 · +7.8 · +6.3 | 5.2% → 3.1% | 0.77 | 16 of 47 |
| Natal RN | 0.57M | +5.2 → +12.0 | +6.8 | +5.8 · +6.6 · +7.2 · +7.3 | 4.2% → 3.5% | 0.61 | 2 of 32 |
| Cuiabá MT | 0.46M | −25.8 → −19.2 | +6.6 | +5.6 · +6.4 · +6.9 · +7.2 | 3.1% → 2.4% | 0.53 | 2 of 61 |
| Florianópolis SC | 0.42M | −8.8 → −3.3 | +5.4 | +6.1 · +6.4 · +5.8 · +3.3 | 3.1% → 2.8% | 0.70 | 3 of 39 |
| Aracaju SE | 0.42M | +18.2 → +24.0 | +5.9 | +5.0 · +6.1 · +5.7 · +6.4 | 4.7% → 3.3% | 0.58 | 1 of 34 |
| Porto Velho RO | 0.37M | −30.3 → −23.3 | +7.0 | +6.5 · +7.2 · +7.0 · +7.2 | 2.7% → 2.3% | 0.49 | 0 of 46 |
| Macapá AP | 0.32M | −4.3 → +2.0 | +6.3 | +6.9 · +7.8 · +6.2 · +4.7 | 2.5% → 2.1% | 0.27 | 11 of 34 |
| Rio Branco AC | 0.27M | −40.1 → −33.1 | +7.0 | +8.4 · +6.5 · +6.9 · +5.9 | 4.0% → 4.5% | 0.23 | 0 of 27 |
| Vitória ES | 0.27M | −8.6 → −3.6 | +5.0 | +5.0 · +4.2 · +5.8 · +4.9 | 3.4% → 4.0% | 0.55 | 6 of 29 |
| Boa Vista RR | 0.24M | −58.7 → −51.7 | +7.0 | +6.8 · +7.4 · +7.1 · +6.6 | 2.2% → 2.0% | 0.05 | 0 of 32 |
| Palmas TO | 0.22M | −27.2 → −20.8 | +6.4 | +6.1 · +6.6 · +6.6 · +6.6 | 2.9% → 3.7% | 0.28 | 1 of 15 |
How the numbers were calculated
- Data. Votes for president by polling station in both rounds (TSE, Open Data, file of 10/26/2026) and the polling-place register (TSE, 10/25/2026), with the neighbourhood, address, coordinates and electorate of each station in each round. Each candidate's votes match the official count.
- Unit. The polling place (zone and place), with its stations added up: 10,882 polling places in the 27 capitals, 36.1M voters. Polling places for in-transit voters and pre-trial detainees were left out, as were those with fewer than 50 votes for Lula and Flávio in the 1st round (78 polling places).
- Measures. Lula's margin over Flávio between the two of them only, in points; swing = 2nd-round margin − 1st-round margin. Blank and spoiled ballots as a % of those who turned out.
- Blank and spoiled ballots (section 2). Deviations from each capital's average, weighted by the electorate; weighted least squares, with and without the 1st-round margin, the third-party vote and the change in turnout. Coefficient of 0.96 (robust standard error of 0.018), R² of 0.36; with the controls, 1.11 and R² of 0.52. Deciles by capital, added up in the chart.
- Proportional shift (section 3). In each capital, the same logit shift for every polling place, adjusted to reproduce the capital's 2nd-round result; each polling place's expected swing follows from its 1st-round margin.
- Neighbourhoods. The neighbourhood name in the register, normalised, with the polling places added up; the 2,539 neighbourhoods with 3,000 voters or more are included. The names are those of the TSE register, which sometimes merges or splits neighbourhoods differently from the city government.
- Limits. Results by place, not by person: it is impossible to know who, within a polling place, changed their vote. The polling place approximates the neighbourhood of residence, but is not the same. Income and schooling were not measured.
- Files. bairros.json (summary, capitals and neighbourhoods) and bairros-locais.json (each polling place: coordinates, electorate, margins, blank and spoiled ballots, name and neighbourhood).
Placar home page · What gave Lula the victory · Editorial and results dashboard