Metodología
Fuentes de datos y metodología
Esta página explica exactamente de dónde sale cada cifra del sitio, cada cuánto se refresca, cómo se calcula la puntualidad y —sobre todo— qué no podemos medir. Si algo no está aquí, es que no lo sabemos.
En esta página
Qué fuentes usamos
Todo el contenido de datos procede de fuentes abiertas y públicas. No usamos scraping de zonas privadas, ni credenciales de usuario, ni datos de sistemas de venta.
| Fuente | Qué aporta | Refresco | Licencia |
|---|---|---|---|
| GTFS Cercanías (Renfe Open Data) | Horario de Cercanías y Rodalies: paradas, líneas y circulaciones del día | Diario, de madrugada | CC BY 4.0 |
| GTFS Alta Velocidad y Larga Distancia (Renfe Open Data) | Horario de AVE, Avlo, Avant, Alvia, Euromed, Intercity y Media Distancia, con número comercial de tren | Diario, de madrugada | CC BY 4.0 |
| GTFS-Realtime de Renfe | Posición GPS de los trenes, hora de paso prevista por parada, retraso del tren, supresiones y avisos de incidencia | Cada 30 segundos | CC BY 4.0 |
| GTFS de Ouigo (Punto de Acceso Nacional) | Horario de los servicios de Ouigo, remapeado a las mismas estaciones que el resto | Diario, de madrugada | Datos abiertos del NAP |
| Datos geográficos de ADIF | Trazado de la red en servicio y localización de estaciones para el mapa | Mensual (día 1) | Datos abiertos de ADIF |
| API pública de estaciones de Ouigo | Cobertura de red del operador (estaciones y rutas) en su ficha | Diario | Datos públicos, sin autenticación |
Los ficheros de horario se descargan una vez al día, sobre las 04:30 hora peninsular. Ese momento no es casual: el fichero de Alta Velocidad y Larga Distancia no publica el horario completo del día hasta esa hora aproximadamente; descargarlo antes traería una jornada incompleta, sin buena parte de los AVE.
Cómo se construye el horario de un día
Un fichero GTFS no contiene «los trenes de hoy»: contiene un calendario de servicios y un conjunto de viajes asociados a esos servicios. Cada madrugada calculamos qué servicios están activos en la fecha, expandimos sus viajes y guardamos una fila por cada parada, con hora, tipo de tren, número comercial y el otro extremo del trayecto. De ahí salen los tablones de estación, las rutas y las líneas.
Dos particularidades del dato español que condicionan lo que se ve:
- Un tren físico puede figurar como varios viajes. Renfe modela un mismo servicio, con el mismo número y la misma hora, partido en varios tramos con identificadores distintos. Contarlos por separado inflaba los totales —una estación grande llegaba a declarar un 20 % más de salidas de las reales—, así que los agrupamos por número y hora y contamos cada circulación una sola vez.
- Los trenes de Cercanías no llevan número comercial. En su feed, el identificador es interno. Por eso a un tren de Cercanías se le sigue por su identificador de viaje y no por un número que el viajero pueda leer en un billete.
El horario del día se conserva mientras es útil y se purga cuando pasa: no acumulamos jornadas viejas.
Qué significa «tiempo real» aquí
Cada 30 segundos consultamos el feed en tiempo real de Renfe y actualizamos tres cosas distintas:
- Posiciones. Los trenes que emiten posición GPS aparecen en el mapa en vivo y en la ficha de su tren.
- Estado y retraso. Para los trenes con información de circulación, el retraso previsto y las supresiones. Es lo que convierte «programado» en «en hora», «+8 min» o «suprimido» en los tablones.
- Avisos. Las incidencias que publica el operador, en Avisos.
El dato en tiempo real caduca. Si el feed deja de responder, o si la última lectura válida es demasiado antigua, dejamos de mostrar estado en vivo en lugar de seguir enseñando el último valor conocido como si fuera actual. Un retraso de hace media hora presentado como «ahora» es peor que no decir nada.
Tampoco todos los trenes del horario tienen información en tiempo real: la cobertura depende de lo que cada operador publique en cada momento. Un tren sin estado no es un tren que vaya bien; es un tren del que no sabemos nada.
Cómo se calcula la puntualidad
Esta es la parte que conviene leer antes de citar cualquier porcentaje del sitio.
La definición
Un servicio cuenta como «en hora» cuando no ha sido suprimido y su último retraso conocido es de 5 minutos o menos (300 segundos). Ese último retraso es el más cercano al final del trayecto que hemos podido observar, así que se aproxima al retraso a la llegada, que es el que le importa al viajero. No es la definición oficial de ningún operador ni de ningún regulador: es la nuestra, y la aplicamos igual a todos.
De dónde sale el histórico
El feed en tiempo real no guarda historia: cada lectura sobrescribe la anterior y el retraso de un tren se pierde a los pocos segundos. Para poder medir, en cada ciclo acumulamos una fila por tren y día con el peor retraso visto y el último visto. El peor retraso del día sólo puede subir, nunca bajar: un fallo de lectura no borra lo ya observado. El último retraso y el estado de supresión, en cambio, reflejan siempre la lectura más reciente —y es a propósito, porque el feed marca y desmarca supresiones a lo largo del día—. De ahí salen las cifras por operador, por ruta y por franja horaria.
Las ventanas y sus cautelas
- Se publican ventanas móviles de 7, 30 y 90 días. El histórico se conserva unos 95 días, lo justo para cubrir la ventana más larga.
- Sólo se cuentan los momentos con red activa. De madrugada el feed publica los trenes de la jornada ya marcados como cancelados, aunque no haya circulación real. Contar esas lecturas hundía la media hasta cifras absurdas; se descartan.
- La media de red se pondera por exposición. Una lectura con cientos de trenes en circulación pesa más que una de madrugada con cuatro. Sin ponderar, las horas muertas valían lo mismo que la hora punta.
- Con pocos datos no publicamos porcentaje. Un segmento con muy pocos servicios observados no da una cifra; da ruido. En ese caso la casilla queda vacía.
Consecuencia práctica: nuestras cifras de puntualidad no son comparables con las que publica un operador. Cambian el umbral, el universo de trenes y el método. Sirven para comparar unos servicios con otros dentro de este sitio, medidos todos igual.
Los resultados están en Puntualidad.
Qué no cubrimos y por qué
- Iryo no publica datos abiertos de horario ni de tiempo real. Por eso sus trenes no aparecen en los tablones ni en el mapa. No es un olvido: no hay fuente pública que reutilizar, y no vamos a extraerla de sistemas cerrados.
- Ouigo entra por horario, no por tiempo real. Sus servicios aparecen en tablones y rutas a partir del horario publicado en el Punto de Acceso Nacional, pero sin estado en vivo propio.
- No mostramos vía ni andén. El número de vía se decide en la estación y no está en las fuentes abiertas que usamos. Preferimos no enseñar la columna a enseñarla vacía o con un valor viejo.
- No damos precios ni disponibilidad de plazas. Eso vive en los sistemas de venta de cada operador, que no son datos abiertos.
- Los nombres de estación son los del fichero oficial. Cuando Renfe renombra una estación, aquí cambia también, a veces con formas largas o poco naturales. Corregimos las que detectamos.
Cómo avisar de un error
Los formatos de los datos abiertos cambian sin aviso, y cuando cambian algo se rompe. Ya nos ha pasado: una modificación en los identificadores de Cercanías dejó tableros vacíos hasta que lo detectamos. Si ves un dato que no cuadra, escribe a contacto@treneamos.com indicando la URL y la hora a la que lo viste. Es la vía más rápida para arreglarlo.
Atribución. Los datos de horarios, tiempo real y estaciones proceden de Renfe Open Data y de ADIF, reutilizados conforme a la licencia Creative Commons Reconocimiento 4.0 (CC BY 4.0). Los datos de Ouigo proceden del Punto de Acceso Nacional de transporte multimodal. Las marcas comerciales de los operadores pertenecen a sus titulares y se usan con fines identificativos.
Más sobre el proyecto en Qué es treneamos.com · Condiciones en el Aviso legal.