The Battery Management System needs a suite of algorithms to measure, estimate, control, and protect the pack throughout its lifetime. These are not independent functions — they form an interdependent stack where the output of one algorithm is the input to another. The accuracy of State of Charge estimation feeds directly into State of Power calculations. The quality of State of Health tracking determines how well Remaining Useful Life can be predicted. Temperature estimation governs whether operational limits are correctly enforced.
This page covers the full set of BMS algorithms — what each does, how it works, and why accuracy matters.
The SoX Family
The collective shorthand for BMS state estimation functions is SoX — where X represents the variable being estimated. Together they give the BMS and the vehicle system a complete picture of the battery’s current condition and capability.
| Algorithm | Abbreviation | What it estimates |
|---|---|---|
| State of Charge | SoC | How much charge remains, as % of usable capacity |
| State of Health | SoH | Current capacity as % of original |
| State of Power | SoP | Maximum power the pack can deliver or accept right now |
| State of Energy | SoE | Usable energy remaining in Wh — the basis for range |
| State of Capacity | SoQ | Current total charge capacity in Ah |
| State of Resistance | SoR | Current internal resistance relative to new |
| State of Function | SoF | Whether the pack can meet its performance requirements |
| State of Certified Energy | SoCE | Standardised SoH for EU Battery Regulation compliance |
In addition to the SoX estimators, the BMS runs the following control and protection algorithms:
- Cell balancing
- Contactor control and pre-charge sequencing
- Temperature estimation
- HV isolation monitoring
- Operational limits protection and derate management
- Safety diagnostics
- Fallback modes
- Data logging
- Remaining Useful Life (RUL) prediction
State of Charge (SoC)
SoC is the battery’s equivalent of a fuel gauge — the amount of charge currently stored in the pack as a percentage of its usable capacity. It is the most used and most important BMS output, directly displayed to the driver as the range estimate.

SoC cannot be measured directly. It must be estimated continuously from observable quantities using a model of the cell’s electrical behaviour.
The three estimation approaches
Coulomb counting integrates current over time:
SoC(t) = SoC(0) + (1 / Q_nom) × ∫ I(t) dt
Simple and fast, but accumulates error from any current sensor offset, measurement noise, or uncertainty in Q_nom. A 1% current measurement error compounds over thousands of cycles into significant SoC drift — see Impact of SOC Estimation Error for a worked look at how that drift propagates. Coulomb counting alone cannot correct for this drift without an external reference; a worked walkthrough of the method is in SoC Estimation by Coulomb Counting.
OCV-based estimation uses the well-characterised relationship between open-circuit voltage and SoC. If the cell has rested with no current flowing, its terminal voltage equals its OCV, and SoC can be read directly from a lookup table. Accurate and drift-free, but only usable during rest periods — which may be infrequent in normal use.
Model-based estimation (Kalman filter + ECM) is the production standard. An Equivalent Circuit Model (ECM) predicts the expected terminal voltage given the current SoC and load. A Kalman filter or Extended Kalman Filter (EKF) continuously compares the predicted voltage against the measured voltage and corrects the SoC estimate. This handles dynamic operating conditions, compensates for sensor noise, and tracks SoC accurately under load.
The Kalman Filter is used in a number of the algorithms to improve accuracy. It is an estimator of information of a system from noisy (or uncertain) directly or indirectly related measurements — optimal in the sense that it minimises the mean squared estimation error.
Accuracy targets: A well-parameterised model-based estimator achieves SoC accuracy of ±2–3% across the operating envelope. The ECM must be parameterised from characterisation testing across the full temperature, SoC, and C-rate range of the application.
→ SoC estimation techniques — detailed → State of Charge dedicated page
State of Health (SoH)
SoH tracks the long-term degradation of the battery pack — how much of its original capacity and power capability remains. It is defined as:
SoH = Q_current / Q_nominal × 100%
where Q_current is the current measured full-cycle capacity and Q_nominal is the capacity when the pack was new. In most automotive applications, 80% SoH is defined as end of life for the primary application — though the pack may be suitable for second-life use at lower SoH.

