Battery Voltage to State of Charge (SOC) Calculator

JJ Ben-Joseph headshot JJ Ben-Joseph

Use calculator

Battery voltage state-of-charge worksheet with calculator inputs, formulas, units, and measurement notes
Use this worksheet-style image as a reminder to check pack configuration, measurement conditions, units, and battery-specific assumptions before relying on the estimate.

Introduction to battery voltage and state of charge

This battery voltage to SOC calculator estimates how full a battery is from a voltage measured at its terminals. It supports common lithium-ion NMC packs, LiFePO4 packs, AGM batteries, flooded deep-cycle batteries, and flooded starter batteries. The result is useful for a storage check, a quick diagnosis, or a reasonableness check against a battery monitor. It is not a substitute for a controlled capacity test, a hydrometer on serviceable flooded batteries, or a shunt-based monitor on a frequently cycled battery bank.

The key requirement for battery voltage SOC work is a rested open-circuit reading. Disconnect chargers and loads, allow the voltage to settle, and measure at the battery terminals with a suitable meter. A battery operating an inverter can look empty because current creates voltage sag. A battery removed from charge can look full because surface charge temporarily lifts terminal voltage. For that reason, this calculator deliberately does not issue an SOC percentage for a reading marked under load or on charge.

The calculator converts total pack voltage to volts per series cell, checks that the temperature is near the room-temperature basis of the selected curve, and interpolates between neighboring voltage points. It estimates stored charge rather than guaranteeing runtime. Cold temperature, age, discharge rate, cell imbalance, wiring losses, and the connected equipment can reduce usable energy even when the rested SOC estimate remains the same.

How to use the battery voltage to SOC calculator

Choose a preset when it matches the pack arrangement. A nominal 12 V lead-acid battery has six 2 V cells in series, while a nominal 12 V LiFePO4 battery normally has four cells in series. A lithium battery marked 3S, 4S, 10S, or 13S uses that number as its series-cell count. The preset fills chemistry and cells; custom settings remain available for another pack arrangement.

Enter the measured pack voltage rather than the nominal voltage on the label. Select the measurement condition honestly. Rested open circuit is the condition that supports a normal estimate. A short-rest reading can be useful as a provisional clue, but recent charge or discharge may still be affecting it. Enter the actual battery temperature when known. If temperature is unknown, treat the lookup as provisional and record temperature, rest time, and whether equipment was connected whenever the result will guide maintenance.

Read all result lines together. The measured per-cell voltage and meter-error range explain how the displayed SOC was obtained. No generic temperature adjustment is applied. If the per-cell voltage is far outside the selected chemistry’s plausible resting range, do not force a percentage. Check series count, chemistry, wiring, meter accuracy, and rest condition. Total pack voltage can hide one weak cell, especially in lithium packs, so use BMS information or cell-level measurements where safety or reliability matters.

The battery voltage-to-SOC formula and uncertainty

Plain-text formulas: cell voltage = pack voltage / series cell count; SOC is linearly interpolated between adjacent room-temperature reference points. The meter-error range evaluates the curve at (pack voltage ± meter uncertainty) / series cell count.

For a pack with N series cells, divide measured pack voltage by the series count. Parallel cells add capacity but do not change this voltage calculation. Thus a 12.54 V AGM battery with six series cells measures 2.090 V per cell with no temperature correction.

Vcell=VpackN

The series-cell count is independent of parallel strings. In a pack described as NSP, only the first number changes voltage; the parallel count changes amp-hour capacity and potential current capability.

Vpack=N×Vcell

These reference curves apply near room temperature. A single temperature coefficient cannot describe every chemistry, SOC and battery construction. The calculator therefore applies no invented correction and withholds percentages outside 20–30 °C. Use a manufacturer-specific curve for cold or hot measurements. Charging-voltage temperature compensation is a different quantity and must not be used as an open-circuit SOC correction.

The calculator locates the two curve entries surrounding the voltage and interpolates between them. Linear interpolation is a transparent approximation; actual discharge curves are not perfectly straight. Readings outside the curve are flagged without a percentage. Meter-error bounds are clipped to the endpoints, which does not guarantee an accurate estimate at empty or full charge.

SOC=SOC1+Vcell−V1V2−V1×(SOC2−SOC1)

Interpolation means the estimate is proportional to the voltage’s position between adjacent reference points. It should be read as an estimate band, not as laboratory-grade knowledge of every amp-hour remaining.

ΔSOC=SOC2−SOC1

Battery chemistry curves and result interpretation

The chosen curve matters. A full rested AGM cell is represented near 2.14 V, a full flooded deep-cycle cell near 2.122 V, and a full starter cell near 2.108 V. Using a starter chart for AGM can materially understate SOC. Lithium-ion NMC cells are represented from 3.00 V near the bottom of the reference range to 4.20 V at the top. LiFePO4 uses a 2.50–3.40 V resting range, but its middle region is unusually flat.

