50mais1

Methodology

Everything the site computes, explained — and the data behind every number.

Blocs and taxonomy

Every presidential candidate since 1989 is assigned to one of two blocs: left (the PT camp and allies) or right (the camp now organized around PL). There is no center bloc: in a system decided by 50% + 1 every candidacy ends up adding to one of the two sides, and two blocs keep every election comparable on the same scale.

Strength (1–3) says how clearly the candidate or party belongs to the bloc in that era: 3 = core of the bloc; 2 = usual ally or intermediate position; 1 = classified by elimination, lowest confidence.

Parties are classified by era (valid_from–valid_to) because they change sides over time. The classification is editorial, versioned and open to review: every row carries its rationale and source.

Party taxonomy 1 · candidates 1 · updated 10/19/2026 · 27 rows flagged “under review”

Parties

CodeNameEraBlocStrengthRationaleSource
AGIRunder reviewAgir
PTC → Agir (2019)
2019–nowRightContinuação do PTC; esteve na coligação de Lula em 2022 e na de Augusto Cury em 2026. Marcação leve, a revisar.source
AVANTEunder reviewAvante
PT do B → Avante (2017)
2017–nowLeftContinuação do PT do B; na chapa de Ciro em 2018 e de Lula em 2022; candidato próprio em 2026 (Augusto Cury). Marcação leve, a revisar.source
CIDADANIAunder reviewCidadania
PPS → Cidadania (2019)
2019–nowLeftContinuação do PPS; federado com o PSDB em 2022 (chapa Tebet). Marcação leve, herdada do PPS.source
DCDemocracia Cristã
PSDC (1995) → DC (2017)
1995–nowRightDemocracia cristã conservadora; candidato próprio (Eymael) em 1998, 2006, 2010, 2014, 2018 e 2022, e Clariana Barão em 2026.source
DEMDemocratas
PFL (1985) → DEM (2007) → União Brasil (2022)
2007–2022RightContinuação do PFL; nas chapas de Serra (2010), Aécio (2014) e Alckmin (2018).source
DEMOCRATADemocrata
PMB — Partido da Mulher Brasileira (2008/2015) → Democrata (dez. 2025)
2026–nowRightAntigo Partido da Mulher Brasileira, renomeado Democrata em dezembro de 2025; candidato próprio em 2026 (Wilson Grassi, 0,01%). Nanico de perfil conservador. Marcação leve, provisória, a confirmar pelo dono do site. Confirmado pelo dono do site em 2026-10-19.source
MDBunder reviewMovimento Democrático Brasileiro
PMDB → MDB (2017)
2017–nowRightCandidatos próprios em 2018 (Meirelles) e 2022 (Tebet). Centro com inclinação liberal-conservadora. Marcação leve.source
MISSÃOMissão2025–nowRightPartido criado pelo Movimento Brasil Livre (MBL); candidato próprio em 2026 (Renan Santos). Direita liberal-conservadora. Partido novo — a revisar. Confirmado pelo dono do site em 2026-10-19.source
NOVOPartido Novo2015–nowRightLiberalismo econômico e conservadorismo fiscal; candidatos próprios em 2018, 2022 e 2026 (Zema).source
PATRIOTAPatriota
PEN (2012) → Patriota (2018) → PRD (2023)
2018–2023RightDireita nacionalista; candidato próprio em 2018 (Cabo Daciolo); abrigou a pré-candidatura de Bolsonaro em 2018.source
PCBPartido Comunista Brasileiro1985–nowLeftPartido comunista histórico (Roberto Freire em 1989; a maioria virou PPS em 1992 e uma ala refundou o PCB, que lançou candidatos em 2010, 2014, 2022 e 2026).source
PCdoBPartido Comunista do Brasil1985–nowLeftPartido comunista; aliado do PT em todas as chapas presidenciais desde 1989 e federado com o PT desde 2022.source
PCNunder reviewPartido Comunitário Nacional1989–1993RightNanico de 1989 (Zamir Teixeira). Marcação leve, provisória.source
PCOPartido da Causa Operária1995–nowLeftPartido trotskista; candidato próprio (Rui Costa Pimenta) em 2002, 2010, 2014 e 2026.source
PDCdoBunder reviewPartido Democrata Cristão do Brasil1989–1993RightNanico de 1989 (Manoel Horta). Marcação leve, provisória.source
PDSPartido Democrático Social
ARENA → PDS (1980) → PPR (1993) → PPB (1995) → PP (2003)
1980–1993RightHerdeiro da ARENA (partido de sustentação do regime militar); candidato próprio em 1989 (Maluf).source
PDTPartido Democrático Trabalhista1979–nowLeftTrabalhismo brizolista; candidato próprio em 1989, 1994, 2006 e 2018; aliado do PT em 2002 (via Ciro no 2º turno), 2010, 2014 e 2026.source
PENPartido Ecológico Nacional
PEN (2012) → Patriota (2018) → PRD (2023)
2012–2018RightConservador apesar do nome; na coligação de Aécio em 2014. Virou Patriota em 2018.source
PFLPartido da Frente Liberal
PFL (1985) → DEM (2007) → União Brasil (2022)
1985–2007RightDissidência do PDS que apoiou Tancredo; candidato próprio em 1989 (Aureliano Chaves); parceiro do PSDB em 1994, 1998, 2002 e 2006.source
PHSunder reviewPartido Humanista da Solidariedade
PSN (1995) → PHS (1997) → incorporado ao Podemos (2019)
1995–2019RightDemocracia cristã; candidato próprio em 1998 como PSN (Vasco Neto); nas chapas de Marina (2014) e Meirelles (2018). Marcação leve.source
PLPartido Liberal
PL (1985) → PR (2006) → PL (2019)
1985–2006RightLiberalismo econômico; candidato próprio em 1989 (Afif). Em 2002 integrou a chapa de Lula (vice José Alencar), por isso strength 2 e não 3 nesta era.source
PLPartido Liberal
PL (1985) → PR (2006) → PL (2019)
2019–nowRightPartido de Jair Bolsonaro (2022) e Flávio Bolsonaro (2026); principal partido da direita desde 2021.source
PLPunder reviewPartido Liberal Progressista1989–1993RightNanico de 1989 (Eudes Mattar). Marcação leve, provisória.source
PMBunder reviewPartido Municipalista Brasileiro1989–1993RightNanico de 1989 (Armando Corrêa). Marcação leve, provisória.source
PMDBunder reviewPartido do Movimento Democrático Brasileiro
MDB (1966) → PMDB (1980) → MDB (2017)
1980–2017RightGrande partido de centro; candidatos próprios em 1989 (Ulysses) e 1994 (Quércia); aliado do PSDB (2002) e do PT (2010, 2014). Marcação leve.source
PMNunder reviewPartido da Mobilização Nacional
PMN → Mobiliza (2022)
1984–2022LeftNacionalismo; candidatos próprios em 1989 (Celso Brant) e 1998 (Ivan Frota); na coligação de Lula em 2002 e de Serra em 2010. Marcação leve.source
PNunder reviewPartido Nacionalista1989–1993RightNanico de 1989 (Lívia Maria). Marcação leve, provisória.source
PODEunder reviewPodemos
PTN → Podemos (2016)
2016–nowRightCandidato próprio em 2018 (Alvaro Dias); incorporou o PSC em 2023. Centro-direita. Marcação leve.source
PPunder reviewPartido do Povo1989–1989RightNanico de 1989 (Paulo Gontijo). Não é o PP/Progressistas de 2003. Marcação leve, provisória.source
PPProgressistas
PPB → PP (2003)
2003–nowRightCentro-direita fisiológica; nas chapas de Dilma (2010, 2014), Alckmin (2018) e Bolsonaro (2022). Não confundir com o PP de 1989 (Partido do Povo).source
PPBunder reviewPartido do Povo Brasileiro1989–1989RightNanico de 1989 (Antônio Pedreira). Não é o PPB de 1995–2003. Marcação leve, provisória.source
PPBPartido Progressista Brasileiro
PPR → PPB (1995) → PP (2003)
1995–2003RightContinuação do PPR; na coligação de FHC em 1998. Não confundir com o PPB de 1989 (Partido do Povo Brasileiro), lançado abaixo com era própria.source
PPLPartido Pátria Livre2011–2019LeftOrigem no MR-8; nacionalismo de esquerda. Candidato próprio em 2018 (João Goulart Filho); incorporado ao PCdoB em 2019.source
PPRPartido Progressista Reformador
PDS + PDC → PPR (1993) → PPB (1995) → PP (2003)
1993–1995RightFusão do PDS com o PDC; candidato próprio em 1994 (Esperidião Amin).source
PPSunder reviewPartido Popular Socialista
PCB (1989) → PPS (1992) → Cidadania (2019)
1992–2019LeftHerdeiro do PCB de 1989 que migrou para a social-democracia; candidato próprio em 1998 e 2002 (Ciro), mas aliado do PSDB em 2010, 2014 e 2018. Marcação leve.source
PRunder reviewPartido da República
PL (1985) → PR (2006) → PL (2019)
2006–2019RightFusão PL + PRONA (2006). Partido de centro-direita fisiológico; nas coligações de Dilma (2010, 2014) e de Alckmin (2018). Marcação leve.source
PRBPartido Republicano Brasileiro
PRB (2005) → Republicanos (2019)
2005–2019RightLigado à Igreja Universal; integrou as chapas de Lula (2006, vice Alencar) e Dilma (2010, 2014), mas conservador nos costumes. Strength 2 nesta era.source
PRDPartido Renovação Democrática
Patriota + PTB → PRD (2023)
2023–nowRightFusão de Patriota e PTB, ambos marcados como direita.source
PRNPartido da Reconstrução Nacional
PRN (1989) → PTC (2000) → Agir (2019)
1989–2000RightPartido de Collor em 1989; candidato próprio também em 1994. Liberal-conservador.source
PRONAPartido de Reedificação da Ordem Nacional
PRONA + PL → PR (2006)
1989–2006RightNacionalismo de direita de Enéas Carneiro; candidato próprio em 1989, 1994 e 1998.source
PRPunder reviewPartido Republicano Progressista
PRP → incorporado ao Patriota (2019)
1989–2019RightCandidata própria em 2006 (Ana Maria Rangel); nas chapas de Marina (2014) e Alvaro Dias (2018). Marcação leve.source
PRTBPartido Renovador Trabalhista Brasileiro
PRTB + Patriota → PRD (2023)
1995–2023RightCandidato próprio em 2010 e 2014 (Levy Fidelix); vice de Bolsonaro em 2018 (Mourão). Direita conservadora.source
PSBPartido Socialista Brasileiro1985–nowLeftSocialismo democrático; candidatos próprios em 2002 (Garotinho) e 2014 (Marina); aliado do PT em 2006, 2010, 2022 e 2026.source
PSCPartido Social Cristão
PSC → incorporado ao Podemos (2023)
1985–2023RightConservadorismo cristão; candidatos próprios em 1994, 1998 e 2014 (Pastor Everaldo); partido de Bolsonaro em 2016–2018.source
PSDunder reviewPartido Social Democrático1987–2003RightPSD antigo (refundado em 1987); candidato próprio em 1989 (Ronaldo Caiado). Incorporado ao PTB em 2003. Não confundir com o PSD de 2011.source
PSDunder reviewPartido Social Democrático2011–nowRightFundado por Gilberto Kassab em 2011; "nem de esquerda, nem de direita, nem de centro" segundo o fundador; governista com Dilma, Temer, Bolsonaro e Lula. Candidato próprio em 2026 (Ronaldo Caiado). Marcação leve.source
PSDBPartido da Social Democracia Brasileira
PSDB (1988, centro-esquerda) → PSDB (1994–, centro-direita com PFL)
1988–1993LeftNa fundação (1988) e em 1989 (Mario Covas, 4º lugar) o PSDB era uma dissidência de centro-esquerda do PMDB e apoiou formalmente Lula no 2º turno de 1989. Marcação leve, só para 1989; a partir da aliança com o PFL em 1994 o partido é marcado como direita. Confirmado pelo dono do site em 2026-10-19.source
PSDBPartido da Social Democracia Brasileira
PSDB (1988, centro-esquerda) → PSDB (1994–, centro-direita com PFL)
1994–nowRightCentro-direita; principal adversário do PT em todos os segundos turnos de 1994 a 2014 (FHC, Serra, Alckmin, Aécio). Marcado como direita para fins de bloco; o rótulo histórico é "centro".source
PSLunder reviewPartido Social Liberal
PSL (1994) → PSL bolsonarista (2018) → União Brasil (2022)
1994–2017RightNanico liberal antes de 2018; candidato próprio em 2006 (Luciano Bivar). Marcação leve nesta era.source
PSLPartido Social Liberal
PSL (1994) → PSL bolsonarista (2018) → União Brasil (2022)
2018–2022RightPartido pelo qual Jair Bolsonaro foi eleito em 2018; maior bancada da direita em 2018–2021.source
PSOLPartido Socialismo e Liberdade2005–nowLeftDissidência à esquerda do PT (2004); candidatos próprios em 2006, 2010, 2014 e 2018; federado com a Rede desde 2022.source
PSPunder reviewPartido Social Progressista1989–1993LeftCandidato próprio em 1989 (Marronzinho), populismo de base popular. Partido extinto. Marcação leve.source
PSTUPartido Socialista dos Trabalhadores Unificado1994–nowLeftPartido trotskista; candidatos próprios em 1998, 2002, 2010, 2014, 2018, 2022 e 2026.source
PTPartido dos Trabalhadores1980–nowLeftPrincipal partido da esquerda brasileira; candidato próprio ou cabeça de chapa em todas as eleições desde 1989.source
PTBPartido Trabalhista Brasileiro
PTB → PRD (2023, com o Patriota)
1980–2023RightApesar do nome trabalhista, alinhado à direita desde os anos 1990 (FHC 1998, Serra 2010, Aécio 2014, Alckmin 2018); candidato próprio em 1989 e 2022 (Padre Kelmon).source
PTCunder reviewPartido Trabalhista Cristão
PRN → PTC (2000) → Agir (2019)
2000–2019RightContinuação do PRN; nanico fisiológico, nas coligações de Garotinho (2002), Dilma (2010) e Alvaro Dias (2018). Marcação leve.source
PTdoBunder reviewPartido Trabalhista do Brasil
PT do B → Avante (2017)
1989–2017LeftDissidência do PTB; candidato próprio em 1998. Rótulo trabalhista com alinhamentos variados. Marcação leve.source
PTNunder reviewPartido Trabalhista Nacional
PTN → Podemos (2016)
1995–2016RightCandidata própria em 1998 (Thereza Ruiz); nanico fisiológico. Marcação leve.source
PVunder reviewPartido Verde1986–nowLeftAmbientalismo; candidatos próprios em 1989 (Gabeira), 1998 (Sirkis), 2010 (Marina) e 2014 (Eduardo Jorge). Oscila entre alianças; federado com o PT desde 2022.source
REDERede Sustentabilidade2015–nowLeftPartido de Marina Silva; candidata própria em 2018; federado com o PSOL desde 2022 e na chapa de Lula em 2022 e 2026.source
REPUBLICANOSRepublicanos
PRB (2005) → Republicanos (2019)
2019–nowRightConservadorismo religioso; na coligação de Bolsonaro em 2022.source
SOLIDARIEDADEunder reviewSolidariedade2013–nowLeftOrigem sindical (Força Sindical). Na chapa de Aécio em 2014 e Alckmin em 2018, mas na de Lula em 2022. Marcação leve.source
UNIÃOUnião Brasil
DEM + PSL → União Brasil (2022)
2022–nowRightFusão de DEM e PSL; candidata própria em 2022 (Soraya Thronicke).source
UPUnidade Popular2019–nowLeftPartido de esquerda socialista; candidatos próprios em 2022 e 2026.source