Mileage equals Wear – a discussion around the spread in SoH data from real users and some of the factors that impact it. For the estimation methods behind the SoH number itself, see State of Health Algorithms.
Why SoH estimation is harder than SoC estimation
SoC changes every few minutes; SoH changes over months and years. Capacity can only be directly measured during a full charge-discharge cycle — which may happen rarely or never in some applications. Production BMS systems must therefore estimate SoH from partial cycle data collected during normal operation.
The main approaches:
Capacity estimation from partial cycles — over time, the BMS accumulates Ah charged and discharged alongside SoC estimates and attempts to fit a capacity estimate. Accurate if SoC estimates are good; error-prone if SoC has drifted.
Resistance tracking — internal resistance grows with ageing and is measurable from voltage transients during current steps. Resistance-based SoH tracks power fade (reduced peak power) even when capacity fade has not yet progressed far.
Incremental Capacity Analysis (ICA) — a non-destructive electrochemical technique based on differentiating the capacity-voltage curve (dQ/dV vs V). Features in the ICA curve shift with ageing in characteristic ways that can be used to estimate degradation mechanisms. Can be applied to partial cycles if the charge/discharge protocol includes suitable constant-current sections.
Incremental Capacity Analysis (ICA) is increasingly being used in production BMS systems and second-life assessments.
Differential Voltage Analysis (DVA) — the inverse of ICA (dV/dQ vs Q). Used alongside ICA to identify which degradation mechanism is dominant: loss of lithium inventory (LLI), loss of active material at the anode (LAM_NE), or loss of active material at the cathode (LAM_PE).
EU Battery Regulation — State of Certified Energy (SoCE)
From 2026, the EU Battery Regulation (2023/1542) requires EV batteries to report a State of Certified Energy (SoCE) — a standardised SoH metric defined as the measured or on-board usable energy at a specific point in lifetime, expressed as a percentage of the certified usable energy when new. This is a legal compliance requirement, not an engineering convenience, and drives OEMs towards more rigorous, standardised on-board SoH estimation than was previously common.
→ State of Health dedicated page → State of Certified Energy → Incremental Capacity Analysis
State of Power (SoP)
SoP is the maximum power the pack can deliver (discharge) or accept (charge) at the current instant, expressed in kW. It is one of the most operationally important BMS outputs — the vehicle control unit uses it to set the maximum torque request to the motor controller and the maximum charge power to the OBC.

Current Limit Estimation
There are a number of reasons to estimate the charge and discharge current limits of a battery pack in real time:
- adhere to current safety limits of the cells
- adhere to current limits of all components in the battery pack
- avoid sudden loss of power or even a need to shutdown
SoP is constrained by whichever of the following limits is most restrictive at the current moment:
- Voltage limit — at maximum discharge power, no cell must fall below V_min. At maximum charge power, no cell must rise above V_max
- Temperature limit — high temperature reduces allowable charge current (thermal protection); low temperature reduces allowable charge current (lithium plating prevention) and reduces available discharge power
- SoC limit — at low SoC, the voltage headroom for high discharge current is reduced; at high SoC, charge acceptance is reduced
- SoH limit — increased internal resistance from ageing reduces available power at both charge and discharge
- Current limit — absolute maximum current rating of the cell, busbars, contactors, and fuses
SoP calculation:
For peak discharge power: P_max_discharge = (V_OCV(SoC) − V_min_cell) / R_int × V_min_cell × P (parallel count)
For peak charge power: P_max_charge = (V_max_cell − V_OCV(SoC)) / R_int × V_max_cell × P
Both are calculated using the EOL DCIR (accounting for ageing and temperature) to ensure the limits remain valid throughout the pack’s life.
→ State of Power dedicated page → Current limit estimation
State of Capacity
The State of Capacity (SoQ) is the current total charge capacity of the cell in Ah — distinct from SoC (which is a percentage) and SoH (which is a ratio). SoQ represents the absolute charge storage available and changes slowly as the cell ages.

The goal is to integrate the current over time to find out how much charge the cell output in this defined time window. Then, divide by the SoC delta over the same period of time. Hence, by its nature, it is an opportunistic measurement that can only be estimated over regular charge or discharge cycles (i.e. cannot be estimated continuously).
SoQ is estimated by integrating current over time during charge or discharge events and dividing by the SoC change over the same period:
SoQ = ∫ I(t) dt / ΔSOC
By its nature this is an opportunistic measurement — it can only be estimated over regular charge or discharge cycles, not continuously. The BMS accumulates these estimates over time and uses them to update the capacity model used in coulomb counting.

The Kalman Filter is used in a number of the algorithms to improve the accuracy.
Basically it is an estimator of information of a system from noisy (or uncertain) directly or indirectly related measurements.
State of Energy
The State of Energy (SoE) is the amount of usable energy remaining in the pack in Wh. It is directly related to vehicle range and is the quantity most relevant to the driver — though it is SoC that is typically displayed, SoE is what actually determines how far you can travel.

