Had this exact headache with my motorhome build last year. Short answer: trust neither blindly, use both.
The SmartShunt is only as good as its calibration. If your charged voltage, Peukert exponent and tail current aren't dialled in properly, it'll drift. Mine was reading 20% out after a week of cycling before I sorted the settings.
Your BMS is reading cell voltages directly, so it knows when you're at the top or bottom — but SOC% from a BMS is often just a rough voltage-based estimate in the middle range, which is famously flat on LiFePO4. Basically useless between 20–90%.
What I do:
- Use the SmartShunt for day-to-day SOC in the middle range (coulomb counting is genuinely better there)
- Let the BMS act as the safety net — if it's screaming, something's actually wrong
- Sync the shunt at 100% every time I hit a proper full charge (absorption done, tail current hit)
The drift issue usually comes down to parasitic loads the shunt doesn't know about, or an incorrect battery capacity figure entered in the app. What capacity have you set it to, and is it the actual usable capacity or the nameplate figure?
What BMS are you running? Some talk to Victron via DVCC over Bluetooth or VE.Can and you can get them working together properly rather than fighting each other.