Ônibus de SP na eleição
Auditoria independente, dados do GPS dos ônibus

Os ônibus de São Paulo circularam normalmente no domingo da eleição?

Medimos pelo GPS quantos ônibus e linhas estavam rodando no domingo da eleição e comparamos com o que a Justiça exigiu: 100% da frota, com programação de dia útil.

Carregando…
Conclusão de hoje

Carregando…

Ônibus ao longo do dia

Ônibus ao mesmo tempo, em cada janela de 10 minutos medida. A faixa cinza marca a votação, 8h às 17h.

Ver como tabela

O que foi dito e o que foi medido

Tudo o que a imprensa e as autoridades disseram, lado a lado com o que conseguimos verificar. Nada aqui foi conferido na fonte primária.

Quais linhas

O GTFS oficial da SPTrans diz quais linhas deveriam operar em dia útil. Aqui cruzamos isso com o que o GPS mostrou hoje.

Linhas de dia útil sem ônibus em movimento hoje

Ver lista de linhas

Metodologia: como chegamos a estes números

Em cinco passos, do dado bruto à conclusão.

  1. Coletamos a posição dos ônibus. A cada 2 minutos o servidor consulta a API oficial Olho Vivo, da SPTrans, que informa a posição atual de cada ônibus com GPS ativo. Guardamos cada resposta original, sem alteração, com um hash SHA-256 encadeado ao registro anterior. Alterar uma coleta antiga quebra a cadeia, e o manifesto permite conferir isso. Os arquivos brutos ficam guardados no servidor e podem ser entregues para auditoria.
  2. Definimos o que contar.
    • Operando: ônibus ligados a uma linha, com posição atualizada nos últimos 3 minutos, vistos ao mesmo tempo. É uma foto simultânea, não o total que rodou no dia. Inclui ônibus parados em ponto final (conferido: cerca de 35% ficam parados entre duas coletas, e 90% dos que não saem do lugar em 22 minutos estão a menos de 300 m de um terminal) e exclui garagem e ônibus sem GPS.
    • Em movimento: ônibus operando que se deslocaram ao menos 50 m desde a coleta anterior.
    • Linha ativa: um letreiro de linha (por exemplo 8000-10) com ao menos um ônibus em movimento em uma janela de 10 minutos.
  3. Medimos quais linhas rodaram. Do GTFS oficial da SPTrans (baixado todo dia e guardado) tiramos as linhas programadas para dia útil (1.325) e para domingo (1.025). Cerca de 300 linhas existem em dia útil e não no domingo. Se a ordem fosse cumprida, essas linhas deveriam estar rodando hoje. Contamos quantas tiveram ônibus em movimento entre 8h e 17h e fazemos a mesma conta para as linhas de domingo, que rodariam de qualquer jeito. A diferença entre os dois percentuais é o sinal. O percentual sobe com mais horas medidas, porque uma linha de intervalo longo pode não aparecer numa janela curta, e hoje só temos medição a partir das 16h30.
  4. Usamos as medições de terceiros como foram publicadas. Cebrap, BusInfo e o plano da Prefeitura entram com o que cada fonte diz medir, sem acesso aos dados deles e sem misturar os números, porque medem coisas diferentes. O BusInfo conta ônibus que "saíram da garagem", com método não divulgado. O Cebrap usa a mesma API que nós, mas compara com dias úteis e cobre a manhã. O nosso número é uma foto simultânea.
  5. Só afirmamos o que várias medições sustentam. Afirmamos uma direção quando fontes com métodos diferentes concordam e nenhuma indica o contrário. Aqui são quatro sinais, e por isso a direção tem confiança média a alta. O tamanho da diferença só vem do Cebrap (31,4%) e de um número do BusInfo (71%), então a confiança nele é menor. Não decidimos se houve descumprimento da ordem, que é uma decisão da Justiça, nem a intenção de ninguém.
O que este painel não prova
  • Não medimos a manhã: nossa coleta começou às 16h30. Para esse período valem as medições de terceiros.
  • Só o Cebrap compara diretamente com dias úteis. O BusInfo e a nossa coleta são indícios por outros caminhos.
  • O número do BusInfo e o nosso não são comparáveis entre si.
  • Não há número oficial da SPTrans para hoje. Os dados oficiais podem ser pedidos por este modelo.
  • Menos ônibus não prova intenção de ninguém nem, sozinho, descumprimento da ordem judicial.
Como conferir por conta própria

O código de coleta, agregação e leitura do GTFS está publicado como texto: coletor, agregação, GTFS e atualização do GTFS e verificador da cadeia de hashes. Os dados agregados que alimentam esta página são series.json, linhas.json e gtfs_ref.json. Todo o projeto, com instruções para rodar, está em github.com/travahacker/analise-onibus, sob licença MIT. Qualquer pessoa com uma chave da API Olho Vivo pode repetir a coleta.