What Is Coulomb Counting in BMS?

Coulomb counting in a BMS is a method of estimating state of charge by integrating current flow in and out of the battery over time, based on the simple principle that one coulomb equals one amp flowing for one second. It’s the most widely used SOC estimation method, though it comes with a well-known drawback: accumulated error.
The Basic Idea Behind Coulomb Counting
The concept traces back over 250 years to Charles-Augustin de Coulomb’s original definition of electric charge. In practical BMS terms, it means constantly measuring current and adding it up over time: charge added during charging, charge removed during discharging, tracked against the battery’s total rated capacity to produce a running SOC percentage.
How the Calculation Actually Works
Starting from a known initial SOC, the BMS continuously measures current through a shunt resistor or Hall-effect sensor, then integrates that current over time and divides by the battery’s rated capacity. Discharging 30 amps for two hours removes 60 amp-hours from the running total; charging at 50 amps for an hour adds 50 amp-hours back. The math is simple in principle — the challenge is keeping it accurate over time.
Why Coulomb Counting Alone Isn’t Perfect
The Initial Value Problem
Coulomb counting has no way to determine SOC from scratch — it can only track change from a known starting point. If that starting value is wrong, every subsequent calculation inherits the same error.
Accumulated Sensor Error
Current sensors carry a small measurement error, even when well-calibrated. Because coulomb counting adds up current readings continuously, that small error compounds with every charge and discharge cycle, gradually pulling the calculated SOC away from the true value.
Outdated Capacity Values
The rated capacity used in the calculation needs to reflect the battery’s actual current capacity, not its original spec. As a battery ages and loses real capacity, a BMS that doesn’t update this value will systematically miscalculate SOC.
Why It’s Still the Foundation of SOC Estimation
Despite its drawbacks, coulomb counting remains simple, computationally cheap, and highly accurate over short time periods. It requires minimal processing power compared to more complex model-based approaches, which is exactly why it serves as the foundation that other correction methods build on top of, rather than being replaced outright.
How BMS Designs Correct Coulomb Counting Drift
Periodic OCV Recalibration
By periodically comparing the coulomb-counting estimate against open circuit voltage, measured when the battery is at rest, the BMS can pull its running total back toward the true value.
Kalman Filtering
Modern automotive BMS platforms typically combine coulomb counting with an extended Kalman filter, which continuously blends the current-integration estimate with a battery behavior model, self-correcting far more effectively than coulomb counting alone.
Full Charge/Discharge Anchoring
A complete charge or discharge cycle gives the BMS a reliable, known reference point, which is why occasional full charges can help keep long-term SOC accuracy in check.
| Strength | Weakness |
|---|---|
| Simple and computationally cheap | Cannot determine initial SOC on its own |
| Highly accurate over short periods | Errors compound over many cycles |
| Minimal hardware requirements | Requires periodic correction to stay accurate long-term |
Conclusion
Coulomb counting in a BMS estimates state of charge by tracking the flow of current in and out of the battery over time. It’s simple, cheap, and effective in the short term, but its accumulated error over many cycles is exactly why modern BMS platforms pair it with voltage-based correction and Kalman filtering rather than relying on it alone.
FAQs
Is coulomb counting still used in modern EVs?
Yes, it remains the foundational method, though it’s almost always paired with correction techniques like Kalman filtering.
Why does coulomb counting need a known starting SOC?
It can only track change from a reference point; it has no way to determine an absolute SOC value from current data alone.
Does temperature affect coulomb counting accuracy?
Indirectly, yes. Temperature affects both current sensor accuracy and the effective usable capacity, both of which feed into the calculation.
