Evidence

One pack. One 20.6-hour log. Eight findings.

A reference assessment of a 16-cell LFP pack from an ordinary BMS log. Every number here comes from the MW Battery Engine’s documented output for this pack. It is one example, not a promise of performance on every battery.

Chemistry
LFP
Cells
16 in series
Log
20.6 h at 1/min
Rows
1,313

Pack view

Reference pack example
Chemistry
LFP
Cells
16 in series
Log
20.6 h
BMS state of health1.000BMS reading
MW manifold health0.976Bayesian posterior
Cell 1 dQ/dV shift−13 mVMeasured
  • Lithium-inventory loss suspect
  • Limits discharge
  • Next to the T5 hot spot
  • No signal (0 V)
  • Nominal

Cell 1LLI suspect

dQ/dV peak 13 mV below the pack median (threshold −5 mV).

Earliest sign of lithium-inventory loss. The BMS still reports this cell healthy. Put it on a watch list and verify.

Select a cell. States are findings from one 20.6-hour BMS log of a 16-cell LFP pack; they are not a live system.
Findings

What this pack is telling you

Ordered by how actionable they are. Each one shows the evidence, what it may mean, what to do and when.

  1. Act

    T5 hot spot

    Signal
    T5 mean 41.5 °C, max 56.8 °C, hottest sensor 62% of the time. Gradient up to 15.8 °C against a 10 °C fire line; integrity law MP8 fires. Physics-checked
    What it may mean
    The heat looks local rather than bulk I²R: a loose connection, busbar joint, poor airflow or a faulty sensor are all possible. The physics flags it; it does not name the cause.
    What to do
    Inspect near T5: torque check, thermal imaging, cooling path, and the sensor itself.
    When
    Days
  2. Act

    Cell 16 reads 0 V

    Signal
    Voltage reads 0 V for the whole log. Measured
    What it may mean
    Almost certainly a sense-wire or BMS-channel fault, not a dead cell. Until it is fixed the BMS is blind to one cell.
    What to do
    Check the sense lead and connector before condemning the cell.
    When
    Immediate
  3. Watch

    Cell 1 lithium-inventory loss suspect

    Signal
    dQ/dV peak 13 mV below the pack median (threshold −5 mV). The only clear outlier in the pack. Measured
    What it may mean
    Earliest sign of lithium-inventory loss, while the BMS still reports the cell healthy.
    What to do
    Watch list, confirm on the next log, one targeted capacity test, add a spare to the plan.
    When
    Weeks
  4. Watch

    Cell 2 limits discharge

    Signal
    Pack minimum in ~56% of samples (cells 1 and 5 about 20% each). Measured
    What it may mean
    Cell 2 ends each discharge first, so it sets usable pack capacity.
    What to do
    Watch alongside cell 1, check balancing, include it in any capacity test.
    When
    Weeks
  5. Lever

    Pack lives near full

    Signal
    ~80% of the time above SoC 0.9; shallow swings (typical DoD 0.1, deepest 0.3). Measured
    What it may mean
    High resting state of charge speeds calendar ageing in most chemistries. The duty is mild in every other respect.
    What to do
    The cheapest lever available: model a lower resting-SoC cap before changing the setpoint.
    When
    Next config change
  6. No action

    Resistance is uniform

    Signal
    DCIR at 25 °C between 3.66 and 4.48 mΩ (median 4.03). Every difference sits inside each cell’s 95% interval. Measured
    What it may mean
    No resistance outlier. The spread is within measurement uncertainty, which rules out a power-fade problem.
    What to do
    No action, and that is useful too: it avoids a false alarm on cell 6.
    When
    None
  7. No action

    Balance is acceptable

    Signal
    Resting spread median 22 mV, p95 30 mV. Physics-checked
    What it may mean
    Normal for an LFP pack.
    What to do
    None now. Re-check if cell 1 or cell 2 drifts.
    When
    None
  8. Plan

    Life ≈ 1,620 cycles

    Signal
    Posterior mean 1,620 cycles; 90% window 1,503–1,700; about 5 years at 0.88 cycles/day. Bayesian posterior
    What it may mean
    A planning-grade estimate. It leans heavily on the 2,000-cycle label (+926 cycles of attribution), which is outside the training range.
    What to do
    Use the distribution, not the mean. Treat the window as a lower bound on uncertainty and re-run as more logs arrive.
    When
    Quarterly
