Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Mike Boreham

macrumors 68040
Original poster
Aug 10, 2006
3,918
1,904
UK
I can see my battery health in four different places on my M1 MBA:

About this Mac > System Report > Power shows maximum Capacity as 100%. It doesn't call this "Health" but I am assuming that it is full charge mAh as a percentage of design max mAh. ie the normal Health definition. (NB the Mac is only at 60% charge so no confusion with current charge%)

Coconut, Better Battery and iStat Menus all say Health 94%

All four sources say 18 cycles.

System Report and iStat Menus report current charge as 60%

Coconut and Better Battery both say current charge is 57.2%. Better Battery has an option to "show true charge" which accounts for the difference 60 to 57.2.

94% Health on a 3.5 month old machine with 18 cycles is a bit worrying, but the Apple System Report says 100%.

Machine has been plugged in to power nearly 24/7 since new on November 21st. I started using Al Dente to keep it at 60% max two weeks ago.

Anyone understand the difference between System Report and the Third party app reports?


Screenshot 2021-03-07 at 12.35.33.png
 

Donga120

macrumors 6502a
Sep 19, 2014
889
609
UK
I've always found Coconut Battery pretty accurate. If your laptop is plugged in a lot, use Aldente to set a charging limit of say 70% unless you need 100% battery for the day. This also draws power directly from the charger rather than using the battery. Had my MBP M1 for 2 months, used it a lot and only at 9 Cycles because 99% of the time is it plugged in at around 65%.

Make sure you do use the battery at least once a week to keep the battery fresh, not good to have them sat at a constant percentage for long periods, i.e charge it to 80% and use it to drop it down to 40% etc.

If machine has been plugged in at 100% this is not ideal for the battery and will degrade it slightly faster than normal
 
  • Like
Reactions: BigMcGuire

Mike Boreham

macrumors 68040
Original poster
Aug 10, 2006
3,918
1,904
UK
I've always found Coconut Battery pretty accurate. If your laptop is plugged in a lot, use Aldente to set a charging limit of say 70% unless you need 100% battery for the day. This also draws power directly from the charger rather than using the battery. Had my MBP M1 for 2 months, used it a lot and only at 9 Cycles because 99% of the time is it plugged in at around 65%.

Make sure you do use the battery at least once a week to keep the battery fresh, not good to have them sat at a constant percentage for long periods, i.e charge it to 80% and use it to drop it down to 40% etc.

If machine has been plugged in at 100% this is not ideal for the battery and will degrade it slightly faster than normal
Thanks. As I said I am already using Al Dente, but only for the last two weeks. I guess I have already lost 6% of health due the period of 24/7 plugged in with only the Apple Optimise Battery turned on.

You mention Coconut has been pretty accurate for you....how has it compared with the System Report number?
 

tosbsas

macrumors 65816
Nov 22, 2008
1,297
437
Lima, Peru
I've always found Coconut Battery pretty accurate. If your laptop is plugged in a lot, use Aldente to set a charging limit of say 70% unless you need 100% battery for the day. This also draws power directly from the charger rather than using the battery. Had my MBP M1 for 2 months, used it a lot and only at 9 Cycles because 99% of the time is it plugged in at around 65%.

Make sure you do use the battery at least once a week to keep the battery fresh, not good to have them sat at a constant percentage for long periods, i.e charge it to 80% and use it to drop it down to 40% etc.

If machine has been plugged in at 100% this is not ideal for the battery and will degrade it slightly faster than normal

I Found this to be Good advice but would you charge to 100 or to al dente’s level?
 

jdb8167

macrumors 601
Nov 17, 2008
4,859
4,599
I can see my battery health in four different places on my M1 MBA:

About this Mac > System Report > Power shows maximum Capacity as 100%. It doesn't call this "Health" but I am assuming that it is full charge mAh as a percentage of design max mAh. ie the normal Health definition. (NB the Mac is only at 60% charge so no confusion with current charge%)

Coconut, Better Battery and iStat Menus all say Health 94%

All four sources say 18 cycles.

System Report and iStat Menus report current charge as 60%

Coconut and Better Battery both say current charge is 57.2%. Better Battery has an option to "show true charge" which accounts for the difference 60 to 57.2.

94% Health on a 3.5 month old machine with 18 cycles is a bit worrying, but the Apple System Report says 100%.

