{
  "schema_version": 1,
  "evidence_type": "synthetic/theoretical",
  "command": "python run.py",
  "passed": true,
  "checks": [
    {
      "id": "corner-count",
      "description": "Declared binary component sweep completed",
      "expected": 64,
      "observed": 64,
      "passed": true,
      "method": "Full factorial 2^6 sweep"
    },
    {
      "id": "corner-energy",
      "description": "All discharge cases conserve energy",
      "expected": "Residual < 1e-5 J",
      "observed": 1.0876999567699386e-07,
      "passed": true,
      "method": "Independent accumulated load/converter/ESR energy vs capacitor energy"
    },
    {
      "id": "reference-runtime",
      "description": "Original derated reference meets duration",
      "expected": "Runtime >= 125 s",
      "observed": 134.0922539022932,
      "passed": true,
      "method": "Use existing nonlinear converter/ESR model"
    },
    {
      "id": "adverse-runtime",
      "description": "High-load/UVLO corners expose insufficient margin",
      "expected": "At least one duration below 125 s",
      "observed": 7,
      "passed": true,
      "method": "Reject adverse design corners, do not alter the target"
    },
    {
      "id": "load-envelope",
      "description": "Maximum steady load is bracketed by known cases",
      "expected": "6 < permissible W < 7.2",
      "observed": 6.432906285450484,
      "passed": true,
      "method": "Solve modeled runtime = 125 s at declared combined corner"
    },
    {
      "id": "transfer-envelope",
      "description": "Transfer gap has a finite voltage boundary",
      "expected": "2 ms passes and 20 ms fails",
      "observed": 16.937890241897048,
      "passed": true,
      "method": "Solve nonlinear output capacitor voltage = 21.6 V"
    },
    {
      "id": "imbalance",
      "description": "Bank voltage alone allows cell overvoltage",
      "expected": "Max cell > 2.7 V",
      "observed": 3.4285714285714293,
      "passed": true,
      "method": "Independent series-charge formula Q/C for one 80 F and nine 120 F cells"
    },
    {
      "id": "clamp",
      "description": "Sufficient ideal balancing current clamps every cell",
      "expected": "Max cell <= 2.65 V",
      "observed": 2.65,
      "passed": true,
      "method": "Piecewise constant-current charging with ideal shunts"
    },
    {
      "id": "undersized-shunt",
      "description": "Inadequate shunt remains an adverse case",
      "expected": "Max cell > 2.7 V",
      "observed": 3.3608875000015153,
      "passed": true,
      "method": "Shunt limit 0.05 A against 0.5 A charge"
    },
    {
      "id": "charge-refinement",
      "description": "Charge end time converges",
      "expected": "Difference <= 0.02 s",
      "observed": 1.4495071809506044e-10,
      "passed": true,
      "method": "Compare 20 and 10 ms integration steps"
    },
    {
      "id": "passive-balance",
      "description": "Leakage sensitivity identifies resistor tradeoff",
      "expected": "27 kohm exceeds 2.7 V; 4.7 kohm within",
      "observed": [
        {
          "resistor_ohm": 27000.0,
          "max_cell_v": 3.8579999999999997,
          "min_cell_v": 2.2379999999999995,
          "total_dissipation_w": 0.0022208133333333326,
          "meets_2_7_v": false
        },
        {
          "resistor_ohm": 10000.0,
          "max_cell_v": 2.94,
          "min_cell_v": 2.34,
          "total_dissipation_w": 0.005792399999999999,
          "meets_2_7_v": false
        },
        {
          "resistor_ohm": 4700.0,
          "max_cell_v": 2.6538,
          "min_cell_v": 2.3718,
          "total_dissipation_w": 0.01227054714893617,
          "meets_2_7_v": true
        }
      ],
      "passed": true,
      "method": "Solve common series current with parallel leakage and equal resistors"
    },
    {
      "id": "shutdown",
      "description": "Reference model finishes declared 5 s checkpoint",
      "expected": true,
      "observed": true,
      "passed": true,
      "method": "Explicit 120 s record / 5 s checkpoint timing"
    },
    {
      "id": "interruption",
      "description": "Insufficient energy leaves unacknowledged records",
      "expected": "Checkpoint false and nonzero uncommitted",
      "observed": {
        "case": "Injected early loss",
        "runtime_s": 80.0,
        "records_generated": 80,
        "shutdown_started": false,
        "checkpoint_acknowledged": false,
        "uncommitted_records": 80,
        "target_s": 125.0
      },
      "passed": true,
      "method": "Synthetic early cutoff; does not infer physical storage behavior"
    }
  ],
  "source_sha256": {
    "completion_support.py": "7dd51b9e18187a82625b26144655e80aeac3b6a66a3e68e71a632d01d1844ec8",
    "inputs.json": "33331667458eb8a3bda7ad71d3f682c3ddc2830f01294463a53fa9d6f06f44f6",
    "model.py": "487298de0d2c69702379b00303fcf767eb4d332c459a3738b749a697e1277e66",
    "run.py": "6b1b6b36d258a633021331d2798cc3e89d94011959774b1f13d3988bb360adf9",
    "support.py": "4641df314624a5baedfb535ef20f7e0f5e0e47332de3d35e413241e5eabb01f8",
    "test_model.py": "7659866f89af5223e38d686c552031dbaf680938390accd107030f0d4af4138e",
    "test_virtual_commissioning.py": "a6e2995e4580839c6a86547ee517ee62dfb271df6d27dd70bfdd5b2de8cd9faf",
    "virtual_commissioning.py": "7b7967b3cd6857cd3923cccc8bf8ae52ea7c8ef1b70d95fa8bc8daba9e95b02e"
  },
  "report": "virtual-validation.html",
  "limitations": [
    "This is a completed virtual bench using stated assumptions. Converter loop response, cell temperature dependence beyond the declared corners, short-circuit protection and physical recorder durability are outside the reduced model.",
    "No manufacturer part numbers, PCB, wiring release or electrical safety approval are implied. Shunt behavior, leakage and efficiency are analyst inputs; the spreadsheet-like resistor tradeoff is not a product recommendation.",
    "An actual power-path device can fail short or leak. Ideal reverse isolation remains a topology assumption and is not established by the energy model."
  ]
}
