Had exactly this issue when I first set up my system. Short answer: trust the BMV-712, but only if it's been properly configured.
The Daly BMS SOC is notoriously unreliable — it resets on every charge cycle and doesn't account for Peukert losses properly. It's really just there to protect the cells, not to give you accurate state of charge readings.
The BMV-712 tracks coulombs in and out continuously, so as long as you've set these correctly it's far more accurate:
- Battery capacity (Ah)
- Charged voltage threshold
- Tail current %
- Peukert exponent (for your specific chemistry)
One thing that catches people out — the BMV needs a proper full charge cycle to "sync" and set its 100% reference point. If you've never let it reach the charged voltage + tail current condition simultaneously, it may never have synced, which throws everything off.
What battery chemistry are you running? LiFePO4 flat discharge curve makes coulomb counting essential since voltage alone tells you almost nothing useful between about 20–90% SOC.
Also worth checking your shunt is on the negative terminal with all loads and charge sources on the battery side of the shunt — any stray currents bypassing it will cause drift over time.
Others here probably have thoughts on this too — @anyone running dual BMS + BMV setups, have you found a sweet spot for the sync settings?