Uptime calculator

The uptime calculator turns an uptime percentage into the downtime it allows per day, week, month, quarter and year, so 99.9% comes out as 1m 26.4s a day, 43m 49.8s a month and 8h 45m 57.6s a year.

99.9% uptime allows 8h 45m 57.6s of downtime a year.

PeriodDowntime allowed
Day1m 26.4s
Week10m 4.8s
Month43m 49.8s
Quarter2h 11m 29.4s
Year8h 45m 57.6s

Type a percentage, get a time budget. The calculator assumes 24/7 service and the calendar maths most SLA tools use: a 365.25-day year, a month of one twelfth of that (30.44 days, or 2,629,800 seconds) and a quarter of one quarter. Allowed downtime is the period length times (1 - uptime / 100). The rest of this page is what the number means once a monitor starts counting.

Uptime percentage calculator: the common targets

  • 99% allows 7h 18m 18s a month and 3d 15h 39m 36s a year. Fine for an internal tool.
  • 99.5% allows 3h 39m 9s a month and 1d 19h 49m 48s a year.
  • 99.9% allows 43m 49.8s a month and 8h 45m 57.6s a year. The usual first SaaS promise.
  • 99.95% allows 21m 54.9s a month and 4h 22m 58.8s a year. Google Cloud Run promises this for non-GPU services in most regions.
  • 99.99% allows 4m 22.98s a month and 52m 35.76s a year. Less than one 5-minute check interval.

The formula

uptime.js
// Allowed downtime for an uptime target, 24/7 service.
// Year = 365.25 days, month = year / 12, quarter = year / 4.
const YEAR = 365.25 * 86400;
const PERIODS = {
  day: 86400,
  week: 604800,
  month: YEAR / 12,
  quarter: YEAR / 4,
  year: YEAR,
};

const downtime = (percent) =>
  Object.entries(PERIODS).map(([name, seconds]) => {
    const down = seconds * (1 - percent / 100);
    return `${name}: ${down.toFixed(1)}s`;
  });

// The other direction: the uptime an outage leaves you with.
const uptime = (downSeconds, period = 'month') =>
  (100 * (1 - downSeconds / PERIODS[period])).toFixed(3);

console.log(downtime(99.9).join(', '));
// day: 86.4s, week: 604.8s, month: 2629.8s, quarter: 7889.4s, year: 31557.6s
console.log(uptime(3600)); // one hour down this month: 99.863

Downtime calculator: from an outage back to a percentage

Usually the question runs the other way: the API was down for an hour last Tuesday, what does that do to the month? Divide the outage by the period and subtract from 100%. One hour against a 30.44-day month leaves 99.863%, which misses 99.9. Thirty minutes leaves 99.932%, inside 99.9 with 13m 50s to spare. The same hour across a year costs only 0.011%, which is why a yearly SLA hides a bad month and a monthly one does not.

Uptime calculator per month: which month?

The 30.44-day month is an average. Contracts usually measure calendar months of 28 to 31 days. At 99.9%, February allows 40m 19.2s, a 30-day month 43m 12s and a 31-day month 44m 38.4s. The 4m 19s gap matters for a credit claim, so check which month your provider means.

What a monitor actually counts

A calculator works in seconds. A monitor works in checks. Logdash divides successful checks by all checks, a success being a status code from 200 to 399 within 10 seconds. At a 5-minute interval that is 8,766 checks a month, so one failed check costs 0.0114%, more than the whole 99.99% budget. At 1 minute one failure costs 0.0023%, at 15 seconds 0.0006%. An outage shorter than the interval can fall between two checks and never count. Pick the interval from the target.

  1. Point a monitor at your app Create a service in Logdash and give the monitor the URL your users hit, or a health route that touches the database. The free plan checks every 5 minutes, Builder every minute, Pro every 15 seconds.
  2. Connect Telegram Add a Telegram channel once and attach it to the monitor. Webhooks work the same way.
  3. Spend the budget on purpose Stop the app for one interval. The next check fails, the monitor flips to down, and a Telegram alert lands with the monitor name and the status code. A second one arrives on recovery.

Logdash vs uptime.is

FeatureLogdashuptime.is
Downtime per day, week, month, quarter and yearYes, on a 365.25-day yearYes, the same numbers
Business-hours SLA24/7 onlyHours per weekday in its flexible mode
Outage back to a percentageIn the formula aboveBuilt-in reverse mode
Measures your real uptimeHTTP checks every 5 minutes free, 15 seconds on ProCalculator only
Tells you when the budget is burningTelegram or webhook alert on the first failed checkNot part of the calculator

When uptime.is is the better pick

  • You only need the number. It answers on one keystroke and puts any percentage in the URL.
  • Your SLA covers business hours only. Its flexible mode takes hours per weekday, while this calculator assumes 24/7.
  • You want two targets side by side, or an outage turned into a percentage without code.
How does an uptime calculator work?
It multiplies the length of a period by the share of time you may be down. For 99.9% that share is 0.001, so a 2,629,800-second month allows 2,629.8 seconds, or 43m 49.8s. It assumes the service is meant to be up around the clock.
What does an uptime calculator per month use as a month?
This one uses one twelfth of a 365.25-day year, 30.44 days. SLAs measured per calendar month use the real length, so 99.9% allows 40m 19.2s in February and 44m 38.4s in a 31-day month.
What is the formula behind an uptime percentage calculator?
Uptime is (period - downtime) / period * 100. Allowed downtime is period * (1 - uptime / 100). A monitor approximates both by counting checks: Logdash divides successful checks by all checks.
Can a downtime calculator work backwards from an outage?
Yes. Divide the outage by the period and subtract from 100%. A 1-hour outage costs 0.137% of a month, leaving 99.863%, and 0.011% of a year, leaving 99.989%.

Point it at your own URL and watch it for real.