Reference pack: model forecast, not a guarantee

Cell 1: why a 13 mV shift buys time

Lithium-inventory loss means the cell has permanently lost some of the lithium that shuttles between its electrodes, mostly into side reactions such as SEI growth. Less cyclable lithium means less usable capacity.

dQ/dV curves: the pack median peak sits at 3.376 V; cell 1's peak sits 13 mV lower at 3.363 V. Peak width (FWHM) is 30 mV.

Schematic. Peak positions and width use the reference pack’s values; the curve shapes are illustrative, not the cell’s measured curve.

How the engine sees it

As a cell charges it absorbs charge fastest at the voltages where its electrodes go through phase transitions. Plotting charge absorbed per volt (dQ/dV) shows these as peaks. When usable lithium is lost the electrodes are no longer aligned the way they were when new, and the peak moves.

Why it matters for LFP

LFP has a very flat voltage plateau, so the voltage a BMS sees barely changes as the cell ages. That is why the BMS still reports 1.000. The dQ/dV peak is one of the few signals that responds early.

  1. 1.000BMS says
  2. 0.976MW manifold: LLI flag on cell 1
  3. 0.917+500 cycles
  4. 0.853+1,000 cycles
  5. 0.80End of life ≈ 1,620 cycles
Pack-level forecast. It follows the weakest cell and is a model forecast for this reference pack, not a guarantee. The warning appears at about 0.976, roughly 1,600 forecast cycles before the end-of-life line.

What the flag supports

  • Planning the replacement: budget for it, order a spare, schedule it into a planned maintenance window rather than an outage.
  • Targeted verification: one capacity test on cell 1 instead of testing all 16.
  • Trend tracking: re-run on each new log. A shift that grows from −13 mV towards −20 mV confirms active lithium-inventory loss.
  • Second-life and resale grading: cell 1 is the one to disclose or swap before resale.

What it does not yet justify

  • Replacing the cell today. Manifold health is 0.976, the same as every other cell. The flag is about the mechanism, not a capacity deficit.
  • A cell-1-specific life number. The pack forecast follows the weakest cell.
  • Certainty. One log, one pack, no capacity test yet. A single 13 mV reading could include measurement effects; confirm it on a second log.
The most urgent finding

The T5 hot spot

T5 is the hottest sensor 62% of the time. The temperature gradient breaks the Joule-heating integrity law, and the correlation with load current is loose. That points to a local cause: a joint, busbar, airflow path or the sensor itself. Inspect near T5 within days.

2.46×

With a learned activation energy of 0.50 eV, a cell at 39.5 °C ages about 2.46× as fast as at 25 °C, under this reference model. That puts a cycle and cost figure on fixing the hot spot. Bayesian posterior

Reference-model result for this pack only. The factor uses the central value of the activation-energy posterior, without its interval.

Thermal: the T5 hot spot

Reference pack example
T1–T4 mean temperatures37–42 °C
Range across four sensors
T5 mean41.5 °C
T5 maximum56.8 °C
Largest sensor-to-sensor gradient15.8 °C vs 10 °C line
Fire line marked; integrity law MP8 fires at 1.4× the line
Share of the log T5 is the hottest sensor62%
Measured Physics-checked
Temperature bars on a 30–60 °C scale. The Joule-heating correlation is loose (Spearman +0.49), which points to a local cause rather than load heating. The physics flags the inconsistency; it does not name the cause.
Useful non-findings

