State of charge, or SoC, is the fuel gauge of a battery bank: the fraction of its capacity still available, expressed as a percentage from empty to full. It is the number an operator most wants to see when checking a remote site, because it answers the practical question of how much runway the site has left before it goes dark. The catch is that, unlike the fuel in a tank, the charge in a battery cannot be measured directly and has to be estimated from things that only imperfectly track it. This page defines SoC, explains the two practical ways a remote controller estimates it, and shows why the easy method, reading voltage, is unreliable exactly when you most need it.
State of Charge (SoC) in one line: State of charge is the fraction of a battery's usable capacity that currently remains, from zero percent at empty to one hundred percent at full, making it the mirror image of depth of discharge. A remote controller cannot measure it directly and instead estimates it, most simply from resting voltage against a lookup table, or more accurately by coulomb counting, which integrates the current flowing in and out over time. Voltage-based SoC is unreliable under load because the voltage sags with current draw and drifts with temperature, so a good estimate combines a rested voltage reference with running coulomb counting.
State of charge describes how full a battery is right now, relative to its own usable capacity. A bank at one hundred percent is fully charged, one at zero percent is discharged to its design floor, and the number in between tells you the proportion of energy still on hand. Because it is defined as the fraction remaining, SoC and depth of discharge are complementary: a bank at sixty percent state of charge has been discharged to forty percent DoD, and the two always sum to one hundred percent. Operators lean on SoC rather than DoD in day-to-day monitoring because a fuel-gauge reading of how full the tank is maps more naturally onto the question of how long the site will keep running.
The fundamental difficulty is that charge is not a directly measurable quantity the way voltage or current are. There is no sensor you can attach to a battery that reports amp-hours remaining; the charge has to be inferred from measurable signals that correlate with it but are disturbed by other factors. This is why every SoC figure a controller reports is an estimate produced by an algorithm, not a direct reading, and why two controllers watching the same bank can disagree. Understanding that SoC is estimated, and estimated by a specific method with specific weaknesses, is the difference between trusting the gauge blindly and reading it with the right amount of skepticism.
The stakes of a good estimate are high at an unmanned site. If the reported SoC is optimistic, an operator believes a site has more runway than it does and is caught out when it fails early during a bad-weather stretch. If it is pessimistic, the operator wastes attention or a truck roll on a site that was actually fine. Because the whole value of remote monitoring is deciding where to send people from a distance, the accuracy of the SoC estimate directly determines how well those decisions can be made, which is why it is worth understanding how the number is produced.
The simplest way to estimate SoC is from resting voltage. For a given chemistry there is a fairly repeatable relationship between a battery's open-circuit voltage, measured after it has rested with no charge or discharge for a while, and its state of charge, which can be captured in a lookup table. A lead-acid bank resting at a certain voltage is roughly half charged, at a higher voltage nearly full, and so on. This method needs no extra hardware beyond a voltage measurement the controller already has, which is why it is the fallback everywhere, but its accuracy depends entirely on the battery actually being rested, which at a working site it rarely is.
Coulomb counting takes a more direct approach by tracking the current itself. If you measure the current flowing into and out of the battery and integrate it over time, you accumulate the net amp-hours added or removed, and subtracting that running total from a known starting point gives the charge remaining. Done well, this is far more accurate than voltage under load because it follows the actual energy moving, not a proxy for it. Its weakness is drift: small errors in the current measurement accumulate over hours and days, so a coulomb counter needs to be periodically re-anchored to a known reference point, most naturally when the bank reaches a full charge that the controller can detect and use to reset the count to one hundred percent.
The best practical estimators combine the two so that each covers the other's weakness. Coulomb counting provides the smooth, load-following estimate through the day, while a rested voltage reading, taken when conditions allow, corrects the accumulated drift and re-anchors the count. This is essentially how a good battery monitor or a smart charge controller behaves, and it is why a bare voltage reading and a proper SoC estimate can differ noticeably. Knowing which method a given controller uses tells you how much to trust its reported SoC, especially in the moments when the two methods would most disagree.
Voltage-based SoC is seductive because it needs no extra hardware, but it is unreliable precisely when a site is working. Under load, a battery's terminal voltage sags below its rested value in proportion to the current being drawn and the internal resistance of the bank, so a battery that is actually well charged can read low simply because it is delivering current. The reverse happens during charging, when the terminal voltage rises above the true resting value and makes the bank look fuller than it is. On top of that, the voltage-to-SoC relationship shifts with temperature, so a cold battery reports differently from a warm one at the same real charge.
The consequence is that a voltage reading taken in the middle of a working day can be off by a large margin, and always in the misleading direction. An overnight load makes a healthy bank look alarmingly low, potentially tripping a nuisance alarm or a premature load disconnect, while midday charging can mask a bank that is actually failing to recover. This is why voltage alone is a poor gauge and why a raw voltage should never be treated as an SoC without accounting for the current and temperature at the moment it was read. The confusion between a sagging voltage and a genuinely low state of charge is one of the most common misreads in remote power monitoring.
For SCADA the practical guidance is to report SoC as a distinct estimated value alongside raw voltage and current, not to let operators eyeball charge from voltage. A cloud SCADA platform such as Merobix trending a controller's own SoC estimate, together with the voltage and current it was derived from, gives operators a stable gauge for site-visit planning and preserves the raw signals for diagnosing when the estimate itself looks wrong. Watching SoC recover cleanly each morning, or fail to, is a far better predictor of an impending outage than a spot voltage reading, and it lets a fleet be triaged by which sites are genuinely running low rather than by which happen to be under load at the moment they are polled.
They are opposites that describe the same battery level. State of charge is the fraction of capacity remaining and depth of discharge is the fraction already used, so a bank at seventy percent state of charge sits at thirty percent DoD. Operators tend to watch SoC because a fuel-gauge reading of how full the bank is maps directly onto how long a site will keep running.
Because voltage only reflects true state of charge when the battery is rested, and at a working site it rarely is. Under load the terminal voltage sags below its rested value, making a healthy bank look low, while charging pushes it up and makes the bank look fuller than it is, and temperature shifts the whole relationship. A spot voltage reading during a working day can therefore be badly misleading unless you account for the current and temperature at that moment.
Coulomb counting estimates state of charge by measuring the current into and out of the battery and integrating it over time to track the net amp-hours moved. Because it follows the actual energy flowing rather than a voltage proxy, it stays accurate under load where voltage lies. Its one weakness is slow drift from small measurement errors, so it needs to be periodically re-anchored to a known reference, usually a detected full charge that resets the count to one hundred percent.
Merobix reads your field devices into a cloud SCADA - the real thing behind these terms, live in days from any browser.