Detalhes Técnicos
Método, números completos, limites, correções, dados para download e como replicar. Para quem quer verificar.
Como chegamos aqui
Fontes acessadas: (1) os arquivos públicos de resultados.tse.jus.br (pleito 3220, 1º turno): índice de seções, arquivo auxiliar, boletim de urna (BU), registro digital do voto, log e assinatura de cada seção, e os resultados finais por zona, município, UF e Brasil; (2) a documentação oficial 2026 do TSE (formato de BU/RDV/assinatura, especificações EA11 a EA20, instruções de download, log do ecossistema da urna); (3) a Resolução TSE 23.751/2026; (4) a gravação da audiência técnica de 06/07/2026; (5) a imprensa, a nota oficial de 04/10 e a coletiva do Presidente do TSE; (6) capturas de coletores independentes (como pista, nunca como prova); (7) publicações no X (só para identificar alegações; os brutos não são publicados); (8) o painel de evolução da totalização do TSE (evolucao-totalizacao.tse.jus.br), dados oficiais de 5 em 5 minutos gerados em 05/10 às 19:53; (9) as páginas Fato ou Boato do TSE de 06/10 (texto primário da explicação do TSE) e a notícia de 06/10 22:09 que anuncia o painel.
Ritmo e limites do TSE: no máximo 90 requisições por segundo (o limite oficial é 100 por IP) e sem acionar URLs inexistentes. Os documentos de tse.jus.br foram baixados manualmente pelo navegador, sem contornar bloqueios. O painel de evolução da totalização não aceita download automatizado (o WAF responde 403 ao curl); não contornamos: os arquivos foram lidos pelo navegador e publicamos o SHA-256 dos originais para conferência.
Resultados completos
| Verificação | Resultado |
|---|---|
| Seções principais (oficial = 499.248) | 499.248 |
| Boletins baixados e decodificados | 498.921 |
| Seções sem boletim | 327 (286 sem arquivo auxiliar + 41 sem dados no índice) |
| Cadeia de hashes dos boletins | 498.921 íntegras; 0 falhas |
| Soma dos boletins × resultado final (por zona) | 6.243 exatas + 40 exatas (seções sem votos) + 9 diferentes |
| Diferença nacional de votos nominais | −74.234 de 119.300.788 (−0,062%); 3,3% da diferença entre 1º e 2º (2.224.965) e 0,15% da diferença entre 2º e 3º (Lula 53.879.538 × Cury 3.448.569 = 50.430.969) |
| Consistência interna do resultado final | zonas = municípios = UFs = Brasil; 0 divergências |
| Lote das 20:04 (100.614 = 424.153 − 323.539 seções; 424.153 confere com o painel oficial) | +0,114% nos votos válidos; parcela do candidato 13 −0,008 ponto; dentro da tolerância pré-registrada (0,5% e 0,7 ponto), que é de baixo poder: ver limites do pré-registro |
| Assinaturas | 2.994 de 2.994 válidas; titular do certificado = urna do BU |
| Tipos de urna nos boletins | seção 495.858; reserva 3.032; contingência/apuração 31 |
| Urnas substituídas (coletiva do TSE, 04/10) | 1.904 = 0,35% de 549.286 urnas (499.248 de votação + 50.038 de contingência); não é a mesma medida dos 3.032 boletins de reserva, que são contados sobre as 499.248 seções |
| Painel oficial do TSE (Presidente, Brasil) | totalização: última rodada antes da pausa às 19:32:21; depois só duas rodadas (19:44:59 e 19:45:15), +75 seções; retomada entre 20:00 e 20:05; antes, ~24 mil seções a cada 5 min; entre 19:35 e 20:00 nenhuma UF somou mais de 21 |
| Comparecimento (boletins × oficial) | Σ dos boletins 125.194.420; oficial 125.275.835 (diferença 81.415); coincide em 6.253 de 6.292 zonas; nas 39 restantes: 9 com seções sem arquivo (+80.067) e 30 com seções apuradas fora da urna (+1.348); nenhuma zona com soma dos boletins maior que o oficial |
O fluxo oficial, em resumo
Urna (17h) → mídia de resultado → ponto de transmissão (Transportador, JE-Connect) → recebimento (RecArquivos) → totalização (SISTOT) → geração dos arquivos JSON → replicação → CDN → painel e aplicativo. Segundo o TSE, há uma "fila virtual" e a totalização segue "a capacidade do sistema"; os arquivos são gerados em paralelo e depois sincronizados na CDN. Segundo o TSE (Fato ou Boato, 06/10), após as 17h rodam simultaneamente sete processamentos: (1) transmissão dos BUs; (2) recebimento no centro de dados; (3) divulgação dos BUs na internet; (4) processamento dos BUs; (5) sustentação dos sistemas gerenciais e de acompanhamento; (6) cálculo de totalizações; (7) geração dos arquivos de divulgação. O TSE localiza a falha no 7, no módulo da visualização "Brasil". Na transmissão, o JE-Connect usa VPN e verifica a assinatura digital da urna.
Campos: hr (recebimento, segundo o TSE; nos auxiliares "Recebida" é igual a hg; refeito em alguns casos ao virar "Totalizada"; sistema que o grava, desconhecido), hg (geração do arquivo; 65,5% regerados em 05/10 entre 12:45 e 13:05), ha do índice de seções (geração do auxiliar, não recebimento), ht (totalização; para o Brasil no arquivo de acompanhamento vale a última final ou, na falta, a parcial) e idg (identificador de geração, atribuído antes da escrita; não serve de relógio).
O arquivo auxiliar é gerado duas vezes (no recebimento, sem idg, e após a totalização, com idg). As 12.018 seções "Recebida" não têm idg, mas o índice de seções registra geração do auxiliar delas nas horas das UFs vizinhas: isso é compatível com arquivo publicado desatualizado, mas é inferência nossa; só o TSE confirma.
Urnas e registros (amostra)
Das substituições com horário registrado, 97% ocorreram antes das 17h. Por mil urnas originais: UE2013 43,0; UE2015 10,0; UE2020 5,5; UE2022 2,8. Em amostra estratificada de 16.935 registros, nenhuma urna tem linha de erro entre 19:10 e 19:20. O atraso por modelo é efeito de lugar: dentro da mesma zona a diferença some.
Limites e desvios (declarados)
- Âncora de confiança: as assinaturas são certificadas pelo próprio TSE; não examinamos o software da urna nem arquivos não publicados.
- Regra do voto nulo técnico: definida depois de ver 145 zonas diferirem por 1 a 3 votos (código 28, não candidato). A documentação oficial diz
tvn = vn + vnt; o mapeamento é inferência nossa, consistente em 6.283 zonas. - Correção do script oficial para urnas de contingência (identificação sem seção).
- Janela da "rajada" (19:59:22–20:03:00) escolhida depois de olhar os dados. Cortes do lote por UF com fuso convertido não foram feitos.
- Amostras não aleatórias: assinaturas e logs são estratificados; só o grupo "uniforme" (1.794) serve para inferência.
- Fuso: os
htparciais de UF de fora de Brasília parecem estar em hora local (teste nosso, não documentado); nos resultados finais todas as UFs têm o mesmoht. - Teste exploratório do resíduo das 286 seções: estimamos a composição esperada de votos nas 9 zonas afetadas a partir de 2022; em 6 de 9 o resultado é plausível e em 3 o 13 ficou 1 a 5 pontos abaixo do previsto. São 18 comparações, sem correção para múltiplas comparações: inconclusivo.
- Painel oficial do TSE: é uma reconstrução publicada depois da eleição (dados gerados em 05/10), com resolução de 5 minutos; não foi capturado em tempo real. A parada da totalização é "quase total" (houve duas rodadas pequenas), não total. O extrato dos estados é transcrição manual de 5 horários.
- Arquivos por UF: a afirmação de que os arquivos de UF também pararam (19:32 a 20:02) vem de coletor de terceiros e da totalização por UF do painel oficial; tecnicamente um arquivo de UF pode ter sido regerado sem dados novos.
Last-Modifieddos boletins: é a hora de escrita ou replicação do arquivo no servidor, não a de chegada ao TSE.- Cronologia: parte vem de coletores independentes (proveniência não verificada).
- Starlink: listas parciais; a comparação por município é descritiva e sem poder.
Erros nossos que foram corrigidos
Fizemos seis rodadas de revisão crítica interna, inclusive com auxílio de IA; ainda não houve revisão externa humana. Corrigimos, entre outros: Betim confundida com Belo Horizonte; urnas de reserva "sem modelo" (era limitação de leitura); 31 boletins do Sistema de Apuração tratados como "mistos" (29 são do exterior, manuais); denominadores das taxas de substituição; e a tese de que o reenvio sobrescreve o hr (as alterações coincidem com troca de situação do arquivo). Também: a duração do painel parado, citada pela imprensa como "cerca de uma hora" (19:06–20:08), foi corrigida para 19:14–20:04, que é a cifra oficial; um teste de comparecimento rodou com 44 boletins faltando e foi refeito; e a leitura "só o carimbo parou" perdeu força depois do painel oficial. Parte das conclusões foi rebaixada de "fato" para "hipótese".
Dados para download
Todos derivados e agregados. Não publicamos boletins brutos, logs brutos nem contas privadas do X.
- hr_por_minuto.csv: seções com carimbo
hrpor minuto, 17:00–22:00 de 04/10. - secoes_sem_arquivos.csv: as 286 seções sem arquivo auxiliar.
- recebida_por_municipio.csv: seções "Recebida" por município (12.018 em 30).
- painel_nacional.json: versões do painel nacional [T], de coletor independente.
- MANIFESTO_SHA256.txt: hashes de notas, scripts, seleções congeladas e dados do projeto.
- PRE_REGISTRO_lote3.md: teste do lote das 20:04, registrado antes do cálculo (hash no próprio texto da seção abaixo).
- pedido_lai.md: texto do pedido de informação.
- extrato_resumo_geral.json: extrato do painel oficial do TSE (Brasil, Presidente, de 5 em 5 min); conferido bit a bit.
- extrato_resumo_uf_pontos.json: seções totalizadas por UF em 5 horários; transcrição manual.
- hashes_arquivos_originais.txt: SHA-256, tamanho, endereço e
Last-Modifieddos 6 arquivos originais do painel do TSE. - Resultados dos testes: painel, nota do TSE × dados e comparecimento.
Verificação e replicação
Estado de publicação: o código e os dados do projeto ainda não estão publicados; os hashes abaixo permitirão conferir que nada mudou quando forem. Os hashes ainda não têm carimbo de tempo externo.
Versão deste relatório: v1 de 07/10/2026, 15:32 (Brasília). Hash SHA-256 do manifesto: b407fe3e0ba152d551f6ae0ebe3977f75e7cfc43050a5d7e77a6c68b61e91f9f. O hash do pré-registro do lote é a263383ffd5b26fc33283f2539348e91685819fd03ea4939a7b74c91cdd6be64. Esses hashes ainda não foram publicados em registro externo; quando forem, serão indicados aqui.
Para replicar (quando o código for publicado): os scripts (Python 3, sem serviços proprietários) leem as URLs públicas do TSE e a documentação oficial. Ordem: índice de seções → arquivos auxiliares → boletins → resultados finais → modelo da urna → reconciliação por zona → assinaturas → logs → manifesto. Para o painel oficial: abrir evolucao-totalizacao.tse.jus.br no navegador, ler os arquivos do painel, conferir o SHA-256 contra hashes_arquivos_originais.txt e rodar o script 34; depois o 32 (nota do TSE × dados) e o 33 (comparecimento). Os hashes e as regras estão no manifesto e nos pré-registros. Limite de acesso: no máximo 90 requisições por segundo; sem contornar bloqueios.
Fontes
- Informações técnicas sobre a divulgação de resultados (TSE), incluindo o FAQ e as especificações EA10–EA20.
- Resolução TSE 23.751/2026.
- Gravação da audiência técnica de 06/07/2026.
- TSE: verificação de integridade dos sistemas (03/10).
- TRE-SP: caminho do voto até a totalização (04/10).
- Lei 9.504/1997.
- TSE, Fato ou Boato: interrupção na divulgação (06/10).
- TSE, Fato ou Boato: urnas 2013 e 2015 (06/10).
- TSE, Fato ou Boato: mensagem "faltou" (06/10).
- TSE: Saiba como foi a totalização (06/10) e o Painel da evolução da totalização.
Glossário rápido
BU: boletim de urna (votos por candidato naquela seção). RDV: registro digital do voto. SISTOT: sistema que totaliza os votos. CDN: rede que distribui os arquivos ao público. Zerésima: relatório que mostra zero votos antes da abertura. Hash: impressão digital de um arquivo; qualquer mudança a altera. hr/hg/ht: horas de recebimento, geração e totalização. Visualização "Brasil": o resultado nacional de Presidente no painel e no aplicativo do TSE. Painel da evolução da totalização: ferramenta do TSE com a totalização de 5 em 5 minutos. Contenção: termo do TSE para o travamento do processamento. Last-Modified: hora em que um arquivo foi escrito no servidor. WAF: filtro do servidor que bloqueia acessos automatizados.