Skip to content

ELECTION CASE · BR-PRES-2026 · OBSERVED TSE DATA

Brazil's 2026 presidential election: what the TSE files support.

Results, turnout, margin, swing and counting, read from the official files of Brazil's Superior Electoral Court (TSE). Every number states whether it is observed, derived or still unknown, and which file it came from.

Most voted, Round 2, as % of valid votes
51.79%
LULA (PT) · 64,256,232 votes
Observed Source tse-6258-br-u · observed at
Margin over second place, Round 2
3.57 pp
4,430,191 votes · percentage points of valid votes
Derived formula in section 3
Turnout, Round 2
80.78%
of registered voters · abstention 19.22%
Derived formula in section 2
National swing between rounds
+2.80 pp
share of LULA between the two finalists, round 1 to round 2
Derived formula in section 4
Case
BR-PRES-2026
Authority
TSE
Rounds
·
Linked sources
63
Files collected

Table CSVs: results · turnout · swing by state

How to read this page

observed, derived and unknown

This case uses no synthetic data and no opinion polls. The chain is always the same: official file, observation, calculation, claim. Never file straight to "truth".

Observed
A number read from an official TSE file. The file has its URL, download date and SHA-256 recorded in the manifest, and the hash is checked again every time this page is generated.
Derived
A calculation on observed numbers, such as percentages, margin, swing and the cumulative counting share. The formula is shown right below each table.
Unknown
What no collected file supports yet: milestones without a source, events cited without a primary document, or metrics that need data not published in the collected files. Each item states the reason in section 10.

No number on this page was typed by hand: the page is generated at publication from the TSE files versioned in the Evidence repository. The text gives no opinion on candidates, parties or institutions, makes no forecast and assigns no aggregate confidence score. Claims go into a ledger with a state (confirmed, disputed, unsupported or unknown) and with the evidence behind them.

To check, download the manifest and compare the SHA-256 of each file with the file the TSE publishes at the same URL. The dossier carries the same chain in Markdown, in Portuguese.

The case in two figures

The national result by round and the change between rounds in each state. The tables with the same numbers come next; the maps page has four more figures. See the case maps

National result by round, 2026Percentage of valid votes by candidacy. Round 1: nº 22 (FLAVIO BOLSONARO) 47.03%, nº 13 (LULA) 45.16%; Round 2: nº 13 (LULA) 51.79%, nº 22 (FLAVIO BOLSONARO) 48.21%. Equivalent table on the page.National result by round, 2026Percentage of valid votes by candidacy, from most to least voted.Evidence state: OBSERVED. Votes read from the official TSE files;percentages of valid votes.Round 122 FLAVIO BOLSONARO (PL): 47.03%, 56,104,503 votes22 FLAVIO BOLSONARO47.03%13 LULA (PT): 45.16%, 53,879,538 votes13 LULA45.16%70 ESCRITOR AUGUSTO CURY (AVANTE): 2.89%, 3,448,569 votes70 ESCRITOR AUGUSTO CURY2.89%14 RENAN SANTOS (MISSÃO): 2.24%, 2,675,887 votes14 RENAN SANTOS2.24%55 RONALDO CAIADO (PSD): 2.18%, 2,605,148 votes55 RONALDO CAIADO2.18%30 ZEMA (NOVO): 0.27%, 326,488 votes30 ZEMA0.27%80 SAMARA (UP): 0.10%, 122,911 votes80 SAMARA0.10%16 HERTZ DIAS (PSTU): 0.04%, 43,103 votes16 HERTZ DIAS0.04%27 CLARIANA BARAO (DC): 0.03%, 40,043 votes27 CLARIANA BARAO0.03%21 EDMILSON COSTA (PCB): 0.02%, 22,693 votes21 EDMILSON COSTA0.02%35 VETERINÁRIO WILSON GRASSI (DEMOCRATA): 0.01%, 16,881 votes35 VETERINÁRIO WILSON GRASSI0.01%29 RUI COSTA PIMENTA (PCO): 0.01%, 15,024 votes29 RUI COSTA PIMENTA0.01%Round 213 LULA (PT): 51.79%, 64,256,232 votes13 LULA51.79%22 FLAVIO BOLSONARO (PL): 48.21%, 59,826,041 votes22 FLAVIO BOLSONARO48.21%50% of valid votesSource: TSE, BR-PRES-2026, manifesto SHA-256 890aa5af2220.Reveno Evidence · evidence.reveno.com.br
Swing between round 1 and round 2 by state, 2026Grid cartogram. Swing of no. 13 (LULA) from round 1 to round 2 in 28 scopes, in percentage points. Brazil: +2.80 pp. Largest: RJ +4.25 pp. Smallest: PI +1.21 pp. Equivalent table on the page.Swing between round 1 andround 2 by state, 2026Percentage points of the share of no.13 between the two finalists. Positive:toward no. 13 (LULA). Negative: towardno. 22 (FLAVIO BOLSONARO).Evidence state: DERIVED. Votes readfrom the official TSE files; swingcomputed from them.RR: +3.20 ppRR+3.20AP: +2.85 ppAP+2.85AM: +2.28 ppAM+2.28PA: +2.15 ppPA+2.15MA: +2.10 ppMA+2.10CE: +2.00 ppCE+2.00RN: +2.51 ppRN+2.51AC: +2.64 ppAC+2.64RO: +2.65 ppRO+2.65TO: +2.37 ppTO+2.37PI: +1.21 ppPI+1.21PE: +2.04 ppPE+2.04PB: +2.51 ppPB+2.51MT: +3.00 ppMT+3.00GO: +3.65 ppGO+3.65BA: +1.44 ppBA+1.44SE: +2.33 ppSE+2.33AL: +3.27 ppAL+3.27MS: +3.22 ppMS+3.22DF: +3.10 ppDF+3.10MG: +3.12 ppMG+3.12ES: +2.83 ppES+2.83PR: +3.18 ppPR+3.18SP: +3.77 ppSP+3.77RJ: +4.25 ppRJ+4.25SC: +3.27 ppSC+3.27RS: +3.06 ppRS+3.06Abroad (ZZ): +1.62 ppZZ+1.62Abroad← toward no. 22toward no. 13 →3.520.50.523.5pp · under 0.5 pp: graySource: TSE, BR-PRES-2026, manifestoSHA-256 890aa5af2220.Grid: Reveno positions, one cell perstateReveno Evidence ·evidence.reveno.com.br