Candidates

YearNo.NamePartyBlocStrengthRationale
202613LulafinalistPTLeftCandidato do PT (federação com PCdoB e PV; PSB, PDT, PSOL, Rede); 2º colocado no 1º turno (45,16%), finalista.
202622Flávio BolsonarofinalistPLRightCandidato do PL; 1º colocado no 1º turno (47,03% dos válidos), finalista.
202670Augusto CuryAVANTELeft3º colocado (2,89%) pelo Avante (com Agir). Marcação herdada do partido (leve). Candidatura nova; confirmada pelo dono do site em 2026-10-19.
202213LulafinalistPTLeftCandidato do PT (federação com PCdoB e PV; PSB, PSOL, Rede, Solidariedade, Avante, Agir, PROS); eleito no 2º turno.
202215Simone TebetMDBRight3ª colocada pelo MDB (com PSDB, Cidadania e Podemos); centro liberal; declarou voto em Lula no 2º turno. Marcação leve.
202222Jair BolsonarofinalistPLRightDireita conservadora (PL, PP, Republicanos); finalista.
201812Ciro GomesPDTLeft3º colocado pelo PDT; trabalhismo/centro-esquerda; apoio "crítico" a Haddad no 2º turno.
201813Fernando HaddadfinalistPTLeftCandidato do PT (com PCdoB e PROS); finalista.
201817Jair BolsonarofinalistPSLRightDireita conservadora (PSL-PRTB); eleito no 2º turno.
201413Dilma RoussefffinalistPTLeftCandidata do PT; reeleita no 2º turno.
201440Marina SilvaPSBLeft3ª colocada pelo PSB (assumiu a chapa após a morte de Eduardo Campos); apoiou Aécio no 2º turno. Marcação leve — sobrepõe o PSB (2).
201445Aécio NevesfinalistPSDBRightCentro-direita (PSDB, DEM, PTB, SD); finalista.
201013Dilma RoussefffinalistPTLeftCandidata do PT; eleita no 2º turno.
201043Marina SilvaPVLeft3ª colocada pelo PV; ex-PT, ambientalista; não declarou voto no 2º turno. Marcação leve.
201045José SerrafinalistPSDBRightCentro-direita (PSDB, DEM, PTB, PPS); finalista.
200613LulafinalistPTLeftCandidato do PT; reeleito no 2º turno.
200645Geraldo AlckminfinalistPSDBRightCentro-direita (PSDB-PFL); finalista.
200650Heloísa HelenaPSOLLeft3ª colocada; esquerda socialista (PSOL, PSTU, PCB).
200213LulafinalistPTLeftCandidato do PT; eleito no 2º turno.
200240Anthony GarotinhoPSBLeft3º colocado pelo PSB; perfil populista-evangélico, à direita do partido em costumes. Marcação leve.
200245José SerrafinalistPSDBRightCentro-direita (PSDB-PMDB); finalista.
199813LulaPTLeftCandidato do PT (com PDT, PSB, PCdoB, PCB); 2º colocado.
199823Ciro GomesPPSLeftCentro-esquerda (PPS com PL e PAN); 3º colocado. Ex-PSDB, posição à época mais ao centro que nas disputas seguintes.
199845Fernando Henrique CardosoPSDBRightCentro-direita (PSDB, PFL, PPB, PTB, PSD); reeleito no 1º turno. Marcado como direita para fins de bloco.
199413LulaPTLeftCandidato do PT; 2º colocado.
199445Fernando Henrique CardosoPSDBRightCentro-direita (PSDB com PFL e PTB). Marcado como direita para fins de bloco; eleito no 1º turno.
199456Enéas CarneiroPRONARightNacionalismo de direita; 3º colocado em 1994.
198912Leonel BrizolaPDTLeftTrabalhismo histórico; 3º colocado em 1989, apoiou Lula no 2º turno.
198913LulafinalistPTLeftCandidato do PT em todas as suas disputas; Frente Brasil Popular (PT, PSB, PCdoB) em 1989.
198920Fernando CollorfinalistPRNRightLiberal-conservador; eleito no 2º turno contra Lula com apoio das forças de centro-direita (PFL, PDS).

