Released test suite
33 tests passed across core fitting, projection, CLI behavior, data loaders, long-form validation, and the executable notebook.
Analysis software · Analysis software
Fit capacity fade, bound the forecast, and show when the evidence runs out.
Released Python software compares linear, power-law, and logarithmic fits, selects by RMSE, and returns no EOL estimate when a threshold is outside the three-times-observed projection window.
Engineering question
Fit three transparent empirical degradation families, compare fit quality, and return a bounded EOL or no estimate when the threshold is unsupported.
System and evidence boundary
The long-form path preserves cell and protocol context, while the legacy CSV/TSV path remains compact for cycle-capacity tables.
Verified results
Every visual below points to its source data or retained source format and to the release- or commit-specific implementation behind it.
Generated with v0.1.0 using synthetic_lfp(cycles=1500, seed=42, noise_std=0.005). The right panel reports released RMSE and R² calculations.
python scripts/generate-open-engineering-figures.py --sources-root <audit-root>The observed-cycle boundary and full 3× search window are visible. If no crossing exists in that window, the released API returns None instead of extending indefinitely.
python scripts/generate-open-engineering-figures.py --sources-root <audit-root>Activation energy is fixed at 0.5 eV and 25 °C is the reference. The utility is independent of the fitted capacity-fade trajectory and does not validate a lifetime model.
python scripts/generate-open-engineering-figures.py --sources-root <audit-root>Validation and evidence
Thirty-three package, CLI, data-schema, and notebook tests passed at the released revision.
33 tests passed across core fitting, projection, CLI behavior, data loaders, long-form validation, and the executable notebook.
Bundled LFP and NMC datasets are demonstrations, not measurements. Every portfolio plot on this page is labeled synthetic or illustrative.
EOL is searched only to three times the largest observed cycle. Unsupported crossings return no estimate.
v0.1.0 does not calculate parameter confidence intervals or propagate measurement uncertainty into RUL.
Shortest verified path
git clone https://github.com/mohammadrezwankhan/battery-cycle-life-analyzer.git
cd battery-cycle-life-analyzer
git checkout v0.1.0
python -m pip install -e ".[dev]"
python -m bcla --model all
python -m pytest -q
Verification environment: Python 3.14.6 with NumPy, SciPy, and Matplotlib on Windows 11. Commands are concise entry points; repository documentation remains authoritative for setup details.
Documentation map
Engineering boundary
Related professional context