{
  "schema": "railcast.model_fixture.v2",
  "horizon_min": 60,
  "generated_from": {
    "run": "ml-runs/I-corrected-v3-t60-2026-09-07",
    "eval": "ml-runs/I-corrected-v3-t60-2026-09-07/eval.json",
    "eval_generated_at": "2026-09-07T13:35:27.899127+00:00",
    "benchmark": "ml-runs/I-corrected-v3-t60-2026-09-07/benchmark.json",
    "manifest_sha256": "bc576015408610a08789e97e56bc8e8b819769d499dbc5c426dc6f41728801d1"
  },
  "manifest": {
    "schema": "railcast.model_manifest.v1",
    "feature_version": "railcast.features.asof.v3",
    "target_version": "railcast.departure.delay_ge6.mature_estimate.v3",
    "horizon_min": 60,
    "feature_columns": [
      "train_type",
      "eva",
      "hour_bucket",
      "plan_hour",
      "plan_dow",
      "plan_month",
      "station_mean_delay_30m",
      "station_mean_delay_60m",
      "station_share_delayed6_60m",
      "station_obs_n_60m",
      "network_mean_delay_60m",
      "run_last_known_delay_at_t",
      "run_max_delay_at_t",
      "run_minutes_since_last_obs",
      "is_holiday",
      "is_day_before_holiday",
      "is_bridge_day",
      "is_school_holiday_nrw"
    ],
    "excluded_unprovable_features": [
      "departure_hour_weather",
      "active_events",
      "final_state_priors",
      "plan_platform_predecessor",
      "route_position",
      "line_name_aggregates",
      "hardcoded_closure",
      "station_infra_flag",
      "mutable_message_code_and_type"
    ],
    "availability_mode": "legacy_plan",
    "label_policy": "mature_estimate_24h; not confirmed departure",
    "regression_population_sha256": "d36f7b30dca7ab5bc6d13646e07099af73fcd7d32736d617e09dea88895246b0",
    "train_evas": [
      "8000001",
      "8000013",
      "8000033",
      "8000037",
      "8000041",
      "8000044",
      "8000050",
      "8000080",
      "8000084",
      "8000085",
      "8000086",
      "8000087",
      "8000096",
      "8000098",
      "8000105",
      "8000107",
      "8000124",
      "8000128",
      "8000134",
      "8000142",
      "8000149",
      "8000152",
      "8000156",
      "8000170",
      "8000178",
      "8000183",
      "8000191",
      "8000199",
      "8000207",
      "8000209",
      "8000237",
      "8000240",
      "8000244",
      "8000260",
      "8000261",
      "8000263",
      "8000266",
      "8000284",
      "8000286",
      "8000294",
      "8000309",
      "8000323",
      "8000326",
      "8000348",
      "8000406",
      "8000853",
      "8001082",
      "8001085",
      "8001215",
      "8001886",
      "8002187",
      "8002549",
      "8003160",
      "8003168",
      "8003200",
      "8003368",
      "8003553",
      "8003616",
      "8005152",
      "8005499",
      "8006369",
      "8006618",
      "8006619",
      "8006713",
      "8006718",
      "8006719",
      "8007768",
      "8010085",
      "8010101",
      "8010205",
      "8010224",
      "8010255",
      "8010304",
      "8011113",
      "8073368",
      "8089021",
      "8089073",
      "8089185",
      "8089522",
      "8098105",
      "8098160",
      "8098205",
      "8098261",
      "8098262",
      "8098263",
      "8098348",
      "8098349",
      "8098549"
    ],
    "train_start_utc": "2026-08-01T00:00:00+00:00",
    "train_end_utc": "2026-08-31T23:56:00+00:00",
    "test_start_utc": "2026-09-01T00:04:00+00:00",
    "test_end_utc": "2026-09-05T23:59:00+00:00",
    "data_as_of": "2026-09-07T12:30:00+00:00",
    "generated_at": "2026-09-07T13:35:27.899127+00:00",
    "data_as_of_semantics": "label maturity reference; not an archived database snapshot",
    "cancellation_model_target": "departure_status_c_only",
    "cancellation_model_available": false,
    "feature_cache_contract": {
      "availability_mode": "legacy_plan",
      "end": "2026-09-06",
      "feature_version": "railcast.features.asof.v3",
      "generated_at": "2026-09-07T13:31:28.584061+00:00",
      "groups": [
        "rolling",
        "run_cascade",
        "calendar"
      ],
      "horizon_min": 60,
      "source_watermark": {
        "combined_timestamp_extrema": {
          "delay_observations": {
            "max": "2026-09-07T13:14:58.328538+00:00",
            "min": "2026-05-07T23:47:09.697564+00:00"
          },
          "message_observations": {
            "max": "2026-09-07T13:14:47.726270+00:00",
            "min": "2026-05-06T06:49:05.387876+00:00"
          }
        },
        "database_path": "/mnt/hotdata/railcast-dwh/railcast.db",
        "recorded_at": "2026-09-07T13:31:28.584243+00:00",
        "source_bindings": [],
        "source_cursors": {}
      },
      "start": "2026-07-31"
    },
    "label_source_watermark": {
      "database_path": "/mnt/hotdata/railcast-dwh/railcast.db",
      "recorded_at": "2026-09-07T13:32:18.731910+00:00",
      "source_bindings": [
        {
          "endpoint": "zoopa:/home/ubuntu/.openclaw/workspace/railcast/railcast.db",
          "source_id": "c1d9a043-0479-4083-aaf6-03117c735328"
        }
      ],
      "source_cursors": {
        "c1d9a043-0479-4083-aaf6-03117c735328/delay_observations": {
          "source_id": "c1d9a043-0479-4083-aaf6-03117c735328",
          "table_name": "delay_observations",
          "through_timestamp": null,
          "max_id": 0,
          "completed_at": null,
          "scan_until": "2026-09-07T13:23:15.558+00:00",
          "scan_max_id": 25805097,
          "scan_lower": "1970-01-01T00:00:00+00:00",
          "scan_after_id": 0,
          "cursor_ts": "2026-09-05T02:46:09.673444+00:00",
          "cursor_id": 25228465
        }
      },
      "combined_timestamp_extrema": {
        "delay_observations": {
          "min": "2026-05-07T23:47:09.697564+00:00",
          "max": "2026-09-07T13:14:58.328538+00:00"
        },
        "plan_observations": {
          "min": null,
          "max": null
        },
        "stop_observations": {
          "min": null,
          "max": null
        },
        "message_observations": {
          "min": "2026-05-06T06:49:05.387876+00:00",
          "max": "2026-09-07T13:14:47.726270+00:00"
        }
      }
    },
    "feature_parquet_sha256": "f371ce4c4121256ad4bf1f9fb2a0f9a6e098a03d9b4ef74cc163358edc9da076",
    "artifacts": {
      "calibrator_delayed.joblib": "fbaa70022dcc04248f220d4392d4677c08deae2b049fa6f8e25415b89339ce20",
      "classifier_delayed.joblib": "2102509265090fe00470e90599972de8ec920bc5fb70959273abca503b12f2c1",
      "regressor.joblib": "67ce5c48cbe3da7dd100fb407802e21f0588d703fc6b2472463f30ea42592371",
      "regressor_q50.joblib": "fbd8063b61fc44ec18f8e3929633e456917b49623eaa16ca6ff79cb54e6d54f5",
      "regressor_q80.joblib": "37b35f0e629f2aed191c0f2ac814425704201219f79867937dbbe45585b3e2f8",
      "regressor_q90.joblib": "ab945fd7d12baa631d2f0cc52183460aee7a970a8ab4299326bd75c027ed74ed"
    }
  },
  "measurement_kind": "retrospective_replay_legacy_plan_approximation",
  "label_policy": "mature_estimate_24h; not confirmed departure",
  "cutoff": "2026-08-31 23:59:00+00:00",
  "period": {
    "start": "2026-09-01T00:04:00+00:00",
    "end": "2026-09-06T00:00:00+00:00",
    "label": "Recent temporal holdout; mature estimates"
  },
  "headline": {
    "mae": 2.8658088043099825,
    "median_ae": 1.0,
    "auc_delayed": 0.7554912386359351,
    "brier_delayed_cal": 0.11919786522598749,
    "train_n": 353023,
    "test_n": 70161
  },
  "bahn_benchmark": {
    "horizon_min": 60,
    "bahn_coverage": 0.4359,
    "strict": {
      "n": 30582,
      "model_mae": 3.771,
      "bahn_mae": 4.079,
      "model_better_pct": 7.5
    },
    "effective": {
      "n": 70161,
      "model_mae": 2.866,
      "bahn_mae": 3.188,
      "model_better_pct": 10.1
    }
  },
  "cohorts": {
    "seen_in_training": {
      "n": 70161,
      "model_mae": 2.8658088043099825,
      "bahn_effective_mae": 3.187825145023589,
      "bahn_coverage": 0.43588318296489503
    },
    "unseen_in_training": {
      "n": 0,
      "model_mae": null,
      "bahn_effective_mae": null,
      "bahn_coverage": null
    },
    "original11_tier0": {
      "n": 12647,
      "model_mae": 3.856611047040404,
      "bahn_effective_mae": 4.1461216098679525,
      "bahn_coverage": 0.41764845417885665
    },
    "main_eva_panel": {
      "n": 49093,
      "model_mae": 3.3543988775574936,
      "bahn_effective_mae": 3.622634591489622,
      "bahn_coverage": 0.5156743323895464
    },
    "aug07_substations": {
      "n": 21068,
      "model_mae": 1.7272881822319466,
      "bahn_effective_mae": 2.174625023732675,
      "bahn_coverage": 0.2499525346497057
    }
  },
  "cohort_definitions": {
    "original11_tier0": [
      "8000044",
      "8000080",
      "8000085",
      "8000098",
      "8000105",
      "8000207",
      "8000261",
      "8000266",
      "8002549",
      "8003368",
      "8011160"
    ],
    "main_eva_panel": "All EVAs except Aug07 substations; not a fixed historical panel",
    "aug07_substations": [
      "8073368",
      "8089021",
      "8089073",
      "8089185",
      "8089522",
      "8098096",
      "8098105",
      "8098160",
      "8098205",
      "8098261",
      "8098262",
      "8098263",
      "8098348",
      "8098349",
      "8098549"
    ]
  },
  "reopened_route_comparison": {
    "status": "unavailable",
    "reason": "No effective-dated route history; no inferred reopening labels"
  },
  "feature_importance": [
    {
      "feature": "run_minutes_since_last_obs",
      "importance": 0.7626694188808881,
      "std": 0.016618652496631896,
      "label": "run_minutes_since_last_obs"
    },
    {
      "feature": "run_last_known_delay_at_t",
      "importance": 0.5335598324752763,
      "std": 0.0025130380400837566,
      "label": "run_last_known_delay_at_t"
    },
    {
      "feature": "run_max_delay_at_t",
      "importance": 0.3744817694170619,
      "std": 0.002856025412298028,
      "label": "run_max_delay_at_t"
    },
    {
      "feature": "eva",
      "importance": 0.37181840448951303,
      "std": 0.01342551265681475,
      "label": "eva"
    },
    {
      "feature": "train_type",
      "importance": 0.21697033640561036,
      "std": 0.008212059374817423,
      "label": "train_type"
    },
    {
      "feature": "station_share_delayed6_60m",
      "importance": 0.1754306209280152,
      "std": 0.00560223547743101,
      "label": "station_share_delayed6_60m"
    },
    {
      "feature": "station_obs_n_60m",
      "importance": 0.15440969895787862,
      "std": 0.0018708628550050562,
      "label": "station_obs_n_60m"
    },
    {
      "feature": "station_mean_delay_60m",
      "importance": 0.14708556255109975,
      "std": 0.0020308912218593013,
      "label": "station_mean_delay_60m"
    },
    {
      "feature": "plan_hour",
      "importance": 0.14574975817241942,
      "std": 0.001207278926149172,
      "label": "plan_hour"
    },
    {
      "feature": "hour_bucket",
      "importance": 0.1415942957664312,
      "std": 0.0004364952450211697,
      "label": "hour_bucket"
    },
    {
      "feature": "station_mean_delay_30m",
      "importance": 0.1404826399887081,
      "std": 0.0011849553979503126,
      "label": "station_mean_delay_30m"
    },
    {
      "feature": "plan_dow",
      "importance": 0.137936285160375,
      "std": 0.001082409310614945,
      "label": "plan_dow"
    },
    {
      "feature": "network_mean_delay_60m",
      "importance": 0.13680247660124398,
      "std": 0.0007288692281474422,
      "label": "network_mean_delay_60m"
    },
    {
      "feature": "is_school_holiday_nrw",
      "importance": 0.13669443664958184,
      "std": 7.980019888931764e-05,
      "label": "is_school_holiday_nrw"
    },
    {
      "feature": "plan_month",
      "importance": 0.13664306770455426,
      "std": 0.0,
      "label": "plan_month"
    }
  ],
  "ablation": [],
  "backtest": null,
  "coverage": [
    {
      "label": "q50",
      "target": 50.0,
      "actual": 51.111016091560835
    },
    {
      "label": "q80",
      "target": 80.0,
      "actual": 79.60262824076054
    },
    {
      "label": "q90",
      "target": 90.0,
      "actual": 89.48418637134591
    }
  ]
}
