# References

Every rule, threshold and default in this tool should be traceable to something
you can look up. This file is that index.

**How to read it.** No standard is reproduced here — these are *citations*, with
the clause or practice the tool leans on and the module that uses it. Obtain the
documents themselves from the issuing bodies (IEC, ISO, UL, NFPA, UNECE, SAC/GB,
CEN, IEEE, SAE). Standards are revised: the tool names the edition it was written
against where the edition matters, and the release checklist tells the customer
to verify the current edition with their test house. That instruction is not
boilerplate — treat it as part of the output.

**The most important section is the last one.** [§8 Assumptions without a public
source](#8-assumptions-with-no-public-source) lists every number in this project
that is *not* backed by a citation. A tool that hides those is harder to trust
than one that prints them.

---

## 1 · Transport

| Reference | Title / scope | Used for | Module |
|---|---|---|---|
| **UN 38.3** | UN *Manual of Tests and Criteria*, Part III sub-section 38.3 — lithium battery transport tests (T1–T8) | The universal gate: appears in every application × market checklist, because nothing ships without it. The vibration screen transcribes **T.3** (7–200 Hz logarithmic sweep, 1 gₙ to 18 Hz, 0.8 mm amplitude until 8 gₙ for packs up to 12 kg or 2 gₙ above, then constant to 200 Hz; twelve 15-minute cycles per axis) and **T.4** (half-sine shock, 150 gₙ / 6 ms up to 12 kg, 50 gₙ / 11 ms above), with the instruction to verify the edition | `markets.js`, `standards.js`, `vibration.js` |
| **IATA/ICAO PI 965** | Packing Instruction 965, Section IB (lithium-ion cells/batteries shipped by air) | Air-transport wording in the safety findings | `standards.js` |
| **IEC 62281** | Safety of primary and secondary lithium cells and batteries during transport | Transport safety design guidance alongside UN 38.3 | `standards.js` |
| **ADR SP 188** | European Agreement concerning the International Carriage of Dangerous Goods by Road — Special Provision 188 (excepted lithium cells and batteries) | The road-transport exception route for small cells/batteries in Europe | `standards.js` |

## 2 · Cell and system safety

| Reference | Title / scope | Used for | Module |
|---|---|---|---|
| **UL 1642** | Standard for lithium batteries (cell level): the crush test applies 13 kN to a cell | The cell crush force the crush & intrusion screen uses as the cell block's threshold (IEC 62133-2 applies the same 13 kN) | `crush.js` |
| **IEC 62133-2** | Safety requirements for portable sealed secondary lithium cells and batteries — Part 2: Lithium systems | Portable-class applications (wearables, tools, vacuums, power stations) | `standards.js` |
| **IEC 60335 family** | Household and similar electrical appliances — safety | The appliance-safety framework a robot vacuum's certification path sits inside | `standards.js` |
| **IEC 62368-1** | Audio/video, information and communication technology equipment — safety | The end-product electronics safety route a wearable's pack certification sits inside | `standards.js` |
| **IEC 62619** | Safety requirements for secondary lithium cells and batteries for industrial applications | Industrial and stationary classes; propagation and spacing guidance | `standards.js`, `engineering.js` |
| **IEC 63056** | Safety requirements for secondary lithium cells and batteries for use in electrical energy storage systems | Stationary storage | `standards.js` |
| **IEC 62933-5-2** | Electrical energy storage systems — Part 5-2: Safety requirements for grid-integrated EES — electrochemical systems | Grid-connected storage | `standards.js` |
| **UL 1973** | Batteries for use in stationary, vehicle auxiliary power and light electric rail applications | Stationary, auxiliary (RV) classes | `standards.js` |
| **UL 2580** | Batteries for use in electric vehicles | Vehicle class; abuse/crush test framing | `standards.js`, `engineering.js` |
| **UL 9540** | Energy storage systems and equipment | US stationary listing | `standards.js`, `markets.js` |
| **UL 9540A** | Test method for evaluating thermal runaway fire propagation in battery energy storage systems | Propagation testing for stationary systems | `standards.js`, `markets.js` |
| **UL 2271** | Batteries for use in light electric vehicle (LEV) applications | Light means of transport (e-bike, e-scooter) | `standards.js` |
| **UL 2272** | Electrical systems for personal e-mobility devices | Personal e-mobility | `standards.js` |
| **UL 2849** | Electrical systems for eBikes | E-bike systems | `standards.js` |
| **UL 2743** | Portable power packs | Portable power stations | `standards.js` |
| **UL 2054** | Household and commercial batteries | Consumer-class packs | `standards.js` |
| **UL 583** | Electric-battery-powered industrial trucks | Industrial trucks / AGVs | `standards.js` |
| **UL 94** | Tests for flammability of plastic materials for parts in devices and appliances | Housing and holder material class | `components.js` |
| **NFPA 855** | Standard for the installation of stationary energy storage systems | US stationary installation | `standards.js`, `markets.js` |
| **NFPA 68** | Standard on explosion protection by deflagration venting | Vent-path sizing guidance | `standards.js`, `components.js` |
| **NASA Glenn compressible mass flow** | Isentropic mass-flow/choking relation | Conditional thin-opening pressure-relief screen | `venting.js` |
| **NFPA 1192** | Standard on recreational vehicles | Auxiliary (RV) class | `standards.js` |
| **SAE J2929** | Safety standard for electric and hybrid vehicle propulsion battery systems using lithium-based rechargeable cells | Vehicle-class safety reference | `standards.js` |
| **NIOSH lifting guideline** | US National Institute for Occupational Safety and Health revised lifting equation | The handling warning when a module or pack passes the mass at which one person can lift it safely | `standards.js`, `engineering.js` |

## 3 · Vehicles, light transport, marine, industrial

| Reference | Title / scope | Used for | Module |
|---|---|---|---|
| [**UN Regulation No. 100, Revision 3**](https://unece.org/sites/default/files/2024-01/R0100r3e.pdf) (customer checklist aliases: **UN ECE R100** and **UN ECE R100 Annex 4**) | Uniform provisions concerning approval of **road vehicles** with regard to electric-power-train requirements | Vehicle approval; **Annex 4** mechanical/crush tests behind the wall-thickness guidance; topology-aware isolation resistance: **100 Ω/V for a DC bus** and **500 Ω/V for an AC bus**, with the connected AC/DC cases resolved from the protection topology. The tool does not infer 500 Ω/V merely because charging equipment exists and does not transfer this vehicle rule to a marine IT system | `standards.js`, `architecture.js`, `engineering.js` |
| **UN ECE R10** | Electromagnetic compatibility | Vehicle and auxiliary classes | `standards.js` |
| **UNECE R107** | Uniform provisions for M2/M3 vehicles (buses and coaches) — general construction | The bus-specific vehicle approval an electric bus's certification path mentions alongside the EV traction route ("where applicable") | `standards.js` |
| **FMVSS 305 / 305a** | US Federal Motor Vehicle Safety Standard No. 305 — electric-powered vehicles: electrolyte spillage and electrical shock protection (305a is the updated rule) | The US vehicle gate, the counterpart to ECE R100 in the EU checklist | `markets.js` |
| **ISO 6469-1** | Electrically propelled road vehicles — Safety specifications — Part 1: Rechargeable energy storage system | Vehicle RESS requirements | `standards.js` |
| **ISO 9223:2012** | Corrosion of metals and alloys — Corrosivity of atmospheres — Classification, determination and estimation | The corrosivity categories C1–CX and the first-year corrosion rates of steel, zinc, copper and aluminium (the upper bound of each band) that set the site class of the corrosion-over-life study | `corrosion.js` |
| **ISO 9224:2012** | Corrosion of metals and alloys — Corrosivity of atmospheres — Guiding values for the corrosivity categories | The time exponents of the power law (steel 0.523, zinc 0.813, copper 0.667, aluminium 0.728) the study grows every surface with | `corrosion.js` |
| **ASTM G82** | Standard Guide for Development and Use of a Galvanic Series for Predicting Galvanic Corrosion Performance | The practice behind the anodic-index couple rule and the order-of-magnitude galvanic acceleration the study labels as class-typical | `corrosion.js` |
| **ISO 6469-3** | Electrically propelled road vehicles — Safety specifications — Part 3: Electrical safety | Road-vehicle electrical-safety context and the **0.1 Ω** continuity limit between exposed conductive parts, measured at ≥0.2 A, used by the bonding check. It is not presented as a competing blanket 100 Ω/V value against a blanket UN R100 500 Ω/V value | `architecture.js`, `grounding.js` |
| **ISO 12405** | Test specification for lithium-ion traction battery packs and systems | Vehicle pack testing | `standards.js` |
| **UN ECE R100 Annex 8B** (the vibration test of the same regulation) | Vibration test for the REESS: sinusoidal logarithmic sweep 7–50 Hz and back in 15 minutes, twelve cycles, vertical axis, 1.0 g at 7–18 Hz falling to 0.2 g at 30–50 Hz per Table 1 | The road-vehicle sine-sweep profile of the vibration screen, interpolated between the table points on a logarithmic frequency axis; the result carries the instruction to verify the edition (R100.02 and R100.03 agree on the table) | `vibration.js` |
| **IACS UR E10** | Unified Requirement E10 — test specification for type approval of electrical equipment on ships: vibration ±1.0 mm from 2 to 13.2 Hz and 0.7 g from 13.2 to 100 Hz in general locations; ±1.6 mm to 25 Hz and 4.0 g to 100 Hz on engines, masts and severe locations | The marine sine-sweep profiles of the vibration screen (hull versus severe mounting); class-society rules (DNV, LR, BV) adopt the same levels | `vibration.js` |
| **ISO 16750-3** | Road vehicles — environmental conditions and testing for electrical and electronic equipment — Part 3: mechanical loads | Named as the road random-vibration qualification behind the class-typical body-mounted envelope of the vibration screen; its spectral-density tables are not reproduced (§8) | `vibration.js` |
| **SAE J2380** | Vibration testing of electric vehicle batteries | Named beside ISO 16750-3 as the shape behind the class-typical road random envelope; its profiles are not reproduced (§8) | `vibration.js` |
| **IEC 60068-2-6 / IEC 60068-2-64** | Environmental testing — Part 2-6: sinusoidal vibration (Fc); Part 2-64: broadband random vibration (Fh) | The generic sine and random methods named behind the class-typical light-mobility and industrial random envelopes of the vibration screen (§8) | `vibration.js` |
| **ISO 898-1** | Mechanical properties of fasteners made of carbon steel and alloy steel — Part 1: bolts, screws and studs | Proof stress per property class (8.8: 580 MPa, 10.9: 830 MPa, 12.9: 970 MPa up to M16) and the coarse-thread tensile stress areas (M6 20.1 to M16 157 mm²) behind the fastener separation check of the vibration screen | `vibration.js` |
| **ISO 26262** | Road vehicles — Functional safety (ASIL) | BMS functional-safety expectation per hazard analysis | `standards.js`, `architecture.js` |
| **IEC 61508** | Functional safety of electrical/electronic/programmable electronic safety-related systems | Industrial functional-safety counterpart | `standards.js` |
| **IEC 60664-1** | Insulation coordination for equipment within low-voltage systems — Part 1 | Creepage and clearance requirements by voltage and pollution degree | `engineering.js` |
| **EN 15194** | Cycles — Electrically power assisted cycles (EPAC) | E-bike class | `standards.js` |
| **EN 50604-1** | Secondary lithium batteries for light EV applications | Light electric vehicles | `standards.js` |
| **EN 1175** | Safety of industrial trucks — Electrical requirements | Industrial trucks | `standards.js` |
| **ISO 3691-4** | Industrial trucks — Safety requirements and verification — Part 4: Driverless industrial trucks | AGV / driverless trucks | `standards.js` |
| **Machinery Directive 2006/42/EC** (superseded by **Machinery Regulation (EU) 2023/1230**, applying from January 2027) | Essential health and safety requirements for machinery placed on the EU market | The EU gate for AGVs, AMRs and humanoid platforms — the machine, not the battery, is what is certified | `markets.js` |
| **ANSI/ITSDF B56.5** | Safety standard for driverless, automatic guided industrial vehicles and automated functions of manned industrial vehicles | The US counterpart for driverless industrial vehicles | `markets.js` |
| **ABYC E-13** | Lithium-ion batteries (American Boat & Yacht Council) | Marine class | `standards.js` |
| **Class society type approval** — DNV, Lloyd's Register, Bureau Veritas (and equivalents) | Battery-system type approval under the society's own rules | For commercial vessels the **class society is the gate**, not a product norm — the checklist says so explicitly | `markets.js` |
| **MGN 550** | UK Maritime & Coastguard Agency Marine Guidance Note for battery-powered vessels | UK marine expectation | `markets.js` |
| **USCG** requirements / class approval | United States Coast Guard commercial-vessel requirements | US marine gate | `markets.js` |

### 3.1 NTNU TwinShip and the marine vessel workspace

| Primary source | What it establishes | Used for | Module |
|---|---|---|---|
| NTNU Intelligent Systems Lab, [*Digital Twins for Vessel Life Cycle Service (TwinShip)*](https://intelligentsystemslab.org.ntnu.no/project/twinship.html), 2018–2021 | The project's stated scope: an open vessel co-simulation/digital-twin platform spanning design, operation and maintenance; prediction/early warning; and subsystem/operation verification demonstrators | Project identity, lifecycle scope and the boundary between a research architecture and a finished product | `marine-workspace.js`, `addons.js` |
| Hatledal et al., [*Co-simulation as a Fundamental Technology for Twin Ships*](https://www.mic-journal.no/PDF/2020/MIC-2020-4-2.pdf), *Modeling, Identification and Control* 41(4), 2020 | FMI 1.0/2.0 co-simulation, SSP system configuration, a central orchestration master, 48 model-variable connections and the preliminary R/V Gunnerus replay case comparing measured and simulated course, speed and propulsion power | Component/signal architecture, governed replay outputs and model-maturity limits; the product's 11 visible links are explicitly a logical-family abstraction, not the paper's SSP graph | `marine-workspace.js`, `api.js`, `report.js` |
| NTNU TwinShip [work package 1](https://hozh.folk.ntnu.no/Project-KPN/wp1.html), [work package 2](https://hozh.folk.ntnu.no/Project-KPN/wp2.html) and [work package 3](https://hozh.folk.ntnu.no/Project-KPN/wp3.html) | Model/data interfaces and HIL; storage, prediction, PHM and optimization; and thruster/DP verification demonstrators | Browser-versus-desktop execution boundary and roadmap context | `marine-workspace.js`, `addons.js` |
| NTNU, [*R/V Gunnerus technical specifications*](https://www.ntnu.edu/documents/1262202806/0/Specifications%2BRV%2BGUNNERUS.pdf/6a6540e0-00ae-b7a2-a51d-bf365302bf61?t=1584611463564) | Current sheet: 24.90 m waterline length and 72 t deadweight, plus dimensions, propulsion units, generator sets, bow thruster and speed data. The TwinShip paper's Table 2 instead reports 29.90 m and 165 t. | The named Gunnerus model uses the current technical sheet, records both conflicting published values and requires owner/as-built reconciliation for release; deadweight is not silently treated as displacement or lightship mass | `vessels.js`, `marine.js` |
| NTNU, [*milliAmpere: An Autonomous Ferry Prototype*](https://torarnj.folk.ntnu.no/icmass%20milliampere%202022.pdf) | Published prototype dimensions, light weight, passenger count, two 2 kW azimuth units, speed, 24 V/24 kWh battery and stated endurance | The named milliAmpere1 model and its published-point mission defaults | `vessels.js`, `marine.js` |

TwinShip is used as an **architecture and research-demonstrator reference**.
It does not supply this project with a certified marine battery model, a
production battery retrofit for Gunnerus, or proof of a live digital twin. The
published Gunnerus exercise was preliminary and replayed recorded data; it
omitted environmental current and the bow tunnel thruster, simplified the aft
thruster commands, and identified further hull-model tuning/validation as
necessary. Accordingly, `marine-workspace.js` reports screening, calibrated,
validated and digital-twin maturity separately; replay residuals are early
warning evidence rather than named fault isolation, and class approval remains
outside the software result.

### 3.2 Named refurbishment-vehicle starting points

The garage catalog preserves the five names used by the earlier visual report
and adds seventeen distinct donor-car variants. A row establishes only the exact
identity, the manufacturer's stated battery facts and overall dimensions used
by the original procedural PBR visual. It does **not** establish a battery-bay
envelope, electrical/BMS compatibility, cooling compatibility, crash retention
or approval. `refurbishment-vehicles.js` keeps those five gates `unproven` for
every selection. A capacity described only as “kWh” by its manufacturer is
stored as `manufacturer-stated-unclassified`; it is never silently relabelled
gross or usable.

| Cohort | Exact variant | Manufacturer battery statement | Primary evidence |
|---|---|---|---|
| Prior five | Tesla Model 3 Long Range AWD, MY2020 | kWh not published; 355 V liquid-cooled Li-ion context only | Tesla [2017–2023 dimensions](https://www.tesla.com/ownersmanual/2017_2023_model3/en_us/GUID-56562137-FC31-4110-A13C-9A9FC6657BF0.html), [subsystem specification](https://www.tesla.com/ownersmanual/2017_2023_model3/en_us/GUID-E414862C-CFA1-4A0B-9548-BE21C32CAA58.html) and [Long Range dual-motor identity](https://www.tesla.com/en_gb/support/power-consumption) |
| Prior five | Nissan LEAF 40 kWh, MY2018 | 40 kWh, gross/usable basis not classified | Nissan, [*The new Nissan LEAF*](https://global.nissannews.com/en/releases/170906-01-e) |
| Prior five | BYD ATTO 3 60.48 kWh Blade Battery, MY2024 | 60.48 kWh LFP Blade, gross/usable basis not classified | BYD, [ATTO 3 European specification](https://www.byd.com/eu/electric-cars/atto3) |
| Prior five | BMW i3 94 Ah BEV, MY2017 | 33 kWh total / 27.2 kWh usable; eight 12-cell modules | BMW, [2017 i3 94 Ah release](https://www.press.bmwgroup.com/usa/article/detail/T0259560EN_US/the-new-2017-bmw-i3-94-ah-%3A-more-range-paired-to-high-level-dynamic-performance?language=en_US) and [07/2016 technical dimensions](https://www.press.bmwgroup.com/global/article/attachment/T0259598EN/359587) |
| Prior five | Chevrolet Bolt EV, MY2020 | 66 kWh Li-ion, 288 cells; gross/usable basis not classified | Chevrolet, [2020 Bolt EV release and specification](https://news.chevrolet.com/newsroom.detail.html/Pages/news/us/en/2019/aug/0822-boltev.html) |
| New | Renault ZOE ZE50 R135, MY2020 | 52 kWh usable | Renault, [ZE50/R135 launch specification](https://media.renault.com/nouvelle-renault-zoe-devoile-ses-tarifs-en-france/?lang=fra) and [contemporaneous UK brochure](https://cdn.group.renault.com/ren/gb/renault-new-cars/editorial/global-range/new-zoe/RE29156_New%20ZOE_eBrochure_Q1_V3.pdf.asset.pdf/1576230497057.pdf?modelAdminId=zoe-b10-ph2) |
| New | Volkswagen e-Golf 35.8 kWh, MY2019 | 35.8 kWh, gross/usable basis not classified | Volkswagen, [e-Golf key aspects](https://www.volkswagen-newsroom.com/en/the-e-golf-iaa-international-motor-show-5344/key-aspects-5345) and [Golf 7 vehicle data](https://www.volkswagen-newsroom.com/en/vehicle-data-golf-7-profile-20039) |
| New | Nissan e-NV200 Evalia 40 kWh, MY2018 | 40 kWh, gross/usable basis not classified | Nissan, [upgraded e-NV200 European specification](https://global.nissannews.com/en/releases/upgraded-nissan-e-nv200-makes-zero-emission-last-mile-delivery-a-reality-across-europe) |
| New | Hyundai IONIQ Electric 38.3 kWh, MY2020 | 38.3 kWh Li-ion polymer, gross/usable basis not classified | Hyundai, [IONIQ Electric specification](https://www.hyundai.com/eu/en/models/ioniq-electric/Features.html) and [official dimensioned model release](https://www.hyundai.news/uk/articles/press-releases/new-ioniq-hyundais-revolutionary-eco-friendly-model.html) |
| New | Kia e-Soul 64 kWh, MY2020 | 64 kWh Li-ion polymer, gross/usable basis not classified | Kia, [European launch specification](https://www.kiapressoffice.com/releases/1049) |
| New | Honda e 35.5 kWh, MY2020 | 35.5 kWh water-cooled Li-ion, gross/usable basis not classified | Honda, [2020 Honda e press kit](https://hondanews.eu/gb/en/cars/media/documenttext/199613/2020-honda-e-press-kit-1) |
| New | Mazda MX-30 e-Skyactiv 35.5 kWh, MY2021 | 35.5 kWh total | Mazda, [UK range and specification](https://uk.mazda-press.com/news/2020/mazda-reveals-full-uk-range-and-pricing-for-the-forthcoming-mx-30-ev/?year=2020&year=2020) |
| New | Fiat New 500 Icon Hatchback 42 kWh, MY2021 | 42 kWh gross / 37.3 kWh usable | Fiat/Stellantis, [MY2021 technical data](https://www.media.stellantis.com/uploads/pl/model-pricelist/cenniknowyfiat500my21rp21010721-60e2df4b568e7.pdf) |
| New | Peugeot e-208 GT 50 kWh, MY2021 | 50 kWh, gross/usable basis not classified | Peugeot/Stellantis, [electric e-208 launch](https://www.media.stellantis.com/uk-en/peugeot/press/peugeot-brings-fully-electric-stand-to-geneva-including-two-world-premieres-all-new-electric-e-208-and-508-peugeot-sport-engineered-concept) and [GT technical data](https://www.media.stellantis.com/uploads/br/attachment/3777/fichatecnicapeugeote208gt6286688cd6680-63235de5d8a3d.pdf) |
| New | Polestar 2 Long Range Dual Motor 78 kWh, MY2021 | 78 kWh, 27 modules | Polestar, [MY2021 fleet specification](https://www.polestar.com/dato-assets/11286/1621929990-fleetpolestar-2brochure2021-04-12chde.pdf) |
| New | Jaguar I-PACE EV400 AWD 90 kWh, MY2022 | 90 kWh, 432 pouch cells | Jaguar, [22MY technical data](https://jlrnewsroom.media/wp-content/uploads/2021/04/Jaguar-I-PACE-22MY-Technical-Data.pdf) and [body-width specification](https://www.jaguar.com/en-ca/jdx/all-models/i-pace/specifications/index.html) |
| New | Audi e-tron 55 quattro Technik, MY2021 | 95 kWh gross / 86 kWh net | Audi, [MY2021 UK technical data](https://press.audi.co.uk/assets/documents/original/23933-Audietron55quattroUKTechnicalDataOctober2021.pdf) |
| New | Tesla Model Y Long Range AWD, MY2021 | kWh not published by Tesla for the exact variant | Tesla, [2020–2024 Model Y dimensions](https://www.tesla.com/ownersmanual/2020_2024_modely/en_us/GUID-E47C4A6D-528E-419C-8C57-FD3864644C34.html) and [Long Range AWD configuration identity](https://www.tesla.com/en_gb/support/power-consumption) |
| New | Hyundai KONA Electric Long-range 64 kWh, MY2020 | 64 kWh Li-ion and 356 V; gross/usable basis not classified | Hyundai, [2020 product overview](https://www.hyundai.news/uk/press-kit-archive/kona-electric-2020/the-kona-electric-product-overview.html), [pre-facelift dimensions](https://www.hyundai.news/uk/press-kit-archive/kona-electric-2020/the-kona-electric-design.html) and [20MY technical specification](https://www.hyundai.com/kr/ko/vehicles/kona-electric/20my/specifications.html) |
| New | Kia e-Niro Long Range 64 kWh, MY2020 | 64 kWh Li-ion polymer and 356 V; gross/usable basis not classified | Kia, [European launch specification](https://www.kiapressoffice.com/releases/1012), [June 2020 commercial release](https://press.kia.com/content/dam/kiapress/FR/Communiques_de_presse_fr/2020/e-niro-64kwh/Le%20Kia%20e-Niro%2064%20kWh%20d%C3%A8s%2047%20euros%20par%20mois%20seulement%20%21.pdf) and [European technical specification](https://press.kia.com/es/es/home/notas-de-prensa/press-kits/2019/kia-e-niro.html) |
| New | Volkswagen ID.3 Pro Performance 58 kWh, MY2021 | 58 kWh net; nine 24-cell modules | Volkswagen, [Pro Performance technical data](https://www.volkswagen-newsroom.com/en/the-new-id3-6240/technical-data-6249) and [MEB battery-system architecture](https://www.volkswagen-newsroom.com/en/press-releases/long-range-and-rapid-charging-the-battery-system-is-at-the-heart-of-the-volkswagen-id3-id4-and-id4-gtx-7130) |
| New | Ford Mustang Mach-E Extended Range AWD, MY2021 | 88 kWh usable / 98.7 kWh installed, 376 Li-ion cells | Ford, [European technical specification](https://www.fordpers.be/editor/files/ford_mustang_mach_e_2020_techspecs_eu_2.pdf); Ford's [NHTSA 23V-687 / 23S56 submission](https://static.nhtsa.gov/odi/rcl/2023/RCLRPT-23V687-1334.PDF) governs the extended-range HVBJB recall caveat |

## 4 · China

| Reference | Title / scope | Used for | Module |
|---|---|---|---|
| **GB 38031** (2020; **2025** revision) | Electric vehicles traction battery safety requirements. The 2025 revision requires no fire and no explosion after an internal thermal runaway event | China vehicle gate; the note that this requirement is chemistry-blind but harder for high-nickel packs | `markets.js` |
| **GB 18384** | Safety requirements for electric vehicles | China vehicle gate | `markets.js` |
| **GB/T 31498** | Post-crash safety requirements for electric vehicles | China vehicle gate | `markets.js` |
| **GB/T 36276** | Lithium-ion battery for electrical energy storage | China stationary storage | `markets.js` |
| **GB 42295** (with CCC compulsory certification) | Electric bicycles — electrical safety requirements | China light-means-of-transport gate | `markets.js` |
| **GB 31241** | Lithium-ion cells and batteries used in portable electronic equipment — safety requirements | China portable-class gate | `markets.js` |
| **CCS rules** | China Classification Society rules for battery system approval | China marine gate | `markets.js` |
| **MIIT recommended-vehicle catalogue practice** | Since 2017, catalogue practice has kept NMC/NCA out of urban e-buses on safety grounds; programmes ship LFP or LTO | The **blocker** raised for a Chinese e-bus on NMC. This is administrative *practice*, not a published prohibition — the tool says so and tells you to verify the current catalogue before committing a chemistry | `markets.js` |

## 5 · Communication, control and grid interface

| Reference | Scope | Used for | Module |
|---|---|---|---|
| **ISO 11898** | Road vehicles — Controller area network (CAN) | Vehicle bus | `architecture.js` |
| **ISO 14229 (UDS)** | Unified diagnostic services | Road-vehicle diagnostics. UDS can be one implementation path for current state-of-health data, but Regulation (EU) 2023/1542 Articles 14 and 77 do **not** mandate this protocol and a UDS label alone does not prove passport compliance | `architecture.js`, `eurules.js` |
| **ISO 15118 / DIN 70121** | Vehicle-to-grid communication interface / DC charging communication | Charge-session control in the supervisory layer | `architecture.js` |
| **SAE J1939** | Serial control and communications heavy-duty vehicle network | Buses, trucks, lift trucks | `architecture.js` |
| **CANopen (CiA)** | Industrial device profile | AGVs and industrial trucks | `architecture.js` |
| **Modbus / SunSpec** | Field bus and DER information models | Stationary storage and inverters | `architecture.js` |
| **IEC 61850** | Communication networks and systems for power utility automation | Utility-scale storage interface | `architecture.js` |
| **NMEA 2000** | Marine electronics network | Marine systems | `architecture.js` |
| **IEEE 2030.7** | Standard for the specification of microgrid controllers | The three-level (primary / secondary / tertiary) hierarchical EMS architecture and its timescales | `architecture.js` |
| **IEC 61851-1** | Electric vehicle conductive charging system — Part 1: General requirements (charging modes, control pilot) | The AC charging baseline behind the connector/comms rows | `charging.js` |
| **IEC 62196-2** | Plugs, socket-outlets, vehicle connectors — Part 2: AC pin and contact-tube accessories (Type 2) | The EU AC connector | `charging.js` |
| **IEC 62196-3** | Part 3: DC and AC/DC pin and contact-tube vehicle couplers (CCS) | The EU DC fast-charge coupler | `charging.js` |
| **SAE J1772** | SAE electric vehicle conductive charge coupler | The North American AC connector and pilot | `charging.js` |
| **SAE J3400** | NACS electric vehicle coupler | The North American NACS connector | `charging.js` |
| **GB/T 20234** (.2 AC, .3 DC) | Connection set for conductive charging of electric vehicles | The China AC and DC connectors | `charging.js` |
| **GB/T 27930** | Communication protocols between off-board conductive charger and battery management system | China charge communication | `charging.js` |
| **ISO 15118-20** | Road vehicles — vehicle to grid communication interface — Part 20: 2nd generation network layer and application protocol requirements | Bidirectional power transfer (BPT) — the charge-session standard behind V2G over CCS | `v2x.js` |
| **CHAdeMO** | CHAdeMO DC charging protocol (bidirectional since 1.0) | The other established V2G session route | `v2x.js` |
| **IEEE 1547** | Standard for interconnection and interoperability of distributed energy resources with associated electric power systems interfaces | What the grid-facing inverter must satisfy before a vehicle may export | `v2x.js` |
| **UL 1741 (+SA/SB)** | Inverters, converters, controllers and interconnection system equipment for use with distributed energy resources | North American certification of the grid-tied inverter path | `v2x.js` |
| **UL 9741** | Bidirectional electric vehicle charging system equipment | The bidirectional EVSE class behind V2H/V2G installations | `v2x.js` |
| **EN 50549-1/-2** | Requirements for generating plants to be connected in parallel with distribution networks | The EU grid-code gate: exporting makes the machine a generating plant | `v2x.js`, `markets.js` |
| **IEC 62109** | Safety of power converters for use in photovoltaic power systems | Equipment safety for the inverter behind a V2L output | `v2x.js` |
| **IEC 60364-4-41** | Low-voltage electrical installations — protection against electric shock | Residual-current protection on a socket that has become a source | `v2x.js` |

## 6 · Regulation

| Reference | Scope | Used for | Module |
|---|---|---|---|
| [**Regulation (EU) 2023/1542 — consolidated 31 July 2025**](https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:02023R1542-20250731) | Batteries and waste batteries (repealing Directive 2006/66/EC) | The Rules tab timeline and applicability: Article 7 carbon dates use the latest nominal-or-dependent-act date and remain unresolved when an entry-into-force date is missing; Article 77 passport for LMT batteries, EV batteries and industrial batteries >2 kWh from 18 February 2027; Article 14 state-of-health access; recycled-content targets; and the deliberately separate **recycling efficiency** and **material recovery** metrics. Non-EV/LMT applications require a declared battery category rather than an energy-based industrial guess | `eurules.js` |
| [**Regulation (EU) 2025/1561**](https://eur-lex.europa.eu/eli/reg/2025/1561/oj/eng) | Amendment to battery due-diligence timing | Supersedes the former Article 48(1) date with 18 August 2027 and the former Article 48(5) Commission-guidance deadline with 26 July 2026. The guidance deadline is modeled separately and does not gate operator obligations; the design check leaves Article 47 company scope and product-history conditions to company-level evidence | `eurules.js` |

## 7 · Literature, data sources and prior art

### 7.1 Papers

- **Abramowicz, W., & Jones, N. (1984).**
  *Dynamic axial crushing of square tubes.* International Journal of Impact Engineering, 2(2), 179–208.
  The mean crushing force of a thin-walled square column, P_m = 13.06·σ₀·b^(1/3)·t^(5/3), that the crush & intrusion screen (`crush.js`) uses for the cross members; the first-fold peak over the mean is a class-typical 1.5 (§8).

- **Lee, S. S., Kim, T. H., Hu, S. J., Cai, W. W., & Abell, J. A. (2010).**
  *Joining Technologies for Automotive Lithium-Ion Battery Manufacturing – A Review.*
  ASME 2010 International Manufacturing Science and Engineering Conference,
  **MSEC2010-34168**. — Basis for the welding/joining recommendation per cell
  format (resistance spot for cylindrical, laser for prismatic terminals,
  ultrasonic for pouch tabs) and the cautions attached to each. → `architecture.js`
- **IEC 60949 / IEC 60364-4-43 — adiabatic conductor rule.** *Calculation of
  thermally permissible short-circuit currents.* — The rule the busbar study
  uses: a conductor survives a fault if I²t ≤ (k·A)², with k in A·√s/mm²
  depending on the conductor material and what it is insulated with (≈115 for
  PVC-insulated copper, ≈143 for XLPE, ≈226 for bare copper). The tool exposes
  k as an input rather than fixing it, because it is a design choice.
  The standard also gives k itself as a formula rather than a table —
  k = √( Q<sub>c</sub>/(α₂₀·ρ₂₀) · ln((β+θ<sub>f</sub>)/(β+θ<sub>i</sub>)) ),
  β = 1/α₂₀ − 20 — and `adiabaticK()` implements it so that a bonding strap
  which is not copper is judged on its own properties instead of borrowing
  copper's number. It reproduces all three published copper values (115, 143,
  228) and the bare-aluminium one (≈148) to within a unit, which is pinned by
  test. → `shortcircuit.js`, `materials.js`, `grounding.js`
- **Plett, G. L. (2015).** *Battery Management Systems, Volume I: Battery
  Modeling.* Artech House. — The **equivalent-circuit** model family used by
  the level-2 simulation: OCV plus a series resistance plus N parallel RC
  branches, with state-of-charge and temperature dependence, and the
  one-state hysteresis treatment. → `sim2.js`
- **Ionworks Technologies (2024).** [*How to debug your battery
  design*](https://github.com/ionworks/how-to-debug-your-battery), MIT
  licensed. — The measurement-led sequence behind `batteryDiagnosticPlan()`:
  establish OCV first, separate the instantaneous voltage step from slower
  relaxation, and only then interpret the remaining model mismatch. The
  repository is cited as background; its notebook code and PyBaMM model are
  not copied or vendored. → `diagnostics.js`
- **Hymel, S.** [*TinyML example: anomaly
  detection*](https://github.com/ShawnHymel/tinyml-example-anomaly-detection).
  — Demonstrates collecting healthy vibration across normal operating modes,
  extracting small edge features, starting with Mahalanobis distance and
  evaluating an autoencoder only when data supports it. The project describes
  its code as Beerware, so this project copies no source; it uses only the
  general method and provides its own implementation guidance. → `diagnostics.js`
- **Bernardi, D., Pawlikowski, E., & Newman, J. (1985).** *A General Energy
  Balance for Battery Systems.* Journal of the Electrochemical Society,
  132(1), 5–12. — The heat-generation balance the thermal model uses:
  irreversible I²R plus the **reversible entropic term** I·T·(dU/dT), which
  changes sign between charge and discharge. Omitting it is why simple models
  cannot explain measured charge-side cooling. → `sim2.js`
- **Doyle, M., Fuller, T. F., & Newman, J. (1993).** *Modeling of
  Galvanostatic Charge and Discharge of the Lithium/Polymer/Insertion Cell.*
  J. Electrochem. Soc., 140(6), 1526. — The pseudo-two-dimensional (P2D)
  electrochemical model. Cited for what the tool deliberately does **not**
  do: there is no concentration or diffusion state anywhere in `sim2.js`, and
  the assumptions list says so on every run. → not implemented, by choice
- **Incropera & DeWitt, *Fundamentals of Heat and Mass Transfer*.** — The
  **ε-NTU** effectiveness relation used for the coolant stream,
  ε = 1 − exp(−hA/ṁc_p). It is what makes a stopped pump remove no heat and a
  fast pump be limited by the plate rather than the flow. → `sim2.js`
- **Nelder, J. A., & Mead, R. (1965).** *A Simplex Method for Function
  Minimization.* The Computer Journal, 7(4), 308–313. — The **Nelder-Mead**
  simplex: the derivative-free optimiser behind `calibrate()`, which fits
  model parameters to the user's own measured current/voltage/temperature
  data. → `sim2.js`
- **Wang, J. et al. (2011).** *Cycle-life model for graphite-LiFePO4 cells.*
  Journal of Power Sources, 196(8), 3942–3948. — The form of the **calendar
  and cycle aging** law: power-law in time and throughput with Arrhenius
  temperature weighting. The tool uses this SHAPE with class-typical
  coefficients, which is why calibration against your own cycling data is the
  documented route to trustworthy numbers. → `sim2.js`
- **Gillespie, T. D. (1992).** *Fundamentals of Vehicle Dynamics.* SAE
  International, **R-114**. — The road-load equation the vehicle model
  integrates: rolling resistance, aerodynamic drag, grade and inertial terms,
  and the rotating-mass factor that makes acceleration cost more than m·a.
  → `vehicle.js`
- **Ehsani, M., Gao, Y., Longo, S., & Ebrahimi, K. (2018).** *Modern Electric,
  Hybrid Electric, and Fuel Cell Vehicles* (3rd ed.). CRC Press. — Drivetrain
  efficiency and regenerative-braking recovery treated as fractions of wheel
  power, which is how the tool books regen against braking energy. → `vehicle.js`
- **UNECE Global Technical Regulation No. 15 (WLTP).** — The published Class 3
  cycle STRUCTURE used by the EV speed trace: four phases (Low / Medium / High /
  Extra-High), their durations, distances and peak speeds. The tool synthesizes
  a trace that matches those published aggregates; it does not reproduce the
  homologation second-by-second data. → `vehicle.js`
- **Microgrid EMS literature (survey-level).** The centralized / hierarchical /
  distributed families, and the finding that no universal crossover between them
  exists — which is why the tool treats the choice as an input with a
  scale-based suggestion rather than a computed answer. → `architecture.js`

### 7.2 Cell data

Cell records are transcribed from **public manufacturer datasheets** for:
A123 Systems · BYD (FinDreams) · CATL · EVE Energy · LG Energy Solution ·
Molicel (E-One Moli) · Panasonic · Panasonic/Tesla · Samsung SDI · Toshiba (SCiB).
Generic entries are labelled *Generic* and are class-typical, not a specific SKU.

Every cell carries a `sourceNote` naming the document and stating **exactly which
fields were estimated** rather than published, plus a `basis` / `inferredFields`
pair that the CI data gate (`tools/validate.mjs`) enforces. Several records were
extracted with the companion provenance-first pipeline,
[battery-data](https://github.com/morshedvarzandeh/battery-data).

*Customer-supplied cells never leave the device and are never published — see the
privacy note in `js/mycells.js`.*

### 7.3 Component and supplier classes

`js/components.js` describes **market-representative classes** (busbar and cell
contact systems, spacers/holders, venting, cooling, thermal interface materials,
enclosures) with example suppliers named for orientation. Properties are
class-typical ranges from public supplier literature, not a quotation for a
specific part number, and each entry states its `dataQuality`.

### 7.4 Patent landscape

`js/patents.js` maps a design to families of publicly filed prior art —
cell-to-pack structures (BYD Blade, CATL CTP), serpentine ribbon cooling and
tabless electrodes (Tesla), wire-bond interconnects, immersion cooling,
phase-change matrices, aerogel barriers, cell vent channels, flex-PCB cell
contact systems, structural packs. **Every entry links to Google Patents only**,
and the module carries an explicit disclaimer: this is landscape awareness for
design conversations, **not** a freedom-to-operate opinion. Get an attorney for
that.

### 7.5 Aviation (eVTOL)

An eVTOL battery is qualified as **airborne equipment**, not as a vehicle pack.
None of the automotive instruments apply, and the certification basis is issued
against the aircraft rather than against the battery.

| What it governs | Instrument |
|---|---|
| Rechargeable lithium batteries and battery systems, airborne | RTCA DO-311A |
| Environmental qualification (vibration §8, fire/flammability §26, EMC/lightning §20–22) | RTCA DO-160G |
| Certification basis, EU small-category VTOL | EASA SC-VTOL-01 |
| Means of compliance for the above | EASA MOC SC-VTOL |
| Certification basis, US | 14 CFR 21.17(b) special class — powered-lift airworthiness criteria, issued per applicant |
| Powered-lift operating and airman rules, US | FAA SFAR for powered-lift |
| Certification basis, China | CAAC type certification (no separate published national battery norm for the class) |
| Software and complex hardware assurance for a flight-critical BMS | RTCA DO-178C / DO-254 |
| Transport by air | ICAO Technical Instructions; UN 38.3 test report |

The powered-lift basis is deliberately described as *issued per applicant*
rather than named as a single rule, because it is: the criteria for one
aircraft are not the criteria for another, and the tool must not imply a
settled standard where none exists yet.

---

### 7.5b Motorsport (karting, Formula Student, Formula 1)

A racing battery is released by a **scrutineer against a rulebook**, not by a
market conformity mark. None of these machines is road-homologated, so ECE
R100 and its siblings do not apply — the class exists in the tool precisely so
they are never offered.

| What it governs | Instrument |
|---|---|
| Technical-regulations framework for every FIA-sanctioned category | FIA International Sporting Code, Appendix J |
| F1 ERS energy store — mass window, per-lap energy accounting, safety provisions | FIA Formula 1 Technical Regulations (power-unit articles) |
| FS accumulator — 600 V ceiling, 80 kW cap, segments, AMS/IMD/TSAL, charging area | Formula Student Rules, EV section (Formula Student Germany publishes the reference edition) |
| The same requirements at North American events | FSAE Rules, EV section |
| Competition electric karts | CIK-FIA Technical Regulations |
| Transport between events | UN 38.3 test report; IATA DGR PI 965 for fly-away races |

Rulebooks are revised season to season and clauses renumber, so the checklist
names the document and what it governs rather than freezing an article number
that next year moves. The current edition, from the series' own site, is the
only citable text.

---

### 7.6 Circular economy and end of life

| What it governs | Instrument |
|---|---|
| Recycling efficiency (65% by mass end-2025, 70% end-2030) | Regulation (EU) 2023/1542, Annex XII Part B |
| Per-element recovery (Li 50%/80%, Co-Cu-Ni-Pb 90%/95%) | Regulation (EU) 2023/1542, Annex XII Part C |
| Digital battery passport, from 18 February 2027; current state-of-health data access without a mandated communications protocol | Regulation (EU) 2023/1542, Articles 14 and 77–78 |
| Extended producer responsibility and free take-back | Regulation (EU) 2023/1542, Articles 56–58 |
| Prohibition on landfill and incineration of waste batteries | Regulation (EU) 2023/1542, Article 61 |
| Lithium batteries in transport (UN 3480 / UN 3481, Class 9) | UN Model Regulations; ADR / IMDG / IATA-DGR as adopted locally |
| Damaged or defective cells in transport | UN Model Regulations SP 376/377; packing instructions P908, P911 |
| Waste batteries crossing a border | Basel Convention, Annex VIII A1170 / Annex IX B1090 |
| US federal handling of spent lithium batteries | 40 CFR Part 273 (universal waste), plus state EPR statutes |
| China EV battery traceability and recycling | MIIT interim measures (2018) and the national traceability platform |
| New-pack price anchor | BloombergNEF annual lithium-ion battery price survey (volume-weighted average pack price) |

---

### 7.7 Market validation anchor

`tools/validate-vs-market.mjs` checks the whole chain against a **production
pack**: the Tesla Model 3 Long Range (4,416 × 2170 cells, 96S46P, ~78 kWh
nominal). The same bay geometry admits ~6,956 cells, so the manufacturer
realises ~64% of the geometric ideal — the origin of the tool's default **35%
integration allowance** for structure, manifolds and crash provision. This gate
runs on every change; the modelled pack must land within 1% of the real one.

### 7.7 Sensata high-voltage startup, sensing and fast protection

The electrical-protection calculators in `js/electrical-protection.js` use
official Sensata material as worked engineering references:

| Module | Primary source | What is used |
|---|---|---|
| Precharge resistor and sequence | Sensata, [*How to Design a Precharge Circuit for Hybrid and Electric Vehicle Applications*](https://www.sensata.com/sites/default/files/a/sensata-how-to-design-precharge-circuits-evs-whitepaper.pdf), WP-00012, 12 November 2020 | RC voltage/current curves, five-time-constant guidance, resistor energy and power, tolerance/temperature validation, startup sequence, voltage-envelope diagnostics and repeated-start risk |
| Precharge contactor screening | Sensata, [*GIGAVAC Contactors Selection Guide*](https://www.sensata.com/sites/default/files/a/sensata-gigavac-contactors-selection-guide.pdf) | P105/P115/P125/P195 catalogue voltage and continuous-current screening. Make current, switching life and environmental qualification remain mandatory part-specific inputs. |
| Current shunt | Sensata/Sendyne, [*SFP200MOD Precision Current Measurement Module Datasheet*](https://www.sensata.com/sites/default/files/a/sensata-sfp200-current-and-voltage-module-datasheet.pdf), Preliminary Rev 1.7 | 18 µΩ shunt, total-error method, published continuous/peak limits, and separate 108 mm² busbar and 1/0 AWG cable thermal anchors |
| Fast fault interruption | Sensata, [*Maximizing Circuit Protection for Enhanced EV Safety*](https://www.sensata.com/sites/default/files/a/sensata-el-ev-pyrofuse-whitepaper.pdf), 2025 | Shunt-triggered overcurrent concept, the importance of circuit inductance, and the stated 2–5 ms example window. This is not treated as a rating for an unnamed PyroFuse. |

Sensata currently marks [SFP200](https://www.sensata.com/products/current-voltage-sensing/sfp200)
and [SFP203](https://www.sensata.com/products/current-voltage-sensing/sfp203-current-sensor)
obsolete. They are included only as archived, reproducible reference profiles;
the software will not return a green hardware selection until a current supplier
part and revision-controlled evidence replace them.

### 7.8 Architecture-wide ontology and semantic traceability

The ontology in `ontology/` and its dependency-free runtime in
`js/ontology.js` use these primary semantic-web contracts:

| Contract | Role in this project |
|---|---|
| W3C [RDF 1.1 Concepts](https://www.w3.org/TR/rdf11-concepts/) and [OWL 2 RL](https://www.w3.org/TR/owl2-profiles/) | Canonical graph meaning and a scalable reasoning profile. OWL is not used as a substitute for missing-data validation. |
| W3C [SHACL Recommendation](https://www.w3.org/TR/shacl/) | Closed-world calculation, release, twin and HIL profiles. The small JavaScript validator mirrors the calculation-ready subset in browser and Node. |
| W3C [JSON-LD 1.1](https://www.w3.org/TR/json-ld11/) | Portable browser, API, desktop, MCP and report graph exchange. |
| W3C [PROV-O](https://www.w3.org/TR/prov-o/) | Model-run, calculation, evidence, derivation and approval lineage. |
| [QUDT](https://www.qudt.org/pages/QUDToverviewPage.html) and [UCUM](https://ucum.org/ucum) | Explicit quantity kinds, units and interoperable unit codes. UCUM codes are used without changing their meaning. |
| W3C [SOSA/SSN](https://www.w3.org/TR/vocab-ssn/) | Physical sensor observations only. Simulated values remain engineering results, not observations. |
| W3C [SKOS](https://www.w3.org/TR/skos-reference/) and [OWL-Time](https://www.w3.org/TR/owl-time/) | Controlled vocabularies and time/session/voyage semantics. |

Neo4j output is a parameterized, validated property-graph projection. It is
not the ontology authority, and the software does not require a Neo4j server,
driver, credentials or network access. Battery-domain mappings may later align
to [BattINFO](https://github.com/BIG-MAP/BattINFO), but BattINFO is kept as a
separately versioned mapping target rather than used as the upper system
ontology. Supplier claims, physical observations, calculated results,
assumptions and approvals remain distinct even when they describe the same
engineering quantity.

---

## 8 · Assumptions with no public source

These are the numbers the tool uses that are **not** backed by a citation. They
are exposed as inputs wherever possible, and stated as estimates in the output.

| Assumption | Value used | Why it is not sourced |
|---|---|---|
| Cell DCIR, where unpublished | estimated per record | Most datasheets omit it; every estimate is flagged in the cell's `sourceNote` |
| Cell price | estimated per record | Prices are quotation- and volume-dependent; the workbook exposes the field so you can drop in your own quote |
| Pack interconnect resistance | 10–30 mΩ (default 20) | A 3× spread across busbars, joints, contactors, fuse and shunt — exposed as an input, never hidden |
| Contactor mass | ≈150 g + 1 g/A | A weak empirical fit (n = 23) for budgeting only; stated as such in the output |
| Chiller COP | 2.5 | Conservative automotive class value; exposed in the thermal model |
| Coolant properties | 50/50 water-glycol, c_p 3.6 kJ/(kg·K), ρ 1.07 kg/L, design ΔT 5 K | Standard class values; all exposed in the Excel workbook as named inputs |
| Manufacturing CO₂ footprint | 45–90 kg CO₂e per kWh by chemistry, carried as a 0.6–1.5× range | Literature-class estimates that vary by factory, grid and year by more than the difference between chemistries. Good for comparing options, not an audited LCA — the life-cycle module carries the spread rather than the midpoint and says so |
| Cold-capacity derate curve | 100% at ≥10 °C down to 62% at −30 °C, linear between points | A class curve for Li-ion, not a datasheet: real cold behaviour varies by chemistry, DCIR and heating strategy. Exposed as `coldCapacityFactor` in the duty-sizing engine, and every answer states the factor it used |
| Winter auxiliary factor | ×2 on the vehicle's auxiliary load when the climate's winter low is below 5 °C | HVAC-dominated auxiliaries roughly double to triple in winter (the e-bus vehicle note says why); the exact multiple is fleet- and climate-specific. Exposed as `winterAuxScale` |
| Motorsport preset envelopes | kart 4.5 kWh/30 kW/40 kg; FS 7 kWh/80 kW/60 kg; F1 ES 1.5 kWh/350 kW/25 kg | Kart and FS values are typical-class figures from public team and supplier material, not a datasheet; the F1 mass window and power figures follow the published technical regulations but the stored-energy figure is an estimate — teams do not publish it. All are editable inputs, and the F1 preset's own notes say the duty exceeds every commercial cell in the library |
| Circular-economy stage values | fractions of new-pack price, e.g. reused 0.35–0.60, repurposed 0.25–0.45, black mass 0.06–0.18 | There is no published price series for a used battery at a stage of life. The ranges are deliberately wide because the real spread is wide, and everything is anchored on the one figure that IS surveyed annually — pack price — so the model moves when that moves instead of going stale |
| Circular-economy step costs | per kWh of original nameplate: assess 12, repurpose 35, remanufacture 60, shred 22, refine 18 | Class-typical 2024–25 planning inputs for comparing routes against each other, not quotes. Absolute values depend on volume, contract and plant; the relative ordering — that assessment and logistics eat the margin — is the finding worth trusting |
| Place labour and logistics indices | relative multipliers around 1.0 per market | Relative is defensible from published cost-of-doing-business comparisons; an absolute wage or freight rate with a currency symbol in front of it would claim precision this does not have |
| Dangerous-goods transport rate | 0.0025 USD/kWh/km sound, 0.010 damaged | The 4× ratio reflects that P908/P911 is a different shipment — individually packed, non-combustible cushioning, no air freight — rather than a surcharge. The absolute rate is a planning figure |
| Second-life state-of-health thresholds | resale ≥80%, repurpose ≥70%, remanufacture ≥60% | Commonly quoted industry rules of thumb rather than a standard. Real thresholds are set by the receiving application's duty, and the module names the number it applied so it can be argued with |
| Host machine silhouettes | class-typical overall dimensions per generic machine kind (car 4.4 m, bus 12 m, small craft 7 m, …); named refurbishment cars use the cited overall dimensions in §3.2 | The 3D showroom needs somewhere to put the pack. A generic application host remains class-typical (or derives its cross-section from the exposed frontal-area input). A selected refurbishment car instead receives source-backed exterior dimensions, but those still reveal nothing about the battery bay and its fit result remains unproven. Every visual is an original massing model, never an OEM drawing or CAD asset |
| Frontal-area fill factor | 0.85 | No vehicle is a rectangle, so width × height overstates the frontal area. A first-order figure for a car-like body, used only to turn a measured frontal area back into a silhouette cross-section |
| OCV(SoC) curves | chemistry-class shapes (LFP flat plateau, NMC slope, Na-ion near-linear) anchored to each cell's own voltage window | Manufacturers do not publish OCV tables; the simulation states this in its assumptions list on every run |
| Cell swelling allowance | 10–20% thickness growth over life | Design practice, not a standard requirement |
| External-study / ROM fixtures | the synthetic `external-study/1` contract and analytic response rows committed in `tests/rom-bridge.test.mjs` | Entirely SYNTHETIC regression fixtures — solver "SyntheticSolve" is a fixture name, `license: synthetic` is sealed inside the contract checksum, and the synthetic watermark rides every ROM and prediction derived from them. No real solver output is shipped, scraped or imitated; real study data enters only by the user's own ingestion under their declared rights, attributed to the solver that produced it |
| ARC/abuse-test fixtures | the synthetic `arc-abuse-dataset/1` rows committed in `tests/arc-pipeline.test.mjs` (class-shaped onset/heat/gas trends for an NMC-class 21700) | Entirely SYNTHETIC regression fixtures with `license: synthetic` sealed inside their checksum and the synthetic watermark riding every derived artifact — no measured commercial ARC data is shipped, scraped or imitated. Real abuse data enters only by the user's own ingestion under their declared rights |
| SPM/SPMe electrochemical parameters | the `house.spm-electrochemistry` definition-set defaults (particle radii, thicknesses, concentrations, diffusivities, exchange-current densities, stoichiometry windows, SEI class values) | Literature-CLASS estimates representative of published graphite/NMC parameterizations (cf. Chen et al. 2020, *J. Electrochem. Soc.* 167 080534 and the open parameter sets derived from it) — entered as class values with origin `inferred`, deliberately **not** claimed as a verbatim transcription of any single paper. Every value is a governed, bounded, overridable input; the engine is verified against analytic solutions, and nothing is validated against measurements until the identification path runs on real data |
| SPM/SPMe open-circuit-potential tables | house monotone class-shape curves for graphite and an NMC-class cathode | Authored in-house as class shapes; evaluation refuses outside the tabulated range rather than extrapolating, and cell-specific curves are the WP-05 identification path's job |
| Road random-vibration envelope | about 2.8 g rms over 10–1000 Hz, flat spectral density, 8 h per axis | ISO 16750-3 and SAE J2380 publish spectral-density tables that are not reproduced here; the screen carries a class-typical overall level for a body-mounted pack so profiles can be compared, labels it as such in every result, and the customer replaces it with the profile the test house will run |
| Light-mobility random-vibration envelope | about 1.0 g rms over 10–200 Hz, 8 h per axis | No public regulation prescribes a pack profile for e-bikes and scooters; a class-typical broadband envelope on the IEC 60068-2-64 method, labelled as such |
| Industrial random-vibration envelope | about 1.5 g rms over 10–500 Hz, 8 h per axis | Robots, AGVs, forklifts and tools qualify against machine-specific programmes; a class-typical broadband envelope on the IEC 60068-2-64 method, labelled as such |
| Damping ratio of a bolted pack assembly | 0.05 (Q = 10) | Measured damping varies by joint, gasket and potting; exposed as `vibration.damping.ratio`, and every result prints the value it used |
| Mount load sharing | uniform across the mounts | The worst mount of an uneven frame needs the frame's stiffness matrix, which this screen does not have; stated as a non-claim in every result |
| Bolt preload | 75 % of the ISO 898-1 proof load, separation margin of 2 asked for | Ordinary assembly practice, not a measured torque-tension relation; the result names the preload it assumed and asks for it to be verified on the assembled joint |
| Tray plate model | simply supported rectangular plate between cross members, cell block as distributed non-structural mass | The conservative (lowest-frequency) edge condition; ribs, frames and the real support are declared through `crossMembers` or replaced by a declared first mode from FEA or a modal test |
| Wall thickness | **not prescribed** | No standard specifies a millimetre value. The crash/crush **tests** (ECE R100 Annex 4, GB 38031, UL 2580) prescribe outcomes; the wall must pass them. The tool says this rather than inventing a number; the crush & intrusion screen (`crush.js`) makes the outcome actionable by screening the declared load path against the test forces, and still prescribes no millimetre |
| Crush-screen class factors (housing material strengths 195/230 MPa aluminium sheet, 240/260 MPa aluminium extrusion, 235/360 MPa steel, 45/55 MPa V-0 plastic, 150/200 MPa GFRP, 20/25 MPa potting; a 40 × 2 mm cross-member section and class-typical member pitches by housing kind until declared; a first-fold peak of 1.5× the mean crushing force; a 600 × 600 mm crush plate footprint; a semicylinder contact width of one radius) | class-typical, exposed in `CRUSH_CLASS` and `HOUSING_MATERIALS` (js/crush.js) and reported as assumptions on every result; the DesignSpec `crush` field declares the real structure | The test forces are transcribed and the closed forms are published; what turns them into a verdict for a given pack is the structure the designer declares and these class values where nothing is declared. The screen ranks a crush space against the test; the crush test and a finite-element solve replace it |
| Daisy-chain node limit | 62 nodes | Common AFE-family device limit; treated as a hard architectural limit and named as the reason in the verdict |
| Temperature-sensor ratio | Configurable (1 per 6 default); 1 per 3 shown as an optional benchmark | Assumption-labelled design practice, not a universal requirement. Counts use total monitored cells and are raised when necessary to keep at least one NTC in every physical module |
| OBC efficiency | 93% | Class-typical AC→DC conversion efficiency; exposed as a named input in the workbook and stated wherever charge times are shown |
| CV taper model | CC to 80% SoC, then 0.45× average rate | A class simplification of the constant-voltage tail — real taper curves are cell-specific and unpublished |
| Mission charge power | the cell's rated continuous charge current (base charging additionally throttled by the OBC) | Mission-charging power in the simulation comes from the cell's own datasheet rating, not an invented charger |
| BMS topology crossover | none | No sourced quantitative crossover between centralized / master-slave / wireless exists, so the tool suggests by scale and says openly that the rule is not sourced |
| Vehicle class defaults (mass, Cd, frontal area, Crr, drivetrain efficiency, auxiliary load) | per application, e.g. 1250 kg / 0.29 / 2.2 m² for a C-segment EV | Class-typical values for sizing, not any specific vehicle — every one is an exposed input the customer overwrites with their own |
| Driving-mode factors | Eco 0.94× speed, 0.80× acceleration, 1.25× regen; Sport 1.06× / 1.40× / 0.85× | A class model of driver behaviour. No standard defines "Sport"; the factors are stated and exposed so the customer can dispute them |
| Rotating-mass factor ε | 0.02–0.07 by machine | Wheels, gears and rotor inertia add to the effective mass under acceleration; the value is a class estimate |
| Synthesized WLTP Class 3 trace | matches the published phase durations, distances and peak speeds within ~5% | The phase aggregates are public; the second-by-second homologation trace is not reproduced, and the tool says so wherever the trace is used |
| Thermal-runaway onset temperature | 130–220 °C by chemistry | No datasheet publishes it and it depends on state of charge and cell design. The tool uses class values and says so; replace them with ARC (accelerating rate calorimetry) data for the actual cell before relying on a margin |
| Fusible-link opening time | square-law overload, floored at ~100 µs | Wire-bond fusing time is geometry- and alloy-specific. The model shows whether a link opens in the right ORDER of magnitude relative to runaway onset, not a certified clearing time |
| Fuse melting I²t when none is supplied | (10 × rated A)² × 10 ms | A class rule of thumb for a fast pack fuse. Every run says when this guess was used and asks for the datasheet value instead |
| Level-2 model coefficients (RC resistances and time constants, Arrhenius activation energies, entropic coefficient, module conduction, current imbalance) | class-typical defaults, all exposed in `PARAM_SPEC` with units and bounds | No datasheet publishes these. They are defaults to start from, not values to quote — which is why `calibrate()` exists: fit them to your own pulse and cycling data, and the tool reports how far each moved and whether it hit a bound |
| Calendar and cycle aging coefficients | √t and √EFC power laws with Arrhenius weighting (Wang et al. form) | The SHAPE is sourced; the coefficients are class-typical. Aging is cell-, format- and duty-specific, so these must be fitted against your own cycling data before they mean anything for warranty |
| Thermal-field zone network (zone-to-zone conduction 4 W/K per neighbour pair, layer-to-layer 2 W/K, enclosure natural convection 6 W/m²K, a 5 K liquid and a 10 K forced-air design rise for the fluid capacity rate, a 5 K radiator approach and a 25 °C chiller setpoint for the coolant inlet, a 5 K spread allowance with a 10 K design limit) | class-typical, exposed in `FIELD_CLASS` (js/thermal-field.js) and reported as assumptions on every result; the DesignSpec `thermalField` field overrides each | The conductances are the level-2 model's own defaults asked spatially: no datasheet publishes a module-to-module conductance, and the spread thresholds are the level-2 finding's, not any standard's. The field ranks zones and places sensors; replace the class values with a measured spread or a CFD result before it means more than a comparison |
| Corrosion-over-life class factors (galvanic acceleration K = 6 with wetness weights 0.02–1 by corrosivity category, the mating interface seeing 30 % of the free-surface rate under a bolted or crimped joint and 60 % at a weld, plating thicknesses 8 µm tin, 5 µm nickel and 3 µm on a cell can, nickel at half the copper rate, tin at half the zinc rate, stainless at a twentieth of copper, carbon steel at anodic index 0.85 V, contact resistance R₀ 15 / 3 / 10 µΩ bolted / welded / crimped doubling at 5 µm of interface loss, a bonding joint gone at 25 µm, a sealed enclosure two categories below the site and any housing one, a vessel's battery room at C4 and a road vehicle at C4) | class-typical, exposed in `CORROSION_CLASS` (js/corrosion.js) and reported as assumptions on every result; the DesignSpec `corrosion` field overrides the site, the protection, the exposure, the film depth, the galvanic factor and the platings | The public numbers are the ISO 9223 rates, the ISO 9224 exponents and the anodic index; everything that turns them into a joint's life is engineering practice with no published pass mark. The study ranks joints and names the first to go; a measured joint resistance over life or a salt-spray result replaces its curve |
| V2G wear floor | (cell price × count) ÷ (nameplate cycle life × usable energy) | Uses the **nameplate** cycle life — shallow V2G micro-cycling usually ages more gently per kWh, so the floor is a conservative first-order ceiling on wear cost, stated as such wherever it appears |
| Anodic index per material, and the galvanic limits | 0.15 V (harsh) / 0.25 V (normal) / 0.50 V (dry and sealed) | The anodic-index series and these three environment limits are long-standing engineering practice rather than a pass mark anyone publishes. The index values are class figures for the alloy families named, not lot-specific measurements |
| Embodied CO₂ per conductor and housing material | 3.8–17.1 kg CO₂e/kg by material | Route- and grid-dependent literature-class figures — primary versus recycled aluminium alone spans several times this. Good for comparing one busbar material against another; not an audited product footprint |
| Convective coefficient for a conductor's installation | 12 W/(m²·K) free air, 7 loomed, 4 potted, 45 bonded to a cold plate | Class values for natural convection and for a bonded thermal interface. The real figure depends on airflow, surface finish and what the run is bonded to, so the installation is an exposed input and the value used is printed with every wiring answer |
| End conduction out of a conductor's ends | 4·k·A/L, treating both ends as sinks at ambient over half the run each | A first-order model of the path a short run actually cools through. It assumes the terminals it lands on stay near ambient — optimistic for a busbar bolted to another hot busbar, pessimistic for one landing on a cold plate. Omitting the term, the obvious alternative, is far worse: it overstates a 20 mm run's temperature by orders of magnitude |
| Conductor surface for the heat balance | square section, radiation not counted | Both deliberately conservative. A square has the least surface of any section at a given area, so a real flat busbar runs cooler than reported, and radiation adds a further margin above roughly 80 °C. Stated in the assumptions of every wiring study |
| Current-density rules of thumb | 5 A/mm² copper, 3.5 aluminium, 2.5 nickel | Widely taught free-air rules, carried **only** so the tool can show where it disagrees with them. They take no account of length or installation, and the temperature answer overrides them in both directions |
| Repeated single-person lift limit | 16 kg for swapping, against the NIOSH 23 kg single-lift recommendation | The NIOSH figure is for ONE lift under ideal conditions — level, close to the body, no twisting. A battery bay is rarely ideal and a swap is rarely unhurried, so the repeated-handling figure is set below it. Neither is a legal limit |
| Connector mating-cycle rating | 5,000 cycles default, exposed | A class figure for a high-current blind-mate connector. It is the whole of the wear check, so use the number from the connector you actually specify — at two swaps a day a ten-year fleet needs 7,300 |
| Swap fleet ratio | packs on charge per pack in service, plus at least one shared spare | Assumes packs are charged off the machine and returned to a shelf. Opportunity charging in place changes the arithmetic entirely, and the swap infrastructure itself — chargers, shelving, an automated station — is not costed |
| Runaway heat release | 0.5–2.2× the cell's stored electrical energy by chemistry, over ~45 s | No datasheet publishes it and it varies more between cell designs than between chemistries. It scales the whole propagation study, which is one reason that study is used for ranking options rather than predicting outcomes |
| Cell-to-cell coupling area | 20% of the facing wall, exposed | Cylinders touch along a line, not a face. This fraction scales the entire conduction path between neighbours and is a class estimate, not a derivation |
| Propagation by conduction and radiation alone | **under-predicts, and is used only comparatively** | Hot gas, burning electrolyte and ejecta carry most of a real event and are not modelled. Against a module that propagates in a real test the model reports the neighbour peaking tens of kelvin BELOW onset, across every plausible value of its own coefficients — so it ranks barriers and spacing against each other and never clears a design. UL 9540A and GB 38031-2025 settle propagation by test |
| Pack assembly energy | **not estimated** | Nobody publishes it per pack and it depends on the factory, its grid and its yield. The life-cycle module reports it as unknown and names it in the totals, because a plausible invented figure would be indistinguishable from the ones that are grounded |
| Recycling recovery | 20–50% of the cell material footprint, 60–90% of conductors, 50–85% of structure | Set by process and policy rather than physics, so it is a range and a credit only if the pack actually reaches a recycler. The metals come back; the energy that turned them into cells does not |
| Round-trip efficiency for the use phase | 92% default, exposed | Sets how much energy is lost — and therefore emitted — over the pack's life. Real round trips depend on rate, temperature and the converter around the pack |
| Displacement basis for delivered energy | chosen from the application class, never defaulted to "grid" | An EV displaces fuel, not generation; stationary storage CONSUMES energy and only wins by shifting clean generation into a dirty hour. The tool picks the basis from what the machine is, says which it used, and flags that the older grid-factor payback figure is the wrong comparison for a vehicle |
| Bonding scheme, when it is not described | one representative 250 mm strap of 16 mm² | An illustration, not an answer. Real machines have several bonding paths and the one that fails is the one nobody drew, so the study flags this rather than presenting the single assumed strap as a result |
| Prospective fault current for bonding | the dead-short prospective current from the fault study | An HV pack floats, so the FIRST isolation fault draws almost nothing — the bond earns its keep on the second. The dead-short current bounds what the pack can drive through anything, which makes it the conservative choice; the real second-fault current depends on where in the string both faults land |
| Run lengths, when the routing is not given | estimated from the pack envelope | Every wiring number scales with length, so this is the single assumption most worth replacing. Runs derived this way are flagged individually and named in the study's findings, and the CLI takes real lengths (`--pitch`, `--modrun`, `--packrun`) |
| SFP200 first-order thermal constants | fitted separately to the published 108 mm²-busbar and 1/0-AWG anchors | The datasheet publishes transient temperature-rise curves, not a thermal resistance/capacitance pair. The module fits a transparent first-order model to the stated continuous-rise limit and one stated pulse point in each termination case; it remains a screening simulation and the product is obsolete. |

---

## 9 · Citing this tool

If a report, paper or tender document leans on output from this project, please
cite it — see [CITATION.cff](CITATION.cff), or:

> Varzandeh, M. (2026). *battery-design: an in-browser battery pack design,
> architecture and mission-simulation tool.*
> https://github.com/Morshedvarzandeh/battery-design

## 10 · Corrections

A wrong reference is worse than a missing one. If a citation here is out of date,
mis-stated, or attached to the wrong requirement, please
[open an issue](https://github.com/Morshedvarzandeh/battery-design/issues) — say
which standard and which edition, and it will be fixed. Data corrections with a
public datasheet behind them are especially welcome; see
[CONTRIBUTING.md](CONTRIBUTING.md).