1. Results by round

Round 1 ·

Observed Source tse-6257-br-u · observed at · sections totalized 100.00% · valid votes 119,300,788

Table 1Round 1 results in Brazil, by candidate. Observed
No.CandidatePartyVotes% of valid votesStatus (TSE)
22FLAVIO BOLSONAROPL56,104,503Runoff
13LULAPT53,879,538Runoff
70ESCRITOR AUGUSTO CURYAVANTE3,448,569Not elected
14RENAN SANTOSMISSÃO2,675,887Not elected
55RONALDO CAIADOPSD2,605,148Not elected
30ZEMANOVO326,488Not elected
80SAMARAUP122,911Not elected
16HERTZ DIASPSTU43,103Not elected
27CLARIANA BARAODC40,043Not elected
21EDMILSON COSTAPCB22,693Not elected
35VETERINÁRIO WILSON GRASSIDEMOCRATA16,881Not elected
29RUI COSTA PIMENTAPCO15,024Not elected

Round 2 ·

Observed Source tse-6258-br-u · observed at · sections totalized 100.00% · valid votes 124,082,273

Table 2Round 2 results in Brazil, by candidate. Observed
No.CandidatePartyVotes% of valid votesStatus (TSE)
13LULAPT64,256,232Elected
22FLAVIO BOLSONAROPL59,826,041Not elected

Observed Source: TSE, tse-6257-br-u, tse-6258-br-u · collected on · manifest SHA-256 890aa5af2220 · Download CSV · See the files

2. Turnout

Table 3Turnout in Brazil, by round.
MeasureRound 1Round 2State
Registered voters158,745,502158,745,502Observed
Turnout125,275,835128,236,074Observed
Abstention33,469,24430,509,005Observed
Valid votes119,300,788124,082,273Observed
Blank votes2,300,7981,430,496Observed
Null votes3,674,2492,723,305Observed
Turnout (% of registered voters)78.92%80.78%Derived
Abstention (% of registered voters)21.08%19.22%Derived

Formula turnout_pct = 100 * turnout / electorate; abstention_pct = 100 * abstention / electorate

Derived Source: TSE, tse-6257-br-u, tse-6258-br-u · collected on · manifest SHA-256 890aa5af2220 · Download CSV · See the files

3. Margin

Table 4Lead of the first over the second candidate, by round.
RoundAheadMargin (votes) DerivedMargin (percentage points of valid votes) Derived
Round 1FLAVIO BOLSONARO2,224,9651.87
Round 2LULA4,430,1913.57

Formula lead_votes = votes_A - votes_B; lead_pp = 100 * votes_A / valid_votes - 100 * votes_B / valid_votes

4. Change between rounds and national swing

Table 5Change in Brazil from round 1 to round 2.
MeasureChange Derived
Abstention (percentage points)-1.86
Turnout (votes)+2,960,239
Valid votes (votes)+4,781,485

Formula delta_abstention_pp = abstention_pct_t2 - abstention_pct_t1; delta_turnout = turnout_t2 - turnout_t1; delta_valid = valid_t2 - valid_t1

Table 6National swing of the two finalists.
CandidateRound 1 votes ObservedRound 2 votes ObservedRound 1 share, between the two DerivedRound 2 share DerivedSwing (pp) DerivedVote gain Derived
LULA53,879,53864,256,23248.99%51.79%+2.80+10,376,694
FLAVIO BOLSONARO56,104,50359,826,04151.01%48.22%-2.80+3,721,538

