Why does macOS estimate battery percentage higher?

Why do you think the OS estimates a battery percentage a little above the actual value? I noticed it is always between 0% and 5% more. In particular the two percentage gets closer when the remaining battery gets lower. Maybe this way the device seems to get faster to 100%, since the 95%-100% takes a lot of time...?

Some details. I can find the percentage two ways:

  • From the battery menu bar icon or with pmset -g batt (eg. now they say 96%)
  • By calculating it manually from System Information.app or with information from ioreg -l -n AppleSmartBattery -r (eg. now I get: MaxCapacity: 4181, CurrentCapacity: 3813; meaning 91.2%)

If you were to script this - keep in mind. One lithium cell charges very non-linearly. And a battery of individual cells will charge like a mess of non-linear units - none of them in phase.

Your data from ioreg is far superior to the processed guess of percentage from pmset and I would only use the power manager tool to log and process changes - not to do the calculations you seek.

From the registry - you can focus on these three items in my opinion:

  • "DesignCapacity" = 5297
  • "CurrentCapacity" = 2331
  • "MaxCapacity" = 5059

So in my case, the theoretical design maximum milli amp hours is 5297 and I can expect from the readings to only store 5059 mAh of which I have a measured 2331 left to use before I'm flat. You may or may not want to try and incorporate the amperage draw or temperature depending on how sophisticated your app will be or if it just will report the calculated time to empty listed as "InstantTimeToEmpty"


My guess is that with AppleSmartBattery, you are calculating the percentage based on the batteries brand new, fully charged state. Whereas the OS is basing the percentage on what the battery is currently capable of at full charge, which will slowly degrade over time.