The Real Cost of Website Downtime: A Formula You Can Use
"Downtime costs us money" is easy to say and hard to put a number on, which is why monitoring, redundancy and on-call budgets often lose arguments to features. Industry surveys quote dramatic per-minute figures, but they describe other companies' businesses, not yours. This article gives you a formula you can fill in with your own numbers in about thirty minutes, explains where to find each input, and walks through two clearly hypothetical examples so you can see how the pieces add up.
Why lost sales are only one line
When a site goes down, the obvious loss is orders that did not happen. But several other costs start at the same moment and often outlast the outage itself:
- Paid traffic keeps flowing. Search and social campaigns keep spending money to send visitors to a page that does not load.
- Support volume spikes. Customers email, chat and call to ask whether you know. Each contact costs staff time.
- Contracts pay out. If you sell to businesses with a service level agreement (SLA), an outage can trigger service credits.
- People stop their planned work. Engineers diagnose and fix; someone writes updates; later there is a post-incident review.
- Some effects never show up on an invoice. Trust, churn, search crawling, and the time your team spends worrying about the next outage.
The formula below puts the first four into dollars and keeps the fifth as an explicit, separate list so nobody pretends it is zero.
The cost-of-downtime formula
Total cost of an outage =
Lost revenue
+ Wasted ad spend
+ Extra support cost
+ SLA credits
+ Recovery labor
Lost revenue = normal revenue per hour (for that hour of the week)
x outage hours
x (1 - recovery rate)
Wasted ad spend = paid spend per hour x outage hours
(only while campaigns kept running)
Extra support cost = extra tickets/chats/calls x cost per contact
SLA credits = sum over affected customers of
(monthly fee x credit % for the uptime tier reached)
Recovery labor = sum over people of
(hours spent on the incident x loaded hourly cost)
Divide the total by the outage length in minutes and you get a cost per minute for that kind of incident. That number is the one to bring to budget discussions.
Where to find each input
Normal revenue per hour
Do not use annual revenue divided by 8,760 hours. Traffic and sales vary a lot by hour and weekday, and outages tend to happen when load is high. Pull revenue for the same hour on the same weekday over the last four to eight weeks from your analytics or order database and take the average. If your outage spanned several hours, sum the hourly averages.
Recovery rate
Not every lost visitor is a lost sale. Some come back an hour later and buy anyway. You can estimate this by comparing revenue for the day after a past outage against the same day in previous weeks: a bump suggests deferred purchases. If you have no data, run the formula with two values (say 0% and 50%) and present a range instead of a single number. A brand with loyal repeat customers recovers more than a store selling impulse purchases or time-sensitive tickets.
Wasted ad spend
Your ad platform shows spend by hour. Count only the period where ads were running and the landing page was broken. If you have a webhook-based automation that pauses campaigns during outages, this line drops toward zero, which is itself a useful finding.
Cost per support contact
A simple estimate: monthly support team cost (salaries plus tools) divided by monthly contacts handled. Compare the number of contacts during and after the incident against a normal day to get the "extra" count.
SLA credits
Read your contracts. A typical structure grants a percentage of the monthly fee back when monthly uptime falls below a target. To know which tier you landed in, you need the month's measured uptime — see uptime percentages explained for the downtime each tier allows.
Recovery labor
Count everyone who stopped planned work: the engineers who fixed it, the person who wrote customer updates, the manager on the call, and the time for the post-incident review. Use a loaded hourly cost (salary plus taxes, benefits and overhead), not the bare salary. Also count the work that slipped: a feature delayed by a day has its own cost, even if you leave it out of the total.
Worked example 1: an online store
All numbers below are hypothetical and chosen only to illustrate the calculation. A small online store's checkout breaks for three hours on a weekday evening. Historical revenue for those three hours averages $420 per hour. Based on past incidents, the owner estimates that 35% of buyers come back later.
| Cost line | Inputs | Cost |
|---|---|---|
| Lost revenue | $420/h x 3 h x (1 - 0.35) | $819 |
| Wasted ad spend | $30/h x 3 h | $90 |
| Extra support | 25 extra chats and emails x $5 | $125 |
| SLA credits | No SLA with consumers | $0 |
| Recovery labor | (2 people x 3 h + 1 person x 2 h review) x $60/h | $480 |
| Total | 180 minutes | $1,514 (about $8.41/min) |
Notice that lost revenue is only a bit more than half the total. If the owner had used annual revenue divided by hours, the number would have been lower still and the support and labor lines would have been invisible.
Worked example 2: a B2B SaaS product
Again, hypothetical numbers. A SaaS app is unavailable for three hours. Twelve customers have an SLA promising 99.9% monthly uptime, with a 10% credit if uptime falls below 99.9% and 25% below 99.0%. Each pays $500 per month. In a 30-day month (720 hours), three hours of downtime means uptime of 1 - 3/720 = 99.58%, which lands in the 10% tier.
| Cost line | Inputs | Cost |
|---|---|---|
| Lost revenue | Subscriptions are prepaid; no direct loss this month | $0 |
| Wasted ad spend | $15/h x 3 h | $45 |
| Extra support | 60 extra tickets x $8 | $480 |
| SLA credits | 12 customers x $500 x 10% | $600 |
| Recovery labor | 3 engineers x 4 h x $80/h | $960 |
| Total | 180 minutes | $2,085 (about $11.58/min) |
Here the direct revenue line is zero, and yet the outage is the more expensive of the two. The biggest risk — a customer deciding not to renew — is not even in the table.
The costs you should list but not add up
Some effects are real but too uncertain for a single number. Put them in a separate list under the total so decision-makers see them:
- Churn and renewal risk, especially if the outage hit a customer during their own peak.
- Search visibility. Short outages mostly slow down crawling, but long or repeated ones can cause pages to drop from Google's index — details in how downtime affects SEO.
- Reputation: public complaints, review sites, a sales deal that asks about reliability.
- Team fatigue: repeated night-time incidents lead to burnout and turnover.
- Data issues: orders or form submissions that half-completed and need manual cleanup.
Use the number: annual exposure and detection time
Once you have a cost per minute, two simple calculations make it actionable.
Annual exposure = incidents per year x average minutes per incident x cost per minute. With the store above, four incidents a year averaging 90 minutes at $8.41/min is roughly $3,000 a year. That gives you a ceiling for what is worth spending on prevention.
Detection time. An outage's length is the time to notice plus the time to fix. If you learn about outages from a customer email 40 minutes in, and monitoring could tell you within five minutes, every incident is about 35 minutes shorter before anyone even starts fixing it. At $8.41/min, that is about $294 per incident in the hypothetical store. This is usually the cheapest saving available, and it is why the monitoring interval you choose matters.
The fix time can shrink too: a runbook, a tested rollback, or an automated restart for a known failure mode can turn a 45-minute fix into a 5-minute one. See automating server recovery with SSH actions for how that works in practice.
Checklist
- Pull revenue for the same hour and weekday over recent weeks — not an annual average.
- Estimate a recovery rate, or present a range with two values.
- Add paid spend that kept running during the outage.
- Count extra support contacts and multiply by cost per contact.
- Check contracts for SLA credit tiers and compute the month's uptime.
- Count recovery labor at loaded hourly cost, including the post-incident review.
- List churn, SEO, reputation and team fatigue separately.
- Turn the total into cost per minute and annual exposure, then compare with the cost of faster detection and recovery.
Uptime Monitor shortens the "time to notice" part of every outage: checks run as often as every minute on the Professional plan, alerts go to email, Telegram, Slack, Discord or a webhook, and every check is recorded with its status and cause, so you can reconstruct when each outage started and ended. The CSV/JSON export, and the PDF uptime reports on Plus and Professional, give you the inputs for this formula and the SLA-credit calculation. You can compare plans or start with the free tier.