Had this exact situation with my setup last winter. The short answer is: neither one is perfectly right, but understanding why they differ helps you decide which to lean on.
The BMV-712 uses coulomb counting — it tracks every amp in and out from a known reference point. Problem is, if that reference point (your 100% sync point) is slightly off, the error compounds over time. It's also sensitive to your Peukert exponent and charge efficiency settings.
Your BMS, on the other hand, is typically estimating SOC based on cell voltages, which is notoriously unreliable in the middle of the charge curve where lithium is basically flat. It's much better at the extremes.
What I actually do:
- Trust the BMS near the top and bottom (it'll catch overvoltage/undervoltage reliably)
- Trust the BMV-712 in the middle range for day-to-day consumption tracking
- Make sure the BMV syncs to 100% properly — mine only triggers when charge current drops below 1A at absorption voltage, took me ages to dial that in correctly with my Fogstar Drift cells
Also worth checking your BMV settings match your actual battery capacity. I had mine set to 200Ah on a 230Ah bank for ages and wondered why it was always pessimistic 😅
What BMS are you running? Some of the cheaper ones are genuinely terrible at SOC estimation. If you're on something like a Daly vs a JK or Seplos, that'll make a real difference to which reading you should weight more heavily.