How Does An EV Know It Has 50% Battery Left? πŸ”‹

How Does an EV Know Its Battery Percentage πŸ”‹βš‘
How Does an EV Know Its Battery Percentage?

Battery Technology Explained Β· ~15 min read

How Does an EV Know Its Battery Percentage? πŸ”‹βš‘

Your EV dashboard says 80%, 50% or 10%. It feels like a simple reading, like a fuel gauge. It is not. A battery has no sensor that reports “percent full”. The number is an estimate, produced continuously by the Battery Management System (BMS).

The short answer: the BMS combines real-time sensing (voltage, current, temperature) with algorithms (Coulomb counting, voltage lookup, Kalman filtering) and battery models to calculate the State of Charge (SOC). It also corrects for ageing, temperature and cell differences.

1. Why battery percentage can’t be measured directly

A petrol tank is easy: a float sits on the fuel surface and its height tells you the volume. A lithium-ion battery stores energy in chemical form, in the positions of lithium ions inside electrode materials. You cannot put a ruler into that. What you can measure from outside is only electrical: how many volts across the terminals, how many amps flowing, and how warm it is.

So the BMS has to infer the hidden internal state from these outside measurements. In engineering, a quantity that is inferred rather than measured is called a state estimate. SOC is one of them.

Definition. State of Charge (SOC) is the ratio of the charge currently available to the charge the battery can hold now:
SOC (%) = remaining usable capacity Γ· total usable capacity Γ— 100

Example from the basics: if the usable capacity is 60 kWh and about 48 kWh is available, then 48 Γ· 60 = 0.80, so SOC β‰ˆ 80%.

2. Meet the Battery Management System (BMS)

The BMS is the electronic brain of the pack. It is a set of circuit boards and software attached to the battery. Its jobs include protection, balancing, communication and, most relevant here, state estimation.

Voltage sensorsevery cell Current sensorshunt / Hall effect Temperature sensorsNTC thermistors BMS software Coulomb countingVoltage lookup (OCV)Battery modelKalman filterAgeing (SOH) trackerTemperature correction SOC 80%Dashboard Feedback loop: new measurementscorrect the estimate many times per second
Figure 1: From sensors to dashboard percentage.

What the BMS measures

πŸ”Œ VoltageMeasured on every cell or small group of cells, usually with millivolt accuracy.
⚑ CurrentMeasured on the main pack line, in both directions: discharging when driving, charging when plugged in or braking.
🌑️ TemperatureMany sensors spread across modules, because a hot spot and a cold spot can coexist.
🧩 Cell behaviourDifferences between cells: voltage spread, resistance, and how quickly each cell reacts.
InputTypical sensorWhat it tells the BMS
Cell voltageAnalog front-end chipRough charge level at rest, cell health, limits for protection
Pack currentShunt resistor or Hall sensorHow much charge moved in or out (basis of Coulomb counting)
TemperatureNTC thermistorAdjusts capacity, resistance and power limits
Insulation / contactor statusIsolation monitorSafety, not SOC, but it decides whether the pack may run

3. Technique #1: Coulomb counting

Coulomb counting is the most important method. A coulomb is a unit of electric charge; one ampere flowing for one second equals one coulomb. If you track current over time, you know how much charge has entered or left the battery. It works like a bank account: deposits (charging) go up, withdrawals (driving) go down.

SOC(t) = SOC(0) + (1 / Q_usable) Γ— ∫ I(t) dt Γ— 100 I > 0 while charging I < 0 while discharging Q_usable = usable capacity in Ah (or kWh)

A worked example

  1. Battery usable capacity: 60 kWh. Starting SOC: 80% β†’ 48 kWh available.
  2. You drive and use 6 kWh of energy.
  3. Available energy is now 42 kWh.
  4. New SOC = 42 Γ· 60 = 70%.
SOC Chargingcurrent in (+) Drivingcurrent out (βˆ’) The bucket’s size (Q_usable) shrinks as the battery ages
Figure 2: Coulomb counting is like tracking water flowing into and out of a bucket.

The catch: drift

Coulomb counting is smooth and responsive, but errors accumulate. A current sensor with a tiny offset error, say 0.1 A, integrates to a growing mistake over hours. Sensor noise, sampling delays, self-discharge and unknown starting values all add up. Left alone, the estimate wanders away from reality, exactly like a clock that gains a few seconds every day.

Two more problems: the initial SOC (the value at start) must be known, and the total capacity Qusable changes with temperature and age. If either is wrong, the counting is wrong.

4. Technique #2: Voltage-based estimation

