Had exactly this with my shepherd's hut setup last summer. BMV was reading 100% and showing full charge, but when I dug into the VictronConnect app the cells were wandering — worst case I had about 120mV spread across a 280Ah LiFePO4 bank from Fogstar.
Turned out the passive balancing on the BMS only kicks in above a certain voltage threshold, and if your charge cycle never quite pushes each cell high enough for long enough, the balancer barely gets a look-in. The BMV calculates SOC from current in/out (coulomb counting) and voltage — it doesn't actually know what individual cells are doing. So 100% on the BMV just means it thinks the bank is full, not that it's balanced.
What fixed it for me:
- Bumped the absorption voltage slightly and extended the absorption time in the Victron MPPT settings
- Let it sit at absorption for a good few hours over several days
- The BMS eventually dragged the cells back into line — spread dropped to under 20mV
Worth checking whether your BMS has active or passive balancing too. Passive dissipates excess as heat and is slower. Active balancing is more effective but you're looking at a different class of BMS entirely.
Could also just be a weak cell starting to show its age, especially if the pack has some cycles on it. If the drift keeps getting worse even after proper top-balancing cycles, I'd be suspicious of one rogue cell.
What BMS are you running? And is the drift happening at top of charge or does it start appearing lower down the curve? That distinction matters a lot for diagnosing this properly.