247-IT Guide
Calculating UPS Runtime Correctly
The runtime figure on the datasheet isn't a promise — it's a measurement taken under ideal conditions. Why real remaining runtime is usually lower, and what actually matters when configuring UPS monitoring thresholds.
A measurement, not a promise
UPS runtime figures typically come from a test bench: a new, fully charged battery, a defined partial load (often around 50% of rated capacity), and room temperature around 25°C. That's a legitimate, comparable measurement across vendors — but almost never the condition a UPS actually operates under three years later in a server rack.
Three factors nearly always diverge from the test bench in real operation, and all three push in the same direction: real load (often higher or lower than the test load, with a non-linear effect on runtime), battery age (capacity declines continuously over its service life), and ambient temperature (server rooms are rarely exactly 25°C). Carrying the datasheet runtime straight into your own threshold planning means planning around a best case, not a realistic one.
Load and age — not linear, but predictable
Load: not proportional, but close
A UPS at double the load delivers roughly half the runtime — but not exactly, because inverter efficiency itself is load-dependent and gets worse at both very low and very high utilization compared to the mid-range. Running a UPS deliberately well below its rated capacity (say, a 300 VA load on a 1500 VA UPS for extra reserve) gets you noticeably more runtime than the 50% datasheet figure suggests — conversely, runtime drops off disproportionately fast at load near rated capacity.
Battery age: continuous capacity loss
VRLA lead-acid batteries (the common battery type in UPS units) lose capacity continuously as they age, regardless of how often they've actually been discharged — pure calendar aging. After two to three years, a noticeably reduced remaining capacity compared to new is normal, not the exception. The typical 3–5 year service life expectation refers to usability up to a defined capacity loss threshold, not constant rated output until the last day.
Temperature adds to this: as a rough rule of thumb in battery technology, every 10°C above the rated temperature (typically 20–25°C) roughly halves battery service life. A warmer equipment room doesn't just cost runtime in the short term — it accelerates long-term aging too.
Battery.runtime is a forecast, not a fact
Both SNMP (e.g. upsBatteryEstimatedMinutesRemaining per RFC 1628) and NUT
(battery.runtime) report a runtime value estimated by the
UPS firmware, computed from current load and its internally assumed battery condition. As
long as that internal assumption isn't checked against reality, the estimate drifts
further from the actual value as the battery ages — usually optimistically, because
without a check the firmware assumes a newer battery than what's actually installed.
Many UPS models offer a runtime calibration for exactly this reason (sometimes called "runtime calibration" or "battery calibration test", distinct from a plain self-test): a controlled, partial discharge cycle that re-measures actual battery capacity and updates the estimation logic accordingly. Without regular calibration, the reported percentage and countdown become an increasingly unreliable sole trigger as the battery ages.
That's exactly why the UPS Hyper-V Shutdown Monitor combines two thresholds by default instead of one: battery charge percentage and remaining runtime in seconds — either one triggers the shutdown. That catches exactly the case where one of the two firmware estimates turns out too optimistic because of an aged or uncalibrated battery.
Check before configuring thresholds
- Treat the datasheet runtime as a ceiling, not a planning baseline — for a battery 2+ years old, realistically expect 60–70% of the rated figure unless it's been recently calibrated.
- Check real load against the UPS's rated capacity — a UPS running well below its rated capacity delivers more reserve than the percentage test load suggests; that affects how tightly your own thresholds can safely be set.
- Run runtime calibration regularly — at least annually if the model supports it, so the reported percentage and second-count aren't based on a stale capacity assumption.
- Use the percentage and second-based thresholds together — never configure only one as the sole trigger; both are independent estimates with different failure modes.
- Budget time for the actual shutdown sequence — the threshold needs to fire early enough that VMs and hosts can still fully shut down gracefully before actual battery capacity runs out — not only once the UPS reports "critical".
- Keep an eye on ambient temperature — a warmer equipment room measurably shortens both immediate runtime and long-term battery life.
More guides
Hyper-V Failover Cluster Power Outage
Securing quorum, Cluster Shared Volumes and live migration.
Active Directory & Power Outages
The USN rollback myth and the real risks for domain controllers.
SQL Server & Exchange on Hyper-V
Protecting databases during a power outage.
PowerChute Alternative for Hyper-V
UPS shutdown without vendor lock-in.
Monitoring UPS Units From Multiple Vendors
One tool instead of several silos.
UPS Monitoring (Enterprise)
Monitoring-only mode, warning thresholds and UPS self-test.
Configure realistic thresholds
Free for 30 days, all features included — percentage and second-based thresholds configurable together, for SNMP and NUT alike.