Metodologia

A STCP usa 'pontos de controlo' para medir a pontualidade dos autocarros. Estes são paragens num percurso para as quais é publicada uma hora de chegada prevista.

A cada 10 segundos, recolhemos a posição GPS de todos os autocarros em serviço, e guardamo-la. Uma vez por dia, percorremos essas posições guardadas para encontrar os momentos em que cada autocarro passou pelos pontos de controlo no seu percurso, calcular os desvios face ao horário, e guardar esses desvios. Todas as estatísticas, tabelas e gráficos deste site são depois construídos a partir dessas medições.

As secções seguintes descrevem cada um destes passos, e os seus limites, com mais detalhe.

De onde vêm os dados

Os dados são obtidos diretamente da STCP e da Porto Digital. Não há outras fontes, e nada é estimado.

As posições GPS dos autocarros em tempo real vêm do broker FIWARE público da Porto Digital. O horário vem da própria API de horários da STCP.

Como lidamos com alterações no horário

Recolhemos o horário de todas as linhas de autocarro diariamente. Uma viagem é sempre comparada com a versão do horário em vigor nesse dia.

Como agregamos desvios face ao horário

As médias e as medianas são calculadas sobre os desvios face ao horário por ponto de controlo, e não sobre viagens inteiras. Assim, uma viagem pode ter registos de chegadas adiantadas, a horas, e atrasadas, e todos estes registos contribuirão individualmente para as nossas estatísticas.

O que conta como "à hora"

Uma paragem conta como à hora se o autocarro passou entre 1 minuto adiantado e 5 minutos atrasado. Isto está de acordo com o indicador on-time performance (OTP), muito utilizado para transportes públicos.

A margem é assimétrica de propósito. Para quem espera na paragem, as duas falhas não são equivalentes: um autocarro que parte antes da hora prevista perde-se por completo, por mais cedo que se chegue; um autocarro cinco minutos atrasado ainda se apanha.

O que fica de fora, e porquê

Viagens com cobertura GPS demasiado escassa para as situar com confiança face ao horário não são medidas. A percentagem que passa neste filtro aparece em todas as páginas como a fração "mensurável" — se for baixa, os números que a acompanham merecem uma leitura mais cautelosa.

O feed das localizações dos autocarros identifica por vezes erradamente qual a viagem prevista que um veículo está a fazer. Sem tratamento, isto produz resultados absurdos — um autocarro aparentemente com horas de desvio — que distorceriam qualquer média em que entrassem. As medições implausíveis à partida são assinaladas e excluídas.

Os dias em que a recolha cobriu apenas parte do serviço, por erro nosso ou dos dados fornecidos pela STCP, são marcados como "parciais". A falha em medir algumas viagens não afeta a qualidade das nossas estatísticas, apenas reduz o universo de observações.

Limitações a ter em conta

Os desvios são medidos nos pontos de controlo e não em todas as paragens servidas, pelo que uma linha é caracterizada por uma amostra do percurso e não pelo percurso inteiro. A densidade dessa amostra depende do número de pontos de controlo que a STCP define para cada linha.

Uma viagem programada que nunca circula é contabilizada, e não ignorada. Como não gera posições próprias, é-lhe imputada a espera que realmente custou: o tempo desde o minuto previsto no horário até ao autocarro seguinte que efetivamente passou na paragem. Uma partida suprimida seguida de outra à hora 30 minutos depois é registada como 30 minutos de atraso, e penaliza a linha tal como penalizaria um autocarro com 30 minutos de atraso. Quando nenhum autocarro passou dentro de 45 minutos, não se inventa um valor de desvio — a viagem é contabilizada em "viagens programadas que nunca circularam" e continua a contar como fora de horas.

A recolha depende da disponibilidade do broker. As interrupções produzem falhas de cobertura, que aparecem como dias parciais e não como dias bons. Como não é possível distinguir uma hora em que nada foi registado de uma hora em que nada circulou, as viagens programadas durante uma falha em toda a rede ficam de fora dos números de supressões, em vez de serem contadas como nunca tendo circulado.

Durante quanto tempo os dados são guardados

Os registos de posição em bruto são eliminados ao fim de cerca de 45 dias — ocupam muito espaço e, depois de a viagem estar associada e medida, deixam de ser necessários. As medições por paragem já calculadas e os agregados construídos a partir delas são guardados indefinidamente, para que o histórico se mantenha intacto sem que o armazenamento cresça sem limite.

Verifique as contas

Todas as opções descritas aqui são decisões discutíveis, e há quem as tomasse de outra forma. Todo o processo — recolha, associação, margem de pontualidade, exclusões — é de código aberto e pode ser lido em github.com/goncalovf/stcpontual. Se acha que algo está errado, o código é o argumento, e a contestação é bem-vinda.