Battery health is a capacity estimate. Battery Watch uses the remaining charge reported by your phone, its charge level and a capacity reference. It saves valid health estimates locally and uses their average when history is available.

Charge level and battery health are different

A charge level of 50% describes how full the battery is right now. A health estimate of 90% suggests that its estimated full capacity is about 90% of the reference capacity. Your phone can be fully charged while the app estimates health below 100%.

The calculation behind a reading

Android’s charge counter reports an estimate of the charge currently in the battery. Battery Watch converts it from microamp-hours to milliamp-hours (mAh), then accounts for the current battery percentage.

Estimated full capacity (mAh)
Remaining charge (mAh) ÷ (charge level ÷ 100)

Estimated health (%)
Estimated full capacity ÷ design-capacity reference × 100

Suppose your phone reports 2,250 mAh remaining at 50%, with a 5,000 mAh reference. The implied full capacity is 4,500 mAh. Compared with 5,000 mAh, that produces a 90% health estimate.

For saved health samples and session health, the current calculation requires a positive charge counter, a positive capacity reference and a charge level from 5% to 100%. Results are limited to 1–100%; the health log stores rounded whole percentages. These checks limit unusable inputs, but they cannot make an inaccurate device sensor precise.

Where the capacity reference comes from

The app first tries to read the device’s design capacity from Android’s internal power profile. Access and manufacturer data vary. When that value is unavailable, the app can derive a reference from the current charge counter and percentage, provided the level is 1–99% and the counter is positive.

A reference derived from those same readings is less informative for measuring wear: comparing the reading against itself can naturally produce a result close to 100%. A 100% estimate alone does not establish that a battery has retained its original capacity. A reliable, independent design-capacity reference makes the comparison more useful.

How saved readings affect the health percentage

  1. While monitoring runs, Battery Watch receives readings from Android.
  2. The chart recorder limits writes to at most one every two seconds. After a successful chart write, it saves a valid health estimate with its timestamp in the local Room database.
  3. The health query takes the arithmetic average of all retained health-log entries. The home, Cycles and capacity views use this average when it exists.
  4. New samples update the average. When there is no saved average yet, those views can fall back to a current-reading calculation, with availability depending on the screen and the data provided.

For a small example, saved estimates of 90%, 92% and 91% average to 91%. Adding an 87% sample changes the average to 90%. That one-point movement describes a change in the estimate; it does not prove the battery physically lost one percent of its capacity at that moment.

The current average gives each saved sample equal weight. It is not a daily average or a rolling window that favors recent readings. More records can reduce the influence of one unusual reading, but a consistent sensor error can still bias the result. The collection rate also depends on the selected monitoring mode and Android background restrictions.

What the app uses deltas for

A delta means a difference between two values. Battery Watch stores session start and end charge values, charge percentages and other session measurements in Room. The start-to-end charge delta supports the equivalent-cycle estimate and session summaries. It also saves an average health estimate within each session.

The health percentage currently comes from capacity estimates and the average of saved samples. The app does not derive it by dividing a session’s charge delta by its percentage delta, or by applying a fixed wear deduction per cycle.

Timestamped health records preserve observations over time. The current health display uses their aggregate average; a separate dated health-change chart or before-and-after health-delta report is not part of this calculation.

Why a reading can move

Charge-counter precision, whole-percentage rounding, changing device estimates and the mix of stored samples can all affect the result. A small change deserves context, especially at low charge levels. Repeated readings under comparable conditions are more useful than one surprising number.

These are estimates from the information Android exposes. Use your phone manufacturer’s diagnostics when assessing a suspected battery problem; the app cannot certify chemical condition or predict a battery’s remaining life from one percentage.

Your history stays on your phone

The health log and session records are stored locally in Room. This lets saved observations survive ordinary app restarts. Clearing local app data removes that history. The privacy policy explains local battery data separately from the app’s advertising and diagnostics services.

Further reading

Android’s charge-counter documentation explains the underlying battery property. Room documentation describes the local storage library. For practical comparisons, see how to interpret charging readings.