Home Developers Evidence electrical.battery.aging

Public evidence

electrical.battery.aging

Machine-checked verification for calculation version 1.0.2 · tier expert_verified

CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance· Empirical linear model — not chemistry-specific calendar/cycle physics · Protocol · Schema · Production report

Declared partition coverage
PASS · 4/4 declared partitions (cycle-calendar, cycle-dominant, zero-aging, invalid-domain)
Versions
Calculation 1.0.2 · CVP protocol 1.0.0-proposed
CVP identity
5/5 property · digest a53cfab6ba6b

Verification

Legacy regression suite: 14/14 calculation tests · Production surface contract 4/4

Three distinct suites: educational examples on the calculator page, this legacy regression count (14/14 golden + boundary), and the CVP verification suite below. They are not the same number. Property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the CVP Manifest . SKIP (0/0) means that suite has no published vectors.

    This calculator CURRENT · Public schema 1.0.2 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓

CVP verification suite

Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Calculation version 1.0.2. CVP 1.0.0-proposed. 3/3 golden · 6/6 CVP boundary · 5/5 invalid · 5/5 property · 1/1 cross-interface · 1/1 CVP contract. digest a53cfab6ba6b.

  • Golden (oracle-backed) 3 / 3
  • CVP boundary 6 / 6
  • Invalid input 5 / 5
  • Property 5 / 5
  • Cross-interface 1 / 1
  • CVP contract 1 / 1
  • Interfaces PASS · UI (SSR) / REST / MCP
  • Interface claim ui-ssr is query-result HTML, not a live browser session.
  • Assurance Engineering
  • release artifacts aligned PASS
  • schema valid input executes PASS
  • engine success output validates schema PASS
  • schema rejects incomplete input PASS

Fingerprint sha256:665eac2d2a81eb2215b2a1834aa96235cda400f92218f4362d905e8536c25471

Input schema sha256:530a01f1f22d5c7d69bfd54543b215b1d53999fc6d19102e02a920f8be4f32cb · Output schema sha256:e003d668697e01cb9d53db19b3bff48e2afe6529c26da8af007393f2acc076ff · Build-time SHA-256 digests prove published artifacts agree with each other (release_integrity.scope=workspace). Production attestation GETs canonical URLs twice (public/cached view and origin), including Capability HTML, via npm run attest:production --write (published at /.well-known/calculatorx-production-attestation.json) and fails if the public Capability page advertises a different calculation_version. This is artifact consistency, not an independent immutable release log.

Build & scope

Engine identity and declared limitations.

Tool
battery-aging
Engine
battery-aging
Engine build
2026-09-10
Evidence core
2026-09-05T10:20:02.590Z
Rendered
2026-09-16T22:03:43.746Z
Last reviewed
2026-09-05

Assumptions

  • Independent linear cycle + calendar fade
  • Default k_cycle=0.0002/cycle and k_cal=0.02/year are illustrative
  • N should match the cycle definition used to calibrate k_cycle; EFC recommended
  • Not temperature, SOC, DoD, C-rate, or chemistry aware

Limitations

  • Linear independent cycle+calendar fade — not temperature, SOC, DoD, C-rate, or chemistry aware
  • Default k_cycle=0.0002/cycle and k_cal=0.02/year are illustrative
  • fade_frac is unclamped exposure and may exceed 1; SOH and capacity_Ah are clamped at 0

Sources

Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.

Legacy published checks

Golden and boundary cases from the legacy Evidence JSON. CVP property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the Manifest — including SKIP when a suite has no vectors.

IDKindStatusDetail
golden-defaultgoldenpassExpected capacity_Ah=2.64 · SOH=0.88 · Actual mode=linear_fade · C0_Ah=3 · N_cycles=500 · years=1 · k_cycle=0.0002 · k_cal=0.02 · fade_frac=0.12000000000000001 · SOH=0.88
zero-aginggoldenpassExpected capacity_Ah=3 · SOH=1 · Actual mode=linear_fade · C0_Ah=3 · N_cycles=0 · years=0 · k_cycle=0.0002 · k_cal=0.02 · fade_frac=0 · SOH=1
custom-coefficientsgoldenpassExpected capacity_Ah=2.82 · SOH=0.94 · Actual mode=linear_fade · C0_Ah=3 · N_cycles=500 · years=1 · k_cycle=0.0001 · k_cal=0.01 · fade_frac=0.060000000000000005 · SOH=0.94
bad-C0boundarypassExpected VALUE_MUST_BE_POSITIVE · Actual VALUE_MUST_BE_POSITIVE
negative-cyclesboundarypassExpected VALUE_MUST_BE_NON_NEGATIVE · Actual VALUE_MUST_BE_NON_NEGATIVE
negative-yearsboundarypassExpected VALUE_MUST_BE_NON_NEGATIVE · Actual VALUE_MUST_BE_NON_NEGATIVE
negative-k-cycleboundarypassExpected VALUE_MUST_BE_NON_NEGATIVE · Actual VALUE_MUST_BE_NON_NEGATIVE
negative-k-calendarboundarypassExpected VALUE_MUST_BE_NON_NEGATIVE · Actual VALUE_MUST_BE_NON_NEGATIVE
boundary-clamp-zeroboundarypassExpected capacity_Ah=0 · SOH=0 · Actual mode=linear_fade · C0_Ah=3 · N_cycles=10000 · years=0 · k_cycle=0.0002 · k_cal=0.02 · fade_frac=2 · SOH=0
property-capacity-boundedpropertypass0 ≤ C ≤ C0 and 0 ≤ SOH ≤ 1
property-cycle-monotonicpropertypassN2>N1 ⇒ C(N2)≤C(N1)
property-calendar-monotonicpropertypasst2>t1 ⇒ C(t2)≤C(t1)
property-output-identitypropertypassfade_frac=kN+kt; SOH=max(0,1−fade); C=C0·SOH
property-default-equivalencepropertypassomit k ≡ explicit k_cycle=0.0002, k_cal=0.02 (numeric)