An SLA is only as good as the measurement behind it, and the customer has to be able to check it. Most providers measure uptime with an external monitor such as Hyperping, which checks each service from several regions, counts only failures confirmed from more than one region as downtime, and reports uptime per monitor over any period. The same numbers can go on a public status page, so customers see the record the SLA is judged on.
The three describe the same target at different levels of commitment. The SLI (service level indicator) is the measurement, such as the share of checks that passed over the last 30 days. The SLO is the internal goal you hold that measurement to. The SLA is the promise you put in a contract, with money attached.
Set the SLO tighter than the SLA. If you promise customers 99.9%, aim for 99.95% internally, so you notice the slide and react before it costs you credits. The gap between the two is your safety margin.
The SLA calculator converts any percentage into downtime per day, week, month, and year.
Promise what you already deliver, not what you hope to. Look at your measured uptime over the last six to twelve months and set the SLA below your worst month. A first SLA at 99.9% is a safe default for most SaaS products: it leaves room for one bad incident a month without paying credits.
Check your dependencies too. Your SLA can't be higher than the availability of the cloud region, database, and payment provider you depend on, unless you have a fallback for each of them.
99.9% for most SaaS products, 99.95% or 99.99% for infrastructure other companies build on. Above 99.99% you need redundancy in every layer, and the monthly budget is too small to absorb a single slow rollback.
The customer can claim the credits the contract defines, usually 10% to 30% of the monthly fee depending on how far uptime fell. Repeated breaches often give the customer the right to terminate.
Usually not, as long as it was announced in advance, often 48 hours or more. Write the notice period into the SLA and announce maintenance on your status page so there is a record.
An uptime guarantee is one clause of an SLA. A full SLA can also cover response times, support response times, and data durability.