Perspective · Maps
Two runoffs, side by side
This piece is about maps. Each map of Brazil carries just two numbers per municipality: the runoff result and the votes each candidate gained between the first and second rounds. Placed side by side, they show the same behaviour observed in two separate events, each made of two rounds.
Two numbers per municipality
The background answers who won here. The bubbles answer who grew here between the two rounds.
On the left, the 2022 runoff between Lula and Jair Bolsonaro. On the right, the 2026 runoff, four years later, between Lula and Flávio Bolsonaro. The background colours are quite similar. The bubbles change colour.
Who grew more between rounds
In 2022, Jair Bolsonaro gained 7.13 million votes between rounds and Lula gained 3.09 million. Bolsonaro grew more in 4,849 of the 5,570 municipalities, which is why blue bubbles dominate the left map.
In 2026 the pattern flips. Lula gained 10.38 million votes and Flávio Bolsonaro 3.72 million. Lula grew more in 5,228 of the 5,571 municipalities, and the right map turns red.
Crossing growth with the gap
| Million votes | Round 1 difference | Extra growth to round 2 | Round 2 difference |
|---|---|---|---|
| 2022 · Lula × Jair | Lula +6.19 | Jair +4.05 | Lula +2.14 |
| 2026 · Lula × Flávio | Flávio +2.22 | Lula +6.66 | Lula +4.43 |
In 2022, Jair Bolsonaro grew more but started 6.19 million votes behind; his extra growth of 4.05 million narrowed the gap to 2.14 million and stopped there. In 2026, Flávio Bolsonaro started 2.22 million ahead; Lula's extra growth of 6.66 million was three times that lead and turned it into a 4.43 million margin.
Growth between rounds decides a runoff when it is larger than the first-round gap. In 2022 the gap absorbed it. In 2026 it overturned it.
Data. TSE open data, nominal votes by municipality and zone, 2022 and 2026 presidential elections; IBGE municipal meshes 2022 and 2025. National figures include votes cast abroad and match the official TSE totals; the maps show the 5,570 (2022) and 5,571 (2026) municipalities. Built with Python, GeoPandas and Folium.