Ran into this exact situation with my shepherd's hut build last summer. Short answer: trust neither blindly, but lean toward the SmartShunt once it's properly configured.
Here's my thinking. The BMS is primarily a protection device — it's watching for cell-level overvoltage, undervoltage, and thermal events. Its SOC estimation is often fairly crude, sometimes just voltage-based lookup with minimal coulomb counting. The Victron SmartShunt does genuine coulomb counting and, critically, it synchronises properly at the top when you hit absorption — assuming you've set the charged voltage threshold and tail current correctly in VictronConnect.
That said, the SmartShunt is only as good as its calibration. Common culprits for drift:
- Peukert exponent set wrong for your battery chemistry (LFP should be ~1.05)
- Charged voltage threshold slightly too high, so it never syncs
- Tail current percentage too low or too high
- Parasitic loads not accounted for (my Fogstar Drift cells exposed this immediately)
Worth checking whether your BMS is reporting SOC via a protocol the SmartShunt can cross-reference, or if they're genuinely running independent estimates.
What battery are you running and what BMS? Some of the cheaper 16S units are notoriously optimistic about remaining capacity. Others like the Daly are pessimistic early on.
Anyone else here running dual-monitoring setups and found a reliable way to reconcile the two readings? Curious whether integrating via Cerbo GX changes the picture for people.