From a BMS log to battery decisions.
MW Battery Analytics reads the ordinary BMS/CAN log your pack already produces and separates the single health number into how cells actually age. Every result says how sure it is and what you can decide with it.
What goes in
A standard BMS/CAN log: cell voltages, pack current and voltage, temperature sensors, BMS state of charge and health. One day is enough to start.
The reference analysis: 20.6 hours at one sample per minute, 1,313 rows.
What comes out
An MW Battery Assessment Report: findings with evidence, confidence, actions and time horizons, and the limits of what one log can show.
How cells actually age, separated out
A BMS report gives one number per pack. The MW Battery Engine separates the same log into mechanisms, each backed by a signal you can check.
Lithium-inventory loss
The cell permanently loses some of the lithium that shuttles between its electrodes, mostly into side reactions such as SEI growth. Usable capacity follows. It is the main capacity-fade mode in LFP.
SignaldQ/dV peak position and shift
Resistance growth
Power fades, the cell runs hotter and sags first under load.
SignalR25 (DCIR) with a 95% interval, dR/dT
Slower internal transport
The voltage takes longer to settle after current stops: the cell is losing rate capability before it loses capacity.
SignalRelaxation time constant τ, tracked across logs
Active-material loss and non-uniformity
Less of the electrode takes part, or different parts of it transition at different voltages.
SignaldQ/dV peak height and width (FWHM)
Heat
Local hot spots, cooling faults and the extra ageing each degree costs.
SignalSensor gradients, Joule-heating check, learned Arrhenius rate
Weak and imbalanced cells
The cell that ends every discharge and sets usable capacity, or drifts away from its neighbours at rest.
SignalPack-minimum share, resting voltage spread
Data integrity
Dead sense wires, drifting state-of-charge estimators, health counters that disagree with how the cell behaves, or manipulated values.
SignalIntegrity laws MP1–MP10, manifold vs BMS health
Operating conditions
How the pack is actually used, and which operating lever would change its life.
SignalTime at high SoC, depth of discharge, C-rate
The questions your team actually asks
Including the ones MW cannot answer, and what can.
A BMS gives one health number per pack. A point-estimate tool gives one life number. Neither can answer these.
How likely is this pack to last the warranty?
MW givesThe probability of reaching end of life before N cycles.
Reference packP(end of life before 1,000 cycles) = 0%; a 1,600-cycle target sits at the 38th percentile.
How sure is the life forecast?
MW givesA 90% credible window around the estimate.
Reference pack1,503–1,700 cycles around a mean of 1,620, about 5 years.
Is this cell really different, or is it noise?
MW givesWhether a difference exceeds measurement uncertainty.
Reference packCell 6’s higher resistance (4.48 mΩ) sits inside every other cell’s interval: no alarm, no truck roll.
Will this operating change actually pay off?
MW givesWhether the change in forecast exceeds model uncertainty: “resolved” or “not resolved”.
Reference packLets you skip spending on levers that are indistinguishable from noise.
Can I trust the forecast for this pack?
MW givesMW distance and a training-range check that flag extrapolation.
Reference packMW distance 1.7σ; the rated-cycle label flagged at +8.5σ outside training.
What is driving the life number?
MW givesCycles added or removed by each driver.
Reference packRated-cycle label +926 cycles; temperature about −100 cycles.
Is this log physically consistent, or faulty or tampered?
MW givesTen integrity laws: Ohm, Arrhenius, coulomb closure, Joule heating and others.
Reference pack1 of 10 fired: the thermal gradient near sensor T5.
Most battery tools are asked these. MW answers them earlier, per cell, or with a cost attached.
Which cell is starting to lose capacity?
Usual answerThe BMS shows nothing until capacity drops.
MW on the reference packCell 1 flagged for lithium-inventory loss (dQ/dV peak 13 mV below the pack) while the BMS still reads 100% health: roughly 1,600 forecast cycles of lead time to verify, budget and plan.
What does running hot cost us?
Usual answerA rule of thumb.
MW on the reference packLearned activation energy 0.50 eV: at 39.5 °C cells age 2.46× faster than at 25 °C; heat costs about 100 cycles.
Where is the heat coming from?
Usual answerThe hottest sensor reading.
MW on the reference packHot spot at T5 (max 56.8 °C) with a weak link to load current points to a local cause: joint, busbar, airflow or the sensor.
Is the BMS health figure right?
Usual answerTake the BMS number.
MW on the reference packIndependent manifold health 0.976 vs BMS 1.000. A large gap would trigger a BMS audit before resale or warranty claims.
Which cell limits usable capacity?
Usual answerNot reported.
MW on the reference packCell 2 is the pack minimum 56% of the time.
Is there a resistance problem?
Usual answerRaw resistance values.
MW on the reference packResistance normalised to 25 °C with confidence intervals: 3.66–4.48 mΩ, all overlapping, so no power-fade problem.
Which cells need a lab test?
Usual answerTest all 16.
MW on the reference packTest cell 1 only.
These need a different tool or a physical test. We say so up front.
Is this pack about to go into thermal runaway, short or vent?
Why MW can’tMW is not a safety system and must never override a BMS warning.
What canBMS safety functions and dedicated safety monitoring.
Can I certify this pack’s health for sale, insurance or regulation?
Why MW can’tCAN logs alone carry no traceable calibration, named standard or beginning-of-life baseline.
What canA certified capacity test by an accredited lab.
What is cell 1’s actual capacity today?
Why MW can’tThe flag shows the ageing mechanism, not a measured capacity loss.
What canA capacity test on that cell.
How does chemistry change the result?
Why MW can’tThe current model does not use chemistry as an input. Reference work to date is on LFP.
What canChemistry-specific models or lab characterisation.
What is the full error bar on remaining life?
Why MW can’tThe window covers model uncertainty only, not sensor, label or duty-cycle uncertainty.
What canField validation across many packs to actual end of life.
How will the pack age under deep cycling?
Why MW can’tThe training data had little depth-of-discharge variation.
What canRetraining on wider data, or cycling tests.
What is happening in a cell the BMS cannot see?
Why MW can’tMW needs a working voltage channel; cell 16 read 0 V for the whole log.
What canFix the sense wire, then re-run.
Measure, check, infer, forecast, decide
Training learns the model’s posterior once. Every new log is projected through it, and every output keeps its uncertainty to the end.
BMS / CAN data
The log you already record: cell voltages, pack current, temperatures, BMS state of charge and health.
Your data16S LFP, 1,313 rows at 1 sample/min
Measured signals
Resistance, relaxation and dQ/dV peaks fitted from the raw log. Anyone with the CSV can recompute them.
MeasuredCell 1 dQ/dV peak −13 mV
Physics checks
Ten integrity laws test whether the log is physically consistent: Ohm, Joule heating, charge counting and more.
Physics-checked1 of 10 laws fired: thermal (MP8)
Bayesian model
Places each cell on a learned map of physically consistent states, with its own uncertainty.
Bayesian posteriorManifold health 0.976, MW distance 1.7σ
Forecast + uncertainty
Many simulated futures through the map give a range for remaining life, not a single guess.
Bayesian posterior1,620 cycles, 90% window 1,503–1,700
Decision
Each signal becomes an action and a time horizon your team can plan against.
Your actionCell 1: verify and budget a spare, in weeks
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.
An ageing signal before the health number moves
On the reference pack, cell 1’s dQ/dV peak sat 13 mV below the pack median while the BMS still read 1.000. That left roughly 1,600 forecast cycles of lead time to verify, budget and plan, instead of reacting to a failure.
The full cell 1 caseSix questions a single life number can’t answer
A point estimate says “about 1,620 cycles”. A distribution lets you say much more, and defend it.
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.
Will it last the warranty?
Single number“About 1,620 cycles.”
With the distributionP(EOL before 1,000 cycles) = 0%. A 1,600-cycle target sits at the 38th percentile of the posterior.
Warranty reserves and pricing set from a probability, not a hunch.
How sure are you?
Single numberNo answer, or a made-up ±.
With the distribution90% credible window 1,503–1,700, stated as a lower bound on the true uncertainty.
A defensible error bar a third party can review.
Is this cell really different?
Single number“Cell 6 has the highest resistance.”
With the distributionCell 6’s 4.48 mΩ sits inside every other cell’s interval, so it is not resolved and there is no alarm.
Fewer false alarms and fewer wasted truck rolls.
Does this operating change matter?
Single numberTwo forecasts that differ by some cycles.
With the distributionThe sweep reports whether the difference exceeds posterior σ. If not, it says “not resolved”.
Spend money only on levers that actually move the answer.
Can I trust the model here?
Single numberSilent extrapolation.
With the distributionMW distance 1.7σ; L6 fires at +8.5σ on the rated-cycles label; attribution shows the label adds +926 cycles.
The model flags when it is outside what it knows.
How hot is too hot?
Single numberA rule of thumb.
With the distributionActivation energy is a learned posterior (0.50 eV), so 39.5 °C means 2.46× the 25 °C ageing rate.
Puts a cycle and money cost on the T5 hot spot.
Where the heat comes from, and what it costs
The hottest sensor reading says where it is hot. Physics checks say whether that heat follows the load, and a learned ageing rate puts a number on it.
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 exampleSignal, action, horizon
How a maintenance or asset team turns each signal into a decision. Filter by how soon you need to act.
- SignalChannel reads 0 V for the whole logThreshold or patternLabel = deadWhat to doCheck the sense wire and BMS channel before condemning the cellWhen to actImmediate
- SignalThermal physics law fires (MP8)Threshold or patternσ above fire lineWhat to doPhysical inspection at the hot location; thermal imaging; torque checkWhen to actDays
- SignalHot sensor with loose Joule correlationThreshold or patternSpikes at low currentWhat to doSuspect a connection, busbar joint, airflow or the sensor itselfWhen to actDays
- SignaldQ/dV peak shiftThreshold or pattern< −5 mV vs pack medianWhat to doWatch list; confirm on next log; targeted capacity test; budget and order a spareWhen to actWeeks
- SignalResistance above peers, intervals not overlappingThreshold or patternhigh_IR labelWhat to doCheck that cell’s connections first, then the cell. Expect heat and voltage sagWhen to actWeeks
- SignalPersistent pack minimumThreshold or pattern> 50% of samplesWhat to doBalance; include in capacity test; candidate for replacement with an LLI cellWhen to actWeeks
- SignalShift grows across logsThreshold or patterne.g. −13 → −20 mVWhat to doConfirmed active lithium-inventory loss: schedule replacement in a planned windowWhen to actNext maintenance
- SignalPeak widening or height fallingThreshold or patternTrend vs own historyWhat to doAdd to watch list; check for electrode heterogeneity or active-material lossWhen to actMonths
- SignalRelaxation τ rising across logsThreshold or patternTrendWhat to doRate capability falling: derate charge current or plan replacementWhen to actMonths
- SignalManifold vs BMS SoH gapThreshold or patternMP10 firesWhat to doAudit the BMS SoH counter; verify with a capacity testWhen to actBefore any transaction
- SignalMW distance above 3σThreshold or patternOff-manifoldWhat to doDo not rely on the forecast. Gather more data or retrainWhen to actBefore quoting RUL
- SignalRUL window inside warranty termThreshold or patternP(EOL within N) > targetWhat to doWarranty reserve and pricing reviewWhen to actQuarterly
- SignalOperating-change sweepThreshold or patternEffect > posterior σ (“resolved”)What to doAct on that lever. If “not resolved”, do not spend on itWhen to actNext config change
- SignalLaw-coefficient interval wideThreshold or patternPosterior panelWhat to doTreat forecasts that lean on that law as weak; collect data that varies itWhen to actBefore retraining
- SignalLong time at high SoCThreshold or pattern> ~70% above 0.9What to doModel a lower resting-SoC cap; change the setpoint if it paysWhen to actNext config change
What is in an MW Battery Assessment Report
The free assessment covers one log you share. Each new log re-runs the forecast and tracks trends.
- Findings, ordered by how actionable they areEach with its evidence, what it may mean and the action it supports.
- Per-cell measurements with their intervalsResistance, relaxation and dQ/dV values you can recompute from your own CSV.
- Integrity resultsWhich of the ten physics laws hold, which fire, and what to suspect when one does.
- Health and model confidenceManifold health beside the BMS figure, and MW distance to show whether the model is on familiar ground.
- Life forecast as a distributionMean, credible window, warranty probabilities, what drives the number and the assumptions behind it.
- Decisions with time horizonsWhat to do immediately, within days, weeks or months, and before any transaction.
- The limits of one logWhat this data can and cannot support, stated plainly.
Built for the data and budgets you already have
Uses the data you already have
Works on the standard BMS/CAN log. No new sensors, no lab test, no downtime.
One day of data is enough to start
The reference analysis used a 20.6-hour log at one sample per minute: 1,313 rows.
Auditable
Every measured number can be recomputed from the raw CSV. Model estimates are kept separate, so they never pass as measurements.
Hard to fool
CAN has no authentication, but physics is hard to forge: a spoofed state of charge must still match the current that flowed, and faked temperatures must still follow load heating.
Screens fleets
One integrity score per log, the share of physics laws that hold, ranks many packs quickly.
Fewer false alarms, cheaper testing
Only differences that exceed uncertainty raise a flag, and lab tests go to the flagged cells only.
Gets sharper with use
Each new log re-runs the forecast and tracks trends such as a growing peak shift.
See what your own battery data is telling you.
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.