{"format":"lemonergy/dual-battery-campaign@1","version":"1.0.0","status":"executed","defaultCase":"reference","expectedCases":12,"expectedRuns":84,"completedCases":12,"recordedRuns":84,"engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFiles":{"assets3d/catalog.js":{"sha256":"e228fbbe075ceb26ea086e24533849e1a03f7c469f41ffcb693d1e51a28acad5","bytes":104553},"js/battery-blocks.js":{"sha256":"d01f3639be0b648d1b53b12e6d371ded4f1328f9841758b821c218ab47fed28a","bytes":49914},"js/calibration-dataset.js":{"sha256":"a675da228967545d1155c88562d5bdd796965548bb122569473c9b21fec3e482","bytes":38370},"js/cell-records.js":{"sha256":"cf7fcab95986b978dd84edbb1072232f1071eda1ffca7eb67805266e768b059c","bytes":6979},"js/cells.js":{"sha256":"f193ac5bedb2b6b798aa2aff9b2c9fa04171ba6c3701b5b873a40b38460988cf","bytes":37949},"js/charging-control.js":{"sha256":"cbbde44fcdc3f7e7db7d2c11819f51e5e00c9ec10832f5b36f433ca4128d8592","bytes":20721},"js/chart-block.js":{"sha256":"2c16a46611f6b25c78c9923db03b9f1e07cd6d8d51a3c389dc7942d122d54baa","bytes":8085},"js/computation-blocks.js":{"sha256":"faa56531d20b08307346a9c62b342c0cb70c3ebac39d4039027d7df645ab6ea3","bytes":36028},"js/computation-descriptions.js":{"sha256":"669c013e5a9baacd82e4f376ba04d5f1fbf38900fa98f56950b1a23705e96278","bytes":12016},"js/control-access-blocks.js":{"sha256":"569b9f1fe3d3aebe3ec89c22d00b67db79938e036a35d07de81de94cf7243460","bytes":7511},"js/control-flow-blocks.js":{"sha256":"97460ec538f87af41afbee2f8b2dbed98ebf7822a7f53e28fcca15d65caf3d75","bytes":13091},"js/cosim-graph.js":{"sha256":"2eabf53b0d96d098547db5ace5ce969485497051e0fb844af6b5ecc38a72a649","bytes":87106},"js/design-spec.js":{"sha256":"43718a4e0bbfe53431c3d6fb054a6bbdd701b2b53ec4f40e04166a9847e11d3c","bytes":51785},"js/dual-source-evidence.js":{"sha256":"2616cfa4819bb789b4c78d9211dff066d3673494157dfc3588d9129625b8b28d","bytes":9391},"js/dual-source-scenarios.js":{"sha256":"9334270fb15008adb9094a3416e9c2831e57f4caac3ed2be434a2f83c8fa671e","bytes":48454},"js/energy-supervisors.js":{"sha256":"5b34906ab1da576b4a1a986c97620ea4782a3cfcc95b7ac1ffeca6bf53bc4114","bytes":14434},"js/fingerprint.js":{"sha256":"711eea06fce5baef3060709ab0d2f80a40c97f430d92e7c5cbfe70fa4b28f3d8","bytes":2303},"js/import-guards.js":{"sha256":"d5cded38a985bf8660dc0f298d308a08bbaa3faba4fdf0d82759e1d361cdcf38","bytes":5798},"js/infrastructure-blocks.js":{"sha256":"ba45e657dd5e50978ba59fc0f063396dff0140f3f427584e6d6fe4447f273eb0","bytes":14207},"js/limits.js":{"sha256":"22279ec09074b004bd0e28951e8ee7f6cded709d8f053a31ac8054fc965f2a8a","bytes":6140},"js/ltv-landing.js":{"sha256":"4a9be3604ea38ff40468c28ddafbbe4f3519b237476205b5144b4c1f7d240cdf","bytes":5375},"js/markets.js":{"sha256":"8da8441391992d4677ab5ca89e897c4c9e7901e23d030d5149be1da527f9f798","bytes":18149},"js/mission-transfer.js":{"sha256":"122311f13a401e866cf0f250ef9e6598692d2bdddd75642d1f151fc69eb05e5c","bytes":5444},"js/mpc.js":{"sha256":"3d1810c2e21a8af1a174b5ab7400e67417b3de9c0bb3ca90f34ecab568468aff","bytes":12215},"js/native-blocks.js":{"sha256":"245e60b39598e3b4324d8d20dc7f2f4d89082d8bc074d44c73be2c5e819ac496","bytes":5378},"js/nonlinear-landing.js":{"sha256":"a8da857808de01d8a11cd526f055f512baa06e8498f25e705f3b820cbbb29e7f","bytes":4936},"js/numerics.js":{"sha256":"6bbedd5051289d111d4b0c8fa36819a95c42af17d6c4bca7a3fff9b92f050820","bytes":3347},"js/ontology-rules.js":{"sha256":"fa50190aeb7055623bbbde6e67692583c22210098ec9819cf76a08e67224a97e","bytes":13652},"js/ontology-schema.js":{"sha256":"e101222edd5494963fe6f739174096ebe8bbe73c25bb3fa11ef43532fd532c31","bytes":56813},"js/ontology.js":{"sha256":"56555f60bcd44600e0f7ca8ab6e45572907ce1bb4ebfe16d4a505dba5a3cca2a","bytes":72984},"js/pack-history.js":{"sha256":"e627fbd2027c30c55231704c5b3b5196478140bfbb832785f81588d33df5c8be","bytes":4237},"js/parameter-sets.js":{"sha256":"5445de555aaf96717d44ae0f62ccc8585691abd290c7cd143d9f313b1e6d7d58","bytes":42285},"js/physical-battery-coupling.js":{"sha256":"fb8952e6d596bbfc07071e079d708751ad278447dc7e26920b25dec537a1c8bc","bytes":9135},"js/physical-battery.js":{"sha256":"c4db26fe5ac7fe2218ced331e303d1febba995ff691b45850c44597a95e5b816","bytes":13135},"js/physical-control.js":{"sha256":"2f3f0ea7206f81a57400407f3e873c572309eae71a7905512edc9c9943911aa3","bytes":2210},"js/physical-electrical.js":{"sha256":"be4c397a40341d426064ddbdc3c515cd444eb2689ad96dea98b271d253fbab74","bytes":14716},"js/physical-examples.js":{"sha256":"ddc73ab6b8e718bbb2b5c20bdf3a8b88e742be4a084a6904a98a7ba5a44e7354","bytes":6621},"js/physical-foundation.js":{"sha256":"5bba3a2c8f7aed33bf7f1cb33a994c7bada274609fd15049c13bbc99c0a56d91","bytes":14285},"js/physical-mechanics.js":{"sha256":"5e4f0be0e1bccf82c8d601d5272e1b4583ee5259e5db4975b15e1aa477f6f97f","bytes":16873},"js/physical-network.js":{"sha256":"dc18cbb3034a3900ca6dd6a6a40b2a0e693e9360a0ef78ade8cc64f23d6b855a","bytes":45922},"js/physical-references.js":{"sha256":"29072aa171633ce2b05cf5a14b837c0a8361fd890cfebf35a9d1f05f984a3233","bytes":2698},"js/physical-source-paths.js":{"sha256":"8c63bbcc464ee10465104d6608ccdcfb44d0621f6a9113dd5c7a2b557259120b","bytes":5404},"js/profile-kernel.js":{"sha256":"1990b157edb3f896927e48f27a351f5a40552aab1e65fc8df1a33bc625e953ed","bytes":1161},"js/qp.js":{"sha256":"cadd0a7abf6ff167a7b1b8f3724509a5cfaf4e5f9a96c501a4c09a0bad232df1","bytes":6374},"js/replenishment-schedule.js":{"sha256":"d6650037efa2711c10ea7937cfaeaa58e4a4a548faa36bb1a697b5e30f3c007b","bytes":2546},"js/route-service-plan.js":{"sha256":"0f4263bcdca7e9cbc98493b6899f6dab6b5b90371b6c60735f4a1686c0855e50","bytes":6360},"js/route.js":{"sha256":"eef730a80929d7c180bdbf94f422813a423b61d6312f885e0562a9a0da28bb90","bytes":30379},"js/rust-engineering-core.js":{"sha256":"b884f9bc1ef19b474d9eae95283477a41936469aa718019ebecea84ee13691db","bytes":8071},"js/sampled-blocks.js":{"sha256":"a2764d570cffbf5d6789a56e1752bbaa750ed049ce7a6df44f6434812703fb84","bytes":10052},"js/signal-source-blocks.js":{"sha256":"ae427f7c55f0b7494c5e3445a7577c7709d70a47093a5d44197221742b0b59b9","bytes":8499},"js/sim1d.js":{"sha256":"0f96a0fbccdcc18476e7388dc36bb952381133042608e51c0df0a4e50a100bd5","bytes":24367},"js/sim2.js":{"sha256":"ffc28318d875a04e70172799c57809f41b3553bf7ef4058c169aaf880e82e2b8","bytes":75319},"js/studio-feature-catalog.js":{"sha256":"5f01129d90ee2a50d671a5d93ee386b49f2a952824403c71976467d3cbc96337","bytes":3349},"js/swap-station.js":{"sha256":"0efdb8788aadfe4cb6783910fc75e08b3779f1ab7ba78dcc7f284081c8771556","bytes":5544},"js/thermal-runaway-safety.js":{"sha256":"1cfda439b527a43d8eb30e55d74ced05b5cd8b85de821afe10334544d557418a","bytes":28532},"js/thermal-runaway-transport.js":{"sha256":"88c03a0a10bf5dcb6ed5a6effe85508b314499815b80396913ef562816bcfd62","bytes":25048},"js/vehicle.js":{"sha256":"1d7cab595146418abf1fd689cd13a4088208320f7fef18a4d768d593efc484d4","bytes":16829},"js/vessels.js":{"sha256":"da6b9e4982b4de4320b9a5962c72393a16cf911f9e13a2dc8dfbe823591560f7","bytes":8775},"js/wasm-core.js":{"sha256":"3c7c95564aa7512e0dc4d69c3c8f6323cf7d2b3c86608b1e7b7adbd814dec401","bytes":21588},"wasm/battery_design_core.wasm":{"sha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","bytes":692391}},"runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModule":{"file":"js/dual-battery-study.js","sha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","bytes":13969},"campaignSourceFiles":{"assets3d/catalog.js":{"sha256":"e228fbbe075ceb26ea086e24533849e1a03f7c469f41ffcb693d1e51a28acad5","bytes":104553},"js/battery-blocks.js":{"sha256":"d01f3639be0b648d1b53b12e6d371ded4f1328f9841758b821c218ab47fed28a","bytes":49914},"js/calibration-dataset.js":{"sha256":"a675da228967545d1155c88562d5bdd796965548bb122569473c9b21fec3e482","bytes":38370},"js/cell-records.js":{"sha256":"cf7fcab95986b978dd84edbb1072232f1071eda1ffca7eb67805266e768b059c","bytes":6979},"js/cells.js":{"sha256":"f193ac5bedb2b6b798aa2aff9b2c9fa04171ba6c3701b5b873a40b38460988cf","bytes":37949},"js/charging-control.js":{"sha256":"cbbde44fcdc3f7e7db7d2c11819f51e5e00c9ec10832f5b36f433ca4128d8592","bytes":20721},"js/chart-block.js":{"sha256":"2c16a46611f6b25c78c9923db03b9f1e07cd6d8d51a3c389dc7942d122d54baa","bytes":8085},"js/computation-blocks.js":{"sha256":"faa56531d20b08307346a9c62b342c0cb70c3ebac39d4039027d7df645ab6ea3","bytes":36028},"js/computation-descriptions.js":{"sha256":"669c013e5a9baacd82e4f376ba04d5f1fbf38900fa98f56950b1a23705e96278","bytes":12016},"js/control-access-blocks.js":{"sha256":"569b9f1fe3d3aebe3ec89c22d00b67db79938e036a35d07de81de94cf7243460","bytes":7511},"js/control-flow-blocks.js":{"sha256":"97460ec538f87af41afbee2f8b2dbed98ebf7822a7f53e28fcca15d65caf3d75","bytes":13091},"js/cosim-graph.js":{"sha256":"2eabf53b0d96d098547db5ace5ce969485497051e0fb844af6b5ecc38a72a649","bytes":87106},"js/design-spec.js":{"sha256":"43718a4e0bbfe53431c3d6fb054a6bbdd701b2b53ec4f40e04166a9847e11d3c","bytes":51785},"js/dual-battery-study.js":{"sha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","bytes":13969},"js/dual-source-evidence.js":{"sha256":"2616cfa4819bb789b4c78d9211dff066d3673494157dfc3588d9129625b8b28d","bytes":9391},"js/dual-source-scenarios.js":{"sha256":"9334270fb15008adb9094a3416e9c2831e57f4caac3ed2be434a2f83c8fa671e","bytes":48454},"js/energy-supervisors.js":{"sha256":"5b34906ab1da576b4a1a986c97620ea4782a3cfcc95b7ac1ffeca6bf53bc4114","bytes":14434},"js/experiments.js":{"sha256":"7b86a24d88b5160174bec6f8641e5837bcbfce158317df473708b72d9beacfed","bytes":62831},"js/fingerprint.js":{"sha256":"711eea06fce5baef3060709ab0d2f80a40c97f430d92e7c5cbfe70fa4b28f3d8","bytes":2303},"js/import-guards.js":{"sha256":"d5cded38a985bf8660dc0f298d308a08bbaa3faba4fdf0d82759e1d361cdcf38","bytes":5798},"js/infrastructure-blocks.js":{"sha256":"ba45e657dd5e50978ba59fc0f063396dff0140f3f427584e6d6fe4447f273eb0","bytes":14207},"js/limits.js":{"sha256":"22279ec09074b004bd0e28951e8ee7f6cded709d8f053a31ac8054fc965f2a8a","bytes":6140},"js/ltv-landing.js":{"sha256":"4a9be3604ea38ff40468c28ddafbbe4f3519b237476205b5144b4c1f7d240cdf","bytes":5375},"js/markets.js":{"sha256":"8da8441391992d4677ab5ca89e897c4c9e7901e23d030d5149be1da527f9f798","bytes":18149},"js/mission-transfer.js":{"sha256":"122311f13a401e866cf0f250ef9e6598692d2bdddd75642d1f151fc69eb05e5c","bytes":5444},"js/mpc.js":{"sha256":"3d1810c2e21a8af1a174b5ab7400e67417b3de9c0bb3ca90f34ecab568468aff","bytes":12215},"js/native-blocks.js":{"sha256":"245e60b39598e3b4324d8d20dc7f2f4d89082d8bc074d44c73be2c5e819ac496","bytes":5378},"js/nonlinear-landing.js":{"sha256":"a8da857808de01d8a11cd526f055f512baa06e8498f25e705f3b820cbbb29e7f","bytes":4936},"js/numerics.js":{"sha256":"6bbedd5051289d111d4b0c8fa36819a95c42af17d6c4bca7a3fff9b92f050820","bytes":3347},"js/ontology-rules.js":{"sha256":"fa50190aeb7055623bbbde6e67692583c22210098ec9819cf76a08e67224a97e","bytes":13652},"js/ontology-schema.js":{"sha256":"e101222edd5494963fe6f739174096ebe8bbe73c25bb3fa11ef43532fd532c31","bytes":56813},"js/ontology.js":{"sha256":"56555f60bcd44600e0f7ca8ab6e45572907ce1bb4ebfe16d4a505dba5a3cca2a","bytes":72984},"js/pack-history.js":{"sha256":"e627fbd2027c30c55231704c5b3b5196478140bfbb832785f81588d33df5c8be","bytes":4237},"js/parameter-sets.js":{"sha256":"5445de555aaf96717d44ae0f62ccc8585691abd290c7cd143d9f313b1e6d7d58","bytes":42285},"js/physical-battery-coupling.js":{"sha256":"fb8952e6d596bbfc07071e079d708751ad278447dc7e26920b25dec537a1c8bc","bytes":9135},"js/physical-battery.js":{"sha256":"c4db26fe5ac7fe2218ced331e303d1febba995ff691b45850c44597a95e5b816","bytes":13135},"js/physical-control.js":{"sha256":"2f3f0ea7206f81a57400407f3e873c572309eae71a7905512edc9c9943911aa3","bytes":2210},"js/physical-electrical.js":{"sha256":"be4c397a40341d426064ddbdc3c515cd444eb2689ad96dea98b271d253fbab74","bytes":14716},"js/physical-examples.js":{"sha256":"ddc73ab6b8e718bbb2b5c20bdf3a8b88e742be4a084a6904a98a7ba5a44e7354","bytes":6621},"js/physical-foundation.js":{"sha256":"5bba3a2c8f7aed33bf7f1cb33a994c7bada274609fd15049c13bbc99c0a56d91","bytes":14285},"js/physical-mechanics.js":{"sha256":"5e4f0be0e1bccf82c8d601d5272e1b4583ee5259e5db4975b15e1aa477f6f97f","bytes":16873},"js/physical-network.js":{"sha256":"dc18cbb3034a3900ca6dd6a6a40b2a0e693e9360a0ef78ade8cc64f23d6b855a","bytes":45922},"js/physical-references.js":{"sha256":"29072aa171633ce2b05cf5a14b837c0a8361fd890cfebf35a9d1f05f984a3233","bytes":2698},"js/physical-source-paths.js":{"sha256":"8c63bbcc464ee10465104d6608ccdcfb44d0621f6a9113dd5c7a2b557259120b","bytes":5404},"js/profile-kernel.js":{"sha256":"1990b157edb3f896927e48f27a351f5a40552aab1e65fc8df1a33bc625e953ed","bytes":1161},"js/qp.js":{"sha256":"cadd0a7abf6ff167a7b1b8f3724509a5cfaf4e5f9a96c501a4c09a0bad232df1","bytes":6374},"js/replenishment-schedule.js":{"sha256":"d6650037efa2711c10ea7937cfaeaa58e4a4a548faa36bb1a697b5e30f3c007b","bytes":2546},"js/route-service-plan.js":{"sha256":"0f4263bcdca7e9cbc98493b6899f6dab6b5b90371b6c60735f4a1686c0855e50","bytes":6360},"js/route.js":{"sha256":"eef730a80929d7c180bdbf94f422813a423b61d6312f885e0562a9a0da28bb90","bytes":30379},"js/rust-engineering-core.js":{"sha256":"b884f9bc1ef19b474d9eae95283477a41936469aa718019ebecea84ee13691db","bytes":8071},"js/sampled-blocks.js":{"sha256":"a2764d570cffbf5d6789a56e1752bbaa750ed049ce7a6df44f6434812703fb84","bytes":10052},"js/signal-source-blocks.js":{"sha256":"ae427f7c55f0b7494c5e3445a7577c7709d70a47093a5d44197221742b0b59b9","bytes":8499},"js/sim1d.js":{"sha256":"0f96a0fbccdcc18476e7388dc36bb952381133042608e51c0df0a4e50a100bd5","bytes":24367},"js/sim2.js":{"sha256":"ffc28318d875a04e70172799c57809f41b3553bf7ef4058c169aaf880e82e2b8","bytes":75319},"js/studio-feature-catalog.js":{"sha256":"5f01129d90ee2a50d671a5d93ee386b49f2a952824403c71976467d3cbc96337","bytes":3349},"js/swap-station.js":{"sha256":"0efdb8788aadfe4cb6783910fc75e08b3779f1ab7ba78dcc7f284081c8771556","bytes":5544},"js/thermal-runaway-safety.js":{"sha256":"1cfda439b527a43d8eb30e55d74ced05b5cd8b85de821afe10334544d557418a","bytes":28532},"js/thermal-runaway-transport.js":{"sha256":"88c03a0a10bf5dcb6ed5a6effe85508b314499815b80396913ef562816bcfd62","bytes":25048},"js/vehicle.js":{"sha256":"1d7cab595146418abf1fd689cd13a4088208320f7fef18a4d768d593efc484d4","bytes":16829},"js/vessels.js":{"sha256":"da6b9e4982b4de4320b9a5962c72393a16cf911f9e13a2dc8dfbe823591560f7","bytes":8775},"js/wasm-core.js":{"sha256":"3c7c95564aa7512e0dc4d69c3c8f6323cf7d2b3c86608b1e7b7adbd814dec401","bytes":21588},"wasm/battery_design_core.wasm":{"sha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","bytes":692391}},"sourceBoundary":"Runtime files are exact copies of the canonical Design source under campaign/runtime. RuntimeFiles identifies the mission closure; campaignSourceFiles also includes the governed study definition and its imports. No alternate numerical model is used.","variants":["baseline","policy-only","dual","equal-energy-fixed","smaller-main","cold-reserve","high-power-reserve"],"scope":"Twelve controlled authored conditions, each with the same requested service for all seven systems. Independent conditions restart from declared initial state; each contains two consecutive services with real pack custody and final replenishment. These are reduced-model experiments, not measured vehicle tests.","limitations":["Generic pack OCV, resistance, current limits and lumped thermal parameters; no manufacturer calibration or hardware qualification.","Cold soak changes initial and ambient temperatures and thermal permissions, but no measured capacity-temperature map, active heater or cold chemistry is modeled. The compared cold-reserve sensitivity inherits resistanceTemperatureCoefficient = 0, doubles reserve resistance and lowers its current ceiling.","Passive heat exchange only; active cooling, cell temperature spread, pump/fan power and refrigerant dynamics are absent.","Constant-speed, constant-grade authored routes; no measured traffic, wind or acceleration profile. Gradient/distance combinations are stress cases rather than isolated gradient effects.","Unabsorbed downhill regeneration is excluded from unmet traction energy. Negative requested/delivered power remains in the trace, but no friction-brake blending or brake-temperature model supplies the missing braking demand. Mission completion does not validate descent braking.","An incomplete or solver-failed run is not a low-energy winner. Compare energy and delay for completed equal-service results; partial distance and unrecovered assets stay visible.","Station grid energy includes inventory recovery after vehicle finish. Vehicle delay and tail recovery are distinct; final readiness is part of completion.","The long mission uses ideal source selection. Contactor motion and electrical transients are examined in the separate short-time physical circuits; the mission does not prove millisecond transfer safety.","Two-service experiments do not establish lifetime, fleet scheduling, ageing, degradation, reliability or cost. Fleet battery cost modeling remains a next step."],"cases":[{"id":"reference","title":"Reference service","category":"reference","changedInputs":{},"question":"Which architecture can deliver two 400 km services with 20 tonnes at 20 °C?","boundary":"","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":20000,"maximumGrossKg":44000,"routeKm":400,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":0,"ambientC":20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/reference.json","sha256":"ada0c9be298aae33b6d4f8a70a6119df71f99ac3b2fb6fd08c073f3d1772d7a3","bytes":692351,"sourceScenarioChecksum":"8a2296bf02aeb63c8a5eae91ea7179c600930a317b46d831e519602d0a604863","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"0cf7fa83b22f7aae2844f45e0d27a7d6112796b3f23ff3c9bec389303d379a7e","runChecksum":"cb23f66d7cfbfe753fa97d3b8472c8ef57a4b5e8cb4b681a60f888171f4096db","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":260.8695652173915,"unmetEnergyKWh":2.1895739783124184,"gridEnergyKWh":0,"packEnergyOutKWh":288.68759522479786,"packEnergyInKWh":2.8340587859819377e-10,"lossEnergyKWh":2.133845001194328,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.2999999999999968,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":13714.285714285728,"replenishmentHorizonS":13714.285714285728,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":260.8695652173915,"deliveredTonneKm":5217.39130434783,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.007131202863852183,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":13714.285714285728,"repeat":0,"segment":45,"unmetEnergyJ":7882466.321924706,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.2999999999999968,"minReserveSoc":null,"sampledPeakMainTemperatureC":21.30060203236104,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"de88365238118620634e2777fe6bf28282bb08bdad4692603738f66a003a9edd","runChecksum":"f59a1b4e1b7aa3731bb81dfa343acb549f7296b5ebc60be09a64bb43ad9e5151","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":347.8260869565221,"unmetEnergyKWh":0.013649300533437686,"gridEnergyKWh":0,"packEnergyOutKWh":385.7147707293034,"packEnergyInKWh":1.2657863107033401e-61,"lossEnergyKWh":3.0709013385757085,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05001414916282051,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":18186.335403726716,"replenishmentHorizonS":18186.335403726716,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":347.8260869565221,"deliveredTonneKm":6956.521739130441,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.009001366356545025,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":18186.335403726716,"repeat":0,"segment":60,"unmetEnergyJ":49137.48192037567,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.05001414916282051,"minReserveSoc":null,"sampledPeakMainTemperatureC":21.58916627978232,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"8b88cbe0e94e8667eeba8cfbb2b7c0c381788841acd99c436e2f2df01cdde785","runChecksum":"b8b6e8e078809906ec7359106078d8fe13eac65fe2daf4b07f667ae3c3abb560","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":0,"gridEnergyKWh":958.9115154721358,"packEnergyOutKWh":881.1590293476146,"packEnergyInKWh":910.9659396985289,"lossEnergyKWh":77.71055480505215,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9000000000000005,"reserveMarginSoc":0.8000000000000005,"delayS":3000,"swapCount":2,"durationS":44142.85714285705,"replenishmentHorizonS":49542.85714285705,"tailRecoveryS":5400,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":16000.000000000025,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.04193131946893202,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":2,"station-arrival":2,"main-pack-swap":2,"pack-recharged":4},"problems":[],"sourceTransitions":3,"regenerationLimited":false,"minMainSoc":0.050057591037502555,"minReserveSoc":0.18410160321317776,"sampledPeakMainTemperatureC":21.616605634913753,"sampledPeakReserveTemperatureC":37.210397243658804,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"b8edadc06412ea81372124a169dfd01b92732b413fc00435926f7f84012be599","runChecksum":"3576fd1163e36449d8830c2a5bc1455b5815ef0870138fda3318c636ff726ff0","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":0,"gridEnergyKWh":953.9372824224521,"packEnergyOutKWh":879.7377757244233,"packEnergyInKWh":906.2404183013294,"lossEnergyKWh":74.15818706513866,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.9424768575227126,"reserveSoc":null,"reserveMarginSoc":null,"delayS":15000,"swapCount":0,"durationS":56142.85714285705,"replenishmentHorizonS":56142.85714285705,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30900,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":16000.000000000025,"peakRequestedKW":76.97705537588715,"energyBalanceErrorKWh":0.041319632889636686,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.07333535767719113,"minReserveSoc":null,"sampledPeakMainTemperatureC":27.29002206300038,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"afd5e12e533c30b73c7801b387ee5da383454082bec07b3c396689f7734c80a1","runChecksum":"4aaeef9488786497c2357e29bb697d8c00143bf45b0f0d9a41b0ddf844c04b48","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":336.23188405797134,"unmetEnergyKWh":4.396401348993195,"gridEnergyKWh":0,"packEnergyOutKWh":369.1712951721283,"packEnergyInKWh":8.72314495605102e-12,"lossEnergyKWh":3.440885016125921,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05007134005146045,"reserveSoc":0.09999999999999239,"reserveMarginSoc":-7.618905506490137e-15,"delayS":0,"swapCount":0,"durationS":17590.062111801253,"replenishmentHorizonS":17590.062111801253,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31320,"productiveDistanceKm":336.23188405797134,"deliveredTonneKm":6724.637681159427,"peakRequestedKW":76.45474466936543,"energyBalanceErrorKWh":0.006334382928940985,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":17590.062111801253,"repeat":0,"segment":58,"unmetEnergyJ":15827044.856375502,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05007134005146045,"minReserveSoc":0.09999999999999239,"sampledPeakMainTemperatureC":21.59298546815495,"sampledPeakReserveTemperatureC":25.317354837390667,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"259ae8d3122fe3912d024c28181e1b6e34f2a4cf054487e432dc767e620f7144","runChecksum":"4aecb8fe97fdb7f0a1f4d89b3eb1fdc9213d6cb5c96ee333de8c03066c427f86","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":0,"gridEnergyKWh":962.2164116074991,"packEnergyOutKWh":881.1590293476146,"packEnergyInKWh":914.1055910271241,"lossEnergyKWh":81.01645453940378,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":4800,"swapCount":2,"durationS":45942.85714285705,"replenishmentHorizonS":50442.85714285705,"tailRecoveryS":4500,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":16000.000000000025,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.04092772053957813,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":2,"station-arrival":2,"main-pack-swap":2,"pack-recharged":4},"problems":[],"sourceTransitions":3,"regenerationLimited":false,"minMainSoc":0.050057591037502555,"minReserveSoc":0.17063944947757706,"sampledPeakMainTemperatureC":21.616605634913753,"sampledPeakReserveTemperatureC":40.92753219116372,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"94421f5105db49f53d5bb13b000233a4279dcf24233ba9bf17ed817957d563dd","runChecksum":"cea6bdc492da490ae8963d6fb61fd938f614ff9f9b8a638550b5c63c7b420de5","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":0,"gridEnergyKWh":958.9115154721358,"packEnergyOutKWh":881.1590293476146,"packEnergyInKWh":910.9659396985289,"lossEnergyKWh":77.71055480505215,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9000000000000005,"reserveMarginSoc":0.8000000000000005,"delayS":3000,"swapCount":2,"durationS":44142.85714285705,"replenishmentHorizonS":49542.85714285705,"tailRecoveryS":5400,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":16000.000000000025,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.04193131946893202,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":2,"station-arrival":2,"main-pack-swap":2,"pack-recharged":4},"problems":[],"sourceTransitions":3,"regenerationLimited":false,"minMainSoc":0.050057591037502555,"minReserveSoc":0.18410160321317776,"sampledPeakMainTemperatureC":21.616605634913753,"sampledPeakReserveTemperatureC":37.210397243658804,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"reference","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:30:37.964Z","finishedAt":"2026-10-30T14:32:44.678Z","wallTimeMs":126712.33889999999,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"light-payload","title":"Light payload · 10 tonnes","category":"load","changedInputs":{"payloadKg":10000},"question":"Does lower road load remove the need for the reserve, and change replenishment delay?","boundary":"","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":10000,"maximumGrossKg":44000,"routeKm":400,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":0,"ambientC":20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/light-payload.json","sha256":"6f8dc850a1dea799821021d1925fe640363118509c0ef4e46b0f5995cabe1769","bytes":736126,"sourceScenarioChecksum":"249f40ad9c101d0503e08870799b318b558fc87af49ef90d5b7aad11b8be7b13","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"eba2d54787c75621037bb3cf275b1c24efa2fdba1a6bc3332f2286d6f05c38f8","runChecksum":"2146ad20e356b2798078bc290a0f694510cb00d8e48b99a65f8524c019ea4910","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":313.04347826086985,"unmetEnergyKWh":2.1052765789910035,"gridEnergyKWh":0,"packEnergyOutKWh":289.03847697862,"packEnergyInKWh":1.4204443217653904e-10,"lossEnergyKWh":1.7841259981563482,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.2999999999999967,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":16397.515527950327,"replenishmentHorizonS":16397.515527950327,"tailRecoveryS":0,"payloadKg":10000,"payloadLimitKg":31400,"productiveDistanceKm":313.04347826086985,"deliveredTonneKm":3130.4347826086987,"peakRequestedKW":63.919287712843676,"energyBalanceErrorKWh":0.005968451939291425,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":16397.515527950327,"repeat":0,"segment":54,"unmetEnergyJ":7578995.684367609,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.2999999999999967,"minReserveSoc":null,"sampledPeakMainTemperatureC":20.963925562127145,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"bfde353e4623042577225630f2ff64028d06b5ce197d675117348072d3dd30e1","runChecksum":"ddbf7a9587786516a5b93da4b279092122fd01f134a23d14873dd51d471965a8","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":1.9710059271138727e-15,"gridEnergyKWh":790.7855798487358,"packEnergyOutKWh":730.5061452896415,"packEnergyInKWh":751.2463008562988,"lossEnergyKWh":60.245752785654616,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":null,"reserveMarginSoc":null,"delayS":600,"swapCount":2,"durationS":41742.85714285705,"replenishmentHorizonS":48042.85714285705,"tailRecoveryS":6300,"payloadKg":10000,"payloadLimitKg":31400,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":8000.000000000013,"peakRequestedKW":63.919287712843676,"energyBalanceErrorKWh":0.03368177344102826,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.10567737098454855,"minReserveSoc":null,"sampledPeakMainTemperatureC":21.116635597065795,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"0a154259dac82268df3ee5df3e6458ff0ad3df2832bdf000e54d2f87cc912d0a","runChecksum":"cfc8c0452c6565dc08a2ff5cf8ec681829532740d2e82630a9879ce772a146c2","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":2.0206149591359257e-15,"gridEnergyKWh":800.1522210019983,"packEnergyOutKWh":739.0336670287749,"packEnergyInKWh":760.1446099518984,"lossEnergyKWh":61.08408421294294,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":41742.85714285705,"replenishmentHorizonS":48042.85714285705,"tailRecoveryS":6300,"payloadKg":10000,"payloadLimitKg":30800,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":8000.000000000013,"peakRequestedKW":64.66544586501759,"energyBalanceErrorKWh":0.03446976027838058,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.09436422950828802,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":21.148847826527174,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"71b839def05184dbb048870e3b2ac0b6afc4fb300b41a8e3bea3bc45baf2e721","runChecksum":"0c563aeae507ec53855167cce053b5f800d3d79a1d5564e2e9d77da88c71f119","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":1.9822389150394295e-15,"gridEnergyKWh":797.7873042961646,"packEnergyOutKWh":737.6124134055823,"packEnergyInKWh":757.8979390813564,"lossEnergyKWh":60.14029404243357,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.9424768575227129,"reserveSoc":null,"reserveMarginSoc":null,"delayS":12600,"swapCount":0,"durationS":53742.85714285705,"replenishmentHorizonS":53742.85714285705,"tailRecoveryS":0,"payloadKg":10000,"payloadLimitKg":30900,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":8000.000000000013,"peakRequestedKW":64.54108617298861,"energyBalanceErrorKWh":0.03459684814823585,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.23089574091731035,"minReserveSoc":null,"sampledPeakMainTemperatureC":26.236820523294227,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"09888dbe16243725c49168f8bdfcab607a174f6c782cc6b9242c44b705612575","runChecksum":"fdfefa5352c23e3fc89680b11c289c2ec0eda2fa13dd87c6725152ae08600953","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":1.9976780376653252e-15,"gridEnergyKWh":795.6608139100127,"packEnergyOutKWh":731.6431481881931,"packEnergyInKWh":755.8777732145122,"lossEnergyKWh":63.98411604342019,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9000000000000005,"reserveMarginSoc":0.8000000000000005,"delayS":3000,"swapCount":2,"durationS":44142.85714285705,"replenishmentHorizonS":48342.85714285705,"tailRecoveryS":4200,"payloadKg":10000,"payloadLimitKg":31320,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":8000.000000000013,"peakRequestedKW":64.01877546646686,"energyBalanceErrorKWh":0.03354967839907441,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":2,"station-arrival":2,"main-pack-swap":2,"pack-recharged":4},"problems":[],"sourceTransitions":3,"regenerationLimited":false,"minMainSoc":0.05006115667699296,"minReserveSoc":0.15783405450376362,"sampledPeakMainTemperatureC":21.162239084223756,"sampledPeakReserveTemperatureC":37.16998388047085,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"f267ea965b056ab0c07d3c82494f58350820417ab3223cf98ce51d214341508b","runChecksum":"45a8fe738b6ea009c17bf44e299ac7a1990f2f6fd26b516de94641ef58b6d70b","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":2.0206149591359257e-15,"gridEnergyKWh":800.1522210019983,"packEnergyOutKWh":739.0336670287749,"packEnergyInKWh":760.1446099518984,"lossEnergyKWh":61.08408421294294,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":41742.85714285705,"replenishmentHorizonS":48042.85714285705,"tailRecoveryS":6300,"payloadKg":10000,"payloadLimitKg":30800,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":8000.000000000013,"peakRequestedKW":64.66544586501759,"energyBalanceErrorKWh":0.03446976027838058,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.09436422950828802,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":21.148847826527174,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"dbb961a02c5abd9be5fd985dde7e196e9718bcedc84aa67c8f2befcea53bd2f1","runChecksum":"4db68275e57f24501e3449cfb07f0a72d640ba113c88f427932276d6d462c7b5","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":2.0206149591359257e-15,"gridEnergyKWh":800.1522210019983,"packEnergyOutKWh":739.0336670287749,"packEnergyInKWh":760.1446099518984,"lossEnergyKWh":61.08408421294294,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":41742.85714285705,"replenishmentHorizonS":48042.85714285705,"tailRecoveryS":6300,"payloadKg":10000,"payloadLimitKg":30800,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":8000.000000000013,"peakRequestedKW":64.66544586501759,"energyBalanceErrorKWh":0.03446976027838058,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.09436422950828802,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":21.148847826527174,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"light-payload","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:30:37.962Z","finishedAt":"2026-10-30T14:32:18.200Z","wallTimeMs":100236.37869999999,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"heavy-payload","title":"Heavy payload · 30 tonnes","category":"load","changedInputs":{"payloadKg":30000},"question":"Which energy stores can cover the same distance near the declared gross-mass ceiling?","boundary":"","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":30000,"maximumGrossKg":44000,"routeKm":400,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":0,"ambientC":20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/heavy-payload.json","sha256":"25d32b44101f2b72e0a59e318848d004af993c060cd189c1661cb16f3d3a6b97","bytes":574554,"sourceScenarioChecksum":"a155ae55fd11ce275394918d7bf181341ff5166021ccf2b16360e6776e4a71ed","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"5aad6d571ddb41b0e512e8ff11560319e3bdff5fcf6be6d365353ab532a3d73e","runChecksum":"87a4277df1d4040e1de2ccb7863ee77d55ba3aebec21f1dd766e052e247a3473","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":226.08695652173927,"unmetEnergyKWh":5.795584096518331,"gridEnergyKWh":0,"packEnergyOutKWh":288.33684196970853,"packEnergyInKWh":3.459474854837127e-10,"lossEnergyKWh":2.484417499297605,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.29999999999999616,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":11925.465838509328,"replenishmentHorizonS":11925.465838509328,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":31400,"productiveDistanceKm":226.08695652173927,"deliveredTonneKm":6782.608695652178,"peakRequestedKW":88.79122611864076,"energyBalanceErrorKWh":0.00731195991333988,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":11925.465838509328,"repeat":0,"segment":39,"unmetEnergyJ":20864102.74746599,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.29999999999999616,"minReserveSoc":null,"sampledPeakMainTemperatureC":21.674592515176528,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"23c74bee0005bd28591076fefe53020dd5da01d82c3b217f50ae1fe543741155","runChecksum":"0355f777be5c5638e31c15b7eae452fbe57e099710e28e96b71178065e302c79","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":301.4492753623191,"unmetEnergyKWh":4.510448610492376,"gridEnergyKWh":0,"packEnergyOutKWh":385.21501592683177,"packEnergyInKWh":1.461744743892327e-11,"lossEnergyKWh":3.5758367285922166,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.04999999999999594,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":15801.242236024862,"replenishmentHorizonS":15801.242236024862,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":31400,"productiveDistanceKm":301.4492753623191,"deliveredTonneKm":9043.478260869573,"peakRequestedKW":88.79122611864076,"energyBalanceErrorKWh":0.009147344592677221,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":15801.242236024862,"repeat":0,"segment":52,"unmetEnergyJ":16237614.99777255,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.04999999999999594,"minReserveSoc":null,"sampledPeakMainTemperatureC":22.050262003407227,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"8c3a3622c98fecf2d9adeb52d666c2dc500561192c85588b29f12cecc2047fff","runChecksum":"584aa56c8f538335aa224d63a1ae8f7614637f29011c5bcc6bc9e74f7fa476d9","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":347.8260869565221,"unmetEnergyKWh":6.715453981533553,"gridEnergyKWh":0,"packEnergyOutKWh":445.6059075521461,"packEnergyInKWh":4.737964927696588e-11,"lossEnergyKWh":4.758256043446759,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05006725510045969,"reserveSoc":0.09999999999999376,"reserveMarginSoc":-6.2450045135165055e-15,"delayS":0,"swapCount":0,"durationS":18186.335403726716,"replenishmentHorizonS":18186.335403726716,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":30800,"productiveDistanceKm":347.8260869565221,"deliveredTonneKm":10434.782608695663,"peakRequestedKW":89.53738427081468,"energyBalanceErrorKWh":0.01051746234410339,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":18186.335403726716,"repeat":0,"segment":60,"unmetEnergyJ":24175634.33352079,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05006725510045969,"minReserveSoc":0.09999999999999376,"sampledPeakMainTemperatureC":22.09119675156876,"sampledPeakReserveTemperatureC":26.61372658481332,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"f13222ee77bbb0ca4b4e0ca4ae83c25d974a20d1ce771579a740ab8bd5c077e1","runChecksum":"758af642f6b189ff4fe7464337062a76b8c622035a7105291b82f80a0daeb98d","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":347.8260869565221,"unmetEnergyKWh":2.132953458578614,"gridEnergyKWh":0,"packEnergyOutKWh":449.5601727780994,"packEnergyInKWh":1.6412391854278172e-10,"lossEnergyKWh":4.211798853253533,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.04999999999999899,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":18186.335403726716,"replenishmentHorizonS":18186.335403726716,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":30900,"productiveDistanceKm":347.8260869565221,"deliveredTonneKm":10434.782608695663,"peakRequestedKW":89.41302457878571,"energyBalanceErrorKWh":0.01052836881187227,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":18186.335403726716,"repeat":0,"segment":60,"unmetEnergyJ":7678632.450883008,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.04999999999999899,"minReserveSoc":null,"sampledPeakMainTemperatureC":22.056419660641723,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"adf6a8a9f50db8eb04b93b547f14a1f3a787dae5692802fc467576d0f7544248","runChecksum":"addc5628750b6b8860fbe8be9d045f389c14e16bd5901eec14a63c0254b1f661","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":289.85507246376835,"unmetEnergyKWh":6.841036047783997,"gridEnergyKWh":0,"packEnergyOutKWh":368.59800390964523,"packEnergyInKWh":4.077323522456159e-11,"lossEnergyKWh":4.007439956537876,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05009022272270279,"reserveSoc":0.09999999999999946,"reserveMarginSoc":-5.412337245047638e-16,"delayS":0,"swapCount":0,"durationS":15204.968944099395,"replenishmentHorizonS":15204.968944099395,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":31320,"productiveDistanceKm":289.85507246376835,"deliveredTonneKm":8695.652173913051,"peakRequestedKW":88.89071387226396,"energyBalanceErrorKWh":0.007383741239971584,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":15204.968944099395,"repeat":0,"segment":50,"unmetEnergyJ":24627729.77202239,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05009022272270279,"minReserveSoc":0.09999999999999946,"sampledPeakMainTemperatureC":22.06560516244184,"sampledPeakReserveTemperatureC":26.576720504609,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"2f6e2deb0ef879da64b348c6d99261baa1e4a237101b61b98f891aed599680fd","runChecksum":"b7a2c48ddfbbffdddcfd9dda0e1825e1649f83e1d1800e4f3741f3ba404294d9","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":342.0289855072467,"unmetEnergyKWh":0.5002241714650172,"gridEnergyKWh":0,"packEnergyOutKWh":444.40603307481877,"packEnergyInKWh":2.013522542430514e-53,"lossEnergyKWh":5.958126112408966,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05006725510045969,"reserveSoc":0.1000000000116789,"reserveMarginSoc":1.167889396302968e-11,"delayS":0,"swapCount":0,"durationS":17888.198757763985,"replenishmentHorizonS":17888.198757763985,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":30800,"productiveDistanceKm":342.0289855072467,"deliveredTonneKm":10260.869565217401,"peakRequestedKW":89.53738427081468,"energyBalanceErrorKWh":0.010521869865059853,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":17888.198757763985,"repeat":0,"segment":59,"unmetEnergyJ":1800807.0172740596,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05006725510045969,"minReserveSoc":0.1000000000116789,"sampledPeakMainTemperatureC":22.09119675156876,"sampledPeakReserveTemperatureC":33.681777231406556,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"0ea9e8e5804f43a5a63e4fe53770900506db1d7f17302a8a7d0dae457ad63759","runChecksum":"38191881877127d058b5532c3f263ae6e1a967e64410bb236d57e215035dbe38","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":347.8260869565221,"unmetEnergyKWh":6.715453981533553,"gridEnergyKWh":0,"packEnergyOutKWh":445.6059075521461,"packEnergyInKWh":4.737964927622124e-11,"lossEnergyKWh":4.758256043446759,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05006725510045969,"reserveSoc":0.09999999999999376,"reserveMarginSoc":-6.2450045135165055e-15,"delayS":0,"swapCount":0,"durationS":18186.335403726716,"replenishmentHorizonS":18186.335403726716,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":30800,"productiveDistanceKm":347.8260869565221,"deliveredTonneKm":10434.782608695663,"peakRequestedKW":89.53738427081468,"energyBalanceErrorKWh":0.01051746234410339,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":18186.335403726716,"repeat":0,"segment":60,"unmetEnergyJ":24175634.33352079,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05006725510045969,"minReserveSoc":0.09999999999999376,"sampledPeakMainTemperatureC":22.09119675156876,"sampledPeakReserveTemperatureC":26.61372658481332,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"heavy-payload","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:32:18.475Z","finishedAt":"2026-10-30T14:32:57.851Z","wallTimeMs":39374.609200000006,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"cold","title":"Cold soak · −20 °C","category":"temperature","changedInputs":{"ambientC":-20},"question":"Can cold packs deliver the route and become ready for the next departure?","boundary":"All packs start at ambient. Charge and discharge thermal bounds are active; there is no battery heater or measured cold-capacity map. In this comparison the inherited resistance-temperature coefficient is zero, including the reserve sensitivity.","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":20000,"maximumGrossKg":44000,"routeKm":400,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":0,"ambientC":-20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/cold.json","sha256":"3520c4ea27ad0fb1257b1b1772f743354e8a12a28c6e437ee61b987400174b8c","bytes":601405,"sourceScenarioChecksum":"61aace48dddc1b744007ac5cb34d03ac74d02edc73a89b3446013f42def80bcf","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"5777b54dcc9a1479c7c29491b74ebfb77a38492830a97bdd623c10b16c1f9d25","runChecksum":"14d15604a1e01fca90085717af415781a69d9a86de1aa06c009337a08bde64bd","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":260.8695652173915,"unmetEnergyKWh":2.18957397831291,"gridEnergyKWh":0,"packEnergyOutKWh":288.68759522479843,"packEnergyInKWh":2.842198277488741e-10,"lossEnergyKWh":2.133845001194328,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.2999999999999973,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":13714.285714285728,"replenishmentHorizonS":13714.285714285728,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":260.8695652173915,"deliveredTonneKm":5217.39130434783,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.007131202863852183,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":13714.285714285728,"repeat":0,"segment":45,"unmetEnergyJ":7882466.3219264755,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.2999999999999973,"minReserveSoc":null,"sampledPeakMainTemperatureC":-18.699397967638248,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"c7c1525ec427430a597fdc034c0d7abb1818acb37d7753ca011487fd5cdfcba2","runChecksum":"798086c189a3d2a7e772b464d205764e6bc19c8513305e92cdac520a9f72507b","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":347.8260869565221,"unmetEnergyKWh":0.013649300533437686,"gridEnergyKWh":0,"packEnergyOutKWh":385.7147707293034,"packEnergyInKWh":1.2657863107033401e-61,"lossEnergyKWh":3.0709013385757085,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05001414916282051,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":18186.335403726716,"replenishmentHorizonS":18186.335403726716,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":347.8260869565221,"deliveredTonneKm":6956.521739130441,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.009001366356545025,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":18186.335403726716,"repeat":0,"segment":60,"unmetEnergyJ":49137.48192037567,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.05001414916282051,"minReserveSoc":null,"sampledPeakMainTemperatureC":-18.410833720217,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"c4e8ce2a4cbe5cbf10f6682d0480a063299dae2102fcebe99b0b9e857a8092a2","runChecksum":"2af10bd5b1d732e14945987076ae72072a76305532e0e3f1aea72911e559427f","status":"incomplete","summary":{"completed":false,"completedRepeats":1,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":400.00000000000045,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":440.57951467380656,"packEnergyInKWh":8.73518111196719e-22,"lossEnergyKWh":3.9749654579877975,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.18410519617438267,"reserveMarginSoc":0.08410519617438267,"delayS":600,"swapCount":1,"durationS":21171.42857142857,"replenishmentHorizonS":21171.42857142857,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":400.00000000000045,"deliveredTonneKm":8000.000000000009,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.010054202731980218,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"station-arrival":1,"main-pack-swap":1,"recharge-incomplete":2},"problems":[{"type":"recharge-incomplete","timeS":21171.42857142857,"stationId":"depot","packId":"main-on-vehicle","startS":20871.42857142857,"endS":21171.42857142857,"energyInJ":0,"chargerIndex":0,"allocationW":219450,"returnedToInventory":false},{"type":"recharge-incomplete","timeS":21171.42857142857,"stationId":"depot","packId":"reserve-fixed-on-vehicle","startS":20871.42857142857,"endS":21171.42857142857,"energyInJ":0,"chargerIndex":1,"allocationW":219450,"returnedToInventory":false}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.050057591037502555,"minReserveSoc":0.18410519617438267,"sampledPeakMainTemperatureC":-18.38339436508616,"sampledPeakReserveTemperatureC":-14.98942189863726,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"6581e1ba5cdb4b085542d73c183a5c17bd98c567ae02f4307b41512936693861","runChecksum":"277ad018907c1a6d6cb310e03b4121a7b6d99a90c8039addbf304beb96ff8642","status":"incomplete","summary":{"completed":false,"completedRepeats":1,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":400.00000000000045,"unmetEnergyKWh":0,"gridEnergyKWh":3.121597720123354e-54,"packEnergyOutKWh":439.86888786221186,"packEnergyInKWh":2.965518668369621e-54,"lossEnergyKWh":3.513491143874048,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.07333535767719113,"reserveSoc":null,"reserveMarginSoc":null,"delayS":300,"swapCount":0,"durationS":20871.42857142857,"replenishmentHorizonS":20871.42857142857,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30900,"productiveDistanceKm":400.00000000000045,"deliveredTonneKm":8000.000000000009,"peakRequestedKW":76.97705537588715,"energyBalanceErrorKWh":0.009960656608475579,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":1,"recharge-incomplete":1},"problems":[{"type":"recharge-incomplete","timeS":20871.42857142857,"stationId":"depot","packId":"main-on-vehicle","startS":20571.42857142857,"endS":20871.42857142857,"energyInJ":1.067586420282187e-47,"chargerIndex":0,"allocationW":219450,"returnedToInventory":false}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.07333535767719113,"minReserveSoc":null,"sampledPeakMainTemperatureC":-18.421486769876935,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"b087a802cfc333f908b76b2929b0193582234607a586a3cbbf559b3b80a388fe","runChecksum":"d0178e80e15f62df2486d04961512414f234b09ebff25b7e0917e50101458745","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":336.23188405797134,"unmetEnergyKWh":4.396401349015496,"gridEnergyKWh":0,"packEnergyOutKWh":369.1712951721283,"packEnergyInKWh":8.72314495605102e-12,"lossEnergyKWh":3.440885016125921,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05007134005146045,"reserveSoc":0.09999999999999239,"reserveMarginSoc":-7.618905506490137e-15,"delayS":0,"swapCount":0,"durationS":17590.062111801253,"replenishmentHorizonS":17590.062111801253,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31320,"productiveDistanceKm":336.23188405797134,"deliveredTonneKm":6724.637681159427,"peakRequestedKW":76.45474466936543,"energyBalanceErrorKWh":0.006334382928940985,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":17590.062111801253,"repeat":0,"segment":58,"unmetEnergyJ":15827044.856455784,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05007134005146045,"minReserveSoc":0.09999999999999239,"sampledPeakMainTemperatureC":-18.407014531845988,"sampledPeakReserveTemperatureC":-14.682645162609958,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"0e7a06a1491619d4a436304eb46838d17fde56a5e75ae51d4a692dd201a4060c","runChecksum":"22b20bb27b10cfc357e92971ca73a2446565220851059816ec79b9f38297aeea","status":"incomplete","summary":{"completed":false,"completedRepeats":1,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":400.00000000000045,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":440.57951467380656,"packEnergyInKWh":1.4991059753134378e-61,"lossEnergyKWh":4.916007962805095,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.1706423592203175,"reserveMarginSoc":0.0706423592203175,"delayS":600,"swapCount":1,"durationS":21171.42857142857,"replenishmentHorizonS":21171.42857142857,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":400.00000000000045,"deliveredTonneKm":8000.000000000009,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.010093930362330543,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"station-arrival":1,"main-pack-swap":1,"recharge-incomplete":2},"problems":[{"type":"recharge-incomplete","timeS":21171.42857142857,"stationId":"depot","packId":"main-on-vehicle","startS":20871.42857142857,"endS":21171.42857142857,"energyInJ":0,"chargerIndex":0,"allocationW":219450,"returnedToInventory":false},{"type":"recharge-incomplete","timeS":21171.42857142857,"stationId":"depot","packId":"reserve-fixed-on-vehicle","startS":20871.42857142857,"endS":21171.42857142857,"energyInJ":0,"chargerIndex":1,"allocationW":219450,"returnedToInventory":false}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.050057591037502555,"minReserveSoc":0.1706423592203175,"sampledPeakMainTemperatureC":-18.38339436508616,"sampledPeakReserveTemperatureC":-9.583510634386244,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"63176720459ed56d855ecace3da488771f9bcfcc3c060ceda0115b6d2420407b","runChecksum":"708d191122673e0c4ec1536e05e58047cd79bff51830b65563682a5118e6dd3e","status":"incomplete","summary":{"completed":false,"completedRepeats":1,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":400.00000000000045,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":440.57951467380656,"packEnergyInKWh":3.010602169447864e-47,"lossEnergyKWh":3.9749654579877975,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.18410519617438267,"reserveMarginSoc":0.08410519617438267,"delayS":600,"swapCount":1,"durationS":21171.42857142857,"replenishmentHorizonS":21171.42857142857,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":400.00000000000045,"deliveredTonneKm":8000.000000000009,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.010054202731980218,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"station-arrival":1,"main-pack-swap":1,"recharge-incomplete":2},"problems":[{"type":"recharge-incomplete","timeS":21171.42857142857,"stationId":"depot","packId":"main-on-vehicle","startS":20871.42857142857,"endS":21171.42857142857,"energyInJ":0,"chargerIndex":0,"allocationW":219450,"returnedToInventory":false},{"type":"recharge-incomplete","timeS":21171.42857142857,"stationId":"depot","packId":"reserve-fixed-on-vehicle","startS":20871.42857142857,"endS":21171.42857142857,"energyInJ":0,"chargerIndex":1,"allocationW":219450,"returnedToInventory":false}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.050057591037502555,"minReserveSoc":0.18410519617438267,"sampledPeakMainTemperatureC":-18.38339436508616,"sampledPeakReserveTemperatureC":-14.98942189863726,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"cold","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:32:45.092Z","finishedAt":"2026-10-30T14:33:24.593Z","wallTimeMs":39497.1606,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"hot","title":"Hot soak · 40 °C","category":"temperature","changedInputs":{"ambientC":40},"question":"Where do self-heating and charge-temperature derating restrict route or station readiness?","boundary":"Lumped passive cooling and authored thermal limits are exercised. No active cooling controller, cell temperature spread or measured thermal calibration is included.","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":20000,"maximumGrossKg":44000,"routeKm":400,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":0,"ambientC":40,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/hot.json","sha256":"33937a4b707d1b803c9b7e1e065e6b65daec85c87cd2e6bac3f2e682ff64149d","bytes":668230,"sourceScenarioChecksum":"5ec4abea451f178fce8e61b34194882b8060d1f8fa0869cf89b95acd08813e34","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"8aff19461ad84b6f672821627ffda7fac930d81e00a9d6c369bd1a3b91c60cfa","runChecksum":"8c0d971673e6c6b32d26eaf8fcd61b1f18ef326e8dfecb37bda45fc3a4d239dc","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":260.8695652173915,"unmetEnergyKWh":2.1895739783111283,"gridEnergyKWh":0,"packEnergyOutKWh":288.68759522479564,"packEnergyInKWh":2.812190314462433e-10,"lossEnergyKWh":2.133845001194328,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.2999999999999968,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":13714.285714285728,"replenishmentHorizonS":13714.285714285728,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":260.8695652173915,"deliveredTonneKm":5217.39130434783,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.007131202863885296,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":13714.285714285728,"repeat":0,"segment":45,"unmetEnergyJ":7882466.321920062,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.2999999999999968,"minReserveSoc":null,"sampledPeakMainTemperatureC":41.3006020323603,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"37c6705a3af0edc0e7280f0505c681c76e861bd04b00be313488f90096f2677f","runChecksum":"a75607e35ed940dc91ac2ceb34cfa9484cbab16d6f2de454bff7474489be5dd8","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":347.8260869565221,"unmetEnergyKWh":0.013649300533437686,"gridEnergyKWh":0,"packEnergyOutKWh":385.7147707293034,"packEnergyInKWh":1.2657863107033401e-61,"lossEnergyKWh":3.0709013385757085,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05001414916282051,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":18186.335403726716,"replenishmentHorizonS":18186.335403726716,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":347.8260869565221,"deliveredTonneKm":6956.521739130441,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.009001366356545025,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":18186.335403726716,"repeat":0,"segment":60,"unmetEnergyJ":49137.48192037567,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.05001414916282051,"minReserveSoc":null,"sampledPeakMainTemperatureC":41.58916627978044,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"87b143acf8735d84820f09aafa0c0ba887c2c416e67a33596373fc7a87539691","runChecksum":"992a9c79709e3e6ac49cda92e0e56846b9d333371f5ebb198e7e6ff770049011","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":0,"gridEnergyKWh":946.4267573115336,"packEnergyOutKWh":881.1590293476146,"packEnergyInKWh":899.1054194459568,"lossEnergyKWh":65.23587873639534,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":11100,"swapCount":2,"durationS":52242.85714285705,"replenishmentHorizonS":59742.85714285705,"tailRecoveryS":7500,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":16000.000000000025,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.031849227522644734,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":2,"station-arrival":2,"main-pack-swap":2,"pack-recharged":4},"problems":[],"sourceTransitions":3,"regenerationLimited":false,"minMainSoc":0.050057591037502555,"minReserveSoc":0.18410160315495264,"sampledPeakMainTemperatureC":41.61660563491358,"sampledPeakReserveTemperatureC":45.07374783473642,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"d0aedf057f34074416fd845604ca4b37ae39d2f2c5767e9daae2c520344f3316","runChecksum":"c91fbd3eac171a27e7afafcff7b23e64ea482c5ea8377f58e9e08b06204335cd","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":0,"gridEnergyKWh":943.8229117794332,"packEnergyOutKWh":879.7377757244233,"packEnergyInKWh":896.6317661904616,"lossEnergyKWh":64.05282132157245,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.9424768575218341,"reserveSoc":null,"reserveMarginSoc":null,"delayS":29999.999999999996,"swapCount":0,"durationS":71142.85714285704,"replenishmentHorizonS":71142.85714285704,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30900,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":16000.000000000025,"peakRequestedKW":76.97705537588715,"energyBalanceErrorKWh":0.03231473393961373,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.07333535767719113,"minReserveSoc":null,"sampledPeakMainTemperatureC":42.408716444395,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"ebc279ab272ecceecff32c19d92da2a8b17777e7832176619c7fc080ad3668f5","runChecksum":"d0f411e89498c37184ecb397e935c64b064d6a6f76fe30fa67e5014c012736a1","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":336.23188405797134,"unmetEnergyKWh":4.396401349002987,"gridEnergyKWh":0,"packEnergyOutKWh":369.17129517217734,"packEnergyInKWh":5.778719340938575e-11,"lossEnergyKWh":3.440885016125921,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05007134005146045,"reserveSoc":0.09999999999999239,"reserveMarginSoc":-7.618905506490137e-15,"delayS":0,"swapCount":0,"durationS":17590.062111801253,"replenishmentHorizonS":17590.062111801253,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31320,"productiveDistanceKm":336.23188405797134,"deliveredTonneKm":6724.637681159427,"peakRequestedKW":76.45474466936543,"energyBalanceErrorKWh":0.006334382928940985,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":17590.062111801253,"repeat":0,"segment":58,"unmetEnergyJ":15827044.856410755,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05007134005146045,"minReserveSoc":0.09999999999999239,"sampledPeakMainTemperatureC":41.592985468153245,"sampledPeakReserveTemperatureC":45.31735483739283,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"e5e35427bc5fa79eac04d18c6180e367a146701cecc79cea1755348760f0407c","runChecksum":"388193b405a892b1119ebb4720e0db01b22dd216b67693c170eebac5a648a59b","status":"incomplete","summary":{"completed":false,"completedRepeats":1,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":400.00000000000045,"unmetEnergyKWh":0,"gridEnergyKWh":414.01052783861564,"packEnergyOutKWh":440.57951467380656,"packEnergyInKWh":393.31000144668485,"lossEnergyKWh":30.14293725857265,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.1706423592203175,"reserveMarginSoc":0.0706423592203175,"delayS":600,"swapCount":1,"durationS":21171.42857142857,"replenishmentHorizonS":33771.428571428565,"tailRecoveryS":12599.999999999996,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":400.00000000000045,"deliveredTonneKm":8000.000000000009,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.01537323533207178,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"station-arrival":1,"main-pack-swap":1,"recharge-incomplete":1,"pack-recharged":1},"problems":[{"type":"recharge-incomplete","timeS":21171.42857142857,"stationId":"depot","packId":"reserve-fixed-on-vehicle","startS":20871.42857142857,"endS":21171.42857142857,"energyInJ":0,"chargerIndex":1,"allocationW":219450,"returnedToInventory":false}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.050057591037502555,"minReserveSoc":0.1706423592203175,"sampledPeakMainTemperatureC":41.61660563491358,"sampledPeakReserveTemperatureC":50.41648936561512,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"6e4f03d18b1c1be00ff83a982eb7de9904099888d05acc43983a0ac50af540a3","runChecksum":"60418d5715d23c641e5df6574b630368f1885231c7d08a32c91947d0ae1a1ec1","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":800.0000000000011,"completedDistanceKm":800.0000000000013,"unmetEnergyKWh":0,"gridEnergyKWh":946.4267573115336,"packEnergyOutKWh":881.1590293476146,"packEnergyInKWh":899.1054194459568,"lossEnergyKWh":65.23587873639534,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":11100,"swapCount":2,"durationS":52242.85714285705,"replenishmentHorizonS":59742.85714285705,"tailRecoveryS":7500,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":800.0000000000013,"deliveredTonneKm":16000.000000000025,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.031849227522644734,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":2,"station-arrival":2,"main-pack-swap":2,"pack-recharged":4},"problems":[],"sourceTransitions":3,"regenerationLimited":false,"minMainSoc":0.050057591037502555,"minReserveSoc":0.18410160315495264,"sampledPeakMainTemperatureC":41.61660563491358,"sampledPeakReserveTemperatureC":45.07374783473642,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"hot","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:32:58.201Z","finishedAt":"2026-10-30T14:35:32.287Z","wallTimeMs":154082.183,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"short-route","title":"Short route · 180 km","category":"route","changedInputs":{"routeKm":180},"question":"When all systems can cover the route, how much do energy and replenishment time differ?","boundary":"","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":20000,"maximumGrossKg":44000,"routeKm":180,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":0,"ambientC":20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/short-route.json","sha256":"be8cfe3009dd7f92b86cc29bad15d860bd19ba7a7f797d7e68b0f1637bfe44af","bytes":576150,"sourceScenarioChecksum":"00c21b78e1cde2924ed2db0961f9e060e80857263dbb3670b710eb43c103874b","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"b12c67d78116b0e2819a3fc20b40891f4ca854f5691ca2a389552db7f45f495a","runChecksum":"883f8a226c8faaa89d69429ff060aa8f22ee7a2572f8c7e63b0a1b8e2c2f4985","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":359.99999999999983,"completedDistanceKm":360.0000000000002,"unmetEnergyKWh":0,"gridEnergyKWh":424.27610450843326,"packEnergyOutKWh":392.6841784238175,"packEnergyInKWh":403.0622992830116,"lossEnergyKWh":31.572453549504054,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":null,"reserveMarginSoc":null,"delayS":600,"swapCount":2,"durationS":19114.285714285703,"replenishmentHorizonS":22714.285714285703,"tailRecoveryS":3600,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":360.0000000000002,"deliveredTonneKm":7200.000000000005,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.01947253511145711,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.5212026638264418,"minReserveSoc":null,"sampledPeakMainTemperatureC":21.033391492955502,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"adb5b55304db7778e482ee31f1155c3098395455c47ba813901804341969639b","runChecksum":"2bb0a59cdc33f50cd248bd6bf3c2a9d6c68784e911aa326771cccec3ef7d8ebe","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":359.99999999999983,"completedDistanceKm":360.0000000000002,"unmetEnergyKWh":0,"gridEnergyKWh":424.27610450843326,"packEnergyOutKWh":392.6841784238175,"packEnergyInKWh":403.0622992830116,"lossEnergyKWh":31.572453549504054,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":null,"reserveMarginSoc":null,"delayS":600,"swapCount":2,"durationS":19114.285714285703,"replenishmentHorizonS":22714.285714285703,"tailRecoveryS":3600,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":360.0000000000002,"deliveredTonneKm":7200.000000000005,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.01947253511145711,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.5212026638264418,"minReserveSoc":null,"sampledPeakMainTemperatureC":21.033391492955502,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"c8b7c6b9a74e918b4fe44fee4c0ea84e820dd7d5f97dc83a4c3171d26e83d8a8","runChecksum":"a5916041d12ad1c1d44c8d9e0e4e7ff9a709874f84dd9af199bec49b413c5149","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":359.99999999999983,"completedDistanceKm":360.0000000000002,"unmetEnergyKWh":0,"gridEnergyKWh":428.4651062517596,"packEnergyOutKWh":396.5215632064265,"packEnergyInKWh":407.0418509391716,"lossEnergyKWh":31.92373923091382,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":19114.285714285703,"replenishmentHorizonS":22714.285714285703,"tailRecoveryS":3600,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":360.0000000000002,"deliveredTonneKm":7200.000000000005,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.019803814419209958,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.5167188939927057,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":21.055458244153783,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"ea2a71da9420790a1e788690d31dec23f99ed8eb063545cb7177303018ec02ac","runChecksum":"0b63416ae97212ce42ba322a1beda486971dd904ab43934087e1fc73324a3967","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":359.99999999999983,"completedDistanceKm":360.0000000000002,"unmetEnergyKWh":0,"gridEnergyKWh":427.60799268885216,"packEnergyOutKWh":395.88199907599136,"packEnergyInKWh":406.2275930544095,"lossEnergyKWh":31.707317147480556,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.9424768575227126,"reserveSoc":null,"reserveMarginSoc":null,"delayS":7200,"swapCount":0,"durationS":25714.285714285703,"replenishmentHorizonS":25714.285714285703,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30900,"productiveDistanceKm":360.0000000000002,"deliveredTonneKm":7200.000000000005,"peakRequestedKW":76.97705537588715,"energyBalanceErrorKWh":0.01867646537941156,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.5780019218480734,"minReserveSoc":null,"sampledPeakMainTemperatureC":23.925082153704977,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"f1ea10598041e182ebba10c8003647ceb8fc5a12783ab1ac7cf5af2552412495","runChecksum":"56e1d1bb8e03029193fed364d9f93eb840e9de882ef87c42283c6e6b18b1d4ce","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":359.99999999999983,"completedDistanceKm":360.0000000000002,"unmetEnergyKWh":0,"gridEnergyKWh":425.18219671590066,"packEnergyOutKWh":393.1958297281652,"packEnergyInKWh":403.9230868801056,"lossEnergyKWh":31.97210620950091,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":19114.285714285703,"replenishmentHorizonS":22714.285714285703,"tailRecoveryS":3600,"payloadKg":20000,"payloadLimitKg":31320,"productiveDistanceKm":360.0000000000002,"deliveredTonneKm":7200.000000000005,"peakRequestedKW":76.45474466936543,"energyBalanceErrorKWh":0.014260778234226423,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.40467612960188665,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":21.19067827361738,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"d02aa5ce26e9ce2e15e4779fa9f2b3efd25048f2c246a5fdad2faa3ab21a3e13","runChecksum":"2226af80be4d732c8f313e937339d264a1c789c1b143dcd092db2dd0fb73a033","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":359.99999999999983,"completedDistanceKm":360.0000000000002,"unmetEnergyKWh":0,"gridEnergyKWh":428.4651062517596,"packEnergyOutKWh":396.5215632064265,"packEnergyInKWh":407.0418509391716,"lossEnergyKWh":31.92373923091382,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":19114.285714285703,"replenishmentHorizonS":22714.285714285703,"tailRecoveryS":3600,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":360.0000000000002,"deliveredTonneKm":7200.000000000005,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.019803814419209958,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.5167188939927057,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":21.055458244153783,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"4477c483fcf22cdc1b7ed64b369fef885d2d576112c247c58c686f1935214931","runChecksum":"7677b1b3bffbb268135685a4ced65b94a8757dc45fb93b54cb168072afd4246c","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":359.99999999999983,"completedDistanceKm":360.0000000000002,"unmetEnergyKWh":0,"gridEnergyKWh":428.4651062517596,"packEnergyOutKWh":396.5215632064265,"packEnergyInKWh":407.0418509391716,"lossEnergyKWh":31.92373923091382,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":19114.285714285703,"replenishmentHorizonS":22714.285714285703,"tailRecoveryS":3600,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":360.0000000000002,"deliveredTonneKm":7200.000000000005,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.019803814419209958,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.5167188939927057,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":21.055458244153783,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"short-route","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:33:24.998Z","finishedAt":"2026-10-30T14:34:19.026Z","wallTimeMs":54026.960300000006,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"long-route","title":"Long route · 500 km","category":"route","changedInputs":{"routeKm":500},"question":"Where does additional reserve energy cease to cover the requested service?","boundary":"","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":20000,"maximumGrossKg":44000,"routeKm":500,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":0,"ambientC":20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/long-route.json","sha256":"800f3a5a50a87bd2e5e20d2d9280c5fe6fb2957720faf6080c692d1966f0ad1b","bytes":608909,"sourceScenarioChecksum":"dd9784f202e6567e90297a48055f702355cc7d6acef309427a2d000bc8bd2e18","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"b70626b538b3caccfbca8fe446c7f667fdd4b2b6a931643025dd242c8e60808f","runChecksum":"ef7eb03a9f4d1afca55bcf4255ee49d89bd4bfa5989e3a37e810a4baa8048d52","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":999.9999999999999,"completedDistanceKm":261.6279069767445,"unmetEnergyKWh":3.035160459231126,"gridEnergyKWh":0,"packEnergyOutKWh":288.6875819100213,"packEnergyInKWh":1.3904668525265386e-10,"lossEnergyKWh":2.1338450857615108,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.29999999999999627,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":13754.152823920258,"replenishmentHorizonS":13754.152823920258,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":261.6279069767445,"deliveredTonneKm":5232.55813953489,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.00714443292905887,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":13754.152823920258,"repeat":0,"segment":45,"unmetEnergyJ":10926577.653232053,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.29999999999999627,"minReserveSoc":null,"sampledPeakMainTemperatureC":21.30295148259154,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"3a6d5d05acec2ad956ac0359f74c038c4a79eb15afaca2278b72198037b991d0","runChecksum":"9eebb59ee140bd78055295ee391e1db929b153543954bbd08e0c0120f64a5d9e","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":999.9999999999999,"completedDistanceKm":348.8372093023257,"unmetEnergyKWh":1.129648728819339,"gridEnergyKWh":0,"packEnergyOutKWh":385.72007484774826,"packEnergyInKWh":1.331695101680696e-10,"lossEnergyKWh":3.0709082775496266,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.050000000000000114,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":18239.202657807302,"replenishmentHorizonS":18239.202657807302,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":348.8372093023257,"deliveredTonneKm":6976.744186046513,"peakRequestedKW":76.35525691574223,"energyBalanceErrorKWh":0.009016874835093816,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":18239.202657807302,"repeat":0,"segment":60,"unmetEnergyJ":4066735.4237496206,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.050000000000000114,"minReserveSoc":null,"sampledPeakMainTemperatureC":21.576306572353076,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"050e0974ffd7362c56ac509821c6e5e3f6998fa6cc401660369ba364e17ab06a","runChecksum":"37638179d917ce9a95c8f8e05612d9a9a2a45c2da21f1543e051e260c33662c7","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":999.9999999999999,"completedDistanceKm":401.1627906976744,"unmetEnergyKWh":1.986618626933943,"gridEnergyKWh":0,"packEnergyOutKWh":446.2774224656954,"packEnergyInKWh":9.991493742097979e-11,"lossEnergyKWh":4.090567912558159,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.0500579175789817,"reserveSoc":0.09999999999999787,"reserveMarginSoc":-2.1371793224034263e-15,"delayS":0,"swapCount":0,"durationS":20930.232558139538,"replenishmentHorizonS":20930.232558139538,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":401.1627906976744,"deliveredTonneKm":8023.255813953488,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.010205928525196181,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":20930.232558139538,"repeat":0,"segment":69,"unmetEnergyJ":7151827.056962195,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.0500579175789817,"minReserveSoc":0.09999999999999787,"sampledPeakMainTemperatureC":21.6166051981769,"sampledPeakReserveTemperatureC":25.45945557067165,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"154dd470d6981a591e93105ec8f9ac3be50b98f0634f577e9c6e0079bd662d53","runChecksum":"57ad7bdff5dbe226cc176e1727d41a487c1a6c569b5f393a47d36f6655b7ce67","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":999.9999999999999,"completedDistanceKm":406.97674418604646,"unmetEnergyKWh":3.7832465691635404,"gridEnergyKWh":0,"packEnergyOutKWh":450.15121619574273,"packEnergyInKWh":1.2440959940675159e-10,"lossEnergyKWh":3.6211520513145863,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.049999999999996596,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":21229.235880398675,"replenishmentHorizonS":21229.235880398675,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30900,"productiveDistanceKm":406.97674418604646,"deliveredTonneKm":8139.534883720929,"peakRequestedKW":76.97705537588715,"energyBalanceErrorKWh":0.010131753068301413,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":21229.235880398675,"repeat":0,"segment":70,"unmetEnergyJ":13619687.648988746,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.049999999999996596,"minReserveSoc":null,"sampledPeakMainTemperatureC":21.598176904702143,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"ac22d3855941f743cc2b15944517dd328b237e97fd38a4835a94eb5ef5831ddd","runChecksum":"3dce91e1555a729cfc77f2cb2972736ec165ca14fc5cdeb97ff4ccfbbdd231ee","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":999.9999999999999,"completedDistanceKm":337.2093023255815,"unmetEnergyKWh":5.482979804750981,"gridEnergyKWh":0,"packEnergyOutKWh":369.1706693225768,"packEnergyInKWh":5.766524612286971e-11,"lossEnergyKWh":3.440878559907115,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05007342848381414,"reserveSoc":0.09999999999999241,"reserveMarginSoc":-7.591149930874508e-15,"delayS":0,"swapCount":0,"durationS":17641.196013289027,"replenishmentHorizonS":17641.196013289027,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31320,"productiveDistanceKm":337.2093023255815,"deliveredTonneKm":6744.186046511631,"peakRequestedKW":76.45474466936543,"energyBalanceErrorKWh":0.006337709599269761,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":17641.196013289027,"repeat":0,"segment":58,"unmetEnergyJ":19738727.29710353,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05007342848381414,"minReserveSoc":0.09999999999999241,"sampledPeakMainTemperatureC":21.592983130279777,"sampledPeakReserveTemperatureC":25.42050757965268,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"e3ef4782758702ab9fff26fe1eb2336b70e99c4de496927d8c5a9da4fe3a23af","runChecksum":"424e7be1e9b2b18cd760980583a68cfa145578da8b52b6230f48352a1b16a55d","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":999.9999999999999,"completedDistanceKm":401.1627906976744,"unmetEnergyKWh":3.0108615772241856,"gridEnergyKWh":0,"packEnergyOutKWh":445.25317951534817,"packEnergyInKWh":2.6319672387389235e-11,"lossEnergyKWh":5.114790342092035,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.0500579175789817,"reserveSoc":0.09999999999999491,"reserveMarginSoc":-5.093148125467906e-15,"delayS":0,"swapCount":0,"durationS":20930.232558139538,"replenishmentHorizonS":20930.232558139538,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":401.1627906976744,"deliveredTonneKm":8023.255813953488,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.010226449265347586,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":20930.232558139538,"repeat":0,"segment":69,"unmetEnergyJ":10839101.678007068,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.0500579175789817,"minReserveSoc":0.09999999999999491,"sampledPeakMainTemperatureC":21.6166051981769,"sampledPeakReserveTemperatureC":31.056986685992683,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"4b2df7f714645e425e51c2880abde145bd14c65fc9bdb7caf89cd2976212acbc","runChecksum":"7111672f233f71ed7bba2907dff5a1ad562cd38a7b2db755f6b80853251867a5","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":999.9999999999999,"completedDistanceKm":401.1627906976744,"unmetEnergyKWh":1.986618626933943,"gridEnergyKWh":0,"packEnergyOutKWh":446.2774224656954,"packEnergyInKWh":9.991493742010627e-11,"lossEnergyKWh":4.090567912558159,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.0500579175789817,"reserveSoc":0.09999999999999787,"reserveMarginSoc":-2.1371793224034263e-15,"delayS":0,"swapCount":0,"durationS":20930.232558139538,"replenishmentHorizonS":20930.232558139538,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":401.1627906976744,"deliveredTonneKm":8023.255813953488,"peakRequestedKW":77.10141506791614,"energyBalanceErrorKWh":0.010205928525196181,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":20930.232558139538,"repeat":0,"segment":69,"unmetEnergyJ":7151827.056962195,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.0500579175789817,"minReserveSoc":0.09999999999999787,"sampledPeakMainTemperatureC":21.6166051981769,"sampledPeakReserveTemperatureC":25.45945557067165,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"long-route","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:34:19.526Z","finishedAt":"2026-10-30T14:35:01.120Z","wallTimeMs":41592.693499999965,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"fast-route","title":"Faster cruise · 90 km/h","category":"route","changedInputs":{"speedKph":90},"question":"Does aerodynamic demand outweigh the shorter travel time on the same 400 km route?","boundary":"","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":20000,"maximumGrossKg":44000,"routeKm":400,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":90,"gradePct":0,"ambientC":20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/fast-route.json","sha256":"357dabc62f123a5635d8dcaa65f79726cc069820e23a6681a4aa1deb4777e8e4","bytes":530723,"sourceScenarioChecksum":"5ee950f7b802347ebfb9fd214f2ada91cbefca75966bead9476ceb02c4c49310","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"ef959888bfdfa97d8891ea3630a650110fb02b834684cf2dd76a40839e3c98bd","runChecksum":"dc7b2a637a31b8b6dc975d35f8ac54a1cbe10210a0d75592fb164e7679dad9da","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000005,"completedDistanceKm":207.4074074074075,"unmetEnergyKWh":7.999992082431323,"gridEnergyKWh":0,"packEnergyOutKWh":287.34845511295873,"packEnergyInKWh":1.4560709456913366e-11,"lossEnergyKWh":3.4742989678906344,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.2999999999999983,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":8592.592592592597,"replenishmentHorizonS":8592.592592592597,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":207.4074074074075,"deliveredTonneKm":4148.14814814815,"peakRequestedKW":123.74081494565216,"energyBalanceErrorKWh":0.005817347737285826,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":8592.592592592597,"repeat":0,"segment":28,"unmetEnergyJ":28799971.496752758,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.2999999999999983,"minReserveSoc":null,"sampledPeakMainTemperatureC":22.795470178015535,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"b1bd603c718a669305219c898e740ceba56db36a3a96d2f62108eae36cd89f94","runChecksum":"b559495ec39fb06867719d3b108946eaa22744b57f5083b97e1f3cd19768bafe","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000005,"completedDistanceKm":274.0740740740742,"unmetEnergyKWh":3.2189216001463996,"gridEnergyKWh":0,"packEnergyOutKWh":383.7893885180517,"packEnergyInKWh":1.0706039475758424e-10,"lossEnergyKWh":5.00221603152254,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.049999999999999635,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":11259.259259259257,"replenishmentHorizonS":11259.259259259257,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":274.0740740740742,"deliveredTonneKm":5481.481481481484,"peakRequestedKW":123.74081494565216,"energyBalanceErrorKWh":0.008395450532899962,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":11259.259259259257,"repeat":0,"segment":37,"unmetEnergyJ":11588117.760527035,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.049999999999999635,"minReserveSoc":null,"sampledPeakMainTemperatureC":23.50325806973217,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"2dc1eaa035a5dceddc7dcd8324e1f6bbc54e48f6ebf1c0607d3f45c1db45a334","runChecksum":"2272841a19741f89cd7e45e08d3351c795f472918ceff25fdc8b4d2720103999","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000005,"completedDistanceKm":318.51851851851853,"unmetEnergyKWh":7.89281328066321,"gridEnergyKWh":0,"packEnergyOutKWh":443.69624764260453,"packEnergyInKWh":2.146018336504799e-11,"lossEnergyKWh":6.658478695281729,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05009421175976668,"reserveSoc":0.09999999999999801,"reserveMarginSoc":-1.9984014443252818e-15,"delayS":0,"swapCount":0,"durationS":13037.037037037031,"replenishmentHorizonS":13037.037037037031,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":318.51851851851853,"deliveredTonneKm":6370.37037037037,"peakRequestedKW":124.70016114130436,"energyBalanceErrorKWh":0.009806424462927713,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":13037.037037037031,"repeat":0,"segment":43,"unmetEnergyJ":28414127.81038755,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05009421175976668,"minReserveSoc":0.09999999999999801,"sampledPeakMainTemperatureC":23.597879071625016,"sampledPeakReserveTemperatureC":29.534177611521727,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"141f4489107306f8d2ef8768b17393f015081d8c0bfd9c0f469b78fd4237c675","runChecksum":"b5b88963861471cce32d8551c7a81e141d9a9b975115f1208d707be2ea49a362","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000005,"completedDistanceKm":318.51851851851853,"unmetEnergyKWh":3.1248071338308647,"gridEnergyKWh":0,"packEnergyOutKWh":447.8852245355415,"packEnergyInKWh":2.118371242229615e-11,"lossEnergyKWh":5.888842400327585,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.049999999999998275,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":13037.037037037031,"replenishmentHorizonS":13037.037037037031,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30900,"productiveDistanceKm":318.51851851851853,"deliveredTonneKm":6370.37037037037,"peakRequestedKW":124.54027010869565,"energyBalanceErrorKWh":0.0084330641523997,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":13037.037037037031,"repeat":0,"segment":43,"unmetEnergyJ":11249305.681791112,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.049999999999998275,"minReserveSoc":null,"sampledPeakMainTemperatureC":23.52089107785946,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"d9251ff62f7ca6093d1c652a51f93cf9fae2f765265d07ebf24ff521fc9d68c8","runChecksum":"33713c73b97c2cd9f65925ea911eac109f7b3e8fac44f1dba7cf1e68c7cde6ae","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000005,"completedDistanceKm":259.2592592592594,"unmetEnergyKWh":0.0387630131240064,"gridEnergyKWh":0,"packEnergyOutKWh":366.979689643881,"packEnergyInKWh":4.3752994260334985e-22,"lossEnergyKWh":5.611778882503578,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05011655314046461,"reserveSoc":0.10007052312994194,"reserveMarginSoc":0.0000705231299419351,"delayS":0,"swapCount":0,"durationS":10666.666666666666,"replenishmentHorizonS":10666.666666666666,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31320,"productiveDistanceKm":259.2592592592594,"deliveredTonneKm":5185.185185185188,"peakRequestedKW":123.86872777173915,"energyBalanceErrorKWh":0.008619260951346821,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":10666.666666666666,"repeat":0,"segment":35,"unmetEnergyJ":139546.8472464213,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05011655314046461,"minReserveSoc":0.10007052312994194,"sampledPeakMainTemperatureC":23.559954124672572,"sampledPeakReserveTemperatureC":29.897968535470397,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"939b6e8c616a9eabbd8b3362c05a193908102c2016636c8545800eb1c59769e4","runChecksum":"c0fd61734564ffd31953dfc864e1490026e3de0db8793d3c4d20b1f34f228058","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000005,"completedDistanceKm":318.51851851851853,"unmetEnergyKWh":9.60697812378318,"gridEnergyKWh":0,"packEnergyOutKWh":441.9820827994938,"packEnergyInKWh":3.131020848731053e-11,"lossEnergyKWh":8.373002789008103,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05009421175976668,"reserveSoc":0.09999999999999984,"reserveMarginSoc":-1.6653345369377348e-16,"delayS":0,"swapCount":0,"durationS":13037.037037037031,"replenishmentHorizonS":13037.037037037031,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":318.51851851851853,"deliveredTonneKm":6370.37037037037,"peakRequestedKW":124.70016114130436,"energyBalanceErrorKWh":0.009447173856960403,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":13037.037037037031,"repeat":0,"segment":43,"unmetEnergyJ":34585121.24561945,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05009421175976668,"minReserveSoc":0.09999999999999984,"sampledPeakMainTemperatureC":23.597879071625016,"sampledPeakReserveTemperatureC":40.3980267695369,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"938f53d8e053b45ba7400aa82918340493b3e7fe0fd68ea665d74354cd6eb3b8","runChecksum":"ac04f81fa9c8d44329a1cd2842da3765adf401e0168cab495bc8c9641e25a4b8","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":800.0000000000005,"completedDistanceKm":318.51851851851853,"unmetEnergyKWh":7.89281328066321,"gridEnergyKWh":0,"packEnergyOutKWh":443.69624764260453,"packEnergyInKWh":2.146018336450383e-11,"lossEnergyKWh":6.658478695281728,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05009421175976668,"reserveSoc":0.09999999999999801,"reserveMarginSoc":-1.9984014443252818e-15,"delayS":0,"swapCount":0,"durationS":13037.037037037031,"replenishmentHorizonS":13037.037037037031,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":318.51851851851853,"deliveredTonneKm":6370.37037037037,"peakRequestedKW":124.70016114130436,"energyBalanceErrorKWh":0.009806424462927713,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":13037.037037037031,"repeat":0,"segment":43,"unmetEnergyJ":28414127.81038755,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05009421175976668,"minReserveSoc":0.09999999999999801,"sampledPeakMainTemperatureC":23.597879071625016,"sampledPeakReserveTemperatureC":29.534177611521727,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"fast-route","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:35:01.620Z","finishedAt":"2026-10-30T14:35:47.791Z","wallTimeMs":46169.909999999974,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"sustained-climb","title":"Sustained climb · 2% over 150 km","category":"grade","changedInputs":{"gradePct":2,"routeKm":150},"question":"Can the reserve supply sustained climbing demand after the main reaches its return threshold?","boundary":"A continuous authored climb is a power-and-energy stress case, not a measured road. Distance changes with gradient; compare architectures within this case rather than attributing its difference from reference to gradient alone.","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":20000,"maximumGrossKg":44000,"routeKm":150,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":2,"ambientC":20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/sustained-climb.json","sha256":"de4f884be53abe1f571b920b5a7f20401a45f34c044756d5601480c8a7b476cb","bytes":468309,"sourceScenarioChecksum":"0d3aea50998c204884467b303a0c853736fef574e304f347b22ca3ab0a1a3b12","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"8ae89ca3cf45bdf2ae313caab7df244421019da8151e5bd0f6f7ac4b30603104","runChecksum":"26d23b0e34fb449e3973e0168791dc56f17e9dcf7283364e4cfff6fa46bc4dc6","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":299.99999999999994,"completedDistanceKm":92.3076923076923,"unmetEnergyKWh":11.439486085327681,"gridEnergyKWh":0,"packEnergyOutKWh":284.8336141529577,"packEnergyInKWh":4.298504747213794e-11,"lossEnergyKWh":5.989878439036082,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.2999999999999992,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":5043.956043956042,"replenishmentHorizonS":5043.956043956042,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":92.3076923076923,"deliveredTonneKm":1846.1538461538462,"peakRequestedKW":211.45766369946702,"energyBalanceErrorKWh":0.005078836621046066,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":5043.956043956042,"repeat":0,"segment":16,"unmetEnergyJ":41182149.90717965,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.2999999999999992,"minReserveSoc":null,"sampledPeakMainTemperatureC":25.863598716102842,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"bab65550cabb894cff45a2a48329af7ae7e3bf88539b9a271c56edb9a4f776d2","runChecksum":"7c906a90a1fdf72b8565d9e3c9b11c819aca8b0339c5d314b891c22d197dec8f","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":299.99999999999994,"completedDistanceKm":121.15384615384617,"unmetEnergyKWh":3.250959132934784,"gridEnergyKWh":0,"packEnergyOutKWh":380.161288234277,"packEnergyInKWh":4.297566108488259e-11,"lossEnergyKWh":8.6314053069247,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.04999999999999952,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":6527.472527472524,"replenishmentHorizonS":6527.472527472524,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":121.15384615384617,"deliveredTonneKm":2423.0769230769233,"peakRequestedKW":211.45766369946702,"energyBalanceErrorKWh":0.007306458841562271,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":6527.472527472524,"repeat":0,"segment":21,"unmetEnergyJ":11703452.87856522,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.04999999999999952,"minReserveSoc":null,"sampledPeakMainTemperatureC":27.839391511839494,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"a2a3ab11a24c09fbc49cfb9fcdda0c06d2d5dbbcd385a0cd8f31b168b4cdd234","runChecksum":"15f508a8e791dd284573728ffef8f9b010eb600db690828aa25e5caebfc033c5","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":299.99999999999994,"completedDistanceKm":138.46153846153848,"unmetEnergyKWh":3.636008646380101,"gridEnergyKWh":0,"packEnergyOutKWh":438.72052133113584,"packEnergyInKWh":1.5039977345453475e-11,"lossEnergyKWh":11.608553060164542,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05016514429604489,"reserveSoc":0.09999999999999881,"reserveMarginSoc":-1.1934897514720433e-15,"delayS":0,"swapCount":0,"durationS":7417.582417582414,"replenishmentHorizonS":7417.582417582414,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":138.46153846153848,"deliveredTonneKm":2769.2307692307695,"peakRequestedKW":214.69036921575858,"energyBalanceErrorKWh":0.00875417575551404,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":7417.582417582414,"repeat":0,"segment":24,"unmetEnergyJ":13089631.126968361,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05016514429604489,"minReserveSoc":0.09999999999999881,"sampledPeakMainTemperatureC":28.07696196036744,"sampledPeakReserveTemperatureC":38.50444294844715,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"5424441680d8640b34816917cfa6059e1def40602ac3e561992ecf15d6ae60a0","runChecksum":"40f4f9f9218d702b7677b1f8772a5068671f78c1e3f1e0bcf275b0b0d4c2a038","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":299.99999999999994,"completedDistanceKm":144.23076923076925,"unmetEnergyKWh":15.34821415210632,"gridEnergyKWh":0,"packEnergyOutKWh":443.5480393402585,"packEnergyInKWh":1.2613810916300559e-10,"lossEnergyKWh":10.227144610934547,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.04999999999999963,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":7714.28571428571,"replenishmentHorizonS":7714.28571428571,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30900,"productiveDistanceKm":144.23076923076925,"deliveredTonneKm":2884.615384615385,"peakRequestedKW":214.15158496304332,"energyBalanceErrorKWh":0.007316048933333821,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":7714.28571428571,"repeat":0,"segment":25,"unmetEnergyJ":55253570.94758275,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.04999999999999963,"minReserveSoc":null,"sampledPeakMainTemperatureC":27.914453311876287,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"be28321740acd0bdd6ecdd7a625136c30c3618519f71700a7ce26038318cfef9","runChecksum":"596336a8fc978595c20457b11a3c2477c8750862ac5d730bdf245a234c5e1df5","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":299.99999999999994,"completedDistanceKm":115.3846153846154,"unmetEnergyKWh":3.8820217389923655,"gridEnergyKWh":0,"packEnergyOutKWh":362.84840516771743,"packEnergyInKWh":1.6312356954115532e-11,"lossEnergyKWh":9.722446303346103,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.050202287199579226,"reserveSoc":0.09999999999999934,"reserveMarginSoc":-6.661338147750939e-16,"delayS":0,"swapCount":0,"durationS":6230.769230769228,"replenishmentHorizonS":6230.769230769228,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31320,"productiveDistanceKm":115.3846153846154,"deliveredTonneKm":2307.692307692308,"peakRequestedKW":211.8886911016392,"energyBalanceErrorKWh":0.008224539716309971,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":6230.769230769228,"repeat":0,"segment":20,"unmetEnergyJ":13975278.260372512,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.050202287199579226,"minReserveSoc":0.09999999999999934,"sampledPeakMainTemperatureC":27.928789727911806,"sampledPeakReserveTemperatureC":38.21030741288274,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"59436141cc762f7729c7f86330c5f4a738dd3f24ae4efa2e8458ef94d3ef7603","runChecksum":"b25845c65dfa5a381c4c1435b0d515c05f4f07adeec147a4c9c04d4f5c37ee7d","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":299.99999999999994,"completedDistanceKm":121.15384615384617,"unmetEnergyKWh":1.789991502446733,"gridEnergyKWh":0,"packEnergyOutKWh":387.4837548777744,"packEnergyInKWh":6.680538862045407e-62,"lossEnergyKWh":9.265111655308672,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05016514429604489,"reserveSoc":0.8053973827685367,"reserveMarginSoc":0.7053973827685367,"delayS":0,"swapCount":0,"durationS":6527.472527472524,"replenishmentHorizonS":6527.472527472524,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":121.15384615384617,"deliveredTonneKm":2423.0769230769233,"peakRequestedKW":214.69036921575858,"energyBalanceErrorKWh":0.007420385359591908,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":6527.472527472524,"repeat":0,"segment":21,"unmetEnergyJ":6443969.408808237,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05016514429604489,"minReserveSoc":0.8053973827685367,"sampledPeakMainTemperatureC":28.07696196036744,"sampledPeakReserveTemperatureC":23.54081393900475,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"b65bfd0c28232c4f2da2bae4c104926c2a3da8871568ed20d8195a669680593b","runChecksum":"8180961f8b13823b840137f8d3a8af2cfe3176376b90cba6997c7affc35bd4a8","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":299.99999999999994,"completedDistanceKm":138.46153846153848,"unmetEnergyKWh":3.636008646380101,"gridEnergyKWh":0,"packEnergyOutKWh":438.72052133113584,"packEnergyInKWh":1.5039977345138435e-11,"lossEnergyKWh":11.608553060164542,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05016514429604489,"reserveSoc":0.09999999999999881,"reserveMarginSoc":-1.1934897514720433e-15,"delayS":0,"swapCount":0,"durationS":7417.582417582414,"replenishmentHorizonS":7417.582417582414,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":138.46153846153848,"deliveredTonneKm":2769.2307692307695,"peakRequestedKW":214.69036921575858,"energyBalanceErrorKWh":0.00875417575551404,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":7417.582417582414,"repeat":0,"segment":24,"unmetEnergyJ":13089631.126968361,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05016514429604489,"minReserveSoc":0.09999999999999881,"sampledPeakMainTemperatureC":28.07696196036744,"sampledPeakReserveTemperatureC":38.50444294844715,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"sustained-climb","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:35:32.775Z","finishedAt":"2026-10-30T14:36:16.169Z","wallTimeMs":43392.74959999998,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"steep-climb","title":"Steep power challenge · 4% over 85 km","category":"grade","changedInputs":{"gradePct":4,"routeKm":85},"question":"Does a higher reserve-current ceiling help after the main is depleted, or does heat/replenishment become the limit?","boundary":"A continuous authored climb deliberately reaches reserve operation at high demand. This is a combined gradient/distance stress case, not a real route or a rating qualification.","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":20000,"maximumGrossKg":44000,"routeKm":85,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":4,"ambientC":20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/steep-climb.json","sha256":"9bfdcf1174df86ac1e9a3ed41d86d4c25e5995cb27763e07f26589445ff6311b","bytes":447749,"sourceScenarioChecksum":"4ebca2915082594c55365c6b521595b6d9bcffdf6c4a19c669779cb5118cc593","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"1c5d547d312beb51c88031094cf0a514205344009c8a9ad13b82b9c8185cbb13","runChecksum":"50271d16593218e8170081d5433a4ca19ef98d4f80949d6fec7607802bdec11d","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":170,"completedDistanceKm":56.66666666666665,"unmetEnergyKWh":27.574576192567008,"gridEnergyKWh":0,"packEnergyOutKWh":280.87031720987727,"packEnergyInKWh":1.05414479790632e-10,"lossEnergyKWh":9.9512253276526,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.29999999999999943,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":3205.714285714286,"replenishmentHorizonS":3205.714285714286,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":56.66666666666665,"deliveredTonneKm":1133.333333333333,"peakRequestedKW":346.3819658528971,"energyBalanceErrorKWh":0.007028891146944629,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":3205.714285714286,"repeat":0,"segment":10,"unmetEnergyJ":99268474.29324123,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.29999999999999943,"minReserveSoc":null,"sampledPeakMainTemperatureC":31.243005441987634,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"c8ad215f368789a4f492ba17fa15f0bb0c798f3b770b36d8be3a70090d448927","runChecksum":"c38c4865fc4ba13efb274d8fac94c41d92f52c18b19bee38347c8ef2850c272c","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":170,"completedDistanceKm":73.66666666666666,"unmetEnergyKWh":18.13510699380137,"gridEnergyKWh":0,"packEnergyOutKWh":374.4311209730014,"packEnergyInKWh":1.9965659844119363e-10,"lossEnergyKWh":14.359991967265389,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.04999999999999923,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":4080.0000000000005,"replenishmentHorizonS":4080.0000000000005,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":73.66666666666666,"deliveredTonneKm":1473.333333333333,"peakRequestedKW":346.3819658528971,"energyBalanceErrorKWh":0.008887059932880931,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":4080.0000000000005,"repeat":0,"segment":13,"unmetEnergyJ":65286385.177684925,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.04999999999999923,"minReserveSoc":null,"sampledPeakMainTemperatureC":34.93706736049455,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"fa2a71c8cfd2892b8bb41cae47b2ee1d6388346c5d086d7cf13caa8e07d5dca4","runChecksum":"239d949603ffe7757b8d70e30e4451d9c034f0d7f1758c371847ce9526a2c3b0","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":170,"completedDistanceKm":73.66666666666666,"unmetEnergyKWh":4.708024112018814,"gridEnergyKWh":0,"packEnergyOutKWh":394.3363087198203,"packEnergyInKWh":1.9480585562786675e-22,"lossEnergyKWh":15.738372174792097,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.0502763907491514,"reserveSoc":0.6422210561248575,"reserveMarginSoc":0.5422210561248575,"delayS":0,"swapCount":0,"durationS":4080.0000000000005,"replenishmentHorizonS":4080.0000000000005,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":73.66666666666666,"deliveredTonneKm":1473.333333333333,"peakRequestedKW":352.09794073397575,"energyBalanceErrorKWh":0.007748680709799131,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":4080.0000000000005,"repeat":0,"segment":13,"unmetEnergyJ":16948886.80326773,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.0502763907491514,"minReserveSoc":0.6422210561248575,"sampledPeakMainTemperatureC":35.704516972229726,"sampledPeakReserveTemperatureC":27.961438553553364,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"b877cc8f53a3f73f368af058118fca9996b8a72bb3bb5b33ce554dc68a5ccd31","runChecksum":"b11a0760794318db2610455e9e5c152a878fd00bfb8be8565b8d7511a64cc794","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":170,"completedDistanceKm":169.99999999999997,"unmetEnergyKWh":6.321157754800984e-16,"gridEnergyKWh":952.533691144361,"packEnergyOutKWh":852.7813900449337,"packEnergyInKWh":904.907006587143,"lossEnergyKWh":99.71168957228504,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.9424768575227124,"reserveSoc":null,"reserveMarginSoc":null,"delayS":15300,"swapCount":0,"durationS":24042.85714285713,"replenishmentHorizonS":24042.85714285713,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30900,"productiveDistanceKm":169.99999999999997,"deliveredTonneKm":3399.9999999999995,"peakRequestedKW":351.1452782537959,"energyBalanceErrorKWh":0.040611527142276366,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.07442611127027249,"minReserveSoc":null,"sampledPeakMainTemperatureC":42.19903715614748,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"cdecc03120c22f4cfa7da94904203aeb1157a9b201aff327f93718f33a03332b","runChecksum":"81afd76136c32b8b834ac0c3839c87d99df17b1d4647a863c2a792416fb0c661","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":170,"completedDistanceKm":56.66666666666665,"unmetEnergyKWh":1.5432066782039457,"gridEnergyKWh":0,"packEnergyOutKWh":307.5803453290671,"packEnergyInKWh":1.5751965939612965e-22,"lossEnergyKWh":11.958478100864674,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05033726801163166,"reserveSoc":0.7983656317640665,"reserveMarginSoc":0.6983656317640665,"delayS":0,"swapCount":0,"durationS":3205.714285714286,"replenishmentHorizonS":3205.714285714286,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31320,"productiveDistanceKm":56.66666666666665,"deliveredTonneKm":1133.333333333333,"peakRequestedKW":347.144095837041,"energyBalanceErrorKWh":0.00620119422296683,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":3205.714285714286,"repeat":0,"segment":10,"unmetEnergyJ":5555544.041534204,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05033726801163166,"minReserveSoc":0.7983656317640665,"sampledPeakMainTemperatureC":35.41822230302586,"sampledPeakReserveTemperatureC":23.187559290771617,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"0a1ac71658dd925f6f8083e681a9afdf3134238f82ccc4282231ed9e14d48a24","runChecksum":"5dc1ad4e8af81ca26013bde773a56dcf9bd7c4601e5b049c7fd64584982301c7","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":170,"completedDistanceKm":73.66666666666666,"unmetEnergyKWh":12.769391128478826,"gridEnergyKWh":0,"packEnergyOutKWh":386.27494170336024,"packEnergyInKWh":2.250286774583716e-61,"lossEnergyKWh":15.420788515937918,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.0502763907491514,"reserveSoc":0.745332633674818,"reserveMarginSoc":0.645332633674818,"delayS":0,"swapCount":0,"durationS":4080.0000000000005,"replenishmentHorizonS":4080.0000000000005,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":73.66666666666666,"deliveredTonneKm":1473.333333333333,"peakRequestedKW":352.09794073397575,"energyBalanceErrorKWh":0.007533888931075732,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":4080.0000000000005,"repeat":0,"segment":13,"unmetEnergyJ":45969808.062523775,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.0502763907491514,"minReserveSoc":0.745332633674818,"sampledPeakMainTemperatureC":35.704516972229726,"sampledPeakReserveTemperatureC":25.732235758558318,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"522896fdddc3a7af01c867d03bf807ab10533e87103a4266a1666ea4b9eeedc6","runChecksum":"8732c913c12561c544dddb31ab1632cd64ffb9c2d16e2de4239b51c65f4418e4","status":"incomplete","summary":{"completed":false,"completedRepeats":1,"requestedDistanceKm":170,"completedDistanceKm":85,"unmetEnergyKWh":3.5815382069486346e-16,"gridEnergyKWh":418.17245579317495,"packEnergyOutKWh":427.5474994626851,"packEnergyInKWh":397.2638330035162,"lossEnergyKWh":48.53726155832148,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.15334780117548433,"reserveMarginSoc":0.05334780117548432,"delayS":600,"swapCount":1,"durationS":4971.428571428572,"replenishmentHorizonS":11271.428571428572,"tailRecoveryS":6300.000000000001,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":85,"deliveredTonneKm":1700,"peakRequestedKW":352.09794073397575,"energyBalanceErrorKWh":0.018068865207086008,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"station-arrival":1,"main-pack-swap":1,"recharge-incomplete":1,"pack-recharged":1},"problems":[{"type":"recharge-incomplete","timeS":4971.428571428572,"stationId":"depot","packId":"reserve-fixed-on-vehicle","startS":4671.428571428572,"endS":4971.428571428572,"energyInJ":0,"chargerIndex":1,"allocationW":219450,"returnedToInventory":false}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.0502763907491514,"minReserveSoc":0.15334780117548433,"sampledPeakMainTemperatureC":35.704516972229726,"sampledPeakReserveTemperatureC":50.598995090487676,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"steep-climb","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:35:48.435Z","finishedAt":"2026-10-30T14:36:37.856Z","wallTimeMs":49419.41810000001,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"descent","title":"Regeneration boundary · −2% over 80 km","category":"grade","changedInputs":{"gradePct":-2,"routeKm":80},"question":"What happens when a nearly full pack cannot absorb all requested downhill regeneration?","boundary":"The mission permits rejected regeneration without counting it as unmet traction. Requested and absorbed negative power remain in the trace, but no friction-brake blending or brake-temperature model closes the remaining braking demand; route completion does not validate descent braking.","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":20000,"maximumGrossKg":44000,"routeKm":80,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":-2,"ambientC":20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/descent.json","sha256":"5cbd571867855b6bdeff89fe1a4b612b2f3140e35a9409816e914c34d1f76436","bytes":484434,"sourceScenarioChecksum":"0c94731575ae8891d46daec4f42b4168a376dad16dced39f8b37445b7f64f3af","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"6e787189802711fee83479efabe2862d6d8d080b2a84be25520ffdb803cd9561","runChecksum":"dc58678f523a3f89ddd92f58016522fc291259e457fab988abb15b73e90cf91c","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":159.99999999999991,"completedDistanceKm":159.99999999999997,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":0,"packEnergyInKWh":0,"lossEnergyKWh":0,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":null,"reserveMarginSoc":null,"delayS":600,"swapCount":2,"durationS":8828.571428571424,"replenishmentHorizonS":8828.571428571424,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":159.99999999999997,"deliveredTonneKm":3199.9999999999995,"peakRequestedKW":-27.873745508473135,"energyBalanceErrorKWh":-1.4834933810763888e-11,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":true,"minMainSoc":0.95,"minReserveSoc":null,"sampledPeakMainTemperatureC":20,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"ed314a313442d0aaec24f84d39a368cefc511fa4c8471c5239e7ce1c46fcc37b","runChecksum":"042292780c71397899d76cac6c0bc661416caefb12f78be869cd46170de5e58b","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":159.99999999999991,"completedDistanceKm":159.99999999999997,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":0,"packEnergyInKWh":0,"lossEnergyKWh":0,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":null,"reserveMarginSoc":null,"delayS":600,"swapCount":2,"durationS":8828.571428571424,"replenishmentHorizonS":8828.571428571424,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31400,"productiveDistanceKm":159.99999999999997,"deliveredTonneKm":3199.9999999999995,"peakRequestedKW":-27.873745508473135,"energyBalanceErrorKWh":-1.4834933810763888e-11,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":true,"minMainSoc":0.95,"minReserveSoc":null,"sampledPeakMainTemperatureC":20,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"b3533874cfb249bffcec0efdcf3134c315540876c4ed5acb0b660a340be4dd6f","runChecksum":"b0196a709ee2a3da66d42a74fb9dd3b39dcfaea7c10f6b81dde2d0def4baa746","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":159.99999999999991,"completedDistanceKm":159.99999999999997,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":0,"packEnergyInKWh":4.295990710803536e-22,"lossEnergyKWh":0,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":8828.571428571424,"replenishmentHorizonS":8828.571428571424,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":159.99999999999997,"deliveredTonneKm":3199.9999999999995,"peakRequestedKW":-28.7577362919927,"energyBalanceErrorKWh":-1.483493381033429e-11,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":true,"minMainSoc":0.95,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":20,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"021f27ccf068d616eec99bf6ab14071985e111bc2770a2936bdde4058201d956","runChecksum":"05d45e1b666952a3ab8caec9d720343d2a8788bb48acfd11ef109989660fd310","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":159.99999999999991,"completedDistanceKm":159.99999999999997,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":9.942652590185596e-29,"packEnergyInKWh":4.327438856820815,"lossEnergyKWh":0.009883248594564742,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.9500000000000006,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":8228.571428571422,"replenishmentHorizonS":8228.571428571422,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30900,"productiveDistanceKm":159.99999999999997,"deliveredTonneKm":3199.9999999999995,"peakRequestedKW":-28.610404494739452,"energyBalanceErrorKWh":0.00005560823161465426,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":true,"minMainSoc":0.9465389043132251,"minReserveSoc":null,"sampledPeakMainTemperatureC":20.011016085658014,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"edc9cb7edf334406d48037549efa0b13a1134fbbf0fb468578a59557cf7ac333","runChecksum":"787e4d4e83990eeadcdfb28b1e943a5db320db53864ca788ad0c4a366a825752","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":159.99999999999991,"completedDistanceKm":159.99999999999997,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":0,"packEnergyInKWh":4.295990710803536e-22,"lossEnergyKWh":0,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":8828.571428571424,"replenishmentHorizonS":8828.571428571424,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":31320,"productiveDistanceKm":159.99999999999997,"deliveredTonneKm":3199.9999999999995,"peakRequestedKW":-27.991610946275735,"energyBalanceErrorKWh":-1.854366725915887e-12,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":true,"minMainSoc":0.95,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":20,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"55b37a28242c43bad7f7cb2bfbef63f4a271229050fe39a58d2b2a1c798ec027","runChecksum":"9f1b3b62c88c005438bf260216cd921d10e35dcb8d413efc760fa151eb5ba973","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":159.99999999999991,"completedDistanceKm":159.99999999999997,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":0,"packEnergyInKWh":0,"lossEnergyKWh":0,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":8828.571428571424,"replenishmentHorizonS":8828.571428571424,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":159.99999999999997,"deliveredTonneKm":3199.9999999999995,"peakRequestedKW":-28.7577362919927,"energyBalanceErrorKWh":-1.4834933810763888e-11,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":true,"minMainSoc":0.95,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":20,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"962519d1f7706b2a65ac0359f32e76af5f6ed4ec53ba4e67bfbc09d9f8c5aaae","runChecksum":"967b375ba2c967f7b4e9358dd673a954e8c55f7e0c3e905355bc4fe81928dcf3","status":"complete","summary":{"completed":true,"completedRepeats":2,"requestedDistanceKm":159.99999999999991,"completedDistanceKm":159.99999999999997,"unmetEnergyKWh":0,"gridEnergyKWh":0,"packEnergyOutKWh":0,"packEnergyInKWh":0,"lossEnergyKWh":0,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.95,"reserveSoc":0.9,"reserveMarginSoc":0.8,"delayS":600,"swapCount":2,"durationS":8828.571428571424,"replenishmentHorizonS":8828.571428571424,"tailRecoveryS":0,"payloadKg":20000,"payloadLimitKg":30800,"productiveDistanceKm":159.99999999999997,"deliveredTonneKm":3199.9999999999995,"peakRequestedKW":-28.7577362919927,"energyBalanceErrorKWh":-1.4834933810763888e-11,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"station-arrival":2,"main-pack-swap":2,"pack-recharged":2},"problems":[],"sourceTransitions":0,"regenerationLimited":true,"minMainSoc":0.95,"minReserveSoc":0.9,"sampledPeakMainTemperatureC":20,"sampledPeakReserveTemperatureC":20,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"descent","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:36:16.739Z","finishedAt":"2026-10-30T14:36:19.061Z","wallTimeMs":2320.7409000000334,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}},{"id":"combined-stress","title":"Cold, heavy climb · −20 °C / 30 tonnes / 2%","category":"combined","changedInputs":{"ambientC":-20,"payloadKg":30000,"gradePct":2,"routeKm":120},"question":"How do high traction demand, cold charging restrictions and repeated service interact?","boundary":"Combined authored stress, not a single-factor causal estimate. No heater, calibrated cold-capacity map, traffic or active cooling is modeled.","parameters":{"mainEnergyKWh":432,"reserveEnergyKWh":77,"mainReturnSoc":0.05,"reserveMinSoc":0.1,"mainInitialSoc":0.95,"reserveInitialSoc":0.9,"mainMassKg":2600,"reserveMassKg":500,"hardwareMassKg":100,"curbKg":10000,"payloadKg":30000,"maximumGrossKg":44000,"routeKm":120,"detourKm":0,"routeStopMinutes":0,"serviceDeadlineHours":0,"speedKph":70,"gradePct":2,"ambientC":-20,"repeats":2,"sampleTimeS":300,"stationSwapMinutes":5,"stationReadyPacks":2,"rechargePowerKW":231,"sitePowerKW":500,"chargerEfficiency":0.95,"mainDischargeA":1000,"reserveDischargeA":400},"file":"campaign/cases/combined-stress.json","sha256":"1a3696c3560f418ab3bdf0f6dd67d470d91bb53363ef900ded10ece775279b4f","bytes":455586,"sourceScenarioChecksum":"b987b2abc17483e5adb8f07feebfc9e623e44e2a5584f1e16c38543637480e31","results":[{"variant":"baseline","title":"Single swappable pack, 30% return reserve","modelChecksum":"47909e8e430e6c444d55bf56b159aa05a25493bc2e07e2b3bf66d96264ad07bd","runChecksum":"e84a3900aa3e3ba5fc3941b14c05912167258876776b9fe90fab9109fe30e4af","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":239.99999999999986,"completedDistanceKm":74.28571428571428,"unmetEnergyKWh":19.977026021041933,"gridEnergyKWh":0,"packEnergyOutKWh":283.26421851757146,"packEnergyInKWh":3.3662826071150536e-10,"lossEnergyKWh":7.557984824578472,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.29999999999999954,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":4114.285714285714,"replenishmentHorizonS":4114.285714285714,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":31400,"productiveDistanceKm":74.28571428571428,"deliveredTonneKm":2228.5714285714284,"peakRequestedKW":265.3360889709928,"energyBalanceErrorKWh":0.006368086758421527,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":4114.285714285714,"repeat":0,"segment":13,"unmetEnergyJ":71917293.67575096,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.29999999999999954,"minReserveSoc":null,"sampledPeakMainTemperatureC":-11.998417246401516,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"policy-only","title":"Single swappable pack, lower return threshold","modelChecksum":"e9b9bb0b532f9e6f68719f4cb2046ab60fce7569c5afc9f90ded98b9a4bc9e2f","runChecksum":"0a032aa08a73ed28fa3becb9edf03b9b9f9b81624658f71507d81a3747b658d8","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":239.99999999999986,"completedDistanceKm":97.14285714285711,"unmetEnergyKWh":11.98719590387297,"gridEnergyKWh":0,"packEnergyOutKWh":377.8944042168317,"packEnergyInKWh":4.3093825697232284e-11,"lossEnergyKWh":10.89700364147192,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.04999999999999952,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":5289.795918367345,"replenishmentHorizonS":5289.795918367345,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":31400,"productiveDistanceKm":97.14285714285711,"deliveredTonneKm":2914.2857142857133,"peakRequestedKW":265.3360889709928,"energyBalanceErrorKWh":0.008592141739858521,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":5289.795918367345,"repeat":0,"segment":17,"unmetEnergyJ":43153905.25394269,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.04999999999999952,"minReserveSoc":null,"sampledPeakMainTemperatureC":-9.455776440893942,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"dual","title":"Swappable main plus fixed reserve","modelChecksum":"6a6416c848a9f91348144003e127a42061f9069da6589d1b44531e244645d606","runChecksum":"4471888fa631cbbcb6594aaa5aedd15351c71d7c80cae7f80fa4c2168576e9e6","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":239.99999999999986,"completedDistanceKm":102.85714285714282,"unmetEnergyKWh":0.29942643936959534,"gridEnergyKWh":0,"packEnergyOutKWh":416.2562548062156,"packEnergyInKWh":2.57759443053912e-22,"lossEnergyKWh":13.190659354938239,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05020693496748952,"reserveSoc":0.39218248558315827,"reserveMarginSoc":0.2921824855831583,"delayS":0,"swapCount":0,"durationS":5583.673469387752,"replenishmentHorizonS":5583.673469387752,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":30800,"productiveDistanceKm":102.85714285714282,"deliveredTonneKm":3085.7142857142844,"peakRequestedKW":268.5687944872844,"energyBalanceErrorKWh":0.009258879025114908,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":5583.673469387752,"repeat":0,"segment":18,"unmetEnergyJ":1077935.1817305433,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05020693496748952,"minReserveSoc":0.39218248558315827,"sampledPeakMainTemperatureC":-9.010927616122217,"sampledPeakReserveTemperatureC":-5.213442228849033,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"equal-energy-fixed","title":"Fixed plug-in pack with equal total nominal energy","modelChecksum":"08f6407d288a9cd39ee8aded45b5713c7e1513a91ca0ff976029c3ca3b9b6184","runChecksum":"87506866cd075f105e29e57c33c09f8eb3d5fc26d11315ded06517193d755a51","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":239.99999999999986,"completedDistanceKm":114.28571428571423,"unmetEnergyKWh":18.585638655022528,"gridEnergyKWh":0,"packEnergyOutKWh":440.89437889008826,"packEnergyInKWh":1.2742184927208616e-10,"lossEnergyKWh":12.878909040306425,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.04999999999999986,"reserveSoc":null,"reserveMarginSoc":null,"delayS":0,"swapCount":0,"durationS":6171.428571428568,"replenishmentHorizonS":6171.428571428568,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":30900,"productiveDistanceKm":114.28571428571423,"deliveredTonneKm":3428.571428571427,"peakRequestedKW":268.03001023456915,"energyBalanceErrorKWh":0.00921206973320908,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"route-unserved":1},"problems":[{"type":"route-unserved","timeS":6171.428571428568,"repeat":0,"segment":20,"unmetEnergyJ":66908299.1580811,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":0,"regenerationLimited":false,"minMainSoc":0.04999999999999986,"minReserveSoc":null,"sampledPeakMainTemperatureC":-9.266320561207067,"sampledPeakReserveTemperatureC":null,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"smaller-main","title":"Smaller swappable main plus fixed reserve","modelChecksum":"7fe1314d8758da84eb0a9d9491946af79812599df471a209b6aa46a8c445b748","runChecksum":"72d98d39f55982ee909f2c8e09f037c2a4aaa2d6d094dd87ffda57f912167dc8","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":239.99999999999986,"completedDistanceKm":85.7142857142857,"unmetEnergyKWh":0.5024919636958796,"gridEnergyKWh":0,"packEnergyOutKWh":346.6219049318666,"packEnergyInKWh":2.00479566504165e-22,"lossEnergyKWh":11.240665061126345,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05025767899454727,"reserveSoc":0.3084167879929599,"reserveMarginSoc":0.2084167879929599,"delayS":0,"swapCount":0,"durationS":4702.040816326529,"replenishmentHorizonS":4702.040816326529,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":31320,"productiveDistanceKm":85.7142857142857,"deliveredTonneKm":2571.4285714285706,"peakRequestedKW":265.767116373165,"energyBalanceErrorKWh":0.00798457656039132,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":4702.040816326529,"repeat":0,"segment":15,"unmetEnergyJ":1808971.0693051666,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05025767899454727,"minReserveSoc":0.3084167879929599,"sampledPeakMainTemperatureC":-9.165853262794542,"sampledPeakReserveTemperatureC":-2.939250642522552,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"cold-reserve","title":"Dual source with assumed cold-duty reserve parameters","modelChecksum":"0470fa7f4e1b9f890610544078f5a644bdf6647dc2634790cf0a9dc4666ecd01","runChecksum":"9e53adb3900c08df502fd790119f1c3c8a8480f1c4d0b73a7cb8d9514d689b8a","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":239.99999999999986,"completedDistanceKm":97.14285714285711,"unmetEnergyKWh":6.071333405464063,"gridEnergyKWh":0,"packEnergyOutKWh":388.560364616669,"packEnergyInKWh":2.0284994705683163e-31,"lossEnergyKWh":11.75946539078371,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05020693496748952,"reserveSoc":0.7622954472981475,"reserveMarginSoc":0.6622954472981475,"delayS":0,"swapCount":0,"durationS":5289.795918367345,"replenishmentHorizonS":5289.795918367345,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":30800,"productiveDistanceKm":97.14285714285711,"deliveredTonneKm":2914.2857142857133,"peakRequestedKW":268.5687944872844,"energyBalanceErrorKWh":0.008727842830750678,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":5289.795918367345,"repeat":0,"segment":17,"unmetEnergyJ":21856800.259670626,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05020693496748952,"minReserveSoc":0.7622954472981475,"sampledPeakMainTemperatureC":-9.010927616122217,"sampledPeakReserveTemperatureC":-14.882246103030297,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}},{"variant":"high-power-reserve","title":"Dual source with assumed higher-power reserve parameters","modelChecksum":"6334209e23060dff6c87e6ecb9494b8110390bfcd8a414ecdfaf522b7751cfa0","runChecksum":"b4ca1c5d26b9c776fe081cb76733c88bd847dd991b33f5741040ec975082539c","status":"incomplete","summary":{"completed":false,"completedRepeats":0,"requestedDistanceKm":239.99999999999986,"completedDistanceKm":108.57142857142853,"unmetEnergyKWh":2.8031876890633067,"gridEnergyKWh":0,"packEnergyOutKWh":435.6764767800318,"packEnergyInKWh":5.776838629950667e-11,"lossEnergyKWh":14.635932789981057,"transferPathLossKWh":0,"dcLinkEnergyDeltaKWh":0,"mainSoc":0.05020693496748952,"reserveSoc":0.10000000000000009,"reserveMarginSoc":8.326672684688674e-17,"delayS":0,"swapCount":0,"durationS":5877.55102040816,"replenishmentHorizonS":5877.55102040816,"tailRecoveryS":0,"payloadKg":30000,"payloadLimitKg":30800,"productiveDistanceKm":108.57142857142853,"deliveredTonneKm":3257.142857142856,"peakRequestedKW":268.5687944872844,"energyBalanceErrorKWh":0.009685640692445967,"costStatus":"deferred-user"},"eventsSummary":{"counts":{"source-handover":1,"route-unserved":1},"problems":[{"type":"route-unserved","timeS":5877.55102040816,"repeat":0,"segment":19,"unmetEnergyJ":10091475.680627905,"reason":"Requested route power was not supplied; no arrival or swap is fabricated."}],"sourceTransitions":1,"regenerationLimited":false,"minMainSoc":0.05020693496748952,"minReserveSoc":0.10000000000000009,"sampledPeakMainTemperatureC":-9.010927616122217,"sampledPeakReserveTemperatureC":4.00808261943439,"temperatureBoundary":"Maximum of mission trace samples during route demand only; station/charge transients and between-sample peaks are not included."}}],"execution":{"conditionId":"combined-stress","version":"1.0.0","engineSha256":"9386ef7fa79e20200f25aa70348a0129093c9ad1d3121649dae0adf14e726fab","runtimeFingerprint":"d38e9c817cb400bd112f1d0798c60a3e033322be70338cd19673cf30fd9b29fa","sourceModuleSha256":"35f2188c89eb5490924f11a1e8836e53dcd60ae8bcc4bf14989dcc47b9d1fd67","startedAt":"2026-10-30T14:36:19.878Z","finishedAt":"2026-10-30T14:36:54.765Z","wallTimeMs":34885.48829999997,"node":"v24.19.0","platform":"win32","numericalBoundary":"Canonical pack tolerance 1e-8; mission supervisory interval 300 s, native pack maximum step 60 s or shorter at an interval boundary. Source-transfer topology remains ideal at mission scale; fast circuit examples are a separate time scale.","runnerSources":{"coordinator":{"file":"campaign/provenance/runner-initial.mjs","sha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8"},"worker":{"file":"campaign/provenance/runner-with-verification.mjs","sha256":"e9167567c2e8fde6a2c05dfe74cd03e07b7f364500abb242b37ac796dc65f07f"},"workerBranchSha256":"86678412093138281dbf82598ab1179770ab501b714a126e081176fc8ac65d75"}}}],"execution":{"startedAt":"2026-10-30T14:30:37.962Z","updatedAt":"2026-10-30T14:37:32.235Z","wallTimeMs":376803,"workers":2,"node":"v24.19.0","platform":"win32","reusedConditions":[],"runner":"campaign/provenance/runner-initial.mjs","runnerSha256":"ecfc14ada5bd34a73f7908fb15332c36b960f7fced58e044b5c054004eba53f8","catalogBuilder":{"startedAt":"2026-10-30T14:37:30.873Z","updatedAt":"2026-10-30T14:37:32.235Z","wallTimeMs":1359.3704,"workers":2,"node":"v24.19.0","platform":"win32","reusedConditions":["reference","light-payload","heavy-payload","cold","hot","short-route","long-route","fast-route","sustained-climb","steep-climb","descent","combined-stress"],"runner":"wiki/tools/run-dual-battery-campaign.mjs","runnerSha256":"5830abd24f3ba251107631e3e1f310dad2f29b0248029f9d02ad0f3d6e6dc226"},"runnerSources":{"file":"campaign/provenance/runner-sources.json","sha256":"0790f725a9957d7d25ae67052861e6580d509922dbedff7c9bb90ba52451ffe8"},"provenanceBoundary":"The coordinator and first two workers loaded runner-initial.mjs. A read-only verification/resume preflight was added to the coordinator code before subsequent workers started. Both exact versions are archived; their native worker branch is byte-identical. Canonical scenario, parameter, solver and source snapshot bytes were unchanged throughout this campaign.","provenanceAnnotatedAt":"2026-10-30T14:37:46.244Z","nativeWorkerTimeMs":731710.6310999998,"finishedAt":"2026-10-30T14:36:54.765Z","nativeExecutionSpanMs":376803,"nativeFreshExecutions":84}}
