Had this exact head-scratcher on my boat last summer. After a lot of faffing about I came to the conclusion that neither is completely right, but the SmartShunt is usually closer — provided you've got your settings dialled in properly.
The BMS SOC on most units (especially cheaper ones) is notoriously optimistic. It's often based on voltage alone or a fairly crude coulomb counter that never gets a proper calibration reset unless you hit 100% charge regularly. If you're partial-cycling like most of us do, it drifts badly over time.
The SmartShunt's coulomb counting is more precise, but it lives and dies by:
- Correct battery capacity entered (Ah)
- Peukert exponent set properly for your chemistry
- Charged voltage and tail current thresholds — these are what trigger the 100% sync point
If that sync never fires, the shunt just accumulates error indefinitely.
What I'd suggest:
- Double-check your "charged voltage" is actually being reached during absorption
- Set tail current to roughly 1-2% of capacity
- Let it do a proper full charge and watch whether the shunt resets to 100%
Once mine was set up correctly the SmartShunt was rock solid. The BMS percentage became something I basically ignore unless it's throwing actual alarms.
What BMS are you running? Some of the Daly units are particularly bad for this. JK BMS tends to be more honest in my experience.