Formula first_round_two_candidate_normalized_share = v1_A / (v1_A + v1_B); second_round_share = v2_A / valid_t2; swing_pp = 100 * (second - first); absolute_vote_gain = v2_A - v1_A

5. Swing by state

Fig. 1Swing between the two finalists, round 1 to round 2, in 28 scopesPercentage points of the share between the two finalists, from largest to smallest. Bar to the right: the share of LULA between the two finalists grew; to the left: the share of FLAVIO BOLSONARO grew. Scale from 0 to 5 percentage points on each side. The written value is the swing of LULA.
  1. RJ+4.25
  2. SP+3.77
  3. GO+3.65
  4. AL+3.27
  5. SC+3.27
  6. MS+3.22
  7. RR+3.20
  8. PR+3.18
  9. MG+3.12
  10. DF+3.10
  11. RS+3.06
  12. MT+3.00
  13. AP+2.85
  14. ES+2.83
  15. RO+2.65
  16. AC+2.64
  17. PB+2.51
  18. RN+2.51
  19. TO+2.37
  20. SE+2.33
  21. AM+2.28
  22. PA+2.15
  23. MA+2.10
  24. PE+2.04
  25. CE+2.00
  26. Abroad (ZZ)+1.62
  27. BA+1.44
  28. PI+1.21

Derived Source: TSE, 56 files · collected on · manifest SHA-256 890aa5af2220 · Download CSV · See the files

Table 7Swing from round 1 to round 2 in 28 scopes (27 states and abroad).
ScopeRound 2 registered voters ObservedSwing LULA (pp) DerivedGain LULA DerivedSwing FLAVIO BOLSONARO (pp) DerivedGain FLAVIO BOLSONARO Derived
AC613,715+2.64+9,743-2.64-15,092
AL2,442,081+3.27+157,162-3.27+8,422
AM2,798,661+2.28+98,787-2.28-1,519
AP576,910+2.85+10,465-2.85-13,604
BA11,312,891+1.44+820,487-1.44+166,176
CE6,996,521+2.00+480,861-2.00+62,628
DF2,258,995+3.10+149,597-3.10+69,926
ES2,991,515+2.83+151,937-2.83+61,310
GO5,080,385+3.65+396,675-3.65+293,446
MA5,183,049+2.10+241,930-2.10-9,069
MG16,372,144+3.12+1,162,163-3.12+464,238
MS2,024,437+3.22+112,118-3.22+54,541
MT2,637,879+3.00+112,486-3.00+52,518
PA6,262,063+2.15+263,212-2.15+35,983
PB3,248,434+2.51+252,932-2.51+33,833
PE7,223,227+2.04+563,542-2.04+94,511
PI2,704,695+1.21+130,279-1.21+8,831
PR8,613,628+3.18+511,907-3.18+346,099
RJ12,857,526+4.25+872,372-4.25+202,189
RN2,659,867+2.51+175,633-2.51+16,916
RO1,265,926+2.65+43,779-2.65+21,394
RR401,540+3.20+9,085-3.20-11,647
RS8,522,318+3.06+529,793-3.06+300,595
SC5,734,687+3.27+291,146-3.27+220,051
SE1,740,093+2.33+133,022-2.33+15,515
SP34,123,591+3.77+2,613,861-3.77+1,217,155
TO1,182,041+2.37+38,953-2.37-1,405
Abroad (ZZ)916,683+1.62+42,767-1.62+27,597

Each row uses the round 1 and round 2 snapshots of the scope; each file is listed in the sources table.

Formula first_round_two_candidate_normalized_share = v1_A / (v1_A + v1_B); second_round_share = v2_A / valid_t2; swing_pp = 100 * (second - first); absolute_vote_gain = v2_A - v1_A

6. Counting timeline

Round 1

First closing · Last closing · Sources tse-6257-br-ab

Table 8Round 1: closing time by scope, in time order.
OrderScopeClosed at ObservedRegistered voters ObservedCumulative share of registered voters Derived
1AC613,7420.39%
2RO1,265,8931.18%
3MS2,024,4302.46%
4RR401,5212.71%
5DF2,258,3204.14%
6MT2,637,8015.80%
7TO1,182,0236.54%
8ES2,991,6508.43%
9AP576,9888.79%
10RS8,522,54514.16%
11SC5,734,65117.77%
12SE1,740,13518.87%
13RJ12,857,64826.97%
14GO5,080,59030.17%
15PE7,223,45034.72%
16PR8,613,65740.14%
17SP34,122,89261.64%
18RN2,659,82563.31%
19AL2,442,12664.85%
20CE6,996,54569.26%
21PB3,248,53171.31%
22PI2,704,75873.01%
23PA6,262,39776.96%
24BA11,312,75284.08%
25MG16,372,37294.40%
26AM2,798,61196.16%
27MA5,183,11599.42%
28Abroad (ZZ)916,534100.00%

