Understanding SOC Drift and
How to Fix It​

SOC Drift: Why It Happens and How to Fix It

October 2026

Unlike traditional lead-acid batteries where the charge level can be estimated simply by looking at the voltage, the estimation of the charge level of Lithium Iron Phosphate (LFP) batteries is more complex. Each LFP lithium battery manufacturer has their own strategy for determining the percentage charge level (SOC). The algorithm to establish the SOC for a lithium battery is complex, taking into account measured currents that go into and out of the battery, battery temperature, cell voltages, etc.  

In this article, we explain how your LiFePo battery’s BMS calculates the SOC percentage and why it’s crucial to “sync” your batteries regularly to be sure the SOC reported by the BMS is the true SOC of the battery. 

The measurement method: Coulomb counting

To calculate a SOC percentage (SOC – State Of Charge), LFP batteries use a method called Coulomb (Ampere-Hours) counting. 

Imagine a water meter at the inlet of a tank. 

  • The BMS (Battery Management System) uses a built-in shunt (a measuring resistor) to count every ampere-hour that goes in (charge) and every ampere-hour that goes out (discharge). 
    Each battery has its own BMS mounted shunt to account for energy. 
  • This is the most reliable method for lithium, as the voltage curve of lithium is too flat to be used as an accurate indicator of SOC. 

Why does the percentage become false? (The drift phenomenon)

However, no sensor is perfect.  The small shunt on the BMS is unable to detect very small currents into or out of the battery.  This is the sensor error and it can  
distort the calculation and therefore the percentage displayed over time: 

  1. The sensor error: If the current sensor has a small margin of error (e.g. 1%), and the battery cycles for weeks without ever reaching 100%, the displayed SoC will “drift” from reality. Example: The BMS could show 50% while the battery is actually at 40% or 82%. 
  2. The “Battery Bank” effect: Imagine if there are three batteries in parallel in a battery bank. The current naturally splits into three, which reduces the intensity measured by each unit. This can increase the relative margin of error of the reading. 

This is called SOC drifting.  In spring, summer and fall, many solar systems will be able to fully charge the batteries at least once a week.  Fully charging the batteries will reset the SOC to a true 100% SOC and eliminate any accumulated SOC drift.   

In winter (November thru February), solar systems will often fail to fully recharge the batteries for weeks, even months because of the reduced hours of strong sunlight.  During these months, accumulated SOC drifting can become significant!   

Sensor error

Small measurement errors accumulate over time, causing the displayed SOC to differ from the actual charge level

Battery bank effect

In parallel setups, current splits between batteries, potentially increasing relative measurement errors.

Spring/Summer

Higher solar production allows more frequent full charges, resetting SOC to 100% and correcting accumulated drif

Winter

Reduced solar production can prevent full charges for weeks, allowing SOC drift to accumulate.

The solution: fully charging the battery bank once a week using a generator or grid power.

To fully recharge a 51.2V LFP battery bank, you need to charge the batteries until the voltage reaches 56V and then keep charging at 56V until the charge current going into the battery bank drops to less than 5% of the capacity of the battery bank.  

Example:  A battery bank of 4 x 100 Ah batteries = 400Ah.  5% of 400Ah is  20 Amps.  Once the battery bank voltage reaches 56V and that is maintained until less than 20 Amps are entering the battery bank, then you know the batteries are truly 100% SOC.  This is also referred to as charging tail current of 5%. 

At this point the true SOC of the battery is once again 100% and the battery is physically full. 

The BMS will report the battery is 100% SOC and this will be in sync with the true SOC of the battery.    

Important note: Once we know the battery is truly 100% full and the SOC reported is 100%,  we consider ourselves to be on a solid basis (a true 100%). Unfortunately, SOC drifting will start again and keep accumulating until the next 100% full recharge is accomplished.  

This is why it’s crucial to set up chargers to reach the Absorption voltage and tail current periodically. If you never reach it, the displayed SoC will drift over time. 

1

Battery 100 Ah

2

Battery 100 Ah

3

Battery 100 Ah

4

Battery 100 Ah

Total battery capacity

400 Ah

5% tail current threshold

20 Ah

400 Ah × 5% = 20 A

In short

The accuracy of the SoC calculation is based on a balance between ampere-hour metering, shunt temperature and validation by limit voltages. Although metering is effective on a daily basis, only 100% synchronization of the BMS calculated SOC with the true SOC of the batteries guarantees the SOC calculated by the BMS is in sync with reality.  

If for some reason, it is impossible or not desired to fully recharge the batteries on a weekly basis,  then we recommend you set your system to use battery voltages (known as open loop operations) instead of lithium battery BMS reported SOC values (known as closed loop operations).  Since battery voltages are measured and not calculated, battery voltages do not drift and remain exact and predictable even if the batteries are not fully recharged on a regular basis.  

PEOPLE TALK ABOUT US

See how the media is talking about our lithium battery backup systems

Select your currency