I added a hidden feature to one of my custom data fields... Using the LOG file debug capability.
My app is called TIMEx6. It scrolls up to six difference times in a single data field, every 2 seconds. Elapsed Time, Moving Time, Stopped Time, Time of Day, Sunrise, and Sunset.
Anyway, it ALSO sends three data points to a text file on your device, every 5 minutes. Elapsed Time, Moving Time and Battery Level.
I did that to track battery burn rate under various conditions. Cold, Backlight, Route Following, etc.
My Garmin 520's battery lasts about 9.5 hours with backlight at 10% in 60 deg temps. And takes 2 hours to charge back up (while riding) with an external battery pack attached. And the percentage burn is linear... It appeared to me the first 50% went faster, but the data shows Garmin has calibrated the battery level well.
If you have a desire to track your own device's battery life... find the name of the CIQ app assigned by GC for TIMEx6. It'll be some cryptic sequence of characters, in Garmin/App ("xyzzy.prg"). Then create an empty txt file in Garmin/App/LOG ("xyzzy.txt"). If that file exists, it'll contain the battery data if you assign TIMEx6 to a data field in your activity profile and start an activity.