A battery’s voltage depends on how full it is. When a battery has rested with no current for a while, its terminal voltage equals the Open Circuit Voltage (OCV), which maps closely to SOC. The BMS stores a lookup table: OCV against SOC, created in the lab for that cell chemistry.

3.0 V3.4 V3.8 V4.2 V 0%25%50%75%100%State of charge NMC: steady slope, easy to read LFP: very flat plateau, hard to read
Figure 3: Illustrative voltage-SOC curves. Real curves vary by cell design and temperature.

NMC and NCA cells show a voltage that changes noticeably as the charge changes, so a voltage reading tells you a lot. LFP cells (common in many standard-range EVs) have a long flat plateau: between roughly 20% and 90% the voltage moves by only a few tens of millivolts. A tiny voltage error there becomes a huge SOC error. That is why LFP estimation leans harder on Coulomb counting and models, and why some LFP cars ask for a periodic 100% charge.

Why voltage alone isn’t enough

  • Under load, voltage sags. Internal resistance causes a voltage drop while current flows. Hard acceleration makes voltage look lower than the true OCV.
  • Voltage recovers after load. After you stop, the voltage rises slowly as ions diffuse and equalize. Waiting takes minutes to hours.
  • Hysteresis. The voltage at a given SOC can differ depending on whether you got there by charging or discharging.
  • Temperature. Cold shifts the curve and raises resistance.

5. Technique #3: Battery models

To interpret voltage during real driving, the BMS uses a mathematical battery model. The most common is the equivalent circuit model (ECM): a small electrical circuit whose behaviour mimics the battery.

OCV(SOC) R0 R1 C1 Vterminal instant dropslow recovery
Figure 4: A simple equivalent circuit. R0 explains the instant voltage drop; the R1/C1 pair explains slow relaxation.

Using such a model, the BMS can compute what the voltage should be for a given SOC, current and temperature, and compare it with the actual measured voltage. The difference is the clue that the SOC estimate is off.

6. Technique #4: Correction algorithms (Kalman filters)

How do you blend a smooth-but-drifting method (Coulomb counting) with a noisy-but-anchored method (voltage)? The classic answer is the Kalman filter and its variants (Extended Kalman Filter, Unscented Kalman Filter). Each cycle has two steps:

  1. Predict. Use Coulomb counting and the model to predict the new SOC and the expected voltage.
  2. Correct. Compare predicted voltage with the measured voltage. Nudge the SOC estimate by an amount that depends on how much the BMS trusts the sensors versus the model.
1. Predictcurrent + model 2. Comparepredicted vs measured V 3. Correctupdate SOC estimate repeat many times per second
Figure 5: The predict-and-correct loop.

The result: the estimate stays smooth like Coulomb counting, yet cannot drift far because voltage evidence keeps pulling it back. Some modern systems also use machine-learning models trained on huge amounts of battery data, often together with a Kalman filter rather than instead of it.

MethodStrengthWeaknessBest used for
Coulomb countingSmooth, fast, simpleDrifts over time; needs known start and capacityShort-term tracking while driving
Voltage / OCV lookupAnchored to physical realityOnly accurate at rest; weak on flat curvesInitial SOC, recalibration
Battery modelExplains sag and recoveryNeeds tuning; changes with ageEstimating during load
Kalman filterFuses everything, self-correctsComputationally heavier, needs good modelMain real-time estimator
Machine learningCan capture complex patternsNeeds data, harder to verifySupplementing the above

7. What disturbs the calculation

🌑️ Temperature

Cold slows the chemistry. Internal resistance rises, voltage sags more, and part of the capacity becomes temporarily unavailable. A pack that gives 60 kWh at 25 Β°C may deliver noticeably less near freezing. The BMS uses temperature to adjust the model and capacity, which is why range estimates fall in winter but often recover as the pack warms.

βš™οΈ Charge and discharge rate

Higher current (fast charging, hard acceleration) increases voltage error and reduces the energy you can extract. The Peukert-like effect means high currents make the battery “look” emptier temporarily.

🧩 Differences between cells

A pack contains hundreds or thousands of cells. No two are identical: capacity, resistance and self-discharge differ slightly. The weakest cell decides when charging must stop and when driving must stop. The BMS therefore tracks the highest and lowest cell, and the pack SOC reflects this.

Before balancingAfter balancing weakest cell limits usable energyall cells aligned: more usable energy
Figure 6: Cell balancing bleeds or shifts charge so cells finish together.

Balancing can be passive (burn extra energy from higher cells through a resistor) or active (move energy between cells). It usually happens near the top of charge or while resting.

⏳ Ageing

Every cycle and every year slowly reduces capacity and raises resistance. That means the “bucket” from Figure 2 shrinks. The BMS tracks this as State of Health (SOH):

