How to detect battery NOT present Photon with PowerShield?

When the battery is not present , I get unrealistic number’s back from getSoC() ( like 167.585938 ) , But is seems inconsistent . For example I get getSoC() = 91.648438 back when the battery is present , but then I unplug the battery , and I still get the same values. The same is true when I get getSoC() = 167.585938 when the battery is not present , but once I plug the battery back in , I still get the same values for a while .

Even when I reset ( reset button ) the Photon after I removed the battery , it still reports same getSoC() value , what it was before I removed the battery .

So how to detect battery presence , on boot or when it was remove / added while it was running ?

Have you tried getVCell() to read the cell voltage?
You could also set the ALRT jumper to get a notification for when the voltage drops too low (in conjunction with setAlertThreshold() and getAlert()).

There are also some solder pads, jumpers and pins that could be wired and used, but without exactly knowing what you’re after it’s not easy to help.
e.g. how do you power the device? (via Photon, on-board USB, screw terminals)

You can also have a look at the schematics and datasheets
https://github.com/spark/shields/blob/master/photon-shields/PDFs/Schematics/power-shield-v210.pdf