Como as simulações são feitas
Baixar o relatório (PDF)ler o relatório da simulação do 2º turno no navegador
Este site faz três coisas com dados públicos do TSE: reconstrói a curva da apuração do 1º turno, simula o 2º turno a partir de como os eleitores migraram em eleições passadas e projeta, durante a apuração, o resultado final. Esta página explica cada passo, as premissas e os testes, para quem quiser conferir ou discordar.
1Dados
- Boletins de urna do 1º turno de 2026 (dados abertos do TSE): votos de cada candidato por seção, eleitores aptos, comparecimento e a hora em que cada boletim chegou à totalização (campo DT_BU_RECEBIDO). São 497.897 seções. Os votos do exterior não estão nesses arquivos e entram só no painel ao vivo, lidos da API.
- Resultados por seção de 2014, 2018 e 2022, nos dois turnos (votação por seção e detalhe da votação por seção, TSE). É deles que sai a migração de votos entre turnos.
- Boletins do 2º turno de 2022 com a hora de chegada, para reconstruir aquela noite e testar o modelo ao vivo.
- Locais de votação, com coordenadas, e malhas municipais do IBGE, para os mapas.
- Na noite da apuração, a API de divulgação do TSE: um índice por estado diz quais municípios mudaram, e só esses são baixados.
Todos os arquivos grandes são lidos direto da internet para a memória, e só as tabelas reduzidas são gravadas. Os programas estão na pasta pipeline/ do repositório.
2A curva da apuração e a versão "mesmo ritmo"
Ordenando os boletins pela hora de chegada e somando os votos, a apuração é reconstruída minuto a minuto. A curva "vira" porque as regiões chegam em horários diferentes: Sul e Centro-Oeste fecham primeiro, e o Nordeste, onde o 13 é mais forte, chega por último.
Para separar o efeito da ordem de chegada, a página da curva tem uma versão em que todos os estados apuram no mesmo ritmo. Cada estado mantém a ordem real dos seus boletins, mas a posição de cada boletim vira uma fração de 0 a 1 dentro do estado (o primeiro em 0, o último em 1). A curva nacional no instante q soma, em todos os estados, os boletins com posição até q:
Se a virada fosse um artifício da contagem, ela continuaria aparecendo. Ela quase some. No 2º turno de 2022, a curva real começou com Lula em 40,6% e só passou de 50% com 68% apurado; no mesmo ritmo, começa em 49,5% e passa de 50% por volta de 30%. Sobra uma inclinação de cerca de 1,5 ponto, que vem da ordem dentro de cada estado: capitais e cidades grandes costumam mandar os boletins antes do interior.
3De onde vêm os votos do 2º turno
O voto é secreto, então ninguém sabe em quem votou no 2º turno quem escolheu um candidato no 1º. Mas cada seção tem os dois resultados, e as seções variam muito entre si. Se nas seções onde um candidato teve mais votos no 1º turno o candidato A cresce mais no 2º, é sinal de que os eleitores dele foram para A. Essa técnica se chama inferência ecológica.
Grupos e classificação
No 1º turno, cada eleitor apto cai em um de sete grupos: o principal candidato da esquerda (E), o principal da direita (D), outros de esquerda (OE), de centro (OC) e de direita (OD), brancos e nulos (BN) e abstenção (AB). No 2º turno, em quatro: E, D, BN e AB. A classificação dos "outros" é uma escolha, feita pelo campo do partido e pelo apoio declarado no 2º turno. A página de simulação deixa reclassificar qualquer candidato de 2026.
Estimação
- Por região. Uma matriz por região e por eleição, porque os eleitores de um mesmo candidato não migram igual no Nordeste e no Sul.
- Comparando seções do mesmo município. Bairros diferentes votam diferente por muitas razões, e isso confunde a migração com a geografia (a "falácia ecológica"). Por isso o ajuste usa principalmente a variação dentro de cada município, mais 10% da variação entre municípios.
- Efeito de contexto. A migração dos grupos grandes que não são os dois finalistas (centro, brancos e nulos, abstenção) pode mudar com a inclinação política da seção. Em 2014, por exemplo, os eleitores de Marina foram muito mais para Aécio onde Aécio já era forte. Sem isso, o modelo jogava essa diferença sobre os grupos pequenos.
- Grupos pequenos. Um grupo com menos de 2,5% dos eleitores da região tem pouco sinal nos dados. A estimativa dele combina os próprios dados com o comportamento do mesmo campo político em outras eleições e regiões, na proporção do seu tamanho: com 1% do eleitorado, 40% vêm dos próprios dados e 60% do "campo".
- Restrições e cálculo. Mínimos quadrados ponderados pelos aptos, com as linhas no simplex (somam 1, sem negativos), resolvidos por gradiente projetado acelerado (FISTA).
- Incerteza. Reamostragem de municípios (bootstrap, 120 vezes), que dá 120 matrizes por região e eleição.
O método previu bem as eleições passadas?
O teste é aplicar a migração de uma eleição ao 1º turno da eleição seguinte e comparar com o 2º turno real:
Os erros ficam entre 0,8 e 1,8 ponto. É pouco, mas são só três testes, e eleições diferentes têm candidatos diferentes. Por isso a simulação soma esse erro à incerteza, em vez de tratá-lo como zero.
4A simulação de Monte Carlo
A página de simulação repete 20 mil vezes o seguinte sorteio:
- Sorteia uma eleição passada com pesos: 2014 = 15, 2018 = 35 e 2022 = 50. A de 2022 tem os mesmos candidatos principais; a de 2014 é a mais diferente. Os pesos são ajustáveis.
- Sorteia uma matriz por região, entre as 120 do bootstrap daquela eleição.
- Aplica a matriz ao 1º turno de 2026 em cada estado: os votos de cada candidato, brancos, nulos e abstenção vão para E, D, BN e AB.
- Soma um erro nacional sorteado de uma normal com o tamanho do erro dos testes (raiz da média dos quadrados = 1,2 ponto).
Com as escolhas-padrão, o 22 fica com 52,7% dos votos válidos na mediana e o 13 com 47,3% (90% das simulações entre 50,2% e 54,8% para o 22). O 22 passa de 50% em 96% das simulações e o 13 em 4%. O número que mais pesa é o tamanho do erro, que três testes não fixam com segurança:
| Erro somado | Mediana do 22 | Faixa de 90% | 22 vence |
|---|---|---|---|
| ±1,2 ponto (o dos testes) | 52,7% | 50,2–54,8% | 96% |
| ±2 pontos | 52,6% | 49,1–56,1% | 89% |
| ±3 pontos (perto do erro das pesquisas) | 52,6% | 47,5–57,7% | 80% |
Por eleição de referência, as medianas são 51,0% (2014), 52,8% (2018) e 53,0% (2022). A leitura honesta é: vantagem do 22 de 2 a 3 pontos, com chance real de virada. As pesquisas divulgadas entre 18 e 21 de outubro dão ao 22 de 49,0% a 53,0% dos válidos (comparação completa na página da simulação).
5A projeção durante a apuração
O painel ao vivo responde a uma pergunta só: dado o que já foi contado, onde o resultado deve terminar?
Antes do primeiro boletim
Cada município recebe um esperado: a fatia do 22 entre os válidos e o número de votos válidos por eleitor, aplicando a migração média (2014 = 15, 2018 = 35, 2022 = 50) ao 1º turno de 2026 daquele município. Somado, o esperado dá 52,6% ao 22 e 47,4% ao 13, praticamente o mesmo centro da simulação (52,7%).
A cada atualização
Para cada município que já mandou boletins, mede-se quanto a contagem foge do esperado, em logit (a escala em que um desvio de 2 pontos vale o mesmo perto de 50% e perto de 90%). Esse desvio é decomposto em camadas:
Os efeitos são estimados por regressão bayesiana com todos os municípios já apurados. O peso de cada município depende de quanto dele já foi contado, medido em eleitores: os primeiros boletins costumam vir de aldeias, quilombos e comunidades pequenas, que votam muito diferente da sede do município, e uma contagem parcial é uma amostra pequena (as seções de um mesmo município variam 0,34 em logit entre si). A regressão é robusta (pesos de Huber), para que um punhado de seções muito fora do padrão não arraste a projeção do país nos primeiros minutos. Um município que ainda não apurou nada herda o efeito do seu estado e da sua região. Um que apurou metade herda também 70% do seu próprio desvio. É assim que o modelo desconta o fato de os primeiros boletins virem de lugares que votam diferente: o que chega primeiro é comparado com o que se esperava daquele lugar, não com a média do país.
A ordem de chegada
Os primeiros municípios de um estado não são uma amostra ao acaso dos demais: capitais e cidades grandes chegam antes do interior e votam diferente, mesmo depois de descontado o 1º turno. Sem tratar isso, o modelo ficava confiante demais. Por isso o que falta apurar recebe um choque extra, comum ao país (0,045) e a cada estado (0,05), que encolhe com a raiz da fração ainda não apurada. Os valores do país (0,035 e 0,045) foram escolhidos para que, antes do primeiro boletim, a projeção ao vivo tenha a mesma largura do Monte Carlo da simulação do 2º turno (o 22 passa de 50% em 96% dos sorteios, nos dois casos); o teste com a noite de 2022 continua com a mesma cobertura.
Monte Carlo
Cada projeção sorteia 2.000 vezes os efeitos (da distribuição a posteriori), os choques e o efeito próprio de cada município, e soma os votos que faltam. Daí saem a mediana, a faixa de 90% e a chance de vitória. Leva de 0,1 a 0,2 segundo no navegador.
O teste: a noite de 30 de outubro de 2022
Com o esperado que se teria antes daquela eleição (1º turno de 2022 e migração de 2014 e 2018, que davam 48,0% a Bolsonaro contra os 49,1% reais), os boletins foram reprocessados na ordem e na hora em que chegaram:
Arquitetura
- Sem servidor. O site é estático (GitHub Pages) e o navegador consulta a API do TSE diretamente, porque o TSE libera o acesso de outras origens (CORS). A cada minuto, o painel lê o índice de andamento e baixa só os municípios que mudaram.
- Coletor opcional. Com muitos visitantes, um script (
pipeline/coletor.py) consulta o TSE uma vez por minuto e publica um único arquivo com todos os municípios e o histórico da noite. O painel usa esse arquivo quando ele existe e é recente. - Mesmo código em todo lugar. O modelo (
ao-vivo/modelo.js) roda igual no navegador, no coletor e no teste de 2022. - Ensaios. O painel tem dois modos de reprodução acelerada: a noite real de 2022 e uma noite simulada de 2026 no cenário central do modelo (votos do 1º turno redistribuídos pela migração de votos, mais erros sorteados), com os boletins chegando na hora do 1º turno.
6O que estes números não dizem
- Não são pesquisa. A simulação supõe que os eleitores de 2026 migram como os de eleições passadas. Se a campanha do 2º turno mudar o comportamento, por exemplo com um apoio inesperado ou um escândalo, o modelo não vê.
- A classificação dos candidatos é uma escolha. Mudá-la altera o resultado, e a página de simulação permite testar isso.
- Inferência ecológica tem limites. Ela estima o comportamento médio de grupos a partir de agregados. As restrições e o estimador "dentro do município" reduzem o problema, mas não o eliminam, e a divergência com o Datafolha nos eleitores de Ciro é um lembrete disso.
- Comparecimento. A simulação usa a abstenção do 1º turno redistribuída como no passado. Uma mudança grande de comparecimento é a principal fonte de erro que a página permite explorar à mão.
- A projeção ao vivo foi testada em uma noite só. Ela funcionou bem em 2022, mas a calibração do choque de ordem de chegada saiu dessa mesma noite.
- Nada aqui substitui o TSE. O resultado oficial é o da totalização do TSE.
7Como reproduzir
O código completo está no GitHub. Só a simulação de Monte Carlo roda com um comando, sem baixar dados (dá os mesmos números do site e aceita outras premissas: --erro 3, --pesos 2022=100, --classif 70=OD):
Para refazer tudo do zero, a partir dos dados abertos do TSE:
Depois, sirva a pasta site/ com qualquer servidor estático (por exemplo, python -m http.server -d site).