SOH (%) = present full capacity Γ· original capacity Γ— 100
Battery ageExample SOHUsable capacity (60 kWh new)Energy at “80%” display
New100%60 kWh48 kWh
3 years95%57 kWh45.6 kWh
6 years90%54 kWh43.2 kWh
10 years82%49.2 kWh39.4 kWh

Notice that the dashboard still says 80%, but 80% means 80% of what the battery can hold today. If the BMS did not update the capacity, an old pack would show 20% and then suddenly die. Tracking capacity fade is essential to keep the percentage honest. Values above are examples; real degradation depends on chemistry, climate and use.

8. Total capacity vs usable capacity: the hidden buffers

Manufacturers do not let you use the full physical range of the cells. Running at 0% or 100% stresses the chemistry. So the pack has a gross capacity, a smaller net (usable) capacity, and protective buffers at both ends.

BottomUsable window shown as 0–100%Top reserve toprotect cells headroom forlongevity Gross (physical) capacity
Figure 7: The dashboard 0–100% maps only to the middle window.
TermMeaning
Gross capacityTotal energy the cells could store physically
Net / usable capacityEnergy the car allows you to use
Displayed SOCPercentage of the usable window that remains
Real (BMS) SOCInternal figure, sometimes on a wider scale

Some cars also apply a display curve. For example, they may hold the dashboard at 100% for a short while after full charge, or slow the drop near the bottom to leave a safety margin. The shown percentage is therefore both an estimate and a designed user experience.

9. How the BMS starts and resets its estimate

  1. Wake-up. After the car has been parked for hours, cell voltages have relaxed. The BMS reads OCV and looks up SOC. This is the most accurate anchor point.
  2. Driving. Coulomb counting with model and Kalman corrections tracks every amp.
  3. Charging. Near the end of charging, the voltage hits its limit and current tapers. The BMS knows the cells are essentially full and resets SOC to 100%.
  4. Deep discharge. Reaching the lower voltage limit gives another anchor at the bottom end.
  5. Capacity update. Measuring how much charge went in between two known SOC points reveals the true capacity and updates SOH.
Why some EVs recommend a full charge now and then: reaching 100% (especially on LFP packs) gives the BMS a strong reference point. It corrects accumulated drift and lets it balance cells.

10. Why your car’s percentage sometimes acts strangely

What you noticeLikely reason
Percentage drops faster in winterCold reduces available capacity, increases resistance and cabin heating consumes energy
It jumps up slightly after parkingVoltage recovered at rest and the estimator re-anchored to OCV
Fast drop from 100% to 95%Display curve or top-of-charge voltage relaxation
Sudden fall near 10–20% on LFPVoltage curve steepens at the low end, model corrects the estimate
Percentage differs from range estimateRange uses SOC plus a prediction of consumption; they are different calculations
Same percentage, less range over yearsBattery ageing reduced the actual kWh behind each percent

11. SOC, SOH, SOP and range: not the same thing

SOCHow full the battery is right now, in %.
SOHHow healthy it is compared with new, in %.
SOPState of Power: how much power it can deliver or accept now.
RangeEstimated distance, based on SOC, driving style, weather and terrain.

12. How accurate is it?

A well-designed EV BMS typically keeps SOC error within a few percent under normal conditions. Accuracy is best after a rest and near known anchor points, and can be worse at extreme temperatures, on very flat voltage curves or in old packs. Errors are managed conservatively: the system prefers to under-report rather than let you run flat unexpectedly, and it protects the battery with power limits when the estimate is uncertain.

13. Practical tips for drivers

  • Do not worry about small percentage jumps; they are estimator corrections.
  • Follow the manufacturer’s advice about occasional full charges, especially for LFP packs.
  • Precondition in cold weather to raise pack temperature and improve accuracy and range.
  • Judge battery health by SOH or a range trend over months, not one day’s percentage.
  • Keep software updated; manufacturers refine SOC algorithms and models over time.

Summary

  1. The battery percentage is estimated, not directly measured.
  2. The BMS senses voltage, current, temperature and cell behaviour.
  3. Coulomb counting tracks charge in and out; it is smooth but drifts.
  4. Voltage-based estimation anchors the value, best after rest and on steep voltage curves.
  5. Battery models and Kalman filters fuse both and correct errors in real time.
  6. Temperature, current, cell differences and ageing all disturb the calculation, so the BMS compensates for each.
  7. As the battery ages, the BMS updates capacity, so 80% today means 80% of a slightly smaller battery than when new.

So the next time your dashboard shows 80%, remember: it is the output of real-time sensing, algorithms and battery models working together inside the BMS. πŸ”‹βš‘