Skip to content

Reading powercfg /batteryreport: capacity, cycles and real wear

Verified 2 min read

How to read design capacity versus full charge capacity, spot a dying battery, and tell wear apart from a calibration problem.

Tested onPro (26H2) · Build 26300.9457 · x64
E1
Build
26300.9457
Edition
Pro (26H2)
Architecture
x64
Support
Documentation (E1)
Evidence
E1Official documentation
Verified
2026-10-29
Page type
Method

powercfg /batteryreport writes an HTML file with the battery’s history. Three numbers matter:

  • Design capacity — what the battery was built to hold.
  • Full charge capacity — what it holds now, when “full”.
  • Cycle count — how many charge cycles it has been through.

Wear = 1 − full charge / design. Under ~20% wear is normal for a used machine; over ~30% means the runtime you see is the runtime you get.

Terminal window
powercfg /batteryreport /output "$env:TEMP\battery.html"
Start-Process "$env:TEMP\battery.html"

The report contains:

Section What to read
Installed batteries design capacity, full charge capacity, cycle count
Recent usage power state transitions, battery percentage
Battery usage drain per session
Usage history how the machine was used over weeks
Battery capacity history full charge capacity over time — the wear trend
Battery life estimates projected runtime at current drain

The capacity history table is the honest one: a single reading can be off, a downward trend over months cannot.

Two different things get called “the battery is dying”:

  • Real wear — full charge capacity has genuinely dropped. Nothing fixes it but a new cell.
  • Calibration drift — the fuel gauge’s estimate is wrong; the battery may shut down at 20% or report 100% for an hour.

Calibration is worth trying once: charge to 100%, discharge to shutdown, charge fully again. If the reported capacity then jumps, it was the gauge, not the cell.

Observation Meaning
Full charge ≈ design, high cycles healthy cell, normal ageing
Full charge far below design, low cycles defective cell or heat damage
Capacity drops then recovers after calibration gauge drift
Runtime collapses but capacity looks fine high drain, not wear — check standby and throttling
Battery not detected at all connector, firmware, or a dead pack
Terminal window
# quick alternative when the HTML is overkill
Get-CimInstance -Namespace root\wmi -ClassName BatteryStaticData |
Select-Object DesignedCapacity,DeviceName,ManufactureName,SerialNumber
Get-CimInstance -Namespace root\wmi -ClassName BatteryFullChargedCapacity |
Select-Object FullChargedCapacity

DesignedCapacity and FullChargedCapacity are in mWh; the ratio is your wear figure. Not all firmware exposes them.

  • Heat ages cells faster than cycling does. A laptop on a bed or in a bag runs hot.
  • Staying at 100% for months is worse than cycling between 40–80%, if the firmware offers a charge limit.
  • Deep discharges to 0% are not “good for the battery” on modern lithium packs.
  • Fast charging is fine; heat during fast charging is what hurts.

E1. The report format and fields are Microsoft-documented. The lab’s virtual machines expose no battery, so no capacity or wear numbers are published.

Sources