Machine has been plugged in to power nearly 24/7 since new on November 21st. I started using Al Dente to keep it at 60% max two weeks ago.

Anyone understand the difference between System Report and the Third party app reports?


View attachment 1740110
I've looked into this pretty extensively and while I don't have any understanding of why different percentages for current charge are reported in different places, they are all coming from the OS as far as I can tell. I've built a bunch of shell scripts and tools that use the command line ioreg tool and I can get values for everything that match coconut battery, the menu extra values and the system profiler values.

The consolidated output of my shell script:
Screen Shot 2021-03-07 at 10.46.36 AM.png

The first "Charge at x% capacity" is calculated from the full charge capacity and current charge values retrieved from ioreg. The "Current full charge at x% of design capacity is calculated from design capacity and full charge capacity. The cycle count and battery temperature are simply retrieved from ioreg (Edit: though the temperature is returned as degrees Kelvin and converted here to degrees F). The "Power adapter at x Watts" is retrieved from ioreg. The "Connected at x Watts" is calculated from two values not otherwise displayed, "AppleRawBatteryVoltage" multiplied by "InstantAmperage" (which is represented as a two's complement binary when negative.) This shows Charging, Discharging or Connected depending on the value. In this case since the battery is neither charging nor discharging I used Connected.

Then we get to the odd values. Both Current capacity and State of Charge are simply retrieved from ioreg. The current capacity value matches what is in System Profiler and the menu extra. The State of Charge is approximately the same as the calculated value though I don't know if it is displayed anywhere in the OS.

I would love an explanation for all the different values. It really doesn't make a lot of sense to me but I'm fairly certain that these values aren't being calculated by separate applications but are all coming from the central ioreg repository.

I know you've said you aren't much for the command line but if you want to check it out the basic command line to get the values in a mostly human readable form is: ioreg -arc AppleSmartBattery.
 
  • Like
Reactions: Mike Boreham

Mike Boreham

macrumors 68040
Original poster
Aug 10, 2006
3,918
1,904
UK
I've looked into this pretty extensively and while I don't have any understanding of why different percentages for current charge are reported in different places, they are all coming from the OS as far as I can tell. I've built a bunch of shell scripts and tools that use the command line ioreg tool and I can get values for everything that match coconut battery, the menu extra values and the system profiler values.

The consolidated output of my shell script:
View attachment 1740157
The first "Charge at x% capacity" is calculated from the full charge capacity and current charge values retrieved from ioreg. The "Current full charge at x% of design capacity is calculated from design capacity and full charge capacity. The cycle count and battery temperature are simply retrieved from ioreg (Edit: though the temperature is returned as degrees Kelvin and converted here to degrees F). The "Power adapter at x Watts" is retrieved from ioreg. The "Connected at x Watts" is calculated from two values not otherwise displayed, "AppleRawBatteryVoltage" multiplied by "InstantAmperage" (which is represented as a two's complement binary when negative.) This shows Charging, Discharging or Connected depending on the value. In this case since the battery is neither charging nor discharging I used Connected.

Then we get to the odd values. Both Current capacity and State of Charge are simply retrieved from ioreg. The current capacity value matches what is in System Profiler and the menu extra. The State of Charge is approximately the same as the calculated value though I don't know if it is displayed anywhere in the OS.

I would love an explanation for all the different values. It really doesn't make a lot of sense to me but I'm fairly certain that these values aren't being calculated by separate applications but are all coming from the central ioreg repository.

I know you've said you aren't much for the command line but if you want to check it out the basic command line to get the values in a mostly human readable form is: ioreg -arc AppleSmartBattery.

Thanks very much jdb8167 !

Not sure how you deduced that I am not much one for the Terminal! It is true that I am not terminally literate but I am very willing to be spoon-fed instructions and do use Terminal for many things with commands I have saved.

I tried pasting ioreg -arc AppleSmartBattery into the Terminal window but did not get your consolidated output. What appeared looked more like a complete script. EDIT realise you said it was a shell script not a Terminal input, so investigating now. Any help much appreciated.

I would be very grateful if you could spoon feed me a bit more to get your output.
 

jdb8167

macrumors 601
Nov 17, 2008
4,859
4,599
Thanks very much jdb8167 !

