Battery State of Charge From Voltage Calculator (SoC by OCV)

Battery State of Charge From Voltage Calculator

Estimate state of charge from a resting open-circuit voltage. Pick your chemistry, read a single cell or a whole pack, and the tool interpolates SoC percent from real per-chemistry discharge curves, then reports remaining capacity, per-cell voltage and a Full to Critical status label.

Measurement Mode

🔌Real Battery Presets

🔊Reading Inputs

Each chemistry has its own resting voltage curve.

Open-circuit volts with no load, after resting.

Pack volts are divided by S to get per-cell.

Used to estimate remaining amp-hours.

Note only: cold cells read slightly lower.

Controls rounding on the SoC and capacity cards.

Important: voltage must be measured at rest with no charger or load connected. A battery under load reads lower than its true open-circuit voltage, and a battery just off the charger reads higher. Let it settle 1 to 2 hours before reading for the most reliable state of charge estimate.

Estimated State of Charge 0% interpolated from OCV curve
Remaining Capacity 0 Ah rated Ah x SoC / 100
Per-Cell Voltage 0 V used for the lookup
Status - Full / Good / Low / Critical

🔢Method Snapshot

OCVresting voltage
V / Sper-cell in pack
lerpbetween breakpoints
Ahrated x SoC / 100

📊SoC vs Resting Voltage Comparison Grid

State of ChargeLi-ion / cellLiFePO4 / cellLead-acid 12VNiMH / cell
100%4.20 V3.40 V12.70 V1.40 V
90%4.06 V3.35 V12.58 V1.38 V
80%3.98 V3.32 V12.46 V1.36 V
70%3.92 V3.29 V12.34 V1.34 V
50%3.70 V3.20 V12.20 V1.28 V
30%3.60 V3.13 V12.06 V1.22 V
20%3.50 V3.08 V12.00 V1.18 V
10%3.40 V3.00 V11.90 V1.12 V
0%3.00 V2.50 V11.80 V1.00 V

🔋Nominal and Cutoff Voltages by Chemistry

ChemistryNominal / cellFull / cellEmpty cutoff
Li-ion NMC3.70 V4.20 V3.00 V
LiFePO43.20 V3.65 V rest 3.402.50 V
Lead-acid (cell)2.10 V2.12 V1.97 V
Lead-acid 12V block12.60 V12.70 V11.80 V
NiMH1.20 V1.40 V1.00 V
NiCd1.20 V1.35 V1.00 V

🔌Pack Voltage to Per-Cell Examples

ConfigChemistryPack VoltagePer-CellApprox SoC
3SLi-ion11.40 V3.80 V60%
7SLi-ion25.90 V3.70 V50%
10SLi-ion42.00 V4.20 V100%
4SLiFePO413.20 V3.30 V70%
8SLiFePO425.60 V3.20 V50%
16SLiFePO451.20 V3.20 V50%
2 blocksLead-acid24.80 V12.40 V75%

🌡Temperature and Load Effect Notes

ConditionEffect on ReadingWhat to DoTypical Shift
Under loadReads lowerDisconnect draw0.1-0.5 V low
Just chargedReads higherRest 1-2 hours0.05-0.2 V high
Cold cellReads lowerWarm to 20 C0.02-0.1 V low
Hot cellReads higherCool to 20 C0.01-0.05 V high
Aged cellCurve shiftsCompare capacityVaries
Surface chargeReads highApply brief load0.1-0.3 V high

Formula Breakdown

Per-cell voltageIn pack mode the per-cell voltage is the pack voltage divided by the series count S. A 13.2 V 4S pack is 13.2 / 4 = 3.30 V per cell before any lookup.
Find bracketing pointsEach chemistry stores voltage-SoC breakpoints. The tool locates the two nearest points that bracket your voltage, one above and one below.
Linear interpolationSoC = SoC_low + (V - V_low) / (V_high - V_low) x (SoC_high - SoC_low). This straight-line estimate fills the gap between the two breakpoints.
Worked exampleLi-ion at 3.80 V sits between 3.70 V (50%) and 3.92 V (70%): SoC = 50 + (3.80 - 3.70) / (3.92 - 3.70) x 20 = 50 + 9.1 = 59.1%.
Clamp to 0-100Voltages above the full breakpoint clamp to 100% and voltages below the empty breakpoint clamp to 0%, so the result stays physical.
Remaining capacityRemaining Ah = rated Ah x SoC / 100. A 100 Ah cell at 59.1% holds about 59.1 Ah of usable charge.
OCV caveatThis is an open-circuit estimate. Under load the terminal voltage drops from internal resistance, so a loaded reading understates the true SoC.

💡Accurate Reading Tips

