Refaça os cálculos
Scripts, base derivada e resultados prontos para inspeção e publicação em repositório.
Inclui os scripts Python, o relatório, a base por seção comprimida e as tabelas. Os ZIPs originais do TSE são obtidos pelo downloader com verificação SHA-512. Nenhuma dependência externa de Python é necessária.
Começar em cinco comandos
python3 baixar.py --dest dados/bweb
python3 -m unittest -v
python3 auditar.py --input dados/bweb --output resultados
python3 aprofundar.py --output resultados
python3 gerar_relatorio.py --output resultadosA reconciliação com votação por seção é opcional e requer o CSV adicional. Consulte as instruções completas abaixo.
Downloads diretos
- Matriz de alegações e verificações · CSV
- Base derivada por seção · CSV comprimido
- Resumo de resultados e validações · JSON
- Fontes e hashes dos arquivos originais · JSON
Instruções completas do projeto
Confronto dos números de um documento divulgado como “Relatório Pericial Independente” com os Boletins de Urna do TSE. O escopo é a eleição presidencial, segundo turno, 25/10/2026.
Os números confirmados não demonstram a conclusão de fraude. A análise distingue contagens reproduzidas, erros de interpretação, diferenças descritivas que permanecem e questões ainda não verificadas. Leia ANALISE.md.
Executar
Python 3.10 ou superior recomendado; não há dependências externas. A execução também foi testada com Python 3.9. O processamento usa centenas de MB de memória; a reconciliação opcional com o CSV nacional exige mais memória. Os downloads exigem acesso à internet; a análise funciona offline.
python3 baixar.py --dest dados/bweb
python3 -m unittest -v
python3 auditar.py --input dados/bweb --output resultados
python3 aprofundar.py --output resultados
python3 gerar_relatorio.py --output resultados
O downloader recupera a versão fixada em fontes_bweb.json, não a versão mais recente. São 28 ZIPs, aproximadamente 144 MB, acompanhados dos hashes SHA-512 oficiais fixados no manifesto. Se o TSE substituir os arquivos, o programa recusará um conteúdo com hash diferente. Não remova a verificação para resolver esse erro: atualize e documente a nova versão e refaça a análise.
Para conferir os votos contra uma segunda exportação do TSE:
python3 auditar.py --input dados/bweb --section-csv /caminho/votacao_secao_2026_BR.csv --output resultados
python3 aprofundar.py --output resultados
python3 gerar_relatorio.py --output resultados
Na estrutura do projeto usado nesta investigação:
python3 auditar.py --input ../boletins_urna_2turno_2026 --section-csv ../votacao_secao_2026_BR/votacao_secao_2026_BR.csv --output resultados
O CSV opcional pode ser obtido no conjunto Resultados — 2026, recurso de votação por seção. Ele não está incluído neste projeto. O parâmetro opcional é explicitado no resultado: omiti-lo não equivale a uma reconciliação realizada.
Métodos
- Filtrar
NR_TURNO=2eCD_CARGO_PERGUNTA=1nos BWeb. - Identificar seção por
(SG_UF, CD_MUNICIPIO, NR_ZONA, NR_SECAO). - Somar votos por candidato. Contar comparecimento e biometria uma vez por seção, pois esses campos se repetem nas linhas dos votáveis.
- Candidatos sem linha são tratados como zero votos; brancos e nulos não entram no denominador dos percentuais dos candidatos.
- Interromper a execução diante de duplicações, hashes incorretos, metadados conflitantes ou incoerências aritméticas. Conferir 28 arquivos, um por UF/exterior.
- Manter data, segundos e horários ausentes explícitos. Comparar cortes em segundos e cortes incluindo todo o minuto 17:00 ou 17:15.
- Converter os relógios locais para Brasília com a regra oficial por UF/município; não converter o exterior sem um mapeamento adicional. O exterior integra os totais e as contagens eleitorais, mas é excluído dos cálculos temporais em Brasília e das correlações nacionais.
- Calcular Pearson entre a fração de habilitações sem reconhecimento biométrico e a fração de votos válidos para Lula. Apresentar versões sem pesos, ponderada pelos votos válidos e com centralização dentro de UF/município. São associações ecológicas, sem interpretação causal.
- Comparar as seções encerradas a partir de 19h com as demais do mesmo município e, separadamente, do mesmo local de votação. Ponderar os percentuais de referência pelo número de votos válidos das seções tardias. Informar cobertura dos casos com comparação disponível.
As correções de fuso seguem as fontes oficiais em FONTES.md. Os horários locais são compatíveis com os registros de abertura: por exemplo, 6h no Acre e 8h em São Paulo. O leiaute define o campo como encerramento da urna para votação; não é horário de cada voto.
Arquivos
| Arquivo | Conteúdo |
|---|---|
auditar.py | Leitura dos ZIPs, validações, agregações e reconciliação por seção |
aprofundar.py | Sensibilidade a fusos e comparação geográfica de seções tardias |
baixar.py | Download da versão fixada, com verificação SHA-512 e retomada por arquivo |
gerar_relatorio.py | Gera a análise legível a partir dos resultados |
test_metodos.py | Testes de fuso, limites temporais, denominadores e correlação |
fontes_bweb.json | URLs públicas, tamanhos e hashes dos 28 ZIPs |
resultados/resumo.json | Totais, verificações, correlações e reconciliação |
resultados/secoes_presidente_2turno.csv.gz | Base derivada com uma linha por seção |
resultados/*.csv | Tabelas de horários, unanimidade, biometria, dígitos e controles geográficos |
Os ZIPs originais não são versionados. A base derivada e as tabelas podem ser publicadas com o código. Elas contêm resultados eleitorais públicos e contagens agregadas, não digitais biométricas nem identificação de eleitores.
Limites
Não foram examinados logs de todas as urnas, imagens dos BUs afixados, atas de todas as seções, cadernos de votação, software/hardware das urnas ou votos individuais. A concordância entre duas exportações do TSE é uma verificação de consistência, não uma confirmação independente de toda a cadeia eleitoral.
A análise não pretende provar ausência de toda irregularidade possível. Ela verifica o que o relatório efetivamente apresenta como evidência. Não estime votos por candidato depois das 17h usando o total diário das seções encerradas depois das 17h.
Os dados são do TSE; o catálogo indica licença Creative Commons Atribuição. Preserve a atribuição, os hashes e as limitações ao redistribuir. Este pacote não foi publicado automaticamente em nenhum repositório.