SoE is proportional to SoC and SoQ:
SoE = SoC × SoQ × V_nom
The SoE percentage can be expressed as:
SoE% = (SoE_available / SoE_total) × 100%

SoE differs from SoC because it accounts for the variation in cell voltage across the discharge curve. At the same SoC, a cell with higher DCIR (aged or cold) will deliver less energy before hitting V_min than a fresh cell at nominal temperature — SoE captures this where SoC alone does not.
State of Resistance
The State of Resistance (SoR) tracks the evolution of cell internal resistance over the pack’s lifetime. Resistance growth is the primary mechanism of power fade — even when capacity has not yet degraded significantly, increased resistance reduces available peak power and increases I²R heating at a given current.

A first-order estimate uses Ohm’s law across a current step:
R_int = ΔV / ΔI
measured during a pulse event. More sophisticated ECM-based methods extract the ohmic resistance, charge transfer resistance, and diffusion impedance separately using the transient voltage response after a current step.
SoR feeds into SoP calculations (higher resistance → lower available power) and into temperature estimation (higher resistance → more I²R heat at the same current). Tracking SoR over time provides an independent degradation indicator that complements the capacity-based SoH.
State of Function (SoF)
The State of Function (SoF) is a higher-level metric that answers a binary or graduated question: can the battery currently meet the performance requirements of its application? It combines SoC, SoH, SoP, and temperature into a single indicator that reflects whether the pack is fit for purpose at this moment.
In a vehicle application, SoF might integrate:
- Is SoC above the minimum required for safe operation?
- Is SoP above the minimum required for driving?
- Are all cells within their temperature operating window?
- Is SoH above the minimum required for reliable operation?
SoF is particularly useful at system level — the vehicle controller can use SoF as a simple go/no-go flag without processing all the individual SoX outputs.
Cell Balancing
All cells in a series string will develop small differences in SoC over time, due to manufacturing variation in self-discharge rate and capacity. These differences compound: the cell that charges first (hits V_max first) limits charging; the cell that discharges first (hits V_min first) limits discharging. Without balancing, usable pack energy falls progressively below the sum of individual cell energies.
Cell balancing corrects this by equalising SoC across all cells in the string.
Passive (dissipative) balancing
A resistor is switched across each cell that is above the target SoC, dissipating the excess energy as heat. The balancing algorithm monitors cell voltage deviations, identifies cells above the mean, and activates their balance resistors (typically 30–100Ω) during charging.
Simple, universal, low-cost. The energy dissipated as heat is a loss — but at typical balancing currents (50–200mA), the energy lost is small relative to pack capacity. The heat generated must be accounted for in the thermal design.
Active (redistributive) balancing
Energy is transferred from high-SoC cells to low-SoC cells using DC-DC converter circuits, either cell-to-cell, cell-to-pack, or pack-to-cell. More energy-efficient but significantly more complex, heavier, and expensive. Justified in applications where balancing currents are large and the energy saving is material — some large BESS applications and high-performance automotive systems.
Balancing strategy: When to balance matters as much as how. Most production systems balance at the top of charge (near V_max) when the SoC-voltage curve is steep and small SoC differences produce measurable voltage differences. Some systems also balance at the bottom of discharge. Continuous balancing during operation is used in advanced systems.
→ Cell balancing in depth → Passive balancing
Contactor Control
Managing the contactors is more complex than it appears. The sequence must protect the HV circuit from inrush current, verify system integrity before connection, and respond correctly to every fault condition.
Power-up sequence:
- BMS pre-checks: all cell voltages in range, all temperatures in range, isolation resistance above threshold, HVIL loop intact
- Pre-charge contactor closes — current-limited by pre-charge resistor, charging inverter DC link capacitors
- When DC link voltage ≈ 95% of pack voltage: main positive contactor closes
- Pre-charge contactor opens
- Main negative contactor closes (or was already closed in some architectures)
- Pack live — BMS begins continuous monitoring
Failure to pre-charge correctly — closing the main contactor onto uncharged capacitors creates an inrush current that can weld contacts, blow fuses, or damage the inverter. Pre-charge resistor sizing must ensure the time constant (R×C) is long enough to limit peak current while the pre-charge duration is short enough to be acceptable for the user.
Fault response: Any of the following triggers immediate contactor opening: cell overvoltage or undervoltage, cell overtemperature, pack overcurrent, isolation fault, HVIL break, BMS internal watchdog timeout, or external emergency shutdown signal.
Because a welded contactor gives no electrical signal on the coil side that it has failed to open, the BMS also runs a dedicated contactor weld check — measuring the voltage across each contactor after commanding it open, rather than assuming the command was obeyed.
Temperature Estimation