Formula cumulative_electorate_share = sum(electorate dos escopos fechados até t) / sum(electorate)

Derived Geographic completion bias (total variation between expected and observed weight of each state, at snapshot time): 0.01150

Formula expected_weight = electorate_i / sum(electorate); observed_weight = turnout_totalized_i / sum(turnout_totalized); bias = observed_weight - expected_weight

Finalization milestones

  • Mathematically decided Unknown no source collected for this milestone
  • Totalization complete Observed · Source tse-6257-br-u
  • Result announced Unknown no source collected for this milestone
  • Result proclaimed Unknown no source collected for this milestone
  • Certification (diplomação) Unknown no source collected for this milestone
  • Taking office Unknown no source collected for this milestone

Round 2

First closing · Last closing · Sources tse-6258-br-ab

Table 9Round 2: closing time by scope, in time order.
OrderScopeClosed at ObservedRegistered voters ObservedCumulative share of registered voters Derived
1AC613,7150.39%
2RO1,265,9261.18%
3RR401,5401.44%
4MS2,024,4372.71%
5MT2,637,8794.37%
6SC5,734,6877.99%
7AM2,798,6619.75%
8AP576,91010.11%
9RN2,659,86711.79%
10PR8,613,62817.22%
11DF2,258,99518.64%
12PI2,704,69520.34%
13AL2,442,08121.88%
14TO1,182,04122.62%
15ES2,991,51524.51%
16RS8,522,31829.88%
17SE1,740,09330.97%
18GO5,080,38534.17%
19CE6,996,52138.58%
20SP34,123,59160.08%
21PB3,248,43462.12%
22PE7,223,22766.67%
23RJ12,857,52674.77%
24PA6,262,06378.72%
25MA5,183,04981.98%
26MG16,372,14492.30%
27BA11,312,89199.42%
28Abroad (ZZ)916,683100.00%

Formula cumulative_electorate_share = sum(electorate dos escopos fechados até t) / sum(electorate)

Derived Geographic completion bias (total variation between expected and observed weight of each state, at snapshot time): 0.01113

Formula expected_weight = electorate_i / sum(electorate); observed_weight = turnout_totalized_i / sum(turnout_totalized); bias = observed_weight - expected_weight

Finalization milestones

  • Mathematically decided Unknown no source collected for this milestone
  • Totalization complete Observed · Source tse-6258-br-u
  • Result announced Unknown no source collected for this milestone
  • Result proclaimed Unknown no source collected for this milestone
  • Certification (diplomação) Unknown no source collected for this milestone
  • Taking office Unknown no source collected for this milestone

Marginal share between counting instants

Unknown só um instante por escopo foi coletado; o painel de evolução da totalização não foi localizado nos arquivos públicos

7. Events

Table 10Events recorded in the case.
DateTypeInstitutionEventEffectStateSource
FinalizationTSETotalização do 1º turno concluída (100% das seções)Resultado consolidado publicado no app oficial de resultadosObservedtse-6257-br-u
Judicial decisionSTFDecisão liminar do STF na Rcl 101673 estendendo a votação até as 19h nas seções ainda abertas às 17hO ministro Cristiano Zanin, do Supremo Tribunal Federal (STF), estendeu o período de votação até as 19h em todos os municípios brasileiros, nos locais onde as urnas não foram fechadas às 17h.Observedstf-noticia-prorrogacao-19h
Administrative actTSETotalização e divulgação dos resultados pausadas até as 19hSem documento oficial coletado com a pausa da divulgação.Unknownnone
FinalizationTSETotalização do 2º turno concluída (100% das seções)Resultado consolidado publicado no app oficial de resultadosObservedtse-6258-br-u

8. Assurances

Table 11Recorded assurances, with what each one does not support.
CategoryAssuranceMethodDateStateSourceLimits
Voting machine integrityTeste de integridade do 2º turno: votos de cédulas de papel conferidos contra o resultado das urnas sorteadas
Sem documento oficial coletado.
teste_de_integridaden/aUnknownnone
  • Sem fonte: não sustenta nada.
  • Mesmo com fonte, sustenta o que testou, não a ausência de problema em qualquer urna.
Chain of custodyBoletins de urna, RDV e logs transmitidos para totalização publicados nos Dados Abertos
Conjunto com 56 arquivos (um ZIP por UF e turno).
metadados_portal_dados_abertosObserveddadosabertos-resultados-2026-arquivos-transmitidos-para-totalizacao
  • Os ZIPs não foram baixados nem conferidos nesta coleta: a garantia é a publicação, não a conferência.
Public verifiabilityResultados por Brasil, UF e exterior publicados em arquivos abertos
O índice de pleitos e os arquivos consolidados por escopo estão acessíveis sem autenticação.
download_publico_com_hashObservedtse-indice-pleitos
  • Verificabilidade do resultado publicado; não verifica o conteúdo das urnas.