What is fine, and why that matters

Only differences that exceed uncertainty raise a flag. Ruling out a problem avoids a false alarm and a wasted site visit.

Resistance: is any cell really different?

Reference pack example
Spread between lowest and highest cell (R25)0.82 mΩ
3.66 mΩ (cell 2) to 4.48 mΩ (cell 6); median 4.03 mΩ
Width of each cell’s 95% confidence interval≈ 1–8 mΩ
The log ran at 37.6–44.7 °C, so 25 °C is an extrapolation

No resistance outlier The differences are smaller than the uncertainty, so no cell is flagged. The absence of an alarm is a useful result: no wasted truck roll for cell 6.

Balance at rest

Reference pack example
Median resting spread22 mV
95th percentile resting spread30 mV
Marker: 30 mV integrity line (MP7)

Acceptable for LFP Re-check if cell 1 or cell 2 drifts.

Operating conditions

The pack lives near full

About 80% of the log sits above a state of charge of 0.9, with shallow swings. High resting state of charge speeds calendar ageing in most chemistries. It is the cheapest lever available: model a lower resting-SoC cap before changing the setpoint.

Time above SoC 0.9
~80%
Typical depth of discharge
0.1
Deepest swing
0.3
Current
mostly < 0.2 C
Time resting / charging / discharging
53% / 15% / 31%
Throughput in the log
0.76 equivalent full cycles
Life forecast

About 1,620 cycles, read with care

A planning-grade estimate. Use the distribution, not the mean, and treat the window as a lower bound on uncertainty.

Remaining useful life distribution for the reference pack: mean 1,620 cycles, 90% credible window 1,503 to 1,700 cycles, probability of end of life before 1,000 cycles is 0%, OEM rating 2,000 cycles.

End-of-life posterior for the reference pack. Mean, window, P(EOL < 1,000) and the OEM line are the pack’s values; the curve shape is illustrative.
Estimate
Posterior mean 1,620 cycles, about 5 years at 0.88 cycles a day, 81% of the OEM’s 2,000. Bayesian posterior
Window
90% credible window 1,503–1,700 cycles. P(end of life before 1,000 cycles) = 0%. A 1,600-cycle target sits at the 38th percentile.
What drives it
The rated-cycle label adds +926 cycles; temperature takes about −100; depth of discharge about zero. The label is +8.5σ outside the model’s training range (trained around ~990 cycles), which is the main reason to read this number with care.
Forecast checks
No knee detected; fade −16.4 pp per 1,000 cycles early, −9.8 later; 0% extrapolated paths. Assumed duty: DoD 0.1, SoC 1.0, 0.2 C, 0.88 cycles a day.
Model confidence

Is the model on familiar ground?

Every cell sits at about 1.7σ from the learned map of physically consistent states, stable through the log. One of ten integrity laws fired (thermal, MP8), giving an integrity score of about 0.90.

1.7σ this pack: inside the learned map, so the forecast can be used with its stated caveats.

> 3σ outside what the model has learned: do not quote a remaining-life number. Gather more data or retrain.

MW distance measures how far a battery’s state sits from the learned map of physically consistent states.
Before you quote any number

The honest limits of this evidence

  • One pack, one 20-hour log, no lab ground truth. Validation across 20–30 prospect packs is the next step.
  • The life forecast leans on a rated-cycle label outside the training range, and depth of discharge barely varied in training.
  • The credible window covers model uncertainty only, not label, sensor or duty-cycle uncertainty.
  • Resistance at 25 °C is extrapolated from a 38–45 °C log. Read the confidence intervals.
  • Cell 16 cannot be assessed until its sense wire is fixed.
  • Not a safety system and not a certified test.
Full methodology and limits

Get the same assessment for your own pack.

Share a BMS/CAN log. We run it through the MW Battery Engine and send back an MW Battery Assessment Report: findings, how sure we are, and what to do next. The first assessment is free.