It is impractical to measure every cell’s temperature individually — a 400-cell pack with one sensor per cell would require 400 NTC thermistors, 400 wiring connections, and 400 analogue measurement channels. In practice, one sensor covers 4–16 cells, positioned at the expected thermal hotspot in each zone.
The BMS must therefore estimate the temperature of every cell from a sparse sensor network. This requires a thermal model of the module and pack:
Hard sensors (physical measurement):
- Thermocouples — high accuracy, wide range, fragile, needs cold junction compensation
- Thermistors (NTC) — dominant in production BMS; low cost, good accuracy at cell temperatures, nonlinear response requiring linearisation
- Resistance Temperature Detectors (PT100/PT1000) — high accuracy, higher cost
- Optical Fibre Sensors — immune to EMI, used in research applications
Soft sensors (model-based estimation):
- Bulk internal temperature estimators — estimate the average cell internal temperature from surface measurements and a simplified thermal model
- Distributed internal temperature estimators — estimate the temperature distribution within a cell, accounting for the anisotropic thermal conductivity of the electrode layers
- Hybrid estimators — combine physical measurements with a Kalman-filtered thermal model to estimate temperatures at unmeasured locations
Cell Temperature Sensing
→ Cell temperature sensing in depth
The BMS uses the estimated cell temperatures to:
- Apply temperature-dependent operational limits (charge rate, discharge rate)
- Derate charge current at low temperature to prevent lithium plating
- Activate battery heating when cells are below the minimum charge temperature
- Detect thermal anomalies that may indicate early-stage thermal runaway
HV Isolation Monitoring
The HV bus must be electrically isolated from the vehicle chassis at all times. ISO 6469-3 requires a minimum isolation resistance of 500Ω/V — so a 400V pack must maintain at least 200kΩ, and an 800V pack at least 400kΩ.
The isolation monitoring algorithm continuously measures the resistance between the HV bus and chassis ground using an injected low-level signal. Key design points:
- The 500Ω/V requirement applies to the complete HV system — not just the battery pack in isolation. The battery target must be allocated by the systems engineering team as a tighter sub-requirement
- The isolation monitor must be capable of measuring the whole HV system resistance, not just the battery side
- Isolation measurement is legislatively required when HV is present (contactors closed). Measuring with contactors open is good practice but not always mandatory
- In PHEV and HEV systems, HV may be present even with contactors open — the monitor must account for this
When isolation resistance falls below the minimum threshold, the BMS opens the main contactors and raises a fault flag. Isolation degradation causes include: coolant contamination of HV surfaces, ingress of water or conductive debris, ageing of insulation materials, physical damage to the pack, or tools or foreign objects left in the pack.
→ Isolation resistance of a pack
Operational Limits Protection
The operational limits protection algorithm enforces the boundaries within which the cell can operate safely and sustainably. It is the real-time enforcement layer that sits between the measured/estimated state of the battery and the current demand from the vehicle or charger.
The limits enforced:
| Parameter | Limit type | Consequence of breach |
|---|---|---|
| Cell voltage | Max and min | Overcharge / deep discharge / cell damage |
| Cell temperature | Max and min | Thermal runaway risk / lithium plating |
| Pack current | Max charge and discharge | Cell, busbar, contactor, fuse damage |
| SoC | Upper and lower | Accelerated degradation |
| SoH | Minimum for safe operation | Unpredictable behaviour |
Derate vs cutoff: Most protection algorithms implement a two-stage response — derate first (reduce allowable current before the limit is reached) and cut off only if the derate is insufficient. This prevents sudden loss of power that could create a safety hazard in a moving vehicle. The derate curve is defined during calibration to provide a smooth, predictable reduction in power as the pack approaches its limits.
Safety Diagnostics
Beyond the standard operational limits, the BMS runs continuous diagnostic algorithms that detect the signatures of developing faults before they become critical. These include:
Moving Average Voltage Deviation (MAVD) — monitors the rolling deviation of each cell’s voltage from the string mean. A cell whose voltage is consistently deviating above or below its neighbours may have elevated self-discharge, an internal partial short, or an ageing anomaly. Early detection allows a controlled response rather than an emergency shutdown.
Relaxation delta Voltage (RdV) — measures the voltage difference between cells during rest periods. Cells with unusual relaxation behaviour (voltage settling significantly differently from the group) indicate internal chemistry anomalies.
delta State of Health (dSOH) — tracks the rate of SoH change. A sudden acceleration in degradation rate — which may not yet be reflected in absolute SoH — indicates a change in degradation mechanism (approaching the knee point) or a developing fault.
Gas sensing (where sensors are fitted) — CO and HF sensor signals within the pack enclosure are monitored for early-stage venting that precedes full thermal runaway. The EU Battery Regulation’s 5-minute warning requirement (UN R100 Rev 3) drives the adoption of gas sensing as an early detection mechanism.
Remaining Useful Life (RUL)