Result totalizationTotalização do 2º turno fechada com 100% das seções
O arquivo consolidado do Brasil marca a totalização como concluída.
arquivo_consolidado_app_resultadosObservedtse-6258-br-u
  • Atesta o fechamento da totalização, não a auditoria do conteúdo das urnas.
Software verificationVerificação pública de assinaturas digitais e hashes dos sistemas de transmissão e totalização na véspera do 2º turno
Sem documento oficial coletado.
digital_signature_and_hash_verificationn/aUnknownnone
  • Sem fonte: não sustenta nada até a notícia ou a ata oficial entrar no manifesto.

An assurance supports what was verified, nothing more. There is no aggregate confidence score.

9. Claims

Table 12Claims ledger, with the state the loaded evidence supports.
ClaimStateEvidenceRationale
LULA venceu o 2º turno de 2026Confirmed
  • snapshot snap_BR-PRES-2026_2_br_202610252326380300 Observed
  • source tse-6258-br-u Observed
Resultado consolidado do Brasil com 100% das seções e candidato marcado como eleito.
A abstenção do 2º turno foi menor que a do 1ºConfirmed
  • snapshot snap_BR-PRES-2026_1_br_202610051251050300 Observed
  • snapshot snap_BR-PRES-2026_2_br_202610252326380300 Observed
Derivado de dois snapshots observados: abstenção 21.0836% no 1º turno e 19.2188% no 2º. A variação é DERIVED; a causa não está estabelecida.
A prorrogação do horário de votação alterou o vencedorUnsupportednoneNenhuma evidência coletada vincula a prorrogação ao resultado. O cálculo contra a margem fica pendente da contagem oficial de votos depois das 17h.
Houve votos registrados depois das 17h no 2º turnoUnknown
  • event ev_BR-PRES-2026_stf_2026-10-25_horario Observed (context only, does not support)
Sem a publicação oficial do TSE com a contagem: documento oficial localizado e não baixado (falha: http 403). A decisão do STF mostra que urnas seguiam abertas às 17h, não quantos votaram depois.
Todos os votos registrados depois das 17h foram para o vencedorUnknownnoneSem fonte e sem desagregação por horário no resultado consolidado.

10. What is still unknown

Unknown does not mean false: it means no collected source supports the item. Each row states the reason.

  • Unknown Marginal share between counting instantssó um instante por escopo foi coletado; o painel de evolução da totalização não foi localizado nos arquivos públicos
  • Unknown Finalization milestones, Round 1Mathematically decided, Result announced, Result proclaimed, Certification (diplomação), Taking office: no source collected for this milestone
  • Unknown Finalization milestones, Round 2Mathematically decided, Result announced, Result proclaimed, Certification (diplomação), Taking office: no source collected for this milestone
  • Unknown Totalização e divulgação dos resultados pausadas até as 19hSem documento oficial coletado com a pausa da divulgação.
  • Unknown Teste de integridade do 2º turno: votos de cédulas de papel conferidos contra o resultado das urnas sorteadasSem fonte: não sustenta nada.
  • Unknown Verificação pública de assinaturas digitais e hashes dos sistemas de transmissão e totalização na véspera do 2º turnoSem fonte: não sustenta nada até a notícia ou a ata oficial entrar no manifesto.
  • Unknown Houve votos registrados depois das 17h no 2º turnoSem a publicação oficial do TSE com a contagem: documento oficial localizado e não baixado (falha: http 403). A decisão do STF mostra que urnas seguiam abertas às 17h, não quantos votaram depois.
  • Unknown Todos os votos registrados depois das 17h foram para o vencedorSem fonte e sem desagregação por horário no resultado consolidado.

11. Sources