Lean index

A state’s lean index is the weighted average, over the 2026, 2022, 2018, 2014 runoffs, of the gap between the state margin (right − left) and the national margin, with weights 0.4 / 0.3 / 0.2 / 0.1 from most recent to oldest. Positive = the state votes further right than Brazil; negative = further left.

lean(UF) = Σi wi · (margemUF,i − margemBR,i)

Rating by the absolute value of the index: ≥ 15 pts solid; 8–15 likely; 3–8 lean; < 3 toss-up.

StateIndexRatingElectorateSwing
PI Piauí−53.05Solid left1.76%no
BA Bahia−43.19Solid left7.33%no
MA Maranhão−43.13Solid left3.25%no
CE Ceará−40.67Solid left4.72%no
SE Sergipe−36.12Solid left1.15%no
PE Pernambuco−35.92Solid left4.80%no
PB Paraíba−32.55Solid left2.14%no
RN Rio Grande do Norte−30.75Solid left1.73%no
AL Alagoas−19.97Solid left1.53%no
PA Pará−10.02Likely left3.94%no
AM Amazonas−6.52Lean left1.71%yes
AP Amapá−3.46Lean left0.34%yes
TO Tocantins−1.78Toss-up0.73%yes
MG Minas Gerais+2.60Toss-up10.13%yes
RJ Rio de Janeiro+12.83Likely right7.85%yes
ES Espírito Santo+16.16Solid right1.85%no
RS Rio Grande do Sul+16.32Solid right5.40%yes
SP São Paulo+16.51Solid right21.17%no
DF Distrito Federal+19.32Solid right1.46%yes
GO Goiás+20.83Solid right3.17%yes
MS Mato Grosso do Sul+20.97Solid right1.26%no
PR Paraná+27.31Solid right5.53%no
MT Mato Grosso+29.64Solid right1.65%no
RO Rondônia+38.17Solid right0.78%yes
AC Acre+39.30Solid right0.35%yes
SC Santa Catarina+40.63Solid right3.74%no
RR Roraima+44.26Solid right0.24%no