Remaining Useful Life
As per the title it gives you the remaining predicted lifetime of the battery based on its usage and degradation to the failure threshold. It represents the period from the observation to the end of life (EOL). EOL refers to the time and the number of charge-discharge cycles when the battery characteristic parameters reach the replacement threshold.
RUL is the BMS’s prediction of how much life the pack has remaining before it reaches end of life — defined by either capacity falling to 80% of original, resistance growing beyond a defined limit, or some application-specific threshold.
RUL = f(current SoH, degradation rate, operating conditions, remaining lifetime target)
RUL prediction is harder than SoH estimation because it requires extrapolating the degradation trajectory forward in time. Three approaches are used:
Empirical models — capacity fade curves fit to experimental ageing data at defined conditions. Accurate when operating conditions match the test conditions; less reliable when the application duty cycle differs significantly from the test protocol.
Physics-based models — models of the underlying degradation mechanisms (SEI growth, lithium plating, particle cracking). More general but computationally expensive and require accurate knowledge of cell parameters.
Data-driven / machine learning models — trained on fleet-scale degradation data. Increasingly used in cloud-connected BMS systems where sufficient historical data is available. Can capture complex, non-linear degradation patterns that empirical and physics-based models struggle to reproduce.
The practical importance of RUL is growing with the EU Battery Regulation. Battery passport requirements include lifetime data, and SoCE (the standardised SoH metric) must be reported throughout the battery’s operational life. Accurate RUL prediction also underpins second-life value assessment — a pack with well-documented, accurate RUL commands a higher second-life market price than one with uncertain history.
→ Remaining Useful Life → Cell lifetime and degradation → Knee point
Fallback Modes and Logging
Fallback modes are the BMS’s response to sensor failures or communication faults that do not immediately require a full shutdown. If a single temperature sensor fails, the BMS may switch to a conservative fixed temperature assumption for the affected zone rather than shutting down the pack entirely. If the BMS master loses communication with a slave module, it may limit pack power while still allowing limited operation.
The design of fallback modes is a functional safety task — each fallback must be analysed for whether it introduces additional hazards, and the transition into and out of fallback must be managed safely.
Data logging records all relevant BMS measurements, state estimates, fault events, and operational limits at sufficient time resolution to support post-event analysis, warranty claim investigation, and fleet-level degradation modelling. The logged data is increasingly important for:
- OTA algorithm updates (fleet data informs model parameter improvement)
- Second-life assessment (the service history of the pack is the primary determinant of its second-life value)
- Battery passport compliance (EU Battery Regulation mandates lifetime data recording)
- Legal and insurance purposes following incidents
Algorithm Integration: How They Work Together
The BMS algorithms do not operate in isolation. They form a pipeline where the output of each feeds the next:
Sensor measurements (voltage, current, temperature) ↓ State estimation (SoC, SoQ, SoR, SoE) ↓ Health tracking (SoH, SoCE, rate of change) ↓ Capability calculation (SoP, SoF, operational limits) ↓ Control outputs (contactor commands, derate signals, balancing commands, thermal management commands) ↓ Diagnostics and protection (fault detection, safety diagnostics, RUL) ↓ Communication (CAN messages to vehicle/charger, cloud data logging)
The accuracy of the entire pipeline depends on the quality of the sensor measurements at the bottom and the quality of the cell models used in the estimation algorithms. This is why cell characterisation testing — measuring OCV curves, DCIR vs SoC and temperature, and calendar and cycle ageing behaviour — is a necessary input to BMS calibration, not optional background work.
Related Pages
- BMS overview
- State of Charge
- SoC estimation techniques
- Kalman filter
- State of Health
- Incremental Capacity Analysis
- State of Certified Energy
- Mileage equals Wear
- State of Power
- Current limit estimation
- Cell balancing
- Passive balancing
- Cell temperature sensing
- Isolation resistance of a pack
- Safety diagnostics
- Remaining Useful Life
- Knee point
- Cell lifetime and degradation
- Functional safety
- BMS hardware
- Cloud data and fleet analytics
See also: Why Physics-Informed AI is the Future of BMS, BMS History and Roadmap