Table 1363 official files linked to the case, with download date and SHA-256.
IdTypeURLDownloaded atSHA-256BytesState
tse-6257-br-abCoverage by statehttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/br/br-e006257-ab.json9de639fcd123077cd10697d707d7c939d9a45e56fb5732fce04cea4ca3262a6e29,410Observed
tse-6258-br-abCoverage by statehttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/br/br-e006258-ab.json68f6ae0c8ca6a705591780c94819c45475ffed6d72e44b477d7bfe9a591ceb9729,409Observed
stf-noticia-prorrogacao-19hOfficial documenthttps://noticias.stf.jus.br/postsnoticias/stf-prorroga-votacao-ate-as-19h-em-locais-onde-urnas-permaneceram-abertas-apos-as-17h/5558ab42b40e870996e3ffa258437b4a86e3ccd9bb17da8b8a65d3fdb300df6264,986Observed
tse-indice-pleitosElection indexhttps://resultados.tse.jus.br/oficial/comum/config/ele-c.json91d1c4fe50dbe92067b83677d77a4f1856f5deca69a04b013a679ff69079172126,574Observed
dadosabertos-resultados-2026-arquivos-transmitidos-para-totalizacaoOpen Data metadatahttps://dadosabertos.tse.jus.br/api/3/action/package_show?id=resultados-2026-arquivos-transmitidos-para-totalizacaof5dc5de59fc94ce401d21c8c5973e3027d33fa3dfbae65ac9b6668027440189543,810Observed
tse-6257-ac-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/ac/ac-c0001-e006257-u.jsonc67559bc6e31b503162fcdd74604f00ce877efc4b90d7fdea8b48a0e634b4b0e9,293Observed
tse-6257-al-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/al/al-c0001-e006257-u.json96e234bc2a91d872d54a9951fbd60dce9b54ad0dc1fe347e322d89d25be187d49,324Observed
tse-6257-am-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/am/am-c0001-e006257-u.json8cbbec68324aec9f02df666154d47b2ee00f8c6380a099c7442721adf45214e79,329Observed
tse-6257-ap-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/ap/ap-c0001-e006257-u.json42c0d70f1abefdc5e5c5f75f4d341a66c373b34863685f22bc31aa742ec6a0629,294Observed
tse-6257-ba-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/ba/ba-c0001-e006257-u.jsonb50778a7cb0f9763994873ea045e95da1ee962577675dfcb99786f28532084159,365Observed
tse-6257-br-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/br/br-c0001-e006257-u.json2866703eb4fc0ad6f17f0e081a00ab1175490b0786325e700cff1d8b40d25bca9,349Observed
tse-6257-ce-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/ce/ce-c0001-e006257-u.jsonff65f98d1f1462c8230a2856f6c0e46ee7fb2a8f8ac7f1bf60979c6b1eea5f079,355Observed
tse-6257-df-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/df/df-c0001-e006257-u.json6fa13cd7f0b3024777891dbe94723e7e39ecbba76bdc702e9f81428826a7283a9,324Observed
tse-6257-es-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/es/es-c0001-e006257-u.json9e8036ad95dfc1fa119b26164bba9201fa6562c007418c773f13e7f5b6fe319d9,328Observed
tse-6257-go-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/go/go-c0001-e006257-u.json0bca25dc783c2b3c711f0cfe7432fe9e10d78d5ef8449c6d1368740bbe2dc1d69,343Observed
tse-6257-ma-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/ma/ma-c0001-e006257-u.json22daf14542c35a384967da16c71ca02b5292b5703d4ef09357dc1a1a65b9a41d9,343Observed
tse-6257-mg-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/mg/mg-c0001-e006257-u.jsond01c373751e029fdba347cce9f367679707bfb897f3942b3e233a273b87db1999,382Observed
tse-6257-ms-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/ms/ms-c0001-e006257-u.json35a5e50df19afeea34928eb3810f53cbcd122730c27d4d2fb2a52cdbd3ae6b199,324Observed
tse-6257-mt-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/mt/mt-c0001-e006257-u.json0e7250b701d2889ba864082682e5ff5e14593bbac0a978c7d1ee88e6b42e285e9,330Observed
tse-6257-pa-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/pa/pa-c0001-e006257-u.json669dbc9548fb9a1f8ebb47a656234364c4aa18eb69c15f7b80634d16e23c29899,351Observed
tse-6257-pb-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/pb/pb-c0001-e006257-u.json7da03ae14bac3cf830d723ef04a02d5f830dc696ca9480647e76f1e146648e009,335Observed
tse-6257-pe-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/pe/pe-c0001-e006257-u.jsona18f9e0ec8f7073b3a9ff932321ae8592d3a906b875a33e080c2abb2444510bf9,349Observed
tse-6257-pi-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/pi/pi-c0001-e006257-u.jsond6dac2da5cbff871ab4c323beae7df6902ccb6e9c7a6b38e17518b2eac8842a29,333Observed
tse-6257-pr-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/pr/pr-c0001-e006257-u.jsond54aff50901472503eece5aabdce59518e67fd57cb7e7337b81132f995d72d029,364Observed
tse-6257-rj-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/rj/rj-c0001-e006257-u.json8a67b766e614b72140c0f6e026a097e4b20098f0c66cd528bb6a7aed194fda6a9,377Observed
tse-6257-rn-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/rn/rn-c0001-e006257-u.json87e559952a7a66a7592b8a9617e53af7e5748ee73d7802807e8e5a05e33df7f49,329Observed
tse-6257-ro-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/ro/ro-c0001-e006257-u.jsonc696369d5397d28e78c8313e5dd767728e995825bb053f1035b83f2688e68c319,309Observed
tse-6257-rr-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/rr/rr-c0001-e006257-u.json9bf774caceab5460c906ca3120dfbe72039b92bd852d21fc77e6a728253e02189,277Observed
tse-6257-rs-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/rs/rs-c0001-e006257-u.json7a56c5d75aa8a0aa75127e72814a7cbbbf9876b96f1d77a0c3154b95fd43371c9,367Observed
tse-6257-sc-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/sc/sc-c0001-e006257-u.jsonb51645c4cf68c1fe4761acdafd1214325c259661eb6522b286b97ab1b1d133819,355Observed
tse-6257-se-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/se/se-c0001-e006257-u.jsonc163da0f27c4b0bbdcc34359c87b88607d5823573c813d5835afff339340be779,321Observed
tse-6257-sp-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/sp/sp-c0001-e006257-u.json6e417d16de88b97e27abffc58f404e753ee73a34142da0bb266821d903e67c689,396Observed
tse-6257-to-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/to/to-c0001-e006257-u.json76150bdef9fdbf557decc1d7e073b1fa361849316bb6cce5b8f6208ac48cdbd59,306Observed
tse-6257-zz-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6257/dados/zz/zz-c0001-e006257-u.json9e8c762a6fdf924b46836cc246c8a32a41ec7f8f60ba2b1905cc8bd4a33dec039,341Observed
tse-6258-ac-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/ac/ac-c0001-e006258-u.jsonc70137f47f4003b9af57f6669fac400138563e2cd61410d6d5064aff3ac502253,147Observed
tse-6258-al-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/al/al-c0001-e006258-u.json17e4f968cf66a2f4676053d635362f0b7762a5baa3074aac2be5f5778deafbec3,162Observed
tse-6258-am-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/am/am-c0001-e006258-u.json601a662e37dc60f39bf47b2061d6bccef2b6d936e1225507f30b2c74751f9f8e3,162Observed
tse-6258-ap-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/ap/ap-c0001-e006258-u.json135f0658833ebc7cc65170a2d4b245b71e0308fad5488e0e9ba86929260a43cc3,145Observed
tse-6258-ba-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/ba/ba-c0001-e006258-u.jsona4e092360ddc4594f081c81af8af53535fa787bbec34e06a4a9e1ae77b5e7cd43,176Observed
tse-6258-br-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/br/br-c0001-e006258-u.json67fae708b0c7977fc9847d36100c63313621bff971178c48f2da99969707c2633,233Observed
tse-6258-ce-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/ce/ce-c0001-e006258-u.json189aeb382860facb91d2a1f3da05757f6e78ab196035a06a6afca8588ef4d4f33,171Observed
tse-6258-df-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/df/df-c0001-e006258-u.jsonb5a29365e59fae8035769cec4b038031885f5da500854abac9fe7a4a30064b033,157Observed
tse-6258-es-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/es/es-c0001-e006258-u.json6ce18297c3496452a4e65cc7216354b1c31c1fb8fa71eee4429ebaad2f5a0fcb3,165Observed
tse-6258-go-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/go/go-c0001-e006258-u.json16d50423643b3c4c58217d6d9a2915b595990efd9f8c9c1b80d3da7c462605423,170Observed
tse-6258-ma-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/ma/ma-c0001-e006258-u.jsonc53e1dd219b2bc18cf333068b960440680d396b692c293017c432ddac7cad25e3,170Observed
tse-6258-mg-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/mg/mg-c0001-e006258-u.jsonb8df2cfeb58fe9cf48881eea5123dc8fcbbbbc2e2fcdec4175955e5e9715f71a3,182Observed
tse-6258-ms-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/ms/ms-c0001-e006258-u.json49cf91e54d7ccadd5076215ced7e96d641ee1845f10079f2cd60afb6e6cbedf33,157Observed
tse-6258-mt-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/mt/mt-c0001-e006258-u.json766479c0061f631d9ba66bb6b2ce9d8a375387ef084dd22c08cdc0ad66e7d33a3,160Observed
tse-6258-pa-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/pa/pa-c0001-e006258-u.json36ea55088a8aa102520b062ddf39490f3800406d33fceb301ea138b6fdd0c58a3,170Observed
tse-6258-pb-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/pb/pb-c0001-e006258-u.jsonce76ba0a88754c6ada8c028eb6b0f888b029224fbbd6ceaa557bc80ecdba5ca83,166Observed
tse-6258-pe-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/pe/pe-c0001-e006258-u.json7206aef498734c4daba187f60c8d7a81eab0aae044619a23a55d9ea3e907b4b43,172Observed
tse-6258-pi-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/pi/pi-c0001-e006258-u.jsonaa79f6fa2fbb7006348e1016ec4858bc215c3026a038f9c80283c6e534dac1ab3,166Observed
tse-6258-pr-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/pr/pr-c0001-e006258-u.jsond74ef5cd3bc7259ec9745e2a09149c8188dce4c8e06fcc3ba61846ebdfdb9c5d3,172Observed
tse-6258-rj-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/rj/rj-c0001-e006258-u.json2e2c956ef0b44002aab643fe52a21efccf1cc40a3ff10dc1aceb8531571b4e743,179Observed
tse-6258-rn-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/rn/rn-c0001-e006258-u.jsonb1cd9c61283361a3fdea9917c0e8204ab50cd637d1d35c6de927a1cc0d018eb33,162Observed
tse-6258-ro-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/ro/ro-c0001-e006258-u.json63e07e2b7218c7355acab9bdae18a0cef8dded2148f73485cd490b0fa0c2ec293,151Observed
tse-6258-rr-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/rr/rr-c0001-e006258-u.json6a5e2e459706db0aebcf7119dbdaa8da9651e846c4aa2b5ab4db26bb3d1af6713,139Observed
tse-6258-rs-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/rs/rs-c0001-e006258-u.jsondfced6d0feeb5ca67e089c8320cb4c4276f73c17997c99b29f7bc7baf0d99a423,172Observed
tse-6258-sc-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/sc/sc-c0001-e006258-u.json80135261f80b3b388cb8bd61335a7347163f9385598bb071a7d0841d6fbd8b3d3,169Observed
tse-6258-se-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/se/se-c0001-e006258-u.json2cc1e515e781d7898ca66646c89c59ff8abc8247723eea0e657a11120a1c8ece3,157Observed
tse-6258-sp-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/sp/sp-c0001-e006258-u.json928950f17f4ef1eb889527aa7b37dd5aaa8cb5128b24fdeb64e1acb724641e203,194Observed
tse-6258-to-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/to/to-c0001-e006258-u.jsonfb9b8da8cd5fd57ff7172a8a741e35da90c7521e0d37533605db84d39ebd05353,151Observed
tse-6258-zz-uConsolidated resulthttps://resultados.tse.jus.br/oficial/ele2026/6258/dados/zz/zz-c0001-e006258-u.jsond8f54c294c61473d84d487e48d83fa0824e0e0b9788832f830440eb3a7646d813,184Observed

