It is common to verify the accuracy of the gauge SoC after learning cycles or battery characterization by doing some math on the discharge logs for capacity and comparing it with the gauge’s predictions.
The voltage range used to define 100% and 0% for SoC can be variable. Depending on where you define your full charge and full discharge the SoC accuracy can change drastically. When performing accuracy tests, it should be verified that the gauge is configured for the same range as the range used for SoC accuracy math calculations. Namely the charge termination conditions to denote full charge (Valid Charge Termination, VCT) and the termination method (for multicell gauges, Pack voltage or Cell voltage)
For example, if cell voltage-based termination is used for the gauge settings, but then the SoC accuracy test used is based on the pack termination voltage to calculate the full range of the passed charge, it will lead to differences in the SoC from the true calculated value using passed charge, and the reported SoC from the gauge.
Guides for calculating SoC accuracy: