What this calculator does (and what “SOC from voltage” really means)
State of charge (SOC) is the estimated percentage of usable capacity remaining in a battery, where 100% is “full” and 0% is “empty.”
One quick way to estimate SOC is to measure the battery’s open-circuit voltage (OCV) and map that voltage to a typical voltage–SOC curve for the battery chemistry.
This page estimates SOC from a resting voltage measurement for three common chemistries:
lithium‑ion (typical 4.20 V/cell full), LiFePO4 (typical 3.65 V/cell full), and lead‑acid (≈2.12 V/cell full).
It converts pack voltage to per‑cell voltage using your “cells in series” input, then interpolates between reference points to produce an approximate SOC.
How to measure voltage for the best SOC estimate
- Disconnect chargers and loads (or turn off the device). SOC-from-voltage assumes near‑zero current.
- Let the battery rest so the voltage relaxes:
- Li‑ion / LiFePO4: typically 20–60 minutes is a reasonable minimum.
- Lead‑acid: often needs several hours after charge/discharge for a stable OCV.
- Measure at the battery terminals with a reliable meter (avoid measuring through long thin wires that can add error).
- Note temperature if you can. Cold conditions generally lower voltage at a given SOC.
Formulas used
1) Convert pack voltage to per‑cell voltage
If your pack has N cells in series and you measured total pack voltage V_pack, then:
2) Piecewise linear interpolation between reference points
Each chemistry has a list of reference points (V1, SOC1), (V2, SOC2), etc. The calculator finds the two points that surround your per‑cell voltage and linearly interpolates:
SOC = SOC1 + ((Vcell − V1) / (V2 − V1)) × (SOC2 − SOC1)
If your voltage is above the highest reference point, the result is capped at 100%. If it is below the lowest point, it is capped at 0%.
Reference voltage ranges (resting / open-circuit)
The following table is a compact, scannable guide to typical resting per‑cell voltage versus approximate SOC.
Real batteries vary by manufacturer, age, temperature, and measurement conditions, so treat these as ballpark values.
| SOC (approx.) |
Li‑ion (V/cell) |
LiFePO4 (V/cell) |
Lead‑acid (V/cell) |
| 100% | 4.20 | 3.65 | 2.12 |
| 90% | 4.10 | 3.36 | 2.10 |
| 80% | 4.00 | 3.34 | 2.08 |
| 70% | 3.92 | 3.33 | 2.06 |
| 60% | 3.87 | 3.32 | 2.04 |
| 50% | 3.82 | 3.31 | 2.02 |
| 40% | 3.79 | 3.30 | 2.00 |
| 30% | 3.77 | 3.28 | 1.98 |
| 20% | 3.74 | 3.25 | 1.96 |
| 10% | 3.70 | 3.20 | 1.94 |
| 0% | 3.00 | 2.50 | 1.90 |
Notes:
LiFePO4 has a very flat plateau through much of its mid‑SOC range, so voltage alone is a weak indicator there.
For lead‑acid, small voltage differences can reflect large SOC changes depending on rest time and recent charging.
How to interpret the results
- Estimated SOC (%): an approximate SOC based on typical OCV curves. Use it for a quick check, not for precise capacity accounting.
- Per‑cell voltage (V/cell): useful for sanity‑checking your input. If this value is unrealistic for your chemistry, your series cell count may be wrong.
If you measured voltage under load, the estimate will often read too low because of voltage sag.
If you measured immediately after charging, the estimate may read too high due to surface charge.
Worked example
Suppose you have a 4‑cell Li‑ion pack (often called “4S”), and after resting you measure 15.28 V at the pack terminals.
-
Compute per‑cell voltage:
Vcell = 15.28 / 4 = 3.82 V/cell
-
For Li‑ion, 3.82 V/cell is very close to the reference point for ~50%.
Using interpolation between nearby points (e.g., 3.82 V ≈ 50%), the calculator returns roughly ~50% SOC.
If you repeated the measurement while the pack was powering a device, you might see a lower voltage (for example 14.8 V), which would incorrectly suggest a much lower SOC.
That difference is why resting/OCV matters.
Limitations & assumptions (important)
- Open-circuit only: The method assumes near‑zero current. Under load/charge, internal resistance causes sag/rise that distorts SOC.
- Temperature effects: Voltage–SOC curves shift with temperature. Cold batteries typically show lower voltage at the same SOC.
- Aging and internal resistance: As cells age, the relationship between OCV and remaining usable capacity can change. High resistance increases load sag (making under‑load estimates worse).
- Cell imbalance in packs: A pack can look “fine” on total voltage while one cell is low. Total pack voltage is not a substitute for cell‑by‑cell monitoring (especially for lithium packs).
- LiFePO4 plateau: Mid‑range SOC is hard to infer from voltage because the curve is flat; coulomb counting or a BMS estimate is often better.
- Lead‑acid sensitivity: Lead‑acid OCV needs long rest, and SOC varies with battery type (flooded vs AGM vs gel) and recent activity.
- Typical reference points: The calculator uses generalized reference points and linear interpolation. Manufacturer curves can differ.
Practical tips
- If you need accuracy, combine methods: voltage (after rest) + current integration (coulomb counting) + known load tests.
- For multi‑cell lithium packs, check individual cell voltages (or BMS readout) to detect imbalance.
- If results seem inconsistent, re‑check the series cell count and confirm chemistry (e.g., Li‑ion vs LiFePO4 packs can have similar pack voltages at different SOC).