From the FuelGauge reference documentation: Note that in most cases, "fully charged" state (red charging LED goes off) will result in a SoC of 80%, not 100%.
From what I can tell, the scaling factor is 85% - i.e. if SoC shows 85, then console displays 100%. At least that math works on the devices I’ve looked at. The charge controller is set to a safe level so as not to overcharge the battery.
I believe the Device Vitals assume that the default Li-Po termination voltage of 4.112 V is used.
The Fuel Gauge reports the actual SOC depending on the voltage when sampled.
Here’s an example for a Boron being recharged by a small Solar Panel this morning.
The Boron’s PMIC setting setChargeVoltage(4208) is used, instead of the 4.112 V (default).
Note: be sure to monitor the enclosure temperature when charging to 4.208 V.
Fuel Gauge reports 92% SOC @ 4.14V. This is the actual condition, regardless of the charge termination voltage.
Device Vitals reports 100% SOC (since it’s higher than 4.112V default), but it also shows as “Charging” since that’s indeed what’s happening to reach the 4.208 charge Voltage.
The Fuel Gauge will give you the best answer. It’s the percentage remaining of the Li-Po’s actual capacity.
That’s why Fuel Gauge reports ~85’ish % when “fully” charged to the 4.112 V (default), because the Li-Po isn’t actually “full”…for safety reasons.