Battery Calculators
Battery Calculators
← Back to Guides REFERENCE

LiFePO4 SOC Chart

Understanding why LiFePO4 voltage is a poor SOC indicator in the middle range, and why coulomb counting is often the better method.

The Flat Curve Problem

Most battery chemistries have a relatively linear relationship between voltage and state of charge. Lead-acid batteries, for example, show a clear voltage drop as SOC decreases. LiFePO4 does not. The discharge curve of a LiFePO4 cell is nearly flat between 20% and 80% SOC, hovering around 3.2V per cell.

This flat plateau is actually an advantage for power delivery — the voltage stays stable across a wide SOC range, which means the device being powered sees consistent voltage. But it creates a significant challenge for SOC estimation. When the voltage at 30% SOC is essentially identical to the voltage at 70% SOC, you cannot meaningfully estimate SOC from voltage alone.

The voltage only becomes a useful SOC indicator at the extremes: above 80% SOC where the curve steepens toward the charge endpoint, and below 20% SOC where it drops toward the discharge cutoff. For the middle 60% of the charge curve, a different approach is needed.

Coulomb Counting

Coulomb counting is the method most BMS units use to track SOC. It works by measuring the current flowing in and out of the battery and integrating it over time. If you start at 100% SOC and draw 10A for 5 hours, the BMS calculates that 50Ah have been removed, reducing SOC by 50% on a 100Ah battery.

Coulomb counting is accurate within the flat plateau region where voltage provides no information. However, it has its own limitations. Small measurement errors accumulate over time, causing SOC drift. Temperature affects actual capacity, and the BMS may not track this perfectly. Periodic full charge-discharge cycles recalibrate the coulomb counter against the known voltage endpoints.

Advantages

Accurate in the flat plateau region. Works under load. Provides continuous SOC updates. No need for the battery to rest. Used by virtually all modern BMS units.

Limitations

Drifts over time without recalibration. Initial SOC must be set correctly (usually by charging to 100%). Temperature affects actual capacity. Current sensor accuracy matters.

Resting vs Loaded Voltage

Resting voltage (open-circuit voltage, or OCV) is measured when no current is flowing. This is the truest representation of the cell's electrochemical state. Loaded voltage is measured while the battery is supplying current and is always lower due to internal resistance. The difference follows Ohm's law: V_loaded = V_OCV − (I × R_internal).

For a LiFePO4 cell with 20mΩ internal resistance under 50A load, the voltage drop is 1.0V — a significant deviation from the resting value. This means a battery reading 13.2V at rest might read 12.2V under a 50A load on a 12V pack. If you are trying to estimate SOC from a voltage reading taken under load, the result will be misleadingly low.

For reliable SOC estimation from voltage, always measure after the battery has been idle for at least 30 minutes. For systems that need SOC under load, rely on the BMS coulomb counter rather than a voltage reading.

11.51212.51313.514 0%10%20%30%40%50%60%70%80%90%100% SOC % VOLTAGE (V)
LiFePO4 Resting Voltage vs SOC

Approximate relationship for a 12V pack; voltage is less informative in the middle SOC plateau.

Values are approximate resting voltages at 25°C. Actual values vary by manufacturer, cell age, temperature, and measurement conditions.

SOC Reference Table

SOC % Cell Voltage (OCV) 12V Pack 24V Pack Voltage Resolution Needed
100% 3.40V 13.6V 27.2V Easy — clear signal
90% 3.35V 13.4V 26.8V Detectable
80% 3.32V 13.3V 26.6V Still distinguishable
70% 3.30V 13.2V 26.4V Difficult
60% 3.29V 13.2V 26.4V Indistinguishable from 70%
50% 3.28V 13.1V 26.2V Indistinguishable from 40–60%
40% 3.27V 13.1V 26.2V Indistinguishable from 30–50%
30% 3.26V 13.0V 26.0V Difficult
20% 3.22V 12.9V 25.8V Detectable
10% 3.15V 12.6V 25.2V Easy — clear drop
0% 3.00V 12.0V 24.0V Clear — cutoff voltage

Values are approximate resting voltages at 25°C. Actual values vary by manufacturer and cell age.

Best Practices

For most applications, use a BMS with coulomb counting as the primary SOC method, and voltage as a cross-check at the charge endpoints. Calibrate the BMS periodically by fully charging to 100% (the BMS resets SOC to 100% when it detects the charge endpoint voltage).

If you are building a custom system without a sophisticated BMS, you can estimate SOC from voltage — but only at the extremes. Above 80% or below 20% SOC, voltage provides a reasonable estimate. In the middle range, you must track amp-hours manually or accept that SOC is unknown.

For critical applications (medical, telecom, BESS), use both methods in parallel. The BMS coulomb counter provides continuous SOC, while periodic voltage checks at rest confirm the coulomb counter has not drifted.

Common Mistakes

Using a Voltmeter for Mid-Range SOC

A standard multimeter with 0.1V resolution cannot distinguish between 30% and 70% SOC on a LiFePO4 pack. The voltage difference is smaller than the meter's resolution. Do not rely on voltage alone for SOC in the flat plateau.

Ignoring Calibration Drift

Coulomb counters drift over time. If you never fully charge and discharge the battery, the BMS SOC reading becomes increasingly inaccurate. Perform a full calibration cycle every 1–3 months for best accuracy.

Measuring Voltage Under Load

Voltage measured while the battery is discharging is lower than the resting voltage due to internal resistance. This gives a falsely low SOC estimate. Always disconnect loads and wait 30+ minutes before taking a voltage-based SOC reading.

Expecting Voltage to Track SOC Linearly

Unlike lead-acid, LiFePO4 voltage does not decrease linearly with SOC. It stays flat then drops steeply at the endpoints. Assume voltage is only useful above 80% or below 20% SOC unless you have high-precision measurement equipment.

Try It

Use the SOC Estimator to calculate state of charge from open-circuit voltage or simulate coulomb counting for your LiFePO4 battery.

Open SOC Estimator

Frequently Asked Questions

Why is LiFePO4 SOC hard to determine from voltage?

LiFePO4 has an extremely flat voltage plateau between 20% and 80% SOC. The voltage difference across this entire range is only about 0.2V per cell (0.8V for a 12V pack). A typical multimeter cannot resolve this difference reliably, making voltage-based SOC estimation impractical for the middle 60% of the charge curve.

What is coulomb counting?

Coulomb counting measures the total charge entering and leaving a battery by integrating current over time. The BMS tracks amp-hours in and out to maintain a running SOC estimate. It is more accurate than voltage-based methods in the flat plateau region, but can drift over time and needs periodic recalibration.

What is the difference between resting voltage and loaded voltage?

Resting voltage (OCV) is measured after the battery has been idle for 30+ minutes with no current flow. Loaded voltage is measured while the battery is supplying current and is always lower due to internal resistance (V = OCV − I × R). The difference can be 0.5V or more under heavy load.

How do I recalibrate my BMS SOC?

Perform a full charge to 100% (absorb for 30+ minutes), then a full discharge to the BMS cutoff, then recharge to 100%. This calibration cycle aligns the coulomb counter with the actual cell voltage endpoints. Some BMS units also allow a manual SOC reset via Bluetooth or a configuration tool.

References