Swing states

A state is a swing state (shown in yellow across the site) when it meets at least one of three criteria: (1) it changed bloc at least 3 times across the 10 elections from 1989 to 2026, using round 2 where there was a runoff and round 1 in the years without one (1994 and 1998); (2) it changed bloc at least 4 times over every round — counting round 1 by the bloc of the state’s most-voted candidate and round 2 by the winner, so a turn between the two rounds of the same year counts (Minas Gerais in 2026: right ahead in round 1, left in round 2); summing each bloc’s votes in round 1 would manufacture turns in three-way races, hence the most-voted rule; or (3) its lean index is below 8 pts in absolute value (“lean” or “toss-up” rating). Yellow is reserved for this classification and used for nothing else. The Swing states page shows the full series, each state’s index and how much every state moved between round 1 and round 2 in runoff years.

See swing states →

Forecast model

The headline comes solely from the transfer model: a state-by-state emulation of how round-1 votes redistribute between the two finalists in the runoff, weighted by electorate and expected abstention. Uncertainty is propagated by Monte Carlo simulation. Polls and the incumbency prior are computed and shown for comparison only.

Editorial decision: the headline number does not use polls; they appear only as a comparison.

Statistical forecast based on official TSE results and on polls registered with the TSE; it is not an opinion poll (TSE Resolution 23.600/2019).