SHA-256 of the collection manifest: 890aa5af22204752879a7d89e3612e93c9a043f857a52a78e060ec6b82c03352 · Collection finished at

12. About this data

What it measures
Votes by candidate in each round, turnout (registered voters, turnout, abstention, blank and null votes), margin between the two most voted and swing between rounds, in Brazil, by state and abroad.
Source
Brazil's Superior Electoral Court (TSE): 63 official files, listed in the sources table with URL and SHA-256.
Unit
Votes (count); share of valid votes or of registered voters; percentage points (pp) for margin and swing.
Period
(Round 1) and (Round 2)
Last collected
Next scheduled collection
Daily at 09:30 UTC (06:30 in Brasília), by the evidence-tse engine, which checks the SHA-256 of every file. This page changes on the next site publication.
Maintained by
Reveno Evidence · evidence-tse engine, owner Thiago Holtz
Evidence state
Observed Derived
Version
Collection manifest, SHA-256 890aa5af22204752879a7d89e3612e93c9a043f857a52a78e060ec6b82c03352
License
Source data license: public data from the TSE, under the court's terms. License for the Reveno text and calculations: not declared yet; until then, cite this page.

13. Download the data

  1. What is on screen

    The tables on this page as CSV, with unformatted numbers and the evidence state of every row.

  2. The full set, with a manifest

    A ZIP with every file behind the page, a README with the citation and license, and a manifest with the SHA-256 of each file.

  3. For machines

    A JSON at a stable address, with metadata, citation, tables and sources. The address does not change between publications; the content changes when the collection changes.

