Solar Battery Stops Charging at 90 Percent: BMS vs Setting Decision Tree
Why this matters
A homeowner with a new battery storage system reports it never fills past about 90 percent state of charge, and they assume they are losing usable capacity they paid for. Three very different things produce this symptom: a deliberate charge-limit setting (reserve, longevity, or backup-only programming), a balancing pause as the BMS levels cell voltages near the top, or a genuine BMS protection fault holding the pack down. The first two are normal and correct. The third needs intervention. Misreading a normal longevity setting as a defect leads to a needless battery swap; missing a real cell-balance or temperature fault lets a degrading pack keep operating. Knowing the split tells you whether to adjust a setting, explain a feature, or escalate a warranty claim.
Symptom presentation
Reported SOC plateaus in the high 80s to low 90s and will not climb further even with surplus solar. The pattern matters: a hard ceiling that never moves regardless of conditions points to a programmed limit. A pack that creeps to 100 percent slowly over an hour while charge current tapers to near zero is normal constant-voltage absorption and top balancing, not a fault. A pack that stops abruptly with a fault flag, an error code, or a temperature alarm is a BMS protection event. Time of day and temperature both shape the behavior.
Quick checks
Open the storage app or commissioning tool and read the configured charge limit, reserve percentage, and operating mode (self-consumption, backup-only, time-of-use, longevity). Many systems intentionally cap charging. Read pack temperature; lithium iron phosphate BMS units throttle or stop charging below roughly 0 C and above roughly 45 C cell temperature to protect the cells. Read individual cell voltages if the tool exposes them. A spread of more than about 30 to 50 mV near the top of charge means the BMS is balancing, which is normal but slow. Check for any active fault or protection flag.
Isolation tree
Start at the configured limit. Is there a charge-limit, reserve, or operating mode that caps SOC below 100 percent? Yes branch: this is a setting, not a fault. Confirm with the customer whether they want it changed (a longevity cap genuinely extends cycle life). No artificial cap set: go to temperature. Is cell temperature outside the BMS charge window (roughly 0 to 45 C for LiFePO4)? Yes branch: charging is correctly inhibited, the pack will resume in range, advise on enclosure ventilation or heating if the climate drives it. Temperature in range: go to cell balance. Read per-cell voltages. Is one cell hitting the high cutoff while the pack average sits lower? Yes branch: the BMS is in top balancing or, if persistent over many cycles, a weak or drifting cell. A pack that pauses to balance then continues is normal; a pack that never reaches full because one cell repeatedly hits cutoff early is a degrading cell, escalate to warranty. No imbalance, no temperature issue, no setting, and an active protection flag: that is a BMS fault, capture the code and escalate.
Confirming diagnosis
Setting-caused: changing the configured limit immediately changes the ceiling, confirming the cause. Temperature-caused: log SOC and pack temperature together; charging resumes when temperature returns to the window, and the inhibit timing tracks the temperature crossing. Balance-caused normal: charge current tapers smoothly to a trickle while SOC creeps up over an extended absorption period and cell voltages converge. Balance-caused fault: one cell consistently reaches the upper cutoff far ahead of the others across multiple cycles, with the spread widening as the pack ages, and the usable capacity measurably shrinks. A true BMS protection fault logs an explicit code (overvoltage, overtemp, cell-fault) that recurs.
Remediation
For a setting, adjust the charge limit or operating mode to the customer preference, and explain that a longevity cap (commonly holding the top of charge below full) genuinely extends LiFePO4 cycle life and is a feature, not a defect. For temperature inhibit, improve enclosure ventilation, relocate the unit out of direct heat, or, in cold climates, ensure the integrated heater or a conditioned location keeps cells above the charge floor. For a slow normal balance, no action beyond explaining absorption behavior. For a persistent single-cell early cutoff or a recurring protection fault, do not attempt cell-level repair on a sealed warranty pack; capture the BMS logs and cell-voltage history and file the manufacturer warranty claim.
References
- UL 9540 Energy Storage Systems and Equipment safety standard
- UL 1973 Batteries for use in stationary applications, BMS protection requirements
- NEC 2023 Article 706 Energy Storage Systems, including 706.30 charge control
- Battery manufacturer commissioning and operating temperature specification (cite the installed model)