Transfer

The transfer estimate starts from the proportional split of round 1 between the two finalists (baseline) and adjusts for the weight of each bloc’s eliminated candidates (β); the national swing between rounds (α) is treated as uncertainty, not as a prediction. Calibrated on the 2002–2022 runoffs, by state.

β Left
-0.085
β Right
0.218
α (σ)
4.77 pts
σ resid.
3.07 pts
n
168 · 2002, 2006, 2010, 2014, 2018, 2022

Polls

Average of runoff polls registered with the TSE, in valid votes, weighted down by age (half-life in days) and by institute reliability, and corrected by the house effect estimated in previous elections.

Polls (effective n)
8 · nef 5.91
Half-life
5 d

Prior

Historical result of previous runoffs with an incumbent-bloc adjustment and a wide standard deviation: it only anchors the estimate when the other sources are scarce.

n
5
σ
8.31 pts

National uncertainty: 4.77 pts standard deviation, estimated from the historical swing of the national result between round 1 and round 2, floored at 2.50 pts. (sd of year effects α_y (between-round national swing) floored at 2.5 pp)

Simulation: 20,000 scenarios with a national error of 4.77 pts standard deviation, a 3.00 pts error per state and 0.60 regional correlation. The win probability is the share of simulations in which each bloc exceeds 50% of valid votes.

