Interesting that people seem to think this isn't cut & dried. My PW pretty much goes from 100% to <20% every day, and it's very clear to me that it's exactly as power.saver's graph depicts, nothing more to it than that (same thing that BJReplay said). Having worked on projects containing Lithium batteries I know that the same sort of 'fudging' of SoC percentages is very common (though I was more used to it at the high-end, where 95% SoC may be reported as 100%). I will note that the app and webpage seem to apply different rounding rules, so it sometimes appears to be off by 1% (i.e. more than the graph might suggest) due to the rounding differences. But comparing the raw API soe value to either rounded value makes it pretty straightforward in my experience, the webpage matches the soe value with rounding, and the app has the linear offset.
So I've recently been running with a 0% reserve, and when the REST API drops below 5.000% the app reports 0 and the PW goes to standby. Right now the soe reports 15.8703359784%, the webpage says 16% and the app says 11% (and flipping the equation in power.saver's graph computes to 11.44242105%, so rounding to 11% makes sense). While typing this the soe climbed to 17.3560695593%, the webpage now says 17% and the app says 13% (13.00631579%). But I believe the app reported 12% all the way up until the moment 13.0% was crossed, so the app may not round while the webpage rounds more normally (i.e. 17.5 => 18).
It seems to me one reason they might have added this offset, in the rare cases this winter where the PW hasn't been able to power the house overnight and hits my 0% reserve, the soe has dropped from 5% close to 0% (sub 1%) as the PW 'revs up' for morning charging. So without this buffer the battery presumably would have gone below their defined 0% soe. While my PW is returning to 5% soe on the API all of the solar goes straight to the PW, and the house continues to draw from the grid, once 5% is reached (i.e. the 0% app reserve) it does the normal (for the Self-powered mode I run in) PW gets what the house doesn't need from solar behavior.