{
  "source_file": "/data/output/4d9cf73c-9686-4497-96ab-51c8bc4485e4/input.xlsx",
  "facility_name": "qassim_sample.xlsx",
  "technology_type": "CCGT",
  "started_at": "2026-04-26T19:07:14.019655+00:00",
  "completed_at": "2026-04-26T19:07:14.248123+00:00",
  "overall_status": "error",
  "stages": [
    {
      "name": "parse",
      "started_at": "2026-04-26T19:07:14.019664+00:00",
      "completed_at": "2026-04-26T19:07:14.067673+00:00",
      "status": "success",
      "messages": [
        "Parsed 200 rows"
      ]
    },
    {
      "name": "classify",
      "started_at": "2026-04-26T19:07:14.068772+00:00",
      "completed_at": "2026-04-26T19:07:14.081124+00:00",
      "status": "success",
      "messages": [
        "Classified 200 safeguards (200 rule, 0 LLM)"
      ]
    },
    {
      "name": "group",
      "started_at": "2026-04-26T19:07:14.083479+00:00",
      "completed_at": "2026-04-26T19:07:14.121232+00:00",
      "status": "success",
      "messages": [
        "Grouped into 1 bowties"
      ]
    },
    {
      "name": "validate",
      "started_at": "2026-04-26T19:07:14.121313+00:00",
      "completed_at": "2026-04-26T19:07:14.122744+00:00",
      "status": "success",
      "messages": [
        "Validated 1 bowties, 6 gaps found"
      ]
    },
    {
      "name": "render_svgs",
      "started_at": "2026-04-26T19:07:14.122994+00:00",
      "completed_at": "2026-04-26T19:07:14.124788+00:00",
      "status": "success",
      "messages": [
        "Rendered 1 SVGs"
      ]
    },
    {
      "name": "write_excels",
      "started_at": "2026-04-26T19:07:14.124869+00:00",
      "completed_at": "2026-04-26T19:07:14.204780+00:00",
      "status": "success",
      "messages": [
        "Wrote QASSIM_SAMPLEXLSX_BT-REVIEW_R0.xlsx, QASSIM_SAMPLEXLSX_BT-BARRIER-REG_R0.xlsx"
      ]
    },
    {
      "name": "write_world_class_xlsx",
      "started_at": "2026-04-26T19:07:14.204863+00:00",
      "completed_at": "2026-04-26T19:07:14.229102+00:00",
      "status": "success",
      "messages": [
        "Wrote QASSIM_SAMPLEXLSX_BT-REGISTER_R0.xlsx"
      ]
    },
    {
      "name": "write_per_bowtie_excels",
      "started_at": "2026-04-26T19:07:14.229181+00:00",
      "completed_at": "2026-04-26T19:07:14.242486+00:00",
      "status": "success",
      "messages": [
        "Wrote 1 per-bowtie workbooks"
      ]
    },
    {
      "name": "write_bowtie_html",
      "started_at": "2026-04-26T19:07:14.242577+00:00",
      "completed_at": "2026-04-26T19:07:14.244277+00:00",
      "status": "success",
      "messages": [
        "Wrote 1 HTML pages, 0 PDFs"
      ]
    },
    {
      "name": "write_full_report_html",
      "started_at": "2026-04-26T19:07:14.244352+00:00",
      "completed_at": "2026-04-26T19:07:14.246652+00:00",
      "status": "success",
      "messages": [
        "Wrote QASSIM_SAMPLEXLSX_BT-REPORT_R0.html (no wkhtmltopdf)"
      ]
    },
    {
      "name": "render_pdf",
      "started_at": "2026-04-26T19:07:14.246790+00:00",
      "completed_at": "2026-04-26T19:07:14.248102+00:00",
      "status": "error",
      "messages": [
        "PDF failed: 'report.html' not found in search path: '/app/templates'"
      ]
    }
  ],
  "classification_stats": {
    "total_safeguards": 200,
    "rule_based_count": 200,
    "llm_count": 0,
    "manual_count": 0,
    "suggested_count": 0,
    "avg_confidence": 0.9499999999999976,
    "below_threshold_count": 0,
    "llm_total_cost_usd": 0.0,
    "llm_total_tokens": 0
  },
  "llm_calls": [],
  "bowtie_count": 1,
  "total_barriers": 1,
  "total_gaps": 8,
  "total_sce": 1,
  "total_sca": 0,
  "model_version": "0.1.0",
  "llm_model_pinned": "claude-sonnet-4-5-20250929",
  "reviewed_by": null,
  "reviewed_at": null,
  "sla_status": "not_required"
}