Analysis software · Analysis software

Battery Cycle-Life Analyzer

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

Which empirical degradation model best describes observed capacity fade, and how far can EOL projection be bounded honestly?

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

Provenance enters before fitting—not after the chart.

The long-form path preserves cell and protocol context, while the legacy CSV/TSV path remains compact for cycle-capacity tables.

Data-provenance pipeline

  1. 01CSV, TSV, or long formCycle + capacity + optional protocol context
  2. 02Validation envelopeFinite values, bounds, cell ranges, timestamps
  3. 03Three empirical fitsLinear, power-law, logarithmic
  4. 04Model selectionLowest released RMSE criterion
  5. 05Bounded EOL / RULThreshold search stops at 3× observed cycles
  6. 06Publication figureAxes, units, label, provenance, source

Verified results

Figures keep scenario, units, source, and evidence class attached.

Every visual below points to its source data or retained source format and to the release- or commit-specific implementation behind it.

Validation and evidence

What passed, what was demonstrated, and what remains unvalidated.

Thirty-three package, CLI, data-schema, and notebook tests passed at the released revision.

Released test suite

33 tests passed across core fitting, projection, CLI behavior, data loaders, long-form validation, and the executable notebook.

Synthetic disclosure

Bundled LFP and NMC datasets are demonstrations, not measurements. Every portfolio plot on this page is labeled synthetic or illustrative.

Projection behavior

EOL is searched only to three times the largest observed cycle. Unsupported crossings return no estimate.

Uncertainty gap

v0.1.0 does not calculate parameter confidence intervals or propagate measurement uncertainty into RUL.

Shortest verified path

Pin the audited source before running it.

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

Go directly to the useful evidence.

Engineering boundary

The artifact cannot qualify the decision by itself.

Related professional context

Follow the evidence into adjacent work.

Use the pinned source, inspect the evidence, and keep project authority with a qualified human reviewer. Open v0.1.0 Return to open engineering