Linear Battery Aging Calculator
Estimate battery capacity with a simple linear cycle + calendar aging model: SOH = max(0, 1 − k_cycle·N − k_cal·t), C = C0·SOH. Default coefficients are illustrative. Runs locally in your browser.
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance
- Input interpretation
- Enter values to calculate.
- Result
- —
- Assurance
- Engineering
- Declared partition coverage
- PASS · 4/4 declared partitions (cycle-calendar, cycle-dominant, zero-aging, invalid-domain) · Matrix
- Known limitations
- Empirical linear model — not chemistry-specific calendar/cycle physics
- Core CVP does not include live graph, viewport, or pointer interaction.
- Model
- Linear capacity fade / SOH from independent cycle and calendar terms.
- Scope
- Independent linear cycle + calendar fade
- Verification
- Engine tested · Source checked · v1.0.2 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance· View Manifest · CVP overview · Specification
- Versions
- Calculation 1.0.2 · CVP protocol 1.0.0-proposed
- CVP identity
- 5/5 property · digest a53cfab6ba6b
- Legacy regression
- 14/14 tests · Production surface contract 4/4
- Reference
- O1 model · O2 expected_values · O2 numerical_behavior
- Interfaces
- PASS · UI (SSR) / REST / MCP
- Supplemental domain review
- Internal · Pass · electrical-engineer
- Named expert review
- Not performed
- CVP suite
- 3/3 golden · 6/6 CVP boundary · 5/5 invalid · 5/5 property · 1/1 cross-interface · 1/1 CVP contract · Manifest
- Sources
- Smith, K.; Neubauer, J.; Wood, E.; Jun, M.; Pesaran, A. — Models for Battery Reliability and Lifetime: Applications in Design and Health Management
- Saldaña, G.; San Martín, J. I.; Zamora, I.; Asensio, F. J.; Oñederra, O.; González-Pérez, M. — Empirical calendar ageing model for electric vehicles and energy storage systems batteries
- NREL — Battery lifespan modeling (BLAST / life-model overview)
- Implementation conventions
- Linear approximation, not a digital twin
- Illustrative default coefficients
- Cycle count / EFC semantics
- Schema pin follows calculation_version
- Capacity clamp and fade_frac
- Evidence
- 3 legacy golden · 6 legacy boundary · legacy regression suite · 3/3 oracle-backed golden · 5/5 invalid · Artifact integrity PASS · CalculatorX electrical review
- Semantic contract
- PASS
Full verification
Formulas
Core equations used by this calculator.
How to use
Enter initial capacity
C0 in Ah is the beginning-of-life capacity.
Enter cycle count and calendar years
N should match the cycle definition used to calibrate k_cycle. Prefer EFC from discharged-Ah ÷ C_nom (or the consistent 2× convention if charge+discharge throughput is summed). Both fade terms are applied independently.
Review fade coefficients
k_cycle and k_cal scale capacity loss. Defaults are illustrative. Remaining capacity is clamped: C ≥ 0.
Example calculations
Common configurations with formula and result.
3 Ah · 500 cycles · 1 y
illustrative defaults k_cycle=0.0002/cycle, k_cal=0.02/year
Zero aging
N=0, t=0
Fade clamp
3 Ah · 10000 cycles · defaults
Linear Battery Aging calculator specification
Version 1.0.2 · Engine tested · Supplemental domain review · Internal · 2026-09-05
- Engine tested 14/14 tests · Production surface contract 4/4
- Supplemental domain review Internal · Pass · electrical-engineer · 2026-09-05
- Named expert review Not performed
- Calculation version 1.0.2
Review policy · Evidence · Reviewed by CalculatorX electrical review (electrical-engineer)
- Definition
- Linear fade model: SOH = max(0, 1 − k_cycle·N − k_cal·t), C = C0·SOH. Defaults k_cycle=0.0002/cycle and k_cal=0.02/year are illustrative — not a chemistry digital twin.
- What it calculates
- Linear capacity fade / SOH from independent cycle and calendar terms.
- Inputs
- C0_Ah
- N_cycles
- years
- k_cycle
- k_cal
- Outputs
- capacity_Ah
- SOH
- fade_frac
- Formula
SOH=max(0, 1−k_cycle·N−k_cal·t); C=C0·SOH- 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
- Units
- Ah, cycles, years
- Boundary conditions
- C0≤0 → VALUE_MUST_BE_POSITIVE
- N, years, k_cycle, k_cal < 0 → VALUE_MUST_BE_NON_NEGATIVE
- Unclamped fade > 1 → SOH=0 and C=0
- Example
- 3Ah · 500 cycles · 1y · k_cycle=0.0002 · k_cal=0.02 → 2.64Ah, SOH=88%
- Validation cases
9 published on this page · 14/14 tests · Production surface contract 4/4 · View evidence
- C0=3 N=500 years=1 (defaults) → C=2.64, SOH=0.88
- C0=3 N=0 years=0 → C=3, SOH=1
- C0=3 N=500 years=1 k_cycle=0.0001 k_cal=0.01 → C=2.82, SOH=0.94
- C0=3 N=10000 years=0 → C=0, SOH=0
- C0=0 → error VALUE_MUST_BE_POSITIVE
- N_cycles=-1 → error VALUE_MUST_BE_NON_NEGATIVE
- years=-1 → error VALUE_MUST_BE_NON_NEGATIVE
- k_cycle=-0.001 → error VALUE_MUST_BE_NON_NEGATIVE
- k_cal=-0.01 → error VALUE_MUST_BE_NON_NEGATIVE
- Sources
- Smith, K.; Neubauer, J.; Wood, E.; Jun, M.; Pesaran, A. — Models for Battery Reliability and Lifetime: Applications in Design and Health Management — NREL/PR-5400-58550 · 2013 · accessed 2026-09-05Supports: Institutional evidence that battery lifetime models combine cycle and calendar degradation, with coefficients that depend on temperature, DOD, voltage/SOC, and other stress factors — not a single universal linear law. CalculatorX uses a deliberately simplified linear approximation, not the NREL life model. (Distinct from NREL/CP-5400-57746, which has a different author list.)
- Saldaña, G.; San Martín, J. I.; Zamora, I.; Asensio, F. J.; Oñederra, O.; González-Pérez, M. — Empirical calendar ageing model for electric vehicles and energy storage systems batteries — Calendar fade vs storage time, temperature, and SOC · 2022
·
DOI
· accessed 2026-09-05Supports: Shows calendar ageing is commonly modeled with a power of time (often near t^1/2) and is strongly sensitive to storage temperature and SOC. Documents why CalculatorX linear-in-years k_cal is an illustrative first-order stand-in, not the complete empirical model.
- NREL — Battery lifespan modeling (BLAST / life-model overview) — Calendar and cycle aging, operating windows, and stress factors · accessed 2026-09-05Supports: Public institutional overview that lifetime prediction must consider temperature, operating windows, charge/discharge rates, storage environment, and cycling patterns. Used here to bound the scope of the linear model — not as a coefficient source.
- Smith, K.; Neubauer, J.; Wood, E.; Jun, M.; Pesaran, A. — Models for Battery Reliability and Lifetime: Applications in Design and Health Management — NREL/PR-5400-58550 · 2013 · accessed 2026-09-05
- Implementation conventions
- Linear approximation, not a digital twin — CalculatorX uses a deliberately simplified independent linear cycle + calendar model. It is not the NREL BLAST/life model, not an Arrhenius / √t calendar fit, and not chemistry-specific.
- Illustrative default coefficients — If k_cycle or k_cal is omitted, the engine uses 0.0002 /cycle and 0.02 /year. Explicitly supplied coefficients keep user-specified provenance even when the numeric values match those defaults.
- Cycle count / EFC semantics — N_cycles is a dimensionless cycle count matching the calibration of k_cycle — the engine does not assert that a caller’s N is EFC. Prefer EFC from discharged-Ah throughput ÷ C_nom when applicable. If charge+discharge throughput is accumulated, use EFC = (Ah_charge + Ah_discharge)/(2·C_nom) consistently — do not mix conventions.
- Schema pin follows calculation_version — Published input/output schema pins are keyed by calculation_version. Contract-only tightenings (normalized inputs, required result fields, required input_provenance) bump the patch version even when the fade formulas are unchanged, so latest alias and /{version}/ pins stay body-identical except $id. A future api_contract_version pin may decouple this further.
- Capacity clamp and fade_frac — SOH = max(0, 1 − k_cycle·N − k_cal·t). fade_frac is the unclamped linear exposure k_cycle·N + k_cal·t and may exceed 1; remaining capacity and SOH are clamped at 0. Actual capacity loss fraction is 1 − SOH. fade_frac is a required formal output.
- Last reviewed
- 2026-09-05
- Reviewed by
- CalculatorX electrical review (electrical-engineer)
- Calculation version
- 1.0.2
Background
Interpretation and common distinctions.
Estimate battery capacity fade with a simple linear cycle + calendar model.
Default coefficients k_cycle = 0.0002 /cycle and k_cal = 0.02 /year are illustrative. This is an engineering estimate — not a cell-chemistry digital twin.
Supported and not supported
Supported — Independent linear SOH fade · custom k_cycle / k_cal · API electrical.battery.aging
Not supported — Temperature, SOC, DoD, C-rate, chemistry, Arrhenius fits, √t calendar aging, SEI growth PDE, knee detection
CalculatorX uses a deliberately simplified linear approximation, not the complete models described by the NREL and calendar-ageing references.
Agent / API notes
Capability id: electrical.battery.aging · tool id: battery-aging · pin 1.0.2.
Related tools
Other calculators in this family: Battery Pack Sizing Calculator, Battery Runtime Calculator, Battery Runtime with Temperature . Explore all Battery & Energy Storage.
Frequently asked questions
Key distinctions behind the calculation.
Are the default k values accurate?
No. k_cycle = 0.0002 /cycle (0.02%/cycle) and k_cal = 0.02 /year (2%/year) are illustrative planning defaults. Prefer manufacturer cycle-life and calendar-life data when available. Omitting k_cycle/k_cal in the API or share URL uses these fallbacks; providing them explicitly is recorded even when the values match the defaults.
What does Cycles / EFC mean?
N_cycles is a cycle count that must match the calibration of k_cycle — CalculatorX does not re-interpret an arbitrary manufacturer cycle as EFC. Equivalent full cycles are recommended when applicable. Prefer full-discharge capacity throughput: EFC = Ah_discharged / C_nom. If charge and discharge Ah are both accumulated, use the consistent 2× convention: EFC = (Ah_charge + Ah_discharge) / (2 · C_nom). The throughput convention must stay consistent with how k_cycle was calibrated. 500 cycles at 100% DoD is not the same aging exposure as 500 cycles at 10% DoD.
Is this a full battery aging model?
No. This is a deliberately simplified linear approximation. Real lithium-ion aging usually depends on temperature, SOC, DoD, C-rate, chemistry, and often uses calendar terms closer to √t rather than linear time. CalculatorX does not implement Arrhenius fits, SEI growth PDEs, or knee detection.
Why does remaining capacity stop at 0?
The engine uses SOH = max(0, 1 − k_cycle·N − k_cal·t). If the unclamped linear fade exceeds 100%, remaining capacity and SOH are clamped to 0 rather than going negative. fade_frac reports that unclamped exposure and may exceed 1.
What is fade_frac?
fade_frac is the unclamped linear aging exposure k_cycle·N + k_cal·t. It may exceed 1. Actual capacity loss fraction is 1 − SOH (always in [0, 1]).