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.
Pack view
Reference pack example- Chemistry
- LFP
- Cells
- 16 in series
- Log
- 20.6 h
- 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.
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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
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.
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.000BMS says
- 0.976MW manifold: LLI flag on cell 1
- 0.917+500 cycles
- 0.853+1,000 cycles
- 0.80End of life ≈ 1,620 cycles
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 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 exampleWhat 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 exampleNo 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 exampleAcceptable for LFP Re-check if cell 1 or cell 2 drifts.
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
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.
- 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.
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.
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.
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.