Metodologia
Atualizado em 19 de outubro de 2026

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.

Nesta página
  1. Dados
  2. A curva da apuração e a versão "mesmo ritmo"
  3. De onde vêm os votos do 2º turno
  4. A simulação de Monte Carlo
  5. A projeção durante a apuração
  6. O que estes números não dizem
  7. Como reproduzir

1Dados

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:

posição(b) = (ordem de chegada de b no seu estado) / (boletins do estado) fatia(q) = Σ votos do candidato em boletins com posição ≤ q / Σ votos válidos nesses boletins

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.

para cada seção s: y₂(s) = x₁(s) · B x₁ = fração dos aptos em cada grupo do 1º turno (7 números) y₂ = fração dos aptos em cada destino do 2º turno (4 números) B = matriz 7×4: cada linha diz para onde foi aquele grupo, soma 1, sem negativos

Estimação

  1. 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.
  2. 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.
  3. 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.
  4. 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".
  5. 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).
  6. Incerteza. Reamostragem de municípios (bootstrap, 120 vezes), que dá 120 matrizes por região e eleição.
Para onde foi cada grupo do 1º turno (média do país, ponderada pelo tamanho de cada grupo nas regiões)
Linhas: grupo do 1º turno. Colunas: destino no 2º turno. "*": grupo pequeno, em que parte da estimativa vem do mesmo campo em outras eleições.

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:

  1. 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.
  2. Sorteia uma matriz por região, entre as 120 do bootstrap daquela eleição.
  3. 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.
  4. Soma um erro nacional sorteado de uma normal com o tamanho do erro dos testes (raiz da média dos quadrados = 1,2 ponto).
resultado(s) = Σ_estados D / Σ_estados (E + D) + erro(s), erro ~ Normal(0; 1,2 p.p.) chance de vitória = fração das 20 mil simulações em que o resultado passa de 50%

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 somadoMediana do 22Faixa de 90%22 vence
±1,2 ponto (o dos testes)52,7%50,2–54,8%96%
±2 pontos52,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).

Uma conferência independente. A pesquisa Datafolha feita logo depois do 1º turno de 2022 perguntou aos eleitores de Tebet e de Ciro em quem votariam no 2º. Para os de Tebet, a divisão confere com a estimada aqui. Para os de Ciro, não: a pesquisa mediu 31% Lula e 42% Bolsonaro, e a estimativa dá 44% e 35%. A subamostra de Ciro era pequena e a pesquisa é do começo da campanha, mas a divergência fica registrada.

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:

desvio(m) = efeito Brasil + efeito região(m) + efeito estado(m) + efeito próprio(m) a priori: Brasil ~ N(0; 0,035) região ~ N(0; 0,04) estado ~ N(0; 0,05) município ~ N(0; 0,07) (em logit; 0,05 ≈ 1,25 ponto perto de 50%. Os desvios de município e estado foram medidos em 2022.)

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:

projeção do final (faixa de 90%)contagem de Bolsonaro no momentoresultado final
—

Arquitetura

6O que estes números não dizem

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):

pip install numpy python pipeline/simular.py

Para refazer tudo do zero, a partir dos dados abertos do TSE:

pip install polars numpy # Python 3.11+ python pipeline/baixar.py # dados abertos do TSE (em memória; grava só tabelas reduzidas em data/) python pipeline/votos.py # mapa de votos e histogramas python pipeline/curva_apuracao.py python pipeline/transferencia.py # migração de votos 2014/2018/2022 (alguns minutos) python pipeline/ao_vivo.py # esperado por município, noite de 2022 e noite simulada node pipeline/teste_ao_vivo.js replay_2022

Depois, sirva a pasta site/ com qualquer servidor estático (por exemplo, python -m http.server -d site).