Modelo 2028 · exercício com os dados reais da noite
A noite de 25/10 refeita com o coletor corrigido
Na noite do 2º turno, o site apontou a vitória de Lula com 4% das urnas, mas a projeção passou a noite de 0,3 a 1,8 ponto acima do resultado. Um exercício com os dados reais da noite mostra de onde veio o erro, e o que o coletor corrigido faz com os mesmos dados: fica a menos de 0,25 ponto do resultado final a noite inteira, e a menos de 0,1 na maior parte dela.
A mesma noite, dois coletores
Projeção de Lula nos votos válidos ao longo da noite. A linha cinza é o que o site mostrou em 25/10; a laranja tracejada é o coletor da eleição rodando de novo no exercício (reproduz a noite); a vermelha é o coletor corrigido, com a faixa da margem de erro.
site na noite de 25/10coletor da eleição, no exercíciocoletor corrigido, no exercíciomargem de erro (±σ) do corrigidoresultado final (51,79%)
De onde veio o erro
O modelo compara os votos de cada município com a lista de seções que o TSE diz já estarem apuradas. Na noite, o coletor baixava a lista primeiro e depois os 5.571 arquivos de município, que levavam de 7 a 9 minutos para chegar com o TSE lento. Quando o modelo rodava, os arquivos tinham seções que a lista ainda não marcava: os votos vinham de mais seções do que a lista dizia, a razão de comparecimento inflava e as urnas que faltavam, mais lulistas nesta eleição, ganhavam peso demais. Resultado: projeção de 0,3 a 1,8 ponto acima, a noite inteira, com margem de erro que não cobria a diferença.
Lista velha, arquivos novos
O que o modelo recebia em cada rodada na noite (acima) e no coletor corrigido (abaixo).
A prova está na linha laranja do primeiro gráfico: o mesmo código que rodou na eleição, posto para ler a noite de novo no simulador, com a mesma lentidão, repete o erro (chegou a 1,96 ponto). O coletor corrigido, lendo o mesmo simulador, não.
O erro, rodada a rodada
Diferença entre a projeção e o resultado final (51,79%), em pontos percentuais, conforme a apuração avançava. A faixa sombreada marca ±0,25 ponto.
site na noitecoletor da eleição, no exercíciocoletor corrigido
Quando a chance de vitória passou de 99,9%
Chance de Lula calculada em cada rodada. No site, a marca de 99,9% veio às 19:32, com 7,0% apurado (a projeção estava +1,82 ponto fora). No corrigido, às 19:46, com 14,8% apurado (projeção +0,08 ponto, margem ±0,60).
site na noitecoletor da eleição, no exercíciocoletor corrigido
Hora a hora
| Apurado | Hora (site) | Site na noite | Coletor da eleição, no exercício | Coletor corrigido |
|---|---|---|---|---|
| ≈4% | 19:25 | 53,06 (+1,27) | 53,75 (+1,96) | 51,72 ± 1,81 (−0,07) |
| ≈7% | 19:32 | 53,61 (+1,82) | 53,75 (+1,96) | 51,76 ± 1,14 (−0,03) |
| ≈10% | 19:38 | 52,89 (+1,10) | 52,76 (+0,97) | 51,98 ± 0,74 (+0,19) |
| ≈15% | 19:47 | 52,25 (+0,46) | 52,33 (+0,54) | 51,87 ± 0,60 (+0,08) |
| ≈25% | 20:02 | 51,80 (+0,01) | 51,75 (−0,04) | 51,81 ± 0,41 (+0,02) |
| ≈50% | 20:27 | 52,32 (+0,53) | 52,48 (+0,69) | 51,85 ± 0,26 (+0,06) |
| ≈75% | 20:50 | 52,09 (+0,30) | 51,99 (+0,20) | 51,88 ± 0,12 (+0,09) |
| ≈90% | 21:01 | 51,88 (+0,09) | 51,81 (+0,02) | 51,82 ± 0,05 (+0,03) |
Projeção de Lula nos votos válidos; entre parênteses, a diferença para o resultado final (51,79%). No corrigido, ± é a margem de erro (σ) calculada na hora. Cada coletor publica em instantes diferentes: a linha mostra a rodada de cada um mais próxima do marco.
O que foi corrigido
- Lista e arquivos do mesmo instante. A lista de seções é lida antes e depois de cada bloco de municípios, e o arquivo de um município só entra no modelo quando o número de seções dele bate com uma das duas. Se não bate, espera a próxima rodada. É a correção que elimina o viés.
- Só o que mudou. A lista diz quais municípios ganharam seções desde a última rodada: baixam-se esses (260 a 700 por minuto), não os 5.571. A rodada cai de 7 minutos para 103 segundos com o TSE na mesma lentidão da noite.
- Conexões abertas e limite de taxa. Cada arquivo abria uma conexão nova com o TSE. Agora as conexões ficam abertas, há um limite próprio de 150 requisições por segundo e a resposta "429, muitas requisições" do TSE é respeitada. Antes ela era tratada como erro comum e o município ficava com a versão velha, sem aviso.
- Ajustes no modelo, medidos no replay da noite real: os estados encolhem menos para a média nacional (erro entre 2% e 10% apurado cai de 0,063 para 0,031 ponto); a tendência das urnas tardias é medida pelo progresso de cada município, não pela fração nacional (erro entre 10% e 50% cai de 0,048 para 0,021); o exterior sai da base (o coletor não o apura, e ele ficava como 378 mil votos "faltando"); e no modo de reserva sem a lista de seções a margem fica 2,5 vezes maior, como o erro medido nesse modo.
E a margem de erro?
No exercício, o erro do coletor corrigido nunca passou de 0,8 margem entre 4% e 95% apurado (na metade das rodadas ficou abaixo de 0,2 margem): a margem foi várias vezes maior que o erro, e por isso a marca de 99,9% só vem às 19:46, com 14,8% apurado. Ela é larga de propósito: foi calibrada no simulador para cobrir uma tendência de até 4 pontos nas urnas tardias, e em 2026 essa tendência não existiu (0,05 ponto dentro dos municípios). Uma margem calculada ao vivo a partir das dispersões reais cravaria a eleição com 1,3% apurado, e acertaria. Mas, em noites sintéticas com tendência tardia de 3 pontos e disputa apertada, ela crava errado. Uma noite real só não basta para decidir: a margem continua a da tabela, e a calibração com mais eleições fica para o caminho até 2028.
Como o exercício foi feito
- Boletim de urna das 497.897 seções do 2º turno e a hora em que cada uma foi recebida na totalização, baixados do arquivo-urna do TSE em 26/10 (a soma bate com o resultado oficial com diferença de 790 votos).
- Um simulador serve esses dados no formato do site do TSE, 10 vezes mais rápido que o relógio, com 0,3 segundo de demora por arquivo, o ritmo que o TSE entregava na noite.
- Dois coletores leram o mesmo simulador ao mesmo tempo: o código que rodou na eleição e o corrigido. Cada um publicou a sua projeção, como fariam na noite.
- Antes do exercício, o modelo atual foi refeito seção a seção com dados do mesmo instante: erro abaixo de 0,1 ponto a partir de 4,6% apurado. Com a lista atrasada 3 a 9 minutos, o replay reproduz o erro da noite. Foi assim que a causa foi encontrada.
Veja também o balanço da projeção na noite e o painel da apuração.