¿Qué es enhora.info?
enhora.info es un tablero de seguimiento de puntualidad de los trenes Renfe en España. Recoge datos en abierto publicados por Renfe, los procesa automáticamente cada hora y los presenta de forma clara para que cualquier persona pueda ver, en tiempo real y a lo largo del tiempo, cómo funciona la red ferroviaria española.
El objetivo no es criticar ni señalar, sino documentar. Si los retrasos mejoran, aquí se verá. Si empeoran, también.
Concienciar sobre la infraestructura ferroviaria
El ferrocarril es una infraestructura esencial. Millones de personas en España dependen de él cada día para ir al trabajo, a la universidad o a visitar a su familia. Sin embargo, la información sobre su puntualidad real suele quedarse en estadísticas anuales de difícil acceso o en titulares puntuales.
enhora.info nace para llenar ese hueco: ofrecer una visión continua y verificable de cómo funciona la red, con datos públicos y metodología transparente. Así, ciudadanos, periodistas, investigadores o simplemente viajeros habituales pueden consultar la situación actual y la evolución histórica de los retrasos.
Este proyecto no tiene ninguna afiliación con Renfe ni con ninguna administración pública. Es un proyecto independiente construido sobre datos abiertos.
Datos abiertos de Renfe
Renfe publica sus datos de transporte en el portal data.renfe.com bajo licencia Creative Commons Attribution 4.0 (CC BY 4.0), lo que permite su uso, distribución y análisis citando la fuente.
Cómo se calculan los retrasos
En cada ejecución, el pipeline cruza los horarios programados (GTFS estático) con los datos en tiempo real (GTFS-RT) para el tramo de 60 minutos hacia adelante desde el momento actual. Solo se analizan los trenes que tienen llegada prevista en ese intervalo.
Cuando no hay datos de tiempo real disponibles para un tren (el feed RT no lo incluye), se asume que está en hora. Esto puede subestimar los retrasos reales en servicios sin cobertura RT completa.
El retraso que se muestra es el retraso en la llegada a la estación consultada, no el retraso de salida en origen. Un tren que sale con retraso puede recuperar o acumular tiempo a lo largo del trayecto.
Cómo se publican los datos
Todo el proceso es completamente automático. Un servidor privado (VPS) ejecuta el pipeline cada hora mediante una tarea programada (cron job). Los datos generados se publican en este sitio web sin intervención manual.
Qué no mide este proyecto
Los servicios de Media Distancia sin feed de tiempo real aparecen siempre como "en hora". No es que no tengan retrasos — es que Renfe no publica esa información públicamente.
Los trenes que llegan con menos de 60 segundos de retraso se contabilizan como puntuales, siguiendo el criterio oficial de Renfe.
El feed GTFS-RT proporciona el dato de retraso pero no su causa (incidencia técnica, congestión, meteorología, etc.). No es posible desglosar por motivo.
Cada snapshot cubre únicamente los trenes con llegada en la próxima hora. Los servicios nocturnos o de baja frecuencia pueden no aparecer en todas las ejecuciones.
Solo hay datos desde que este proyecto empezó a funcionar. No existe historial anterior a esa fecha.
¿Qué significan los indicadores estadísticos?
¿Qué es el percentil p50 (mediana)?
Si hay 100 trenes con retraso ordenados de menor a mayor, el p50 es el valor que está exactamente en el medio: la mitad llega con ese retraso o menos, y la otra mitad tarda más. También se llama mediana.
Por ejemplo, un p50 de 8 minutos significa que al menos la mitad de los trenes retrasados llegan con 8 minutos o menos de retraso. Es la medida más representativa del retraso "típico".
¿Y el p75 y el p90?
El p75 es el valor que solo supera 1 de cada 4 trenes retrasados. Si es 19 minutos, el 75% de los trenes retrasados llegan en 19 minutos o menos.
El p90 es el valor que el 90% de los trenes retrasados no supera. Si el p90 es 30 minutos, significa que 9 de cada 10 trenes retrasados llegaron con 30 minutos o menos de retraso —solo el 10% restante lo superó. No al revés: no significa que el 90% llegara con más de 30 minutos.
¿Por qué no basta con la media de retrasos?
La media es fácil de calcular, pero puede engañar. Un único tren con 2 horas de retraso eleva la media de todos los demás aunque el resto lleguen con 5 minutos.
Los percentiles describen la distribución real: puedes saber si los retrasos son generalmente pequeños con algún caso extremo aislado, o si todos los trenes acumulan retraso de forma parecida. Ambas situaciones pueden tener la misma media, pero son muy diferentes en la práctica.
¿Qué es la línea de tendencia del gráfico histórico?
Es una regresión lineal calculada sobre el porcentaje diario de trenes con retraso. En términos sencillos, es la "línea recta que mejor se ajusta" a los datos pasados y permite ver si los retrasos están mejorando o empeorando globalmente a lo largo del tiempo.
Una línea que sube indica tendencia a empeorar; si baja, a mejorar. Es una aproximación simple —no tiene en cuenta estacionalidad ni eventos puntuales— pero útil para detectar derivas a largo plazo que no se aprecian día a día.
¿Qué muestra el gráfico "Por hora"?
Agrupa todos los datos históricos por franja horaria (independientemente del día concreto) y calcula el porcentaje medio de trenes retrasados en cada hora del día. Permite detectar si hay horas que sistemáticamente concentran más retrasos: picos de entrada al trabajo, horas punta de tarde, etc.
La opacidad de las barras indica cuántas muestras hay para esa franja: las horas nocturnas con pocos trenes tienen barras más tenues porque la estimación es menos fiable.
¿Por qué algunos trenes siempre aparecen "en hora"?
Los servicios de Media Distancia sin cobertura de tiempo real aparecen siempre como en hora porque Renfe no publica ese dato en su feed público GTFS-RT. No es que no tengan retrasos: es que la información no está disponible.
Este es un límite del sistema de datos abiertos de Renfe, no del pipeline de enhora.info. Los datos de Cercanías y AVE/Larga Distancia sí tienen cobertura RT.
Código abierto
Todo el código de este proyecto —el pipeline de Python y el sitio web en Astro— es público. Cualquier persona puede revisarlo, auditarlo o reutilizarlo bajo los términos de su licencia.
Si encuentras un error en los datos, en el método de cálculo o en el código, puedes reportarlo abriendo un issue en el repositorio.