LiFePO4 requires particular caution. Across its plateau, a small per-cell voltage difference may correspond to a broad change in charge state. Meter tolerance, connector resistance, incomplete rest, and uncertain temperature can erase that distinction. When the calculator reports a mid-range LiFePO4 number, the displayed meter-error range shows one source of uncertainty and is more meaningful than a seemingly precise percentage. For routine cycling, a shunt monitor that counts amp-hours is usually the better tool.

Lead-acid voltage is more sensitive to SOC, but voltage cannot establish battery health. Sulfation, aging, electrolyte concentration, and charging history alter behavior. A low rested estimate is a useful reason to recharge promptly, particularly below about 50%, because prolonged partial charge promotes sulfation. It does not prove that the battery has lost capacity; a load test or controlled capacity test answers that separate question.

Worked example: a rested 12 V AGM battery at 25 °C

A rested six-cell AGM battery measures 12.54 V at 25 °C. Dividing by six gives 2.090 V per cell, the 75% point on this representative curve. With a ±0.02 V pack-meter uncertainty, the voltage-only range is about 73.3–76.7%. Rest, aging and differences from the reference battery can cause additional error. At 10 °C the tool withholds a percentage and asks for a temperature-specific manufacturer curve.

If the same battery measured 12.10 V while a 25 A inverter load was running, that reading would not support the same conclusion. Internal resistance and cable losses can make a healthy battery appear much lower. Select “Under load” to see the intended response: the calculator shows per-cell information and a measurement warning, but does not invent an SOC. Remove the load, wait, and measure again.

Limits of voltage-based battery SOC estimates

Battery voltage SOC estimation works best after a genuine rest: often at least several hours for lead-acid and commonly two hours or more for LiFePO4, depending on manufacturer guidance and preceding current. It is weakest immediately after charging, during heavy discharge, in cold weather, and on the LiFePO4 plateau. Room-temperature curves do not describe cold-weather voltage or available energy.

These curves are representative rather than a data sheet for every battery. They do not cover high-voltage lithium variants, LTO, gel batteries, or unusual lead-acid electrolyte formulations. The arithmetic assumes similar series cells and a valid pack measurement. When individual cell data are available, inspect them. A lithium pack can show normal total voltage while one cell is near a limit; that condition belongs with BMS protection rather than a pack-level estimate.

For dependable maintenance, combine methods. Use rested voltage as a sanity check, a shunt monitor for ongoing charge accounting, a hydrometer on accessible flooded cells, and periodic controlled capacity verification. Measure at clean battery terminals rather than a distant cable end. Recording voltage, temperature, rest time, and connected loads turns a one-off number into a practical maintenance record.

Battery voltage and SOC questions

How long should a battery rest before measuring voltage?

Lead-acid readings are more trustworthy after at least six hours, preferably 24 hours with charger and load removed; some tables use a 24-hour rest. LiFePO4 manufacturers commonly recommend two or more hours. A longer rest after significant current gives a more meaningful voltage lookup.

Does 12.06 V always mean a 12 V battery is half full?

No. Construction and curve matter. A starter table can place 12.06 V near 25%, while a flooded deep-cycle curve can place it nearer 38%. AGM, deep-cycle flooded, and starter batteries should not share one generic curve.

Does the tool apply a temperature correction?

No. The room-temperature curves cannot be adjusted accurately with a universal coefficient. Outside 20–30 °C, use a manufacturer curve at the measured temperature.

Reference data and limits

The AGM points and flooded points from 10% to 100% follow the per-cell table in Trojan’s Battery User’s Guide, Table 7. The flooded 0% endpoint and the lithium and starter curves are illustrative approximations, not universal manufacturer calibrations. The graph and table expose every lookup point. Trojan’s measurement guidance calls for rested readings and distinguishes voltage checks from capacity tests.

Read a rested battery

Use a representative curve as a sanity check, with the correct chemistry and series count.

A preset fills the chemistry and series cell count.

Pack voltage is divided by this whole-number series count.

Room-temperature curves; no correction is applied. Outside 20–30 °C, no percentage is issued.

Use your meter’s stated total voltage error, including digits. This range covers meter uncertainty only.

Estimated state of charge: —%

Measured per-cell voltage: — V

Temperature adjustment: —

Calculator notes will appear here after you enter values.

Interactive details will appear here after you run the calculator.

Rest & Read: battery bench mini-game

Practice the same measurement principle in this optional bench game. Rest a simulated pack, read its curve, and set your SOC call. The visible meter is a teaching aid: resting the pack improves the reading, while a loaded or surface-charged reading can mislead.

Round

1 / 6

Meter reading

0.00 V

Your call

50%

Run score

0

Best run

0

Focus the bench and press Space or Enter to start the run.

Keyboard: focus the bench, use Left and Right to set your SOC call; Space or Enter rests the pack and then submits once. Press R for a fresh run. Use the buttons for the same actions.