O VOTO DEPOIS
DAS 17 HORAS.
Onde e quanto se votou após as 17h? Explore os registros das urnas, do país ao município, e veja a proporção em relação ao total da base.
Análise preliminar ↗Um país, muitos horários.
Escolha o período para explorar os dados.
ATLÂNTICO
↑
Mais escuro = maior valor. Selecione um estado para ver seus municípios.
Uma pequena fração.
Na escala certa.
No Brasil, os registros após as 17h representam aproximadamente 27 em cada 100 mil votos da base.
A barra mostra 100% dos registros. A parcela após 17h é tão pequena que pode ocupar menos de um pixel.
O que estes dados
podem dizer.
Uma leitura exploratória dos horários de votação, com a origem e os limites da análise à vista.
↓ Baixar dados por município CSVFonte dos registros: Justiça Eleitoral +
Os eventos de votação têm origem nos arquivos de log das urnas eletrônicas publicados pelo Tribunal Superior Eleitoral. Cada registro informa o horário em que o voto foi computado, sem revelar o candidato escolhido.
Base exibida nesta versão: agregação pública independente desses logs, recalculada por este projeto. A coleta própria diretamente do TSE foi iniciada e ainda não substituiu os números do mapa. Esta análise não é uma contagem oficial do tribunal.
Como o percentual foi calculado? +
Registros do período selecionado divididos pelo total de registros do mesmo recorte, multiplicados por 100. Incluímos todas as seções da tabela, sem filtrar pelo horário de encerramento. O total não se restringe a votos válidos. As seções do exterior foram excluídas. “Até as 17h” inclui exatamente 17:00:00; “após as 17h” inclui horários posteriores. Na base atualmente exibida, a conversão para Brasília foi herdada da fonte e não foi conferida município a município.
Qual foi a verificação realizada? +
Conferimos somas, chaves de seção e limites das contagens. Baixamos diretamente do TSE o índice do RJ e um log da seção RJ / 60011 / 0009 / 0517: 386 eventos, dos quais 4 após 17h, iguais à tabela. Uma seção não valida a base nacional. Existem diferenças de cobertura e contagem entre levantamentos; por isso, o resultado permanece preliminar.
Após as 17h significa efeito da prorrogação? +
Não é possível concluir isso pelo horário do voto. O registro não informa quando o eleitor chegou à fila nem identifica em quem votou. Horário de transmissão e horário de encerramento da urna também não equivalem ao horário de cada voto.
Créditos e base de processamento +
A tabela inicial foi produzida pelo projeto independente urnas-tardias, a partir dos logs do TSE. Recalculamos seus agregados por município e estado. Essa procedência fica registrada enquanto a coleta própria não tiver cobertura validada. O código aberto permite inspecionar o método; ele não transforma os resultados em uma apuração oficial.
Sobre o mapa e esta página +
A malha dos estados vem da API de malhas do IBGE. As cores mostram dados estaduais; os municípios são explorados pela lista. Layout inspirado em Mapas da eleição, de Pedro Doria. Projeto independente, sem vínculo com o autor ou com o TSE. Esta página é um retrato da base consultada, sem atualização automática.
Do arquivo da urna ao mapa.
Os dados de origem são os logs das urnas publicados pelo TSE. Este é o caminho da coleta e do cálculo para o segundo turno de 25 de outubro de 2026.
1. Localizar as seções
Para cada UF, o índice oficial informa os municípios, zonas e seções. Exemplo do Rio de Janeiro:
Abrir índice de seções no TSE ↗config/{uf}/{uf}-p003221-cs.json2. Encontrar os arquivos da urna
O arquivo auxiliar de cada seção lista a pasta identificada pelo hash e os arquivos publicados. No exemplo: município 60011, zona 0009, seção 0517.
Abrir arquivo auxiliar no TSE ↗dados/{uf}/{municipio}/{zona}/{secao}/
p003221-{uf}-m{municipio}-z{zona}-s{secao}-aux.json3. Extrair o log
O pacote .jez é um ZIP que contém logd.dat: texto em Latin-1, separado por tabulações. Ele pode conter eventos de mais de um turno.
dados/{uf}/{municipio}/{zona}/{secao}/
{hash}/{arquivo}-log.jez4. Selecionar a data e os eventos
Usamos somente os registros de 25/10/2026. O evento contado é “O voto do eleitor foi computado”. Abertura e encerramento são lidos separadamente.
08:00:01 Urna pronta para receber votos
18:15:22 O voto do eleitor foi computado
19:00:45 Procedimento de encerramento confirmadoTrecho do exemplo oficial, com data e demais campos omitidos para facilitar a leitura.
5. Converter para Brasília
Os horários do log são locais. O método inicial infere o ajuste pela hora de abertura mais frequente nas seções do município, tomando 8h de Brasília como referência. A inferência pode falhar em aberturas tardias, reinícios ou relógios incorretos: esses casos exigem conferência. O coletor próprio sinaliza fusos indeterminados e regressões do relógio.
6. Contar os dois períodos
- Até as 17h: eventos com horário de Brasília menor ou igual a 17:00:00.
- Após as 17h: eventos posteriores a 17:00:00. É o filtro padrão.
percentual = registros do período
÷ total do mesmo recorte × 100O mapa considera todas as seções da base, independentemente de quando encerraram. A classificação “urna encerrada após 17h45” é outro recorte, não utilizado para restringir estes dois filtros. O exterior (ZZ) fica de fora.
Cobertura, rastreabilidade e reprodução
Mapa atual: 497.882 seções e 127.696.482 eventos da agregação inicial. Os números de cobertura de outros levantamentos não são tratados como cobertura desta página.
Coleta própria: o piloto de 20 seções processou 5.163 eventos (2 após as 17h), sem erros nesse lote. Isso não representa a cobertura nacional. O coletor consulta diretamente o TSE, registra URL, data de coleta e SHA-256 de cada pacote, lê os logs listados no auxiliar e elimina linhas de voto idênticas entre pacotes da mesma seção. O SHA-256 registra o conteúdo baixado; não equivale à verificação da assinatura digital da urna. Os pacotes são processados temporariamente; a base local preserva os histogramas de horários, metadados e resumos dos arquivos.
O coletor salva o progresso em SQLite, limita a taxa a no máximo 10 requisições por segundo e retoma as seções pendentes. Os resultados diretos permanecem separados da base inicial até a revisão de cobertura e consistência. A página não atualiza automaticamente durante essa coleta.
python3 coletar.py
python3 analisar.py
# Repetir as seções com erro:
python3 coletar.py --retry-errors