Not sure how you deduced that I am not much one for the Terminal! It is true that I am not terminally literate but I am very willing to be spoon-fed instructions and do use Terminal for many things with commands I have saved.

I tried pasting ioreg -arc AppleSmartBattery into the Terminal window but did not get your consolidated output. What appeared looked more like a complete script.

I would be very grateful if you could spoon feed me a bit more to get your output.
Sorry for the confusion, the ioreg is the raw data that I was working with. My scripts are available on my github under m1batterystats repository but they aren't going to be easy to use unfortunately since you also need my modified version of the command line tool bitwise.
 

Mike Boreham

macrumors 68040
Original poster
Aug 10, 2006
3,918
1,904
UK
Sorry for the confusion, the ioreg is the raw data that I was working with. My scripts are available on my github under m1batterystats repository but they aren't going to be easy to use unfortunately since you also need my modified version of the command line tool bitwise.
Thanks...that does look a bit beyond my skillset.

The basic question remains (I think) that these third party apps only have access to system data (presumably using similar or same tools as you) so why are the numbers in the third party apps different from Apple System Report?
 

jdb8167

macrumors 601
Nov 17, 2008
4,859
4,599
Thanks...that does look a bit beyond my skillset.

The basic question remains (I think) that these third party apps only have access to system data (presumably using similar or same tools as you) so why are the numbers in the third party apps different from Apple System Report?
They chose to use different numbers just as I did. Once you investigate this, it becomes pretty apparent that the correct numbers are what is being displayed by coconut battery. The other numbers are fudged for some reason to show more of a charge than is actually available at least according to the values in the current charge and full charge capacity slots.

Everyone could be using the CurrentCapacity value but that supplies less information than the other values.
 

Mike Boreham

macrumors 68040
Original poster
Aug 10, 2006
3,918
1,904
UK
They chose to use different numbers just as I did. Once you investigate this, it becomes pretty apparent that the correct numbers are what is being displayed by coconut battery. The other numbers are fudged for some reason to show more of a charge than is actually available at least according to the values in the current charge and full charge capacity slots.

Everyone could be using the CurrentCapacity value but that supplies less information than the other values.

If I read your previous post right what you called the "odd values" related to the current capacity and state of charge, and are presumably behind Better Battery's preference option to show "Real Charge Level" or not.

Your odd values don't seem to include the "Maximum capacity" in System Report and also in the Battery Pref Pane:

Screenshot 2021-03-07 at 16.54.36.png


In my case I have Apple telling me in bold type 100% health and Coconut and Better Battery only 94%.

I am surprised this discrepancy is not getting more attention.

Normally I would be more inclined to believe Apple reported numbers than a third party app, but Coconut has a good reputation and Apple has an interest in showing a high number.
 

jdb8167

macrumors 601
Nov 17, 2008
4,859
4,599
If I read your previous post right what you called the "odd values" related to the current capacity and state of charge, and are presumably behind Better Battery's preference option to show "Real Charge Level" or not.

Your odd values don't seem to include the "Maximum capacity" in System Report and also in the Battery Pref Pane:

View attachment 1740208

In my case I have Apple telling me in bold type 100% health and Coconut and Better Battery only 94%.

I am surprised this discrepancy is not getting more attention.

Normally I would be more inclined to believe Apple reported numbers than a third party app, but Coconut has a good reputation and Apple has an interest in showing a high number.
I haven't researched where Apple gets the Maximum capacity from. It is pretty clear that coconut battery is getting it from the AppleRawMaxCapacity / DesignCapacity. Again, this supplies more information than whatever fudging Apple is doing in that dialog.

Edit: A quick search tells me that the 100% is probably coming from the MaxCapacity ioreg slot but since it doesn't change (yet) I can't know for sure.
 

Mike Boreham

macrumors 68040
Original poster
Aug 10, 2006
3,918
1,904
UK
I haven't researched where Apple gets the Maximum capacity from. It is pretty clear that coconut battery is getting it from the AppleRawMaxCapacity / DesignCapacity. Again, this supplies more information than whatever fudging Apple is doing in that dialog.

Edit: A quick search tells me that the 100% is probably coming from the MaxCapacity ioreg slot but since it doesn't change (yet) I can't know for sure.

Thanks. So you would trust Coconut and Better Battery data rather than Apple?
 

