{"generatedAt":"2026-11-02T20:16:01.879Z","days":14,"from":"2026-10-19","to":"2026-11-02","source":"history","delay":{"note":"Error absoluto entre el retraso que mostraba Trenalia y el último retraso publicado por Renfe al terminar el trayecto. Oficial = el que publica Renfe en ese momento; proyectado = el de Trenalia (posición frente a horario por parada).","journeys":79,"samples":9376,"overall":{"n":9376,"maeOfficial":7.1,"maeProjected":8.2,"within3Official":50.9,"within3Projected":45.6,"biasProjected":0.2,"p90Projected":17,"projectedBetterShare":28.6,"gain":-16.2},"byHorizon":[{"fromMin":0,"toMin":15,"n":1004,"maeOfficial":1.1,"maeProjected":4.2,"within3Official":89.7,"within3Projected":72.4,"biasProjected":3.8,"p90Projected":7.7,"projectedBetterShare":4.3,"gain":-284.8},{"fromMin":15,"toMin":30,"n":1086,"maeOfficial":2.5,"maeProjected":4.7,"within3Official":74.5,"within3Projected":62.1,"biasProjected":3.4,"p90Projected":8,"projectedBetterShare":10.8,"gain":-83.2},{"fromMin":30,"toMin":60,"n":1927,"maeOfficial":3.7,"maeProjected":5.3,"within3Official":54,"within3Projected":46.4,"biasProjected":3,"p90Projected":11,"projectedBetterShare":23,"gain":-43.3},{"fromMin":60,"toMin":120,"n":2826,"maeOfficial":7.4,"maeProjected":7.3,"within3Official":40.4,"within3Projected":39.1,"biasProjected":1,"p90Projected":15.5,"projectedBetterShare":38.6,"gain":0.7},{"fromMin":120,"toMin":240,"n":2533,"maeOfficial":13.6,"maeProjected":14.6,"within3Official":34.9,"within3Projected":34.6,"biasProjected":-5.6,"p90Projected":38,"projectedBetterShare":38.7,"gain":-7}],"byGroup":[{"group":"md","n":5424,"maeOfficial":9,"maeProjected":11,"within3Official":46.8,"within3Projected":38.4,"biasProjected":0.1,"p90Projected":27,"projectedBetterShare":33.6,"gain":-22.6},{"group":"ave","n":2155,"maeOfficial":3.6,"maeProjected":3.6,"within3Official":65.6,"within3Projected":65.6,"biasProjected":0.5,"p90Projected":8,"projectedBetterShare":22.8,"gain":-1},{"group":"euromed","n":863,"maeOfficial":4.4,"maeProjected":4.4,"within3Official":55.2,"within3Projected":52.5,"biasProjected":-1.3,"p90Projected":9,"projectedBetterShare":18.2,"gain":0.8},{"group":"alvia","n":548,"maeOfficial":7.7,"maeProjected":7.9,"within3Official":26.6,"within3Projected":27.6,"biasProjected":3.7,"p90Projected":14,"projectedBetterShare":15.9,"gain":-2.1},{"group":"avant","n":251,"maeOfficial":3.1,"maeProjected":3.6,"within3Official":68.1,"within3Projected":54.2,"biasProjected":2.7,"p90Projected":8,"projectedBetterShare":5.2,"gain":-14.6},{"group":"avlo","n":135,"maeOfficial":9.7,"maeProjected":6,"within3Official":24.4,"within3Projected":29.6,"biasProjected":-6,"p90Projected":10,"projectedBetterShare":77,"gain":37.7}],"byDay":[{"day":"2026-10-31","n":578,"maeOfficial":11.3,"maeProjected":12.7,"within3Official":55.9,"within3Projected":44.6,"biasProjected":1,"p90Projected":43.3,"projectedBetterShare":30.8,"gain":-12.2},{"day":"2026-11-01","n":4480,"maeOfficial":5.8,"maeProjected":6.8,"within3Official":47.8,"within3Projected":46.7,"biasProjected":1.4,"p90Projected":16,"projectedBetterShare":27.6,"gain":-18.5},{"day":"2026-11-02","n":4318,"maeOfficial":7.9,"maeProjected":9.1,"within3Official":53.6,"within3Projected":44.6,"biasProjected":-1.1,"p90Projected":17,"projectedBetterShare":29.2,"gain":-15.2}]},"delayObserved":{"note":"Igual, pero frente a la llegada observada por Trenalia: panel de llegadas de la estación de destino (ADIF/RadarDeTrenes) o, si no lo hay, el momento en que el GPS sitúa al tren a menos de 700 m de su destino.","journeys":33,"samples":3499,"overall":{"n":3499,"maeOfficial":7.9,"maeProjected":8.7,"within3Official":47.2,"within3Projected":38,"biasProjected":0.7,"p90Projected":15,"projectedBetterShare":13.8,"gain":-9.9},"byHorizon":[{"fromMin":0,"toMin":15,"n":426,"maeOfficial":5.3,"maeProjected":6,"within3Official":50.5,"within3Projected":42.7,"biasProjected":5.1,"p90Projected":15.5,"projectedBetterShare":4.9,"gain":-13.6},{"fromMin":15,"toMin":30,"n":448,"maeOfficial":5.1,"maeProjected":6.2,"within3Official":48.4,"within3Projected":42.2,"biasProjected":5.4,"p90Projected":15,"projectedBetterShare":7.6,"gain":-22.3},{"fromMin":30,"toMin":60,"n":761,"maeOfficial":4.6,"maeProjected":5.9,"within3Official":53.2,"within3Projected":43,"biasProjected":4.3,"p90Projected":13,"projectedBetterShare":13.7,"gain":-27.4},{"fromMin":60,"toMin":120,"n":1011,"maeOfficial":5.5,"maeProjected":6.9,"within3Official":45,"within3Projected":32.2,"biasProjected":2.5,"p90Projected":14,"projectedBetterShare":18.9,"gain":-25.4},{"fromMin":120,"toMin":240,"n":853,"maeOfficial":16.5,"maeProjected":16,"within3Official":42.1,"within3Projected":36,"biasProjected":-9.1,"p90Projected":36.8,"projectedBetterShare":15.7,"gain":3.2}],"byGroup":[{"group":"md","n":1484,"maeOfficial":12.5,"maeProjected":12.9,"within3Official":38.6,"within3Projected":27.4,"biasProjected":-3.9,"p90Projected":19,"projectedBetterShare":23,"gain":-2.7},{"group":"euromed","n":863,"maeOfficial":4,"maeProjected":4.2,"within3Official":47.9,"within3Projected":43.5,"biasProjected":2,"p90Projected":8,"projectedBetterShare":11.6,"gain":-6.9},{"group":"ave","n":608,"maeOfficial":2.3,"maeProjected":4.2,"within3Official":74.3,"within3Projected":62.3,"biasProjected":3.6,"p90Projected":13,"projectedBetterShare":3.1,"gain":-86.3},{"group":"alvia","n":227,"maeOfficial":12.3,"maeProjected":13.6,"within3Official":0,"within3Projected":0,"biasProjected":13.6,"p90Projected":21,"projectedBetterShare":0,"gain":-10.8},{"group":"avant","n":200,"maeOfficial":2.5,"maeProjected":2.6,"within3Official":86.5,"within3Projected":82.5,"biasProjected":-0.5,"p90Projected":5.1,"projectedBetterShare":12,"gain":-2.2},{"group":"avlo","n":117,"maeOfficial":7.9,"maeProjected":12.2,"within3Official":34.2,"within3Projected":5.1,"biasProjected":12.2,"p90Projected":17,"projectedBetterShare":0,"gain":-53.7}],"byDay":[{"day":"2026-11-01","n":128,"maeOfficial":10.4,"maeProjected":12.1,"within3Official":10.2,"within3Projected":3.1,"biasProjected":12.1,"p90Projected":19,"projectedBetterShare":0,"gain":-16.3},{"day":"2026-11-02","n":3371,"maeOfficial":7.8,"maeProjected":8.5,"within3Official":48.6,"within3Projected":39.4,"biasProjected":0.3,"p90Projected":14,"projectedBetterShare":14.4,"gain":-9.6}]},"arrival":{"note":"Contraste de la llegada: último retraso de Renfe frente a la llegada observada (positivo = Renfe da más retraso del observado).","overall":{"n":33,"mae":4.8,"bias":3.1,"within2":45.5,"p90":14},"board":{"n":27,"mae":5.5,"bias":4.2,"within2":40.7,"p90":15.4},"gps":{"n":4,"mae":2,"bias":-2,"within2":75,"p90":5.2},"gpsEnd":{"n":2,"mae":2,"bias":-2,"within2":50,"p90":2.8},"stations":{"n":2078,"mae":2.8,"bias":-0.3,"within2":70.8,"p90":6}},"models":{"eta":{"status":"inactive","reason":"faltan datos","trainedAt":"2026-11-01T04:28:59.175Z","target":"cambio de retraso en 5 min (min)","metrics":null,"have":{"days":2,"train":0,"val":13551},"need":{"days":14,"train":20000,"val":3000}},"alerts":{"status":"inactive","reason":"faltan alertas etiquetadas","trainedAt":"2026-11-01T04:28:59.177Z","target":"p(alerta benigna)","metrics":null,"have":{"outcomes":27,"benign":26,"real":1},"need":{"outcomes":300,"perClass":30}}},"reachAlerts":{"candidates":949,"emitted":880,"keptClosing":104,"leaderStopped":8,"byLevel":{"media":326,"alta":554},"keptClosingShare":11.8,"likelyBenignShare":0.9,"note":"Etiquetado automático con lo que ocurrió después: «siguió acortándose 2 min» apoya que la alerta era coherente; «el de delante estaba parado en una estación» indica falsa alarma probable. No hay datos oficiales de Adif con los que compararlas.","aftermath":{"total":750,"none":327,"incident":215,"serious":0,"review":170,"unknown":38,"reviewed":0,"manual":{"none":0,"incident":0,"false_alarm":0},"note":"Revisión automática tras 3 h: los dos trenes terminaron su trayecto con normalidad, incidencias publicadas por Renfe/Adif en la zona y alertas de red cercanas. «Sin indicios» no significa que se haya comprobado oficialmente que no hubo incidente."}},"netAlerts":{"total":261,"checked":240,"confirmed":165,"byKind":{"segment":{"total":9,"checked":9,"confirmed":7,"confirmedShare":77.8},"stopped":{"total":213,"checked":193,"confirmed":120,"confirmedShare":62.2},"jump":{"total":39,"checked":38,"confirmed":38,"confirmedShare":100}},"confirmedShare":68.8,"note":"Una alerta de tramo o de tren parado se da por confirmada si algún tren implicado ganó 3 min o más de retraso entre 10 y 30 min después; un salto de retraso, si el retraso no se deshizo (no era un error del dato)."},"quality":{"trajDays":3,"samples":227161,"samplesPerDay":75720,"onRailShare":99.1,"precisionMedianM":144,"precisionP90M":748},"attribution":"Datos: Renfe, ADIF (y RadarDeTrenes si está activo), AEMET, NASA FIRMS, IGN/EMSC; Adif, EFFIS, IGN, AEMET, Copernicus EMS, GDACS y DGT vía aGIS Open Geodata (STRATOS GS). Elaboración: Trenalia (trenalia.org). Uso informativo: no apto para la seguridad ferroviaria."}