{
  "manifest_version": "1.0",
  "case_id": "OP-250320",
  "slug": "rollback-before-dawn",
  "revision": "2026.09.01",
  "catalog_snapshot": "2026-01-15",
  "analysis_cutoff": "2025-03-20T11:40:00-04:00",
  "generated_from": "the-analyst synthetic enterprise world",
  "selection": {
    "asset_cohort": "3,000 lexicographically first eligible assets per region",
    "asset_count": 18000,
    "telemetry_window": [
      "2025-01-15",
      "2025-04-20"
    ],
    "weather_window": [
      "2025-02-01",
      "2025-04-01"
    ]
  },
  "files": [
    {
      "table": "scenario.asset_cohort",
      "source_table": null,
      "path": "/data/cases/rollback-before-dawn/scenario/asset_cohort.parquet",
      "python_path": "/data/cases/rollback-before-dawn/scenario/asset_cohort.parquet",
      "rows": 18000,
      "bytes": 105690,
      "sha256": "0abd65b4113b7f94af10cdcd968af780cecfc382f82c840c7cdb61f9a379e3eb",
      "columns": [
        "asset_id",
        "region_id",
        "expected_channels",
        "expected_readings_per_day",
        "cohort_rule"
      ],
      "note": "Stable asset denominator by incident region, including devices with no received reading in a period."
    },
    {
      "table": "iot.asset",
      "source_table": "iot.asset",
      "path": "/data/cases/rollback-before-dawn/iot/asset.parquet",
      "python_path": "/data/cases/rollback-before-dawn/iot/asset.parquet",
      "rows": 21823,
      "bytes": 712465,
      "sha256": "612769ed970c04ff792156f3b7ccba7899cb8ddb9898013095ec82d7924f105a",
      "columns": [
        "asset_id",
        "asset_code",
        "product_id",
        "current_service_site_id",
        "subscription_id",
        "serial_number",
        "installed_at",
        "install_source_code",
        "current_state_code",
        "acquired_legacy_flag",
        "warranty_end_date",
        "extract_as_of"
      ],
      "note": "Asset master; current site and state are not historical facts."
    },
    {
      "table": "iot.asset_installation_history",
      "source_table": "iot.asset_installation_history",
      "path": "/data/cases/rollback-before-dawn/iot/asset_installation_history.parquet",
      "python_path": "/data/cases/rollback-before-dawn/iot/asset_installation_history.parquet",
      "rows": 16640,
      "bytes": 436916,
      "sha256": "806aaf27d8157ad57003ddb806897a7892c49fda6e243202da8c6f8032a3cfe4",
      "columns": [
        "installation_id",
        "asset_id",
        "service_site_id",
        "installed_at",
        "removed_at",
        "installation_reason_code",
        "recorded_at"
      ],
      "note": "Effective installation periods for historical site assignment."
    },
    {
      "table": "iot.sensor",
      "source_table": "iot.sensor",
      "path": "/data/cases/rollback-before-dawn/iot/sensor.parquet",
      "python_path": "/data/cases/rollback-before-dawn/iot/sensor.parquet",
      "rows": 27549,
      "bytes": 435619,
      "sha256": "8031b9c76211927d2c9056967e990b4593e9905a5280b6a51b9d6fd8851b50a5",
      "columns": [
        "sensor_id",
        "asset_id",
        "sensor_type_code",
        "unit_code",
        "activated_at",
        "expected_frequency_minutes"
      ],
      "note": "Expected channel frequency supplies the telemetry denominator."
    },
    {
      "table": "iot.sensor_reading",
      "source_table": "iot.sensor_reading",
      "path": "/data/cases/rollback-before-dawn/iot/sensor_reading.parquet",
      "python_path": "/data/cases/rollback-before-dawn/iot/sensor_reading.parquet",
      "rows": 41224,
      "bytes": 1317023,
      "sha256": "a87260d69049836648f6934f1a677edf1493562777fc2edc0a5576f9da57d561",
      "columns": [
        "sensor_reading_id",
        "sensor_id",
        "asset_id",
        "observed_at",
        "source_recorded_at",
        "warehouse_available_at",
        "reading_value",
        "quality_code",
        "firmware_major",
        "region_id"
      ],
      "note": "Observed, recorded, and warehouse-available clocks are separate; v5 changes measurement behavior."
    },
    {
      "table": "iot.device_alert",
      "source_table": "iot.device_alert",
      "path": "/data/cases/rollback-before-dawn/iot/device_alert.parquet",
      "python_path": "/data/cases/rollback-before-dawn/iot/device_alert.parquet",
      "rows": 6297,
      "bytes": 150273,
      "sha256": "08208bf9a708d953324afd2f467cc8137bddcffbc8b58a927529ee9e6d7c1dd1",
      "columns": [
        "alert_id",
        "asset_id",
        "sensor_id",
        "alert_at",
        "alert_type_code",
        "severity_code",
        "acknowledged_at",
        "auto_generated_flag",
        "firmware_release_flag"
      ],
      "note": "Generated alerts are not confirmed physical failures and can repeat by asset."
    },
    {
      "table": "iot.asset_health_daily",
      "source_table": "iot.asset_health_daily",
      "path": "/data/cases/rollback-before-dawn/iot/asset_health_daily.parquet",
      "python_path": "/data/cases/rollback-before-dawn/iot/asset_health_daily.parquet",
      "rows": 24810,
      "bytes": 2744234,
      "sha256": "b9f43808e79352e6de46dfbcbace339b8aee0456c89d096cfc97cbfe9540bb25",
      "columns": [
        "asset_health_daily_id",
        "asset_id",
        "health_date",
        "service_site_id",
        "region_id",
        "telemetry_completeness",
        "health_score",
        "alert_count_1d",
        "offline_minutes_1d",
        "firmware_major",
        "generated_at",
        "failure_within_30d",
        "failure_label_available_at",
        "reading_count_7d",
        "alert_count_7d",
        "mean_signal_7d",
        "mean_battery_7d",
        "missing_rate_7d",
        "reading_count_14d",
        "alert_count_14d",
        "mean_signal_14d",
        "mean_battery_14d",
        "missing_rate_14d",
        "reading_count_30d",
        "alert_count_30d",
        "mean_signal_30d",
        "mean_battery_30d",
        "missing_rate_30d",
        "reading_count_60d",
        "alert_count_60d",
        "mean_signal_60d",
        "mean_battery_60d",
        "missing_rate_60d",
        "reading_count_90d",
        "alert_count_90d",
        "mean_signal_90d",
        "mean_battery_90d",
        "missing_rate_90d"
      ],
      "note": "Sampled analytical rows include delayed 30-day outcomes unavailable at the incident cutoff."
    },
    {
      "table": "external.weather_station",
      "source_table": "external.weather_station",
      "path": "/data/cases/rollback-before-dawn/external/weather_station.parquet",
      "python_path": "/data/cases/rollback-before-dawn/external/weather_station.parquet",
      "rows": 12,
      "bytes": 3106,
      "sha256": "b60f62c257f03dd98a8a82209c6929c20cbd260673f1547cae7c6862f4d9906b",
      "columns": [
        "weather_station_id",
        "station_code",
        "region_id",
        "station_name",
        "latitude",
        "longitude",
        "elevation_meters",
        "provider_code"
      ],
      "note": "Station-to-region bridge; several stations may describe one region."
    },
    {
      "table": "external.weather_hourly",
      "source_table": "external.weather_hourly",
      "path": "/data/cases/rollback-before-dawn/external/weather_hourly.parquet",
      "python_path": "/data/cases/rollback-before-dawn/external/weather_hourly.parquet",
      "rows": 17280,
      "bytes": 805255,
      "sha256": "9f3611d1d8a97cd0a4aa0b012d8a415fd763a737d3d4c01a7a7c0b30a888f954",
      "columns": [
        "weather_observation_id",
        "weather_station_id",
        "observed_at",
        "temperature_c",
        "dew_point_c",
        "relative_humidity_pct",
        "precipitation_mm",
        "snowfall_mm",
        "wind_speed_kph",
        "wind_gust_kph",
        "pressure_hpa",
        "visibility_km",
        "condition_code",
        "quality_flag"
      ],
      "note": "Hourly regional exposure evidence, not device-level causal proof."
    },
    {
      "table": "field_ops.work_order",
      "source_table": "field_ops.work_order",
      "path": "/data/cases/rollback-before-dawn/field_ops/work_order.parquet",
      "python_path": "/data/cases/rollback-before-dawn/field_ops/work_order.parquet",
      "rows": 2886,
      "bytes": 160150,
      "sha256": "db6c38f85fa16c4620d62c245d907563d0afbabfb07ce2b482051d7b86d14327",
      "columns": [
        "work_order_id",
        "work_order_code",
        "appointment_id",
        "account_id",
        "service_site_id",
        "asset_id",
        "subscription_id",
        "branch_id",
        "created_at",
        "warehouse_available_at",
        "requested_service_code",
        "priority_code",
        "current_status_code",
        "assigned_employee_id",
        "scheduled_start_at",
        "completed_at",
        "first_time_fix_flag",
        "storm_disruption_flag",
        "final_resolution_code",
        "extract_as_of"
      ],
      "note": "Frozen extract mixes request-time facts and eventual operational outcomes."
    },
    {
      "table": "field_ops.work_order_status_event",
      "source_table": "field_ops.work_order_status_event",
      "path": "/data/cases/rollback-before-dawn/field_ops/work_order_status_event.parquet",
      "python_path": "/data/cases/rollback-before-dawn/field_ops/work_order_status_event.parquet",
      "rows": 17316,
      "bytes": 272612,
      "sha256": "f28806d427e79502fbd18a6a132e7bb821893978527049f76b45df35d2ac9aa0",
      "columns": [
        "work_order_status_event_id",
        "work_order_id",
        "status_code",
        "occurred_at",
        "source_recorded_at",
        "employee_id",
        "source_system_code"
      ],
      "note": "Status history requires source-recorded cutoffs and pre-aggregation."
    },
    {
      "table": "core.region",
      "source_table": "core.region",
      "path": "/data/cases/rollback-before-dawn/core/region.parquet",
      "python_path": "/data/cases/rollback-before-dawn/core/region.parquet",
      "rows": 6,
      "bytes": 1994,
      "sha256": "fa1a14a448574d5608865a391ff875d341ee8209b24bbee03be659b2c36ba0de",
      "columns": [
        "region_id",
        "region_name",
        "timezone_name",
        "market_code",
        "active_from",
        "active_to"
      ],
      "note": "Stable corporate region reference."
    },
    {
      "table": "core.branch",
      "source_table": "core.branch",
      "path": "/data/cases/rollback-before-dawn/core/branch.parquet",
      "python_path": "/data/cases/rollback-before-dawn/core/branch.parquet",
      "rows": 36,
      "bytes": 4020,
      "sha256": "c1123a128fac192e6b202a69fdf034f2e987d90468eedf5e4faf5a52f026d8dd",
      "columns": [
        "branch_id",
        "branch_name",
        "region_id",
        "opened_date",
        "branch_type",
        "timezone_name",
        "latitude",
        "longitude",
        "is_active"
      ],
      "note": "Branch-to-region and timezone reference."
    },
    {
      "table": "core.world_event",
      "source_table": "core.world_event",
      "path": "/data/cases/rollback-before-dawn/core/world_event.parquet",
      "python_path": "/data/cases/rollback-before-dawn/core/world_event.parquet",
      "rows": 19,
      "bytes": 4131,
      "sha256": "489a54bef6c021ea231b7897d7a2a53e7f6a4025b54509ff6e857ac1ecd7c866",
      "columns": [
        "world_event_id",
        "event_type",
        "event_name",
        "scope",
        "region_id",
        "branch_id",
        "started_at",
        "ended_at",
        "severity",
        "public_summary"
      ],
      "note": "Registered context is useful but not a complete causal label."
    }
  ],
  "table_mappings": {
    "scenario.asset_cohort": "/data/cases/rollback-before-dawn/scenario/asset_cohort.parquet",
    "iot.asset": "/data/cases/rollback-before-dawn/iot/asset.parquet",
    "iot.asset_installation_history": "/data/cases/rollback-before-dawn/iot/asset_installation_history.parquet",
    "iot.sensor": "/data/cases/rollback-before-dawn/iot/sensor.parquet",
    "iot.sensor_reading": "/data/cases/rollback-before-dawn/iot/sensor_reading.parquet",
    "iot.device_alert": "/data/cases/rollback-before-dawn/iot/device_alert.parquet",
    "iot.asset_health_daily": "/data/cases/rollback-before-dawn/iot/asset_health_daily.parquet",
    "external.weather_station": "/data/cases/rollback-before-dawn/external/weather_station.parquet",
    "external.weather_hourly": "/data/cases/rollback-before-dawn/external/weather_hourly.parquet",
    "field_ops.work_order": "/data/cases/rollback-before-dawn/field_ops/work_order.parquet",
    "field_ops.work_order_status_event": "/data/cases/rollback-before-dawn/field_ops/work_order_status_event.parquet",
    "core.region": "/data/cases/rollback-before-dawn/core/region.parquet",
    "core.branch": "/data/cases/rollback-before-dawn/core/branch.parquet",
    "core.world_event": "/data/cases/rollback-before-dawn/core/world_event.parquet"
  },
  "learner_cautions": [
    "The extract deliberately contains rows and outcome labels that became available after the incident cutoff.",
    "Received telemetry is not the denominator for expected telemetry; silent assets remain in scenario.asset_cohort.",
    "Alerts, telemetry absence, work requests, and confirmed physical failures are different grains and concepts."
  ],
  "validation_reference": "generator/case_packs/reports/cases_04_06_validation.md",
  "totals": {
    "files": 14,
    "rows": 193898,
    "bytes": 7153488
  }
}
