Why 100% Uptime Is Impossible: Setting Realistic SLA Targets

Why 100% Uptime Is Impossible: Setting Realistic SLA Targets

If you run a SaaS product, there is a good chance a prospect has already asked you to put a number on uptime, and a good chance someone in the room suggested that the bigger the number, the better the deal looks. It is a natural instinct. It is also how a lot of teams end up signing a contract their infrastructure cannot support.

We have been on both sides of that conversation. Running global SaaS operations for eight years meant living with customer-facing commitments that had been agreed long before the people on call had a say in them. So when a founder tells us they are about to promise four nines and they are not sure the platform can deliver, we recognize the situation straight away, because we have cleaned up after it.

Here is the plain version: nobody can promise 100% uptime, and chasing it tends to waste engineering time that would be better spent elsewhere. The more useful question is what number you can keep, month after month, without bankrupting the roadmap.

No SaaS vendor can promise 100% uptime

Systems fail. Hardware degrades, networks hiccup, dependencies break, and even the best-run cloud providers schedule maintenance that touches live infrastructure. Planned upgrades, traffic spikes and third-party outages all chip away at the idea of perfect uptime, whatever you spend on it. That holds for the largest cloud providers, and it holds for a Series A platform running on a fraction of that infrastructure.

Treating 100% as the goal sets a business up to do one of two things: overspend heavily on a target it cannot reach, or quietly break a promise it should never have made. A better starting point is to accept that some downtime is inevitable and then decide, on purpose, how much is acceptable. We work with SaaS teams on exactly this kind of planning, turning uptime goals into infrastructure that can realistically support them.

The real skill in reliability engineering is not eliminating failure. It is building systems and agreements that absorb failure gracefully, recover quickly and keep customers informed even when something breaks.

SLA, SLO and SLI: know the difference

These three terms get swapped around more often than they should, and the confusion causes real problems once a customer contract is involved.

What an SLA actually promises customers

A Service Level Agreement is a formal commitment between a provider and a client. It spells out measurable metrics such as uptime percentage and response times, assigns responsibilities, and usually attaches consequences (service credits or financial penalties) if the provider falls short. It is a legal and business document first.

That is why the number you write into it matters. Promising 99.99% sounds impressive in a sales deck, but it obligates you to stay within a few minutes of downtime a month, with real money attached if you cross the line.

How SLOs turn promises into daily targets

A Service Level Objective is the internal target a team sets so the SLA promise actually gets kept. The SLA is customer-facing and contractual; the SLO is operational, built from a specific metric, a target and a time window that engineering tracks day to day. If the SLA says 99.9%, the SLO might track that same figure on a rolling 30-day basis so the team can catch drift before it becomes a breach.

SLOs are built from Service Level Indicators, the measured data such as real uptime percentage or real latency. We would keep the list short and tied to things customers genuinely notice, because a long list of numbers nobody checks does not help anyone.

Error budgets: room to ship without breaking promises

An error budget is the flip side of an SLO: the maximum amount of failure you can absorb before the commitment is breached. At 99.9%, that works out to 8 hours, 45 minutes and 36 seconds a year to spend however you choose, whether on a risky deployment or an unexpected infrastructure problem.

What makes this useful is that it gives engineering and operations a shared answer to the constant tension between shipping fast and staying stable. While the budget has room, teams can push changes with more confidence. When it is nearly spent, that is a built-in signal to slow down and fix underlying issues before launching anything new.

What downtime really costs a SaaS business

The numbers in an SLA can feel abstract until an outage happens, and then the cost shows up in more places than most teams expect.

Direct costs

A four-hour outage at a mid-size SaaS company earning around $50M in annual recurring revenue tends to cost somewhere between $50,000 and $200,000 in direct losses. Even an hour of downtime commonly brings lost transactions, refunds, support overtime and engineering hours spent firefighting instead of building.

Churn, the cost that outlasts the incident

The bigger threat rarely appears on the incident report. A B2B SaaS company with high-LTV customers can face more than $1 million in churn-related losses from a single high-profile outage, far more than the direct revenue impact, as customers quietly start evaluating alternatives and multi-year contracts fail to renew. Direct costs get closed out with a status update and a few tickets. Churn shows up in renewal conversations months later.

This is the strongest argument for a realistic SLA. A business that promises something it can consistently deliver protects the trust that keeps renewals happening. A business that overpromises and then misses pays twice: once for the outage and again for the slow bleed that follows.

Not sure your platform can back the uptime number in your contract?

We help SaaS teams set SLOs and error budgets they can actually hold, and build the monitoring and recovery behind them.

Talk Through Your Uptime Targets →

Why tighter SLAs often cost more than they save

It is tempting to assume a tighter SLA is always the safer, more customer-friendly choice. In practice the math rarely works out that simply.

How much downtime each tier allows