14. How to cite

Short citation for a chart or table caption, or a note

TSE (2026), processed by Reveno Evidence

Full citation with URL and access date

Reveno Evidence (2026). Brazil 2026 presidential election: results and TSE evidence (BR-PRES-2026) [Data set]. Source data: Brazil's Superior Electoral Court (TSE), files collected on 2026-11-02 (UTC). Collection manifest, SHA-256 890aa5af22204752879a7d89e3612e93c9a043f857a52a78e060ec6b82c03352. Retrieved November 2, 2026, from https://evidence.reveno.com.br/en/elections/br-pres-2026/

BibTeX

@misc{reveno_evidence_br_pres_2026,
  author = {{Reveno Evidence}},
  title = {Brazil 2026 presidential election: results and TSE evidence (BR-PRES-2026)},
  year = {2026},
  publisher = {Reveno},
  url = {https://evidence.reveno.com.br/en/elections/br-pres-2026/},
  urldate = {2026-11-02},
  note = {Source data: Brazil's Superior Electoral Court (TSE), files collected on 2026-11-02 (UTC). Collection manifest, SHA-256 890aa5af22204752879a7d89e3612e93c9a043f857a52a78e060ec6b82c03352}
}

The access date is filled in with the date of this version of the page; replace it with the date you accessed it.

When you use a number, also cite the source file: id, URL and SHA-256 are in the sources table.

Source data license: public data from the TSE, under the court's terms. License for the Reveno text and calculations: not declared yet; until then, cite this page.

Ledger entries (events, assurances, claims and reasons) are recorded in Portuguese, as in the dossier.

Discover · open and freeAgents & SkillsSkills, agents and MCP servers with origin and triage.Operate · early accessHarnessThe cloud IDE where every agent runs with an owner and a receipt.Decide · early accessEvidenceSynthetic data to test the decision before you invest.