Swing states in Brazilian presidential elections
10 states are swing states: they changed bloc at least 3 times between elections — or 4 times also counting turns between round 1 and round 2 of the same year (round 1 measured by the leading candidate’s bloc) — in the 10 elections since 1989, or have a lean index below 8 pts. They appear in yellow across the site.
1989–2026 series: bloc ahead in each election
One row per state, one square per election. Color by the margin in that election, on the map's bins: pale in tight races, deep in landslides. Filled square = round-2 result; hollow = round 1 (years without a runoff: 1994 and 1998). ✱ marks a bloc change versus the previous election. Ordered by number of changes.
| State | 89 | 94 | 98 | 02 | 06 | 10 | 14 | 18 | 22 | 26 | Changes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| RSSwing | 5 | ||||||||||
| MGSwing | 4 | ||||||||||
| APSwing | 4 | ||||||||||
| DFSwing | 4 | ||||||||||
| GOSwing | 4 | ||||||||||
| ACSwing | 4 | ||||||||||
| TOSwing | 3 | ||||||||||
| AMSwing | 3 | ||||||||||
| RJSwing | 3 | ||||||||||
| ROSwing | 3 | ||||||||||
| ES | 3 | ||||||||||
| PE | 3 | ||||||||||
| SC | 3 | ||||||||||
| SP | 2 | ||||||||||
| MS | 2 | ||||||||||
| PR | 2 | ||||||||||
| MT | 2 | ||||||||||
| RR | 2 | ||||||||||
| PA | 1 | ||||||||||
| AL | 1 | ||||||||||
| RN | 1 | ||||||||||
| PB | 1 | ||||||||||
| SE | 1 | ||||||||||
| CE | 1 | ||||||||||
| MA | 1 | ||||||||||
| BA | 1 | ||||||||||
| PI | 1 |
- color = margin (pale = tight, deep = landslide, map bins)
- filled = round 2
- hollow = round 1 (no runoff)
- ✱ = changed bloc versus the previous election
- swing state
Lean index by state
The lean index is the weighted average of the gap between the state margin and the national margin in the 2026, 2022, 2018, 2014 runoffs (weights 40% / 30% / 20% / 10%). Positive = leans right; negative = leans left.
- PI−53.05Solid left
- BA−43.19Solid left
- MA−43.13Solid left
- CE−40.67Solid left
- SE−36.12Solid left
- PE−35.92Solid left
- PB−32.55Solid left
- RN−30.75Solid left
- AL−19.97Solid left
- PA−10.02Likely left
- AM−6.52Lean leftSwing
- AP−3.46Lean leftSwing
- TO−1.78Toss-upSwing
- MG+2.60Toss-upSwing
- RJ+12.83Likely rightSwing
- ES+16.16Solid right
- RS+16.32Solid rightSwing
- SP+16.51Solid right
- DF+19.32Solid rightSwing
- GO+20.83Solid rightSwing
- MS+20.97Solid right
- PR+27.31Solid right
- MT+29.64Solid right
- RO+38.17Solid rightSwing
- AC+39.30Solid rightSwing
- SC+40.63Solid right
- RR+44.26Solid right
Scale of +60 pts in each direction; the gray central band is toss-up (|index| < 3). Yellow = swing state; the ring shows the current side of the index, deeper the larger the index.
Movement between round 1 and round 2 (runoff years only)
Runoff years only (1989, 2002–2026): the right − left margin in round 2 minus the bloc margin in round 1 (summing every candidate of each bloc). Positive = the state moved toward the right bloc between rounds. 1994 and 1998 had no runoff and are outside this table; see the series above.
| State | Rating | Bloc changes (10 elections) | Reason | 1989 | 2002 | 2006 | 2010 | 2014 | 2018 | 2022 | 2026 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| RS | Solid rightSwing | 5 | changed 5× · 2 between rounds | +13.61 | +23.52 | −1.26 | +20.41 | +22.55 | −2.11 | +3.20 | −6.46 |
| MG | Toss-upSwing | 4 | changed 4× · 1 between roundsindex: Toss-up | −7.06 | +21.40 | −12.10 | +21.29 | +13.90 | −2.18 | +1.55 | −6.98 |
| AP | Lean leftSwing | 4 | changed 4× · 1 between roundsindex: Lean left | +0.41 | +31.36 | −5.69 | +31.45 | +22.59 | −2.02 | +1.03 | −5.81 |
| DF | Solid rightSwing | 4 | changed 4× · 1 between rounds | −5.22 | +41.99 | −2.96 | +45.32 | +48.20 | +2.75 | +0.05 | −9.61 |
| GO | Solid rightSwing | 4 | changed 4× · 2 between rounds | −7.68 | +30.03 | −13.03 | +22.24 | +29.06 | −5.34 | +1.53 | −15.56 |
| AC | Solid rightSwing | 4 | changed 4× · 2 between rounds | −3.90 | +42.18 | −8.80 | +34.80 | +68.12 | +7.73 | +4.84 | −3.40 |
| TO | Toss-upSwing | 3 | changed 3× · 1 between roundsindex: Toss-up | −7.07 | +23.99 | −15.58 | +26.04 | +23.87 | −2.71 | +2.38 | −5.45 |
| AM | Lean leftSwing | 3 | changed 3×index: Lean left | −0.29 | +30.32 | +1.02 | +21.65 | +24.77 | +0.61 | +1.42 | −4.18 |
| RJ | Likely rightSwing | 3 | changed 3× | +5.33 | +24.42 | +2.19 | +33.39 | +31.15 | +0.36 | +1.09 | −9.20 |
| RO | Solid rightSwing | 3 | changed 3× · 1 between rounds | −4.03 | +48.17 | −5.38 | +14.06 | +15.82 | +0.22 | +3.70 | −3.51 |
| ES | Solid right | 3 | — | +4.47 | +39.76 | −5.91 | +30.40 | +34.80 | −2.87 | +2.11 | −5.66 |
| PE | Solid left | 3 | — | +0.07 | +28.97 | −3.33 | +13.77 | +46.57 | −5.18 | +1.57 | −6.41 |
| SC | Solid right | 3 | — | −8.65 | +25.17 | −4.69 | +21.36 | +21.17 | −2.01 | +1.91 | −4.75 |
| SP | Solid right | 2 | — | +1.81 | +32.18 | −4.28 | +26.56 | +37.63 | −4.51 | −0.40 | −8.18 |
| MS | Solid right | 2 | — | −5.83 | +32.31 | −2.88 | +25.34 | +28.25 | −2.97 | +1.08 | −5.89 |
| PR | Solid right | 2 | — | −2.00 | +27.59 | −5.03 | +22.72 | +19.79 | −4.56 | +2.46 | −5.89 |
| MT | Solid right | 2 | — | −14.40 | +31.67 | −9.50 | +13.71 | +18.59 | −3.98 | +2.25 | −5.27 |
| RR | Solid right | 2 | — | +5.57 | +44.90 | +2.79 | +30.46 | +25.00 | −5.60 | +2.88 | −3.84 |
| PA | Likely left | 1 | — | +7.19 | +41.49 | −3.83 | +18.05 | +27.15 | −2.44 | +0.02 | −4.81 |
| AL | Solid left | 1 | — | +2.85 | +54.30 | +1.06 | +19.44 | +29.25 | −6.73 | +0.84 | −7.18 |
| RN | Solid left | 1 | — | −14.53 | +38.14 | −3.34 | +24.35 | +18.10 | +2.30 | +3.08 | −6.18 |
| PB | Solid left | 1 | — | +5.54 | +26.90 | −6.34 | +19.80 | +22.75 | −3.63 | +1.58 | −6.21 |
| SE | Solid left | 1 | — | +5.18 | +45.29 | −9.65 | +16.48 | +16.45 | −4.00 | −0.35 | −7.63 |
| CE | Solid left | 1 | — | +18.12 | +39.36 | −10.96 | +12.31 | +14.58 | +7.40 | +5.60 | −6.07 |
| MA | Solid left | 1 | — | −6.71 | +58.92 | −7.36 | +11.43 | +17.24 | −4.67 | +0.62 | −6.66 |
| BA | Solid left | 1 | — | −17.60 | +34.89 | −8.86 | +16.15 | +21.58 | −3.37 | +0.50 | −5.52 |
| PI | Solid left | 1 | — | −3.47 | +23.95 | −11.21 | +17.95 | +14.66 | −2.23 | +0.70 | −5.14 |
In percentage points of valid votes. Red background = moved left; blue = moved right.