Each additional nine shrinks the allowable downtime sharply:

  • 99% uptime: roughly 3.65 days of downtime per year
  • 99.5% uptime: roughly 1.8 days per year
  • 99.9% uptime: 8 hours, 45 minutes, 36 seconds per year
  • 99.95% uptime: 4 hours, 22 minutes, 48 seconds per year
  • 99.99% uptime: 52 minutes, 34 seconds per year

Monthly, a 99.9% SLA allows 43 minutes, 12 seconds, while 99.99% allows 4 minutes, 19 seconds. The step from three nines to four is not a modest improvement. It is a tenfold tightening of what counts as an acceptable failure.

The price of chasing 99.99%

Closing the gap from 99.9% to 99.99% can save tens of thousands of dollars a year in avoided losses. The catch is that capturing those savings usually means redundant infrastructure across multiple availability zones, more sophisticated automated failover, deeper observability and often a larger on-call rotation that can respond in minutes rather than hours.

For a Series A or Series B company, that investment frequently costs more than the downtime it prevents, at least at the stage the business is in today. We would pick an SLA at a tier the infrastructure can comfortably support over an aspirational one the team cannot consistently hit. The goal is to match the SLA to your stage, not to a competitor's marketing page.

Building infrastructure that supports a realistic SLA

Setting the right number on paper only works if the platform underneath can hit it. A few architectural choices tend to deliver the most reliability per dollar.

Multi-AZ redundancy as a baseline

Spreading compute and database instances across multiple availability zones in one cloud region protects against the most common cause of localized outages, a single data center having a bad day. It is widely treated as a cost-effective high availability baseline because it avoids the data transfer fees, added latency and synchronization complexity of full multi-region deployments.

Multi-region still has its place as disaster recovery for the scenario where an entire geographic region goes dark. For most SaaS companies working toward 99.9% or 99.95%, multi-AZ covers the realistic failure modes at a fraction of the cost. If you want to see what that looks like in practice, our write-up on zero-downtime deployment on Kubernetes covers the deployment side of the same problem.

Automated recovery and continuous monitoring

Cloud architecture guidance from the major providers keeps landing on one principle: design systems to detect failure and recover automatically rather than waiting for a person to notice. Monitoring indicators tied to real business impact, not just technical metrics, lets automation act before a customer sees a problem.

Continuous observability is what makes that practical. Teams that can see latency, error rates and resource saturation in real time catch problems while they are still small, which keeps incidents short and error budgets intact. We cover the foundations in our guide to site reliability engineering practices, and our piece on proactive monitoring to prevent critical Kubernetes issues goes deeper on catching trouble early.

CI/CD automation that protects uptime

Deployment automation plays a quieter but important role. Automated testing and deployment pipelines catch mistakes before production, remove manual steps where human error creeps in, and make rollbacks fast when something does go wrong. That shortens incidents and stops preventable mistakes from burning through the error budget.

Infrastructure as code reinforces the same goal, since repeatable, auditable environment changes cut down on the configuration drift behind so many unplanned outages. Our article on automating CI/CD with Terraform walks through one way to set that up.

A realistic SLA protects growth better than a perfect one

A SaaS company that sets an honest, well-supported SLA and consistently meets it builds more customer trust than one that advertises a flashy number and occasionally misses it. Customers forgive brief, well-communicated outages far more readily than a broken promise.

The path forward starts with understanding the difference between an SLA, an SLO and an error budget, pricing out what each additional nine actually costs to deliver, and building the infrastructure (multi-AZ redundancy, automated recovery, CI/CD pipelines) that supports the number on the contract instead of straining against it. If you are weighing where to set that target ahead of your next funding round, we are happy to talk it through with your team and show them how we would approach it as we go.

Uptime and SLA FAQs

Can a SaaS company guarantee 100% uptime?

No. Hardware failures, network problems, dependency outages and planned maintenance all make perfect uptime unrealistic for any provider, large or small. A better approach is to accept that some downtime will happen and choose a target you can consistently meet.

What is the difference between an SLA, an SLO and an error budget?

An SLA is the formal, customer-facing commitment, often with credits or penalties attached. An SLO is the internal operational target your team tracks to make sure the SLA is kept. An error budget is the amount of failure you can absorb before the commitment is breached, which gives teams a clear signal for when to ship and when to stabilize.

How much downtime does 99.9% versus 99.99% uptime allow?

A 99.9% target allows 43 minutes, 12 seconds of downtime a month (about 8 hours, 45 minutes a year). A 99.99% target allows 4 minutes, 19 seconds a month (about 52 minutes a year). That tenfold difference is why the cost of reaching four nines is so much higher.

Is multi-AZ or multi-region better for a SaaS SLA?

For most SaaS companies targeting 99.9% or 99.95%, multi-AZ redundancy within one region is the more cost-effective baseline. Multi-region is mainly a disaster recovery strategy for the case where an entire region is unavailable, and it adds data transfer cost, latency and synchronization complexity.