Measure at rest, not under load: State of charge from voltage only works on the open-circuit voltage. Turn off inverters, chargers and loads, then wait 1 to 2 hours so the surface charge settles. A pack that reads 3.5 V per cell while a motor is pulling current may actually be at 60% once it rests, because internal resistance drops the terminal voltage while current flows.
Correct for temperature: Battery voltage curves are published near 20 to 25 C. A cold LiFePO4 or lead-acid battery reads a little lower for the same real charge, which can make a healthy pack look empty. Let the battery reach room temperature before judging its state, and remember that LiFePO4 has a famously flat curve, so tiny voltage errors turn into large SoC swings in the middle band.

The second is a quick health check: You read the voltage on your battery and determine its state of charge. A calculator plots that one number onto known chemical curves for each battery type; with this, you gets a useful percentage. Each battery type has a unique relationship between its open-circuit voltage (when not connected) and its state of charge. The tool stores those relationships as breakpoints. It then use interpolation to estimate state of charge along with other values like remaining capacity and per-cell voltage, plus a status label from Full through Critical.

The chemistry reaches an equilibrium inside a resting cell, generating a constant voltage called the open-circuit voltage. This voltage connects with how much energy is stored in a predictable manner. A fully charged lithium-ion cell will rest near 4.20 volts; it’ll be about 3.70 volts when half-charged and sag down to 3.00 volts as it approaches emptiness. Other batteries such as lead-acid and LiFePO4 follow different lines of their own. These are the most popular chemistries, and the calculator has tables for them. It then puts your reading onto the appropriate portion of that batterys curve.

How the Calculator Works

The tool use linear interpolation to approximate a real discharge curve. This curve is not actualy a straight line. It uses the measured breakpoints as points. It looks for the two points closest to yours on either side… Above or below, that bracket your measurement, and calculates the percentage of charge based off their distance apart. So, in the case of a lithium-ion cell at 3.80 volts, it’s somewhere between 50 percent and 70 percent, close to 59 percent. The more breakpoints you use, the more closely the estimated curve will match the true shape of the actual curve.

Batteries are often connected in series, which allows for either whole-pack or single-cell input. For packs, you input the series number of cells and the overall voltage. It then split the total voltage across the number of cells and looks it up from there. For example, if your LiFePO4 pack is rated at 13.2 volts with four cell, it calculates 3.30 volts per cell. Why? Because lookup tables is defined per cell. It wouldn’t make sense to compare one cell’s curve to your pack voltage (which is higher). Making this conversion to per-cell first ensures the math stay accurate.

Four result cards get filled with each calculation. The top one is the estimated state of charge percentage. Next is the remaining capacity in amp-hours, calculated at rated capacity times that percentage. Next up is the per-cell voltage used for the lookup. And finally there’s a status label, assigned by thresholds, Full if over 80 percent; Good from 50 to 80; Low from 20 to 50; and Critical under 20. Additionally, a breakdown panel lists the bracketing points, so you can see exactly how the number was derived.

The most important thing to keep in mind is the resting voltage. Battery voltage will fall because of internal resistance whenever you draw current from it. Terminal voltage won’t rise back to its real equilibrium value until the load current stops. In other words, a reading while the battery is on load is lower than actual charge status. Immediately after charging, the situation reverses: artificial surface charge keeps the voltage high. Only if you remove any chargers or loads and wait an hour or so for the battery to settle will you have a reliable indication. A reading of 3.5 volts per cell under a heavy load may actualy mean the battery is at 60 percent once it settles down. Patience avoids premature false alarms.

The published curves are at temps around 20 to 25 degrees Celsius. At cold cell temp, the same actual charge reads a little low, meaning that a healthy pack may appear almost empty in winter. On the other hand, hot cells will read a little high. The calculator has a temperature selection to show this. Because LiFePO4 is known to have a fairly flat charge curve right through the middle band, care should of been taken with them in particular: A mere few hundredths of a volt difference can shift the estimate considerably. Take mid-range LFP estimates with a grain of salt; use current monitoring if you really need accuracy where it matters.

Common scenarios include 12.7 volts on a 12-volt lead-acid block or 3.80 volts on a lithium cell. These are filled out automatically. This fills in the form instantly and allows you to see that similar voltages are very different depending on chemistry. It’s handy then for car batteries, e-bike packs, and solar banks alike.

State of charge by voltage is not a laboratory measure, it’s an estimate. There is variation between individual cells due to manufacturing spread, and aging shifts these curves over time. Take this as a quick field check and a place to plan storage. Don’t treat it as anything more than a fast approximation if you require certified numbers. Use it along with proper monitors for those times. Still, reading state of charge from resting voltage remains one of the most useful skills in the battery owner’s toolkit. Treated as a fast approximation.

Battery State of Charge From Voltage Calculator (SoC by OCV)