jdb8167

macrumors 601
Nov 17, 2008
4,859
4,599
Thanks. So you would trust Coconut and Better Battery data rather than Apple?
It depends. If I was looking for information on whether or not my battery was degrading too quickly, I want the extended information I'm getting from coconutBattery. If I just want to know if Big Sur & Apple consider everything to be normal, then the values from Battery Health are fine.

The biggest problem with information coming from the third party battery utilities is that people are liable to overreact when they see a drop in their full charge capacity even though everything is normal. This is probably why Apple fudges the numbers because they are trying to make the battery degradation look linear to the user when it probably will never be linear for real.
 

Mike Boreham

macrumors 68040
Original poster
Aug 10, 2006
3,918
1,904
UK
It depends. If I was looking for information on whether or not my battery was degrading too quickly, I want the extended information I'm getting from coconutBattery. If I just want to know if Big Sur & Apple consider everything to be normal, then the values from Battery Health are fine.

The biggest problem with information coming from the third party battery utilities is that people are liable to overreact when they see a drop in their full charge capacity even though everything is normal. This is probably why Apple fudges the numbers because they are trying to make the battery degradation look linear to the user when it probably will never be linear for real.
Makes sense. I guess when it comes to an Applecare claim Apple will use their number to assess battery state. (thinking of the oft quoted 80% criteria at a number of cycles I can't remember).
 

tosbsas

macrumors 65816
Nov 22, 2008
1,297
437
Lima, Peru
Apple is definitly only trusting its own value. I had mine in Coconut at 74% and Apple wouldn’t give me a new battery on my Apple Care + Protection as their Number was still 80%.

Having only 45 days left I did a Good Wearing of the battery and Ended up with 72 on Coconut and 79
At Apples. That Made them change my Battery
 

jdb8167

macrumors 601
Nov 17, 2008
4,859
4,599
Apple is definitly only trusting its own value. I had mine in Coconut at 74% and Apple wouldn’t give me a new battery on my Apple Care + Protection as their Number was still 80%.

Having only 45 days left I did a Good Wearing of the battery and Ended up with 72 on Coconut and 79
At Apples. That Made them change my Battery
This is definitely something I would use the values from coconutBattery for. The actual values for max capacity and design capacity are useful for figuring out what the battery is actually doing over time. Spot checking the values is probably less useful with battery chemistry being what it is.

The funny part is that all the values are from Apple and macOS. Some of the values just aren't displayed by Apple applications.
 

Donga120

macrumors 6502a
Sep 19, 2014
889
609
UK
Thanks. As I said I am already using Al Dente, but only for the last two weeks. I guess I have already lost 6% of health due the period of 24/7 plugged in with only the Apple Optimise Battery turned on.

You mention Coconut has been pretty accurate for you....how has it compared with the System Report number?
System report for me says 100%, coconut battery for me says 99.4%

I Found this to be Good advice but would you charge to 100 or to al dente’s level?
I set Aldente to charge to around 60%, and give the battery a bit of use now and again.
 

citivolus

macrumors 65816
Sep 19, 2008
1,218
269
Sorry for the confusion, the ioreg is the raw data that I was working with. My scripts are available on my github under m1batterystats repository but they aren't going to be easy to use unfortunately since you also need my modified version of the command line tool bitwise.
I was interested in trying your scripts so I downloaded and compiled your version of bitwise. Unfortunately I am getting an error when the battery.sh script pipes in a number to convert to bitwise (e.g. echo 0 | bitwise). Bitwise just hangs when doing that--it seems bitwise can't accept a value from stdin (as opposed to via a command line parameter). anyone else have success with this?
 

jdb8167

macrumors 601
Nov 17, 2008
4,859
4,599
I was interested in trying your scripts so I downloaded and compiled your version of bitwise. Unfortunately I am getting an error when the battery.sh script pipes in a number to convert to bitwise (e.g. echo 0 | bitwise). Bitwise just hangs when doing that--it seems bitwise can't accept a value from stdin (as opposed to via a command line parameter). anyone else have success with this?
That was one of the changes to bitwise that I made. Make sure you are using the jdb branch when you check out. It’s also possible that I made a mistake on pushing my changes to GitHub. If that’s the case I apologize—I’ll check when I get a chance.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.