State of charge (SoC) is how full a battery is, from 0% (empty) to 100% (full). Its complement is the depth of discharge (DoD) = 100% − SoC. There are two common ways to estimate SoC. The voltage method reads the rested open-circuit voltage and maps it linearly between the empty and full voltages — quick, but only approximate because the voltage-vs-charge curve is not a straight line. Coulomb counting integrates current in and out to track the remaining amp-hours, which is what a battery management system (BMS) does for accuracy.
| Quantity | Formula |
|---|---|
| SoC (voltage) | (V − Vempty)/(Vfull − Vempty) × 100 |
| SoC (coulomb) | Remaining Ah / Capacity Ah × 100 |
| Depth of discharge | DoD = 100 − SoC |
| Energy remaining | Remaining Ah × Nominal V |
The voltage method works best for chemistries with a sloped discharge curve (lead-acid, Li-ion) after the battery has rested. LiFePO4 has a very flat curve, so its voltage barely changes between 20% and 90% — coulomb counting is far more reliable there.
There is no sensor that reads state of charge directly. Every method infers it, and each one fails in a different way.
Open-circuit voltage maps to state of charge, which makes it the simplest approach. The catch is that the mapping is only valid at rest: under load, internal resistance pulls terminal voltage below the true open-circuit value, and immediately after charging it sits above. A cell may need anything from several minutes to a few hours of rest before its voltage is a fair indicator.
The bigger problem for lithium iron phosphate in particular is that the discharge curve is deliberately flat. Between roughly 20% and 80% charge, the voltage may move only a few tens of millivolts, so a small measurement error or temperature shift translates into an enormous state-of-charge error. Voltage works well at the extremes of the range and poorly in the middle — exactly where you most want to know.
The alternative is to integrate current in and out over time, which sidesteps the voltage-curve problem entirely. Its weakness is drift: any small offset in the current measurement accumulates, so the error grows steadily the longer the system runs without a reference point. This is why coulomb counters are periodically re-anchored, typically at a full charge where the true state of charge is known.
Practical battery management systems use both — coulomb counting for moment-to-moment tracking, periodically corrected against a rested open-circuit voltage reading.
In flooded lead-acid cells, electrolyte specific gravity changes with state of charge because sulphuric acid is consumed during discharge. A hydrometer reading is therefore a genuinely direct chemical measurement rather than an inference, and it remains the most reliable check on a flooded battery — though it is useless on sealed or AGM types, where the electrolyte cannot be sampled.
SoC is the remaining charge in a battery as a percentage of its full capacity, from 0% (empty) to 100% (full). It is the battery equivalent of a fuel gauge.
DoD is how much of the battery has been used: DoD = 100% − SoC. A battery at 70% SoC has been discharged to 30% DoD.
Measure the rested open-circuit voltage and map it linearly between the empty and full voltages: SoC = (V − Vempty)/(Vfull − Vempty) × 100. It is approximate because the real curve is non-linear.
Coulomb counting tracks SoC by integrating the current flowing in and out over time (charge = current × time). Starting from a known full charge, it subtracts used amp-hours to give the remaining capacity accurately.
Under load or charge the terminal voltage shifts due to internal resistance, so it does not reflect the true SoC. Letting the battery rest for a while gives the open-circuit voltage that maps reliably to charge.
LiFePO4 has a very flat voltage curve — the voltage barely changes across most of the range — so small measurement errors translate to large SoC errors. Coulomb counting is preferred for these cells.
Typical values: Li-ion 4.2 V full / 3.0 V empty; LiFePO4 3.4 V / 2.5 V; lead-acid (12 V) about 12.7 V / 12.0 V at rest. Always use the manufacturer's figures.
Keeping lithium batteries between roughly 20% and 80% SoC minimises stress and maximises cycle life. Full charges to 100% are fine occasionally but best avoided for daily storage.
Multiply the remaining amp-hours by the nominal voltage: remaining Wh = (SoC/100) × capacity(Ah) × V. This gives the usable energy left.
No. If the calculation gives more than 100% or less than 0%, the reference voltages or the remaining-Ah figure are wrong, or the battery is being measured under load rather than at rest.
Temperature shifts the voltage curve and the deliverable capacity, so cold conditions can make a battery read a lower SoC and provide fewer usable amp-hours. Good BMS designs apply temperature compensation.
They combine methods: coulomb counting for short-term accuracy, periodic recalibration against rested open-circuit voltage, and temperature correction — often blended with a model of the battery for the best estimate.
Only roughly, and only after the battery has rested. Under load the terminal voltage reads low and just after charging it reads high, so a loaded measurement can be badly wrong.
Because its discharge curve is very flat. Between about 20% and 80% charge the voltage may change only a few tens of millivolts, so a small error produces a large state-of-charge error.
Integrating current flowing in and out of the battery over time to track how much charge remains. It handles flat voltage curves well but accumulates drift from small current-measurement offsets, so it needs periodic recalibration.
Anywhere from several minutes to a few hours depending on chemistry and how hard it was just worked. Lead-acid generally needs longer than lithium. If the reading is still moving, it has not rested long enough.
In flooded lead-acid batteries, electrolyte specific gravity tracks state of charge directly, because sulphuric acid is consumed on discharge. It is the most reliable indicator for flooded cells but cannot be used on sealed or AGM batteries.
Because it is inferring charge from voltage, and voltage sags under load in proportion to current and internal resistance. Meters that combine coulomb counting with rested voltage correction are far more stable.
Battery Capacity • Internal Resistance • Cycle Life • All Calculators