Had this exact argument with myself for about three weeks when I first wired up my static caravan setup. Drove me absolutely mental.
Short answer: neither, fully — but here's how I think about it.
The BMV-712 is coulomb counting from a fixed reference point (your last "full" sync). If your charge parameters aren't dialled in perfectly, it drifts. Mine was consistently reading 8% higher than reality because my absorption voltage wasn't quite triggering the sync properly.
The BMS, meanwhile, is usually going off cell voltages — which is famously unreliable in the middle of the charge curve on lithium. Flat as a pancake from 20% to 80%, then suddenly falls off a cliff. So it looks accurate but it's just guessing in a different way.
What I actually do now on my Fogstar Drift 200Ah cells:
- Trust the BMS for protection (low cell voltage cutoffs, that's its job)
- Trust the BMV-712 for day-to-day SOC tracking, once properly calibrated
- Cross-reference both when something looks odd
The key with the 712 is getting your charged voltage, tail current, and charged detect time set correctly for your specific battery. Victron's defaults are conservative and won't match every BMS out there.
What battery are you running? And what have you set as your sync parameters? That'll tell us a lot more about where the discrepancy's coming from.
Others on here will have their own opinions — would be curious whether anyone's found a better way to get them singing from the same hymn sheet.