Many start-ups, and even larger SaaS vendors, are reluctant to provide a Service Level Agreement — an SLA — that says they will, well, stay up. It’s not our fault, they think. What if Amazon goes down? Or our email provider? That’s not our fault. The lawyers tell you to try to not to do this. Sometimes, the accountants too. But they are wrong.
An SLA is most importantly a cultural commitment. That you truly, fully stand behind an enterprise-grade product.
Look at Cloudflare’s commitment in their base SLA -> “1.1 100% Uptime. The Service will serve Customer Content 100% of the time without qualification.” Is 100% possible for any CDN, and web product? Not. But they are committing to doing everything humanly possible to deliver it. That’s what you want as an enterprise customer, when you’re paying $100k+ a year. $5 a month, maybe, maybe not. But enterprise customers have the right to expect it to not, well, be their problem.
As a buyer, you can and (if you want) should demand one for a mission-critical application. It shouldn’t be your job to worry if the service stays up. It is table stakes for an enterprise application to stand behind its reliability.
Having said all that … an SLA does not really matter in real-world economic terms.
Whatever the terms are (e.g., credits, rebates, etc.), the economics won’t matter in almost any practical scenario, especially over time. Getting $3k back on a $100k ACV contract is irrelevant and doesn’t help. And if there are any real-world damages, any SLA credits or payments won’t move the needle. On your side, if need be, keep a small reserve for your SLA. You’ll likely not pay out too much, if anything, in the end.
And whatever the terms are, the document itself won’t keep the service running. An SLA can’t stop an outage, a security breach, or really anything on its own.
There can be extreme examples where an SLA is material. Fastly took a big hit when its mission-critical service went down. But even there it’s OK. Fastly is an amazing service, but if you are a CDN, you aren’t supposed to go down like that. Folks pay you not to. So if you have to pay up if it happens once or twice, it’s OK. What matters is what your ARR is next year, and in 5 years. Not if there’s a bit of a hit this week or month due to honoring a customer commitment in an SLA.
And if the SLA lets a customer out of a contract? So be it. If you blow it, and that means they can’t trust you anymore, just give them a pro-rated refund and let them out if they really want to leave. You have to earn that trust. 24x7x365.
So net net, I recommend always just doing an SLA for enterprise customers that ask. It’s the path of least resistance, which makes sales easier. And it’s a totally fair (if not that helpful in the real world) ask. Put in pro-rated credits, and if asked, an opt-out clause for serious disruptions. It’s what you’d want.
The costs won’t really matter in the end. But the impact of standing behind your product can be priceless.
Cloudflare has a good example of a base SLA here (although it lacks several enterprise-level commitments):
(note: an updated SaaStr Classic post)