Scenarios

  • Base — the model as described above.
  • High abstention in the Northeast — lower turnout in the Northeast region, reducing those states’ weight in the national total.
  • Strong transfer from eliminated candidates — votes of eliminated candidates migrate to the finalist of the same bloc above the historical pattern.

Comparison: polls and prior (not part of the number)

Average of the selected polls: 48.89% for the left (raw), 47.18% after the house-effect correction. Incumbency prior: 51.27% for the left. Both appear next to the projection for the reader to compare, without changing the headline.

Institute house effects

For each institute we compare the margin (left − right) of its final polls before the 2022 rounds and the 2026 round 1 with the official result. The mean signed error is subtracted from the 2026 polls; reliability (0–1) weights each institute in the average.

InstituteObs.Mean signed error (pts)MAE (pts)Reliability
AtlasIntel3+3.414.540.52
Datafolha3+3.965.280.49
MDA/CNT3+2.833.780.57
Quaest3+3.264.340.54
Futura2−0.891.330.79
Ipsos-Ipec2+4.997.480.40
Paraná Pesquisas2+0.291.440.78
BTG/Nexus1+3.436.870.42
Ipespe/Abrapel1+3.887.770.39
PoderData/Aya1+1.933.870.56
Real Time Big Data1+3.436.870.42

In the elections used for calibration, polls on average overstated the left-bloc candidate by 2.81 pts. The correction therefore moves the poll average from 48.89% to 47.18% of valid votes for the left — toward the right-bloc finalist.

Backtest

Leave-one-year-out validation using transfer + prior only — there are no historical polls in the repository — so the error is wider than the full ensemble’s.

YearPredicted (median)80% intervalActualErrorP(left)In interval
200266.89%60.29–73.39%61.27%+5.62100%✓
200653.07%48.27–57.71%60.83%−7.7679%✗
201057.29%50.28–64.22%56.05%+1.2491%✓
201454.85%47.63–61.95%51.64%+3.2180%✓
201836.48%30.74–42.08%44.87%−8.390%✗
202253.96%47.11–60.73%50.90%+3.0677%✓

4 of 6 years inside the 80% interval.

Sources

Official TSE results by municipality and zone (1989 by state only, since the TSE did not publish that year by municipality). Each downloaded file is identified by its SHA-256 hash.

