# How to Generate and Understand a Windows Battery Report with PowerShell

A laptop can show 100% charge and still provide much less runtime than it did when it was new. The charge percentage only tells you how full the battery is right now. It does not tell you how much capacity the battery can still hold.

Windows includes a detailed battery report that helps answer that question. You can generate it with one PowerShell command, then compare the battery's current full-charge capacity with its original design capacity.

This guide explains how to create the report, find the important values, and interpret them without confusing charge level with battery health.

## Generate the Windows battery report

Open PowerShell and run:

```powershell
powercfg /batteryreport /output "$env:USERPROFILE\Desktop\battery-report.html"
```

Windows should confirm that it saved the report to your Desktop. Open `battery-report.html` in any browser.

The same command works on Windows 10 and Windows 11. Administrator access is usually unnecessary, although device policies on a managed work computer may restrict the command.

## Use a small PowerShell helper

If you generate reports regularly or do not want to remember the command, I published a small open-source helper:

[Windows Battery Report Helper on GitHub](https://github.com/kamranliaquatali-sys/windows-battery-report-helper)

After downloading `Generate-BatteryReport.ps1`, run it from PowerShell:

```powershell
.\Generate-BatteryReport.ps1
```

It creates `battery-report.html` on the Desktop by default. To generate and open the report immediately, use:

```powershell
.\Generate-BatteryReport.ps1 -OpenReport
```

The script only calls the built-in Windows `powercfg` utility. It does not upload the generated report.

## The three values that matter most

Windows battery reports contain several tables, but three values provide the clearest starting point.

### Design capacity

Design capacity is the amount of energy the battery was rated to hold when new. Windows normally displays it in milliwatt-hours (mWh).

Treat this as the original reference value, not the amount the battery holds today.

### Full charge capacity

Full charge capacity is the maximum amount of energy the battery currently reports it can hold. Normal chemical aging usually causes this figure to decrease over time.

For example:

*   Design capacity: 50,000 mWh
    
*   Full charge capacity: 40,000 mWh
    

The battery currently holds about 80% of its original rated capacity.

### Cycle count

A charge cycle represents cumulative use equal to 100% of the battery's capacity. Two separate 50% discharges can therefore add up to approximately one cycle.

Some manufacturers do not expose cycle count to Windows. A blank cycle count does not necessarily mean the battery has completed zero cycles.

## Calculate battery health percentage

Use this formula:

```text
Battery health (%) = Full charge capacity / Design capacity × 100
```

Using the earlier example:

```text
40,000 / 50,000 × 100 = 80%
```

This figure is better described as reported capacity health. Battery firmware readings can fluctuate slightly after charging, calibration, firmware updates, or changes in temperature.

## What the percentage can and cannot tell you

Capacity health helps estimate how much runtime the battery has lost compared with its original specification. It is not a complete safety test and should not be treated as a guaranteed diagnosis.

Pay attention to physical warning signs even if the percentage appears acceptable. Stop using the laptop and seek qualified assistance if the battery is swollen, leaking, unusually hot, producing an odor, or deforming the case.

Runtime also depends on screen brightness, processor load, background applications, wireless activity, power settings, and temperature. A healthy battery can still drain quickly under a heavy workload.

## Check capacity history instead of one reading

The `Battery capacity history` section shows how full-charge capacity changed over time. A gradual decline is expected. A sharp drop may be worth checking against recent firmware changes, usage conditions, or a second report generated after a few normal charge cycles.

One reading is useful, but a trend is more informative.

## Make the report easier to read

The standard HTML report is comprehensive, but its tables can be difficult to interpret. I built [Battery Health Lab](https://batteryhealthlab.com/) to turn the report into a simpler health summary.

The analyzer runs in the browser, requires no account, and processes the selected report locally on the device. You can also enter design capacity and full-charge capacity manually if you prefer not to select the HTML file.

## Common problems

### “Unable to perform operation”

Confirm that you are running the command on a Windows laptop with a detected battery. Try opening a fresh PowerShell window and use an explicit output path such as the Desktop example above.

### The report opens but contains no battery

Open Device Manager and check whether Windows detects the battery under **Batteries**. Desktop computers and some virtual machines do not expose battery data.

### PowerShell blocks the helper script

You can use the direct `powercfg` command instead. If you change PowerShell's execution policy, understand the security implications and avoid applying a broad permanent change only to run one script.

## Final takeaway

Generating a Windows battery report is simple; interpreting it correctly is the important part. Compare full-charge capacity with design capacity, examine the history rather than relying on one reading, and consider real-world runtime and physical condition alongside the percentage.

That combination provides a much clearer picture of a laptop battery than the taskbar charge indicator alone.
