Been through exactly this with my own setup. Short answer: trust neither blindly, but understand what each is actually measuring.
The BMV-712 uses coulomb counting — it tracks charge in and charge out with a shunt, then applies your configured efficiency factor. It's only as good as your initial calibration and how well you've set the charge efficiency factor (typically 99% for lithium). If it's never seen a proper full charge cycle to re-sync, the drift compounds over time.
Your BMS is doing something different entirely — it's usually making a voltage-based SOC estimate, which on LFP is notoriously unreliable across the flat middle of the discharge curve. Some BMS units (particularly cheaper ones bundled with Fogstar or similar cells) have very crude lookup tables.
What I actually do:
- Use the BMV-712 as the primary SOC indicator during normal operation
- Use the BMS as a protection layer, not a gauge
- Ensure the BMV syncs to 100% reliably at each full absorption cycle — this is critical, check your "charged voltage" and "tail current" settings in VictronConnect
The gap between them is usually either a calibration issue on the BMV or the BMS interpreting resting voltage incorrectly after a load transient.
What's the actual percentage difference you're seeing, and at what point in the cycle? Also, what BMS are you running? Some have configurable SOC algorithms that can be tuned to be far more accurate.
Worth checking whether anyone else here has the same BMS pairing — there might be a known offset issue.