Had exactly this on my boat build last summer — 40% difference between my Daly BMS and the BMV-712 at one point, nearly drove me mad.
Short answer: trust the BMV-712 for day-to-day SOC, but use the BMS as your protection layer, not your gauge.
Here's why. Most budget BMS units (Daly, JBD, etc.) calculate SOC using a fairly crude voltage-lookup table. The problem is LiFePO4 has an almost flat discharge curve, so voltage is a terrible proxy for state of charge across the middle 80% of capacity. The Victron uses coulomb counting — it's literally tracking every amp going in and out — which is far more accurate in practice.
The catch is the BMV needs a proper synchronisation point to reset its counter. Mine was drifting because I wasn't regularly hitting 100% absorption. Once I sorted my charging profile on the Victron MPPT and let it fully synchronise, the readings stabilised within a few percent of each other.
Key things to check:
- Is your BMV's charged voltage threshold set correctly for LiFePO4 (around 13.4–13.5V for 12V)?
- Is your tail current set appropriately (I use 2% of capacity)?
- Has the BMV actually completed a sync recently? Check the history screen.
The BMS SOC is basically decorative on most units below £100 — useful for catching something catastrophic, not for trip planning.
Curious what BMS you're running and what your charging setup looks like — that'll help narrow it down further for your specific situation.