YearFileGranularitySHA-256Downloaded
1989votacao_candidato_uf_1989.zipState · 1º, 2º10197cf6f047…10/19/2026, 02:38 PM GMT-3
1989detalhe_votacao_uf_1989.zipState · 1º, 2º872b3788c780…10/19/2026, 02:38 PM GMT-3
1994votacao_candidato_munzona_1994.zipMunicipality · 1º67e6525a84ae…10/19/2026, 02:38 PM GMT-3
1994detalhe_votacao_munzona_1994.zipMunicipality · 1ºa540bebfe130…10/19/2026, 02:38 PM GMT-3
1998votacao_candidato_munzona_1998.zipMunicipality · 1º8cb16d1c4901…10/19/2026, 02:38 PM GMT-3
1998detalhe_votacao_munzona_1998.zipMunicipality · 1º15ef1975b291…10/19/2026, 02:38 PM GMT-3
2002votacao_candidato_munzona_2002.zipMunicipality · 1º, 2ºc1b7eabc9415…10/19/2026, 02:39 PM GMT-3
2002detalhe_votacao_munzona_2002.zipMunicipality · 1º, 2º2b4d6a6f5af4…10/19/2026, 02:38 PM GMT-3
2006votacao_candidato_munzona_2006.zipMunicipality · 1º, 2º9bd23c339924…10/19/2026, 02:39 PM GMT-3
2006detalhe_votacao_munzona_2006.zipMunicipality · 1º, 2º9cc8d3a710f3…10/19/2026, 02:38 PM GMT-3
2010votacao_candidato_munzona_2010.zipMunicipality · 1º, 2ºfc7052974632…10/19/2026, 02:39 PM GMT-3
2010detalhe_votacao_munzona_2010.zipMunicipality · 1º, 2º5f0ea64db232…10/19/2026, 02:38 PM GMT-3
2014votacao_candidato_munzona_2014.zipMunicipality · 1º, 2ºf41bceb42782…10/19/2026, 02:39 PM GMT-3
2014detalhe_votacao_munzona_2014.zipMunicipality · 1º, 2ºf9195f8988ed…10/19/2026, 02:38 PM GMT-3
2018votacao_candidato_munzona_2018.zipMunicipality · 1º, 2ºf880848ef4ba…10/19/2026, 02:39 PM GMT-3
2018detalhe_votacao_munzona_2018.zipMunicipality · 1º, 2ºdf68c258a226…10/19/2026, 02:38 PM GMT-3
2022votacao_candidato_munzona_2022.zipMunicipality · 1º, 2ºbf030dc46440…10/19/2026, 02:39 PM GMT-3
2022detalhe_votacao_munzona_2022.zipMunicipality · 1º, 2º402c9983670e…10/19/2026, 02:38 PM GMT-3
2026votacao_candidato_munzona_2026.zipMunicipality · 1º, 2º197222cff9df…10/19/2026, 02:39 PM GMT-3
2026detalhe_votacao_munzona_2026.zipMunicipality · 1º, 2ºdfd131aaaf18…10/19/2026, 02:38 PM GMT-3
Ingestion notes by year
  • 1989: UF-level source files (TSE did not publish 1989 by municipality); votacao: 672 rows; detalhe: 56 rows; electorate: valid = QTD_VOTOS_NOMINAIS; null = QTD_VOTOS_NULOS; check: sum of candidate votes ≠ detalhe valid in 7 (round, unit) rows (max |diff| 1294); UF:AL r2 +1294, UF:RJ r2 -429, UF:PR r2 -423, UF:CE r2 -297, UF:PA r2 -82, UF:MA r2 -64, UF:RS r2 +1
  • 1994: votacao: votacao_candidato_munzona_1994_BR.csv; votes column: QT_VOTOS_NOMINAIS_VALIDOS; detalhe: detalhe_votacao_munzona_1994_BR.csv; electorate: valid = QT_VOTOS_NOMINAIS_VALIDOS; null = QT_VOTOS_NULOS + QT_VOTOS_NULOS_TECNICOS; electorate: QT_TOTAL_VOTOS_VALIDOS sums to 0 vs QT_VOTOS_NOMINAIS_VALIDOS 63,285,633 (component column used); electorate: QT_TOTAL_VOTOS_NULOS sums to 0 vs QT_VOTOS_NULOS+TECNICOS 7,443,144 (component columns used); check: no ZZ (abroad) rows in the source file; check: sum of candidate votes equals detalhe valid votes in every unit
  • 1998: votacao: streamed votacao_candidato_munzona_1998_BRASIL.csv and kept 73,284 presidential rows (no _BR member in this zip); votes: QT_VOTOS_NOMINAIS sums to 0 but QT_VOTOS_NOMINAIS_VALIDOS to 67,722,303; using QT_VOTOS_NOMINAIS_VALIDOS; votes column: QT_VOTOS_NOMINAIS_VALIDOS; detalhe: detalhe_votacao_munzona_1998_BR.csv; electorate: valid = QT_VOTOS_NOMINAIS_VALIDOS; null = QT_VOTOS_NULOS + QT_VOTOS_NULOS_TECNICOS; check: sum of candidate votes equals detalhe valid votes in every unit
  • 2002: votacao: votacao_candidato_munzona_2002_BR.csv; votes column: QT_VOTOS_NOMINAIS; detalhe: detalhe_votacao_munzona_2002_BR.csv; electorate: valid = QT_VOTOS_NOMINAIS_VALIDOS; null = QT_VOTOS_NULOS + QT_VOTOS_NULOS_TECNICOS; electorate: 2,891 votes 'anulados em apuração separada' are in turnout but not in valid/blank/null; check: sum of candidate votes equals detalhe valid votes in every unit
  • 2006: votacao: votacao_candidato_munzona_2006_BR.csv; votes column: QT_VOTOS_NOMINAIS; detalhe: detalhe_votacao_munzona_2006_BR.csv; electorate: valid = QT_VOTOS_NOMINAIS_VALIDOS; null = QT_VOTOS_NULOS + QT_VOTOS_NULOS_TECNICOS; electorate: QT_TOTAL_VOTOS_NULOS sums to 10,728,493 vs QT_VOTOS_NULOS+TECNICOS 10,766,074 (component columns used); check: sum of candidate votes equals detalhe valid votes in every unit
  • 2010: votacao: votacao_candidato_munzona_2010_BR.csv; votes column: QT_VOTOS_NOMINAIS; 364 rows flagged ST_VOTO_EM_TRANSITO='S' (summed into their UF/municipality); detalhe: detalhe_votacao_munzona_2010_BR.csv; electorate: valid = QT_VOTOS_NOMINAIS_VALIDOS; null = QT_VOTOS_NULOS + QT_VOTOS_NULOS_TECNICOS; electorate: 272 votes 'anulados em apuração separada' are in turnout but not in valid/blank/null; VT (voto em trânsito) folded into BR only — round 1: 64,698, round 2: 53,035; check: 56 (round, unit) rows in detalhe without any candidate votes; check: sum of candidate votes equals detalhe valid votes in every unit
  • 2014: votacao: votacao_candidato_munzona_2014_BR.csv; votes column: QT_VOTOS_NOMINAIS; 1,090 rows flagged ST_VOTO_EM_TRANSITO='S' (summed into their UF/municipality); detalhe: detalhe_votacao_munzona_2014_BR.csv; electorate: valid = QT_VOTOS_NOMINAIS_VALIDOS; null = QT_VOTOS_NULOS + QT_VOTOS_NULOS_TECNICOS; check: 74 (round, unit) rows in detalhe without any candidate votes; check: sum of candidate votes equals detalhe valid votes in every unit
  • 2018: votacao: votacao_candidato_munzona_2018_BR.csv; votes column: QT_VOTOS_NOMINAIS_VALIDOS; detalhe: detalhe_votacao_munzona_2018_BR.csv; electorate: valid = QT_VOTOS_NOMINAIS_VALIDOS; null = QT_VOTOS_NULOS + QT_VOTOS_NULOS_TECNICOS; electorate: 746 votes 'anulados em apuração separada' are in turnout but not in valid/blank/null; check: 66 (round, unit) rows in detalhe without any candidate votes; check: sum of candidate votes equals detalhe valid votes in every unit
  • 2022: votacao: votacao_candidato_munzona_2022_BR.csv; votes column: QT_VOTOS_NOMINAIS_VALIDOS; detalhe: detalhe_votacao_munzona_2022_BR.csv; electorate: valid = QT_VOTOS_NOMINAIS_VALIDOS; null = QT_VOTOS_NULOS + QT_VOTOS_NULOS_TECNICOS; check: sum of candidate votes equals detalhe valid votes in every unit
  • 2026: votacao: votacao_candidato_munzona_2026_BR.csv; votes column: QT_VOTOS_NOMINAIS_VALIDOS; detalhe: detalhe_votacao_munzona_2026_BR.csv; electorate: valid = QT_VOTOS_NOMINAIS_VALIDOS; null = QT_VOTOS_NULOS + QT_VOTOS_NULOS_TECNICOS; check: sum of candidate votes equals detalhe valid votes in every unit; round 2: UF-level totals from the TSE live JSON (resultados.tse.jus.br) captured on election night; national file at 99,96% of sections, generated 25/10/2026 21:52:05; valid votes 124,035,553

Privacy (LGPD)

The site uses only public, aggregated data from the TSE (totals by municipality, zone and state) and from IBGE. There is no personal voter data at any stage. The site sets no cookies and uses no personal identifiers; audience metrics are aggregate and anonymous.

License

Exported data and taxonomy: CC-BY 4.0, with attribution to the TSE and IBGE. Site code: closed.

Download the data →