{
  "artifact_classification": {
    "environment.json": "environment_metadata",
    "receipt.md": "deterministic_numerical_artifact",
    "report-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.html": "deterministic_numerical_artifact",
    "report-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.md": "deterministic_numerical_artifact",
    "report-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.html": "deterministic_numerical_artifact",
    "report-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.md": "deterministic_numerical_artifact",
    "report-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.html": "deterministic_numerical_artifact",
    "report-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.md": "deterministic_numerical_artifact",
    "run-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.json": "deterministic_numerical_artifact",
    "run-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.json": "deterministic_numerical_artifact",
    "run-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.json": "deterministic_numerical_artifact",
    "scenario-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.json": "deterministic_numerical_artifact",
    "scenario-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.json": "deterministic_numerical_artifact",
    "scenario-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.json": "deterministic_numerical_artifact"
  },
  "artifacts": {
    "environment.json": {
      "classification": "environment_metadata",
      "sha256": "24fbbf34ae045d161b80e43f36978f456aa2124ae0f788448e82613479b5bbf6"
    },
    "receipt.md": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "c50747d04ee71e429e5d1e26215fdbb05f181d592a4e74ac5a3e49ea10577f6e"
    },
    "report-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.html": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "1fd3a12252470f33b3bccc08acf459f408992ea3cc849bee295205ce356bbf1d"
    },
    "report-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.md": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "e0750b96ebb141bf08e1ba88979e6b7c758c09e23e66f8bf84f73f7f4521dae7"
    },
    "report-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.html": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "f4a1e20abdf87961ec5ddde65d52ba2c9002c7076cce854dc3474bb4071f723e"
    },
    "report-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.md": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "b5eab9e8f563644c6b74515d0ec5d3c23540e317941e8376db2ab22499acabf9"
    },
    "report-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.html": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "43c467a1697c2713ff35dec9b69f5ad3813c50635b8936b0a2dddaddc8859f96"
    },
    "report-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.md": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "fc84ee1ee96bf274d06740d3d2fa9e456ab704862c48ed2945b0f9e2f100899b"
    },
    "run-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.json": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "250213676e6d9e4acf8ac23c4e6857876a4d6515b395baaec67f08ed6bf40dc9"
    },
    "run-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.json": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "e97e197b9d319ce362fb3d7e3324d73d4be89eb19c7b67b2a8d3de65a2d7b3db"
    },
    "run-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.json": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "fa8f029f8fdc14cd794a8eb10017b9e60d679554a2abc6022d5340088742f5da"
    },
    "scenario-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.json": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "49a5e41c298b33b6821af2cbf2e3317f916cae40bd95f1b8866f87d8524e9751"
    },
    "scenario-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.json": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "854f2a9f7886bbbc7588c6f8b242a273709cc421e85467ba9ebdfd56d7f5b58b"
    },
    "scenario-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.json": {
      "classification": "deterministic_numerical_artifact",
      "sha256": "24a51ab64523a2c0db6c1c88f61c53a5e4883c62df840334126e9a4723ec5a99"
    }
  },
  "cases": [
    {
      "case_id": "canonical-1mw-100kwh",
      "checks": [
        {
          "difference": "0",
          "equation": "1000 kW \u00d7 1800 s \u00f7 3,600",
          "expected": "500",
          "metric": "requested_it_kwh",
          "observed": "500",
          "status": "match",
          "unit": "kWh"
        },
        {
          "difference": "0",
          "equation": "(100 kWh \u00d7 0.9 \u00d7 0.95) \u00f7 1000 kW \u00d7 3,600",
          "expected": "307.8",
          "metric": "ride_through_s",
          "observed": "307.8",
          "status": "match",
          "unit": "s"
        },
        {
          "difference": "0",
          "equation": "300 s outage start + ride-through",
          "expected": "607.8",
          "metric": "depletion_elapsed_s",
          "observed": "607.8",
          "status": "match",
          "unit": "s"
        },
        {
          "difference": "0",
          "equation": "900 s recovery \u2212 depletion elapsed",
          "expected": "292.2",
          "metric": "unserved_duration_s",
          "observed": "292.2",
          "status": "match",
          "unit": "s"
        },
        {
          "difference": "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333",
          "equation": "1000 kW \u00d7 unserved seconds \u00f7 3,600",
          "expected": "81.16666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667",
          "metric": "unserved_it_kwh",
          "observed": "81.16666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667",
          "status": "match",
          "unit": "kWh"
        }
      ],
      "html_report_file": "report-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.html",
      "input_sha256": "a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0",
      "ledger": {
        "checks": {
          "maximum_interval_battery_balance_kwh": "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
          "maximum_interval_requested_partition_kwh": "0",
          "maximum_interval_source_balance_kwh": "0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007",
          "whole_run_battery_balance_kwh": "0",
          "whole_run_requested_partition_kwh": "0",
          "whole_run_source_balance_kwh": "0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000547"
        },
        "method": "Exact Fraction sums of exported interval energy terms; the run's energy_balance_residual_kwh fields are ignored.",
        "status": "pass",
        "tolerance_kwh": "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
      },
      "markdown_report_file": "report-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.md",
      "run_file": "run-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.json",
      "run_id": "7264f710596ef5aef30f",
      "scenario_file": "scenario-canonical-1mw-100kwh-a11b0d4078daef9a79e07f7969940203c23ccaa800c0a2c60cc5853b0acacfd0.json",
      "scenario_id": "course-ride-through"
    },
    {
      "case_id": "canonical-1mw-50kwh",
      "checks": [
        {
          "difference": "0",
          "equation": "1000 kW \u00d7 1800 s \u00f7 3,600",
          "expected": "500",
          "metric": "requested_it_kwh",
          "observed": "500",
          "status": "match",
          "unit": "kWh"
        },
        {
          "difference": "0",
          "equation": "(50 kWh \u00d7 0.9 \u00d7 0.95) \u00f7 1000 kW \u00d7 3,600",
          "expected": "153.9",
          "metric": "ride_through_s",
          "observed": "153.9",
          "status": "match",
          "unit": "s"
        },
        {
          "difference": "0",
          "equation": "300 s outage start + ride-through",
          "expected": "453.9",
          "metric": "depletion_elapsed_s",
          "observed": "453.9",
          "status": "match",
          "unit": "s"
        },
        {
          "difference": "0",
          "equation": "900 s recovery \u2212 depletion elapsed",
          "expected": "446.1",
          "metric": "unserved_duration_s",
          "observed": "446.1",
          "status": "match",
          "unit": "s"
        },
        {
          "difference": "0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333",
          "equation": "1000 kW \u00d7 unserved seconds \u00f7 3,600",
          "expected": "123.9166666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667",
          "metric": "unserved_it_kwh",
          "observed": "123.9166666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667",
          "status": "match",
          "unit": "kWh"
        }
      ],
      "html_report_file": "report-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.html",
      "input_sha256": "0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9",
      "ledger": {
        "checks": {
          "maximum_interval_battery_balance_kwh": "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
          "maximum_interval_requested_partition_kwh": "0",
          "maximum_interval_source_balance_kwh": "0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004",
          "whole_run_battery_balance_kwh": "0",
          "whole_run_requested_partition_kwh": "0",
          "whole_run_source_balance_kwh": "0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005086"
        },
        "method": "Exact Fraction sums of exported interval energy terms; the run's energy_balance_residual_kwh fields are ignored.",
        "status": "pass",
        "tolerance_kwh": "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
      },
      "markdown_report_file": "report-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.md",
      "run_file": "run-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.json",
      "run_id": "5303e03c55bbad457de0",
      "scenario_file": "scenario-canonical-1mw-50kwh-0db72b981fa59c8a566e5610fd8627f4c623baeb8bb2662d22c5cae246a2b8b9.json",
      "scenario_id": "course-ride-through"
    },
    {
      "case_id": "path-maintenance-700kw",
      "checks": [
        {
          "difference": "0",
          "equation": "1000 kW \u00d7 1800 s \u00f7 3,600",
          "expected": "500",
          "metric": "requested_it_kwh",
          "observed": "500",
          "status": "match",
          "unit": "kWh"
        },
        {
          "difference": "0",
          "equation": "700 gross kW \u00d7 0.95 distribution efficiency",
          "expected": "665",
          "metric": "served_kw_during_maintenance",
          "observed": "665",
          "status": "match",
          "unit": "kW"
        },
        {
          "difference": "0",
          "equation": "1000 kW requested \u2212 served kW",
          "expected": "335",
          "metric": "unserved_kw_during_maintenance",
          "observed": "335",
          "status": "match",
          "unit": "kW"
        },
        {
          "difference": "0",
          "equation": "900 s recovery \u2212 300 s outage start",
          "expected": "600",
          "metric": "unserved_duration_s",
          "observed": "600",
          "status": "match",
          "unit": "s"
        },
        {
          "difference": "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333",
          "equation": "unserved kW \u00d7 unserved seconds \u00f7 3,600",
          "expected": "55.83333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333",
          "metric": "unserved_it_kwh",
          "observed": "55.83333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333",
          "status": "match",
          "unit": "kWh"
        }
      ],
      "html_report_file": "report-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.html",
      "input_sha256": "6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd",
      "ledger": {
        "checks": {
          "maximum_interval_battery_balance_kwh": "0",
          "maximum_interval_requested_partition_kwh": "0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004",
          "maximum_interval_source_balance_kwh": "0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004",
          "whole_run_battery_balance_kwh": "0",
          "whole_run_requested_partition_kwh": "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024",
          "whole_run_source_balance_kwh": "0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000612"
        },
        "method": "Exact Fraction sums of exported interval energy terms; the run's energy_balance_residual_kwh fields are ignored.",
        "status": "pass",
        "tolerance_kwh": "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"
      },
      "markdown_report_file": "report-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.md",
      "run_file": "run-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.json",
      "run_id": "897b256f455b7f7b3c8d",
      "scenario_file": "scenario-path-maintenance-700kw-6b446789e2f755b9ac1ac81896c7f0d85827a9a03b6ceedfd8fbdc6cb3b775dd.json",
      "scenario_id": "demo-path_maintenance"
    }
  ],
  "engine_version": "2.0.1",
  "independent_review": {
    "reviewer": null,
    "status": "not_obtained"
  },
  "manifest_hash_scope": "Artifacts map covers every packet file except manifest.json itself. Record the builder-printed manifest digest separately when pinning a packet.",
  "packet_type": "datacenter-twin-lab-independent-reproduction",
  "public_context": {},
  "rounding": {
    "comparison_absolute_tolerance": "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
    "engine_decimal_context": "100 significant digits, ROUND_HALF_EVEN",
    "tolerance_unit_for_energy_ledger": "kWh"
  },
  "schema_version": 1
}
