I understand why using voltage to measure the state of a battery under load can be unreliable, since voltage drop is expected.
However, when charging under ESS I have an installation where charging stopped at 95% as programmed but this was actually a lower voltage, well below fully charged. This continued to get out of shape over a few days.
Why does ESS use SoC instead of voltage to determine when scheduled charging should stop? Whilst charging the absorption voltage is gradually reached in CC mode, then it switches to CV mode and the current gradually reduces as the battery reaches the voltage set.
So voltage would be a perfectly suitable means to determine when to stop scheduled charging. It would also be more reliable, as it would always reach a full charge, then set SoC indicator and then begin to discharge.