Had exactly this situation last year with my 280Ah Fogstar Drift LiFePO4 bank. The two readings were sometimes 8-10% apart which drove me mad initially.
Short answer: trust the BMS for protection, trust the BMV-712 for day-to-day SOC management — but only once the BMV is properly calibrated.
The BMV works by coulomb counting from a known full charge point. If you haven't nailed down your:
- Charged voltage threshold
- Tail current setting (I use 1-2% of capacity)
- Peukert exponent (LiFePO4 is typically 1.05)
...then it'll drift over time. Mine was way off until I tightened up those settings.
The BMS SOC is usually calculated differently — often just voltage-based, which is notoriously unreliable in the flat middle section of a LiFePO4 curve. That's probably why they disagree.
What I do now is let the BMV be my primary readout but do a full charge every couple of weeks to give it a proper sync point. After a full charge cycle where the BMS hits top balance, both my readings usually land within 2-3% of each other.
What does your charge setup look like? Victron MPPT or shore power? And has the battery ever been fully charged since you configured the BMV? That's usually where the problem starts.
Would be good to hear what others are doing — especially anyone running a Daly or JK BMS alongside Victron kit.