September 19, 2026
A single cloud VM carries two different uptime promises, and the deployment shape, not the outage, decides which one you claim under. AWS publishes a Region-Level SLA at 99.99% next to an Instance-Level SLA at 99.5%. Microsoft pays on a range that starts at 99.99% for two or more VMs across availability zones and slides to 99.5% or 95% for a lone instance, depending on its disks. Google commits to 99.99% only for instances spread across zones. DigitalOcean went the other way: one 99.99% promise per Droplet and a flat 100% credit the moment it slips. The same 45-minute failure on the same $2,000 monthly bill can pay $0, $20 or $200 depending on which cell of the table your workload sits in.

Every VM in the big four sits in one of these buckets, and the bucket is the promise a claims reviewer will measure against:
| Deployment shape | The promise |
|---|---|
| AWS, all running instances spread across two or more availability zones | 99.99% (Region-Level SLA) |
| AWS, any single instance | 99.5% (Instance-Level SLA) |
| Azure, two or more VMs across two or more availability zones | 99.99% |
| Azure, two or more VMs in an availability set or dedicated host group | 99.95% |
| Azure, single VM with premium or ultra disks | 99.9% |
| Azure, single VM with standard SSD | 99.5% |
| Azure, single VM with standard HDD | 95% |
| Google, instances across multiple zones, Premium network tier | 99.99% |
| Google, single instance, memory optimized family | 99.95% |
| Google, single instance, other families | 99.9% |
| DigitalOcean, any Droplet | 99.99% per instance |
Some of these rows surprise people. On Azure, a single VM's promise is set by disk type: move the OS disk from premium SSD to standard HDD and the commitment falls from 99.9% to 95%, and a VM with mixed disk types takes the lowest of the set. On AWS, the single-instance promise stays 99.5% whatever the instance costs per hour, which allows more than three and a half hours of lost connectivity in a 30-day month before the first dollar is owed. Google starts single instances at 99.9%, and runs its Mexico and Stockholm regions one notch lower across the board.
None of the four count your application's downtime. They count minutes of lost connectivity, and the definitions decide more claims than the headline numbers.
Read together, these definitions explain why two teams can live through the same incident and only one of them holds a valid claim.
A VM carries both promises, but you file under exactly one of them for a given instance and incident. AWS forbids stacking Region-Level and Instance-Level claims. Google's Compute SLA puts it plainly: a VM is claimed either as a single instance or as instances in multiple zones, never both. Azure requires choosing one service level per incident. The architecture chosen at provisioning time is the promise you claim under, whether or not anyone remembers choosing it.
The credit schedules track each commitment, and the first tier of each is where most of the real money sits.
| Provider | First tier | Middle tier | Top tier |
|---|---|---|---|
| AWS | 10% below 99.99% regional or 99.5% instance | 30% below 99.0% | 100% below 95% |
| Azure | 10% below the applicable commitment | 25% below 99% | 100% below 95% |
| 10% below the applicable commitment | 25% below 99% | 100% below 95% | |
| DigitalOcean | 100% at any miss below 99.99% | no further tiers | no further tiers |
The 100% tier on the big three demands a catastrophe: below 95% means more than 36 hours of downtime in a 30-day month. Two schedules bend lower still. Google's single instances pay their 10% from below 99.9% (99.95% for memory optimized), 25% below 95%, and their top tier below 90%. Azure's standard-disk singles stretch the ladder the furthest: the 95% HDD promise pays 10% below 95%, 25% below 92% and 100% below 90%. DigitalOcean skips the ladder entirely, and as of its June 2025 SLA, any miss below 99.99% pays 100% of the affected Droplet's charges for the cycle.
Take $2,000 a month of compute in the affected region, a 30-day month of 43,200 minutes, and a 45-minute incident. The month lands at 99.896%.
| Claim filed | AWS | Azure | DigitalOcean | |
|---|---|---|---|---|
| Regional incident, multi-zone setup | $200 (10%) | $200 (10%) | $200 (10%) | 100% of affected Droplets |
| Same 45 minutes, single instance on a $200 monthly VM | $0 | $20 (10%) | $20 (10%) | $200 (100%) |
| 8-hour regional incident (98.889%) | $600 (30%) | $500 (25%) | $500 (25%) | 100% of affected Droplets |
The AWS zero in the middle row is the shape of the whole post. A single instance on AWS carries a 99.5% promise, and 45 minutes down is 99.896% of the month, well above it. The same 45 minutes lands below Azure's 99.9% single-VM promise and Google's 99.9% single-instance promise, so both pay. If that lone Azure VM sits on standard SSD, its promise drops to 99.5% and Azure joins AWS at zero. One small consolation on the AWS side: the Compute SLA refuses to charge any clock hour in which a single instance was unavailable for more than six minutes. The credit arrives automatically, no claim needed, and on a $200 a month instance it is worth pennies, but it does arrive.
Each provider routes compute claims through its standard support channel with its own deadline:
| Provider | The route | The deadline |
|---|---|---|
| AWS | Support case whose subject carries the words "Amazon Compute SLA Credit Request" and either "Region-Level Claim" or "Instance-Level Claim", plus times, region (and AZ for instance claims), resource IDs and request logs | End of the second billing cycle after the incident; credits under $1 are not paid |
| Microsoft | Portal support request with the incident description, time and duration, and the affected resources | Within two months of the end of the billing month |
| Contact technical support with log files showing the downtime periods | 60 days from eligibility for Compute Engine, longer than the 30 days most Google services allow | |
| DigitalOcean | Email success@digitalocean.com with the account email, affected Droplet details, and outage dates and times | Within two billing cycles of the month of the outage |
All four evidence packs share a spine: timestamps in a stated timezone, the provider's own incident record, your resource identifiers, and logs proving the loss of connectivity. The claim evidence guide covers what each reviewer actually accepts.
Here is the audit worth running before the next outage. List every VM in the estate and write next to it which promise covers it today: spread across zones or standing alone, in an availability set or not, and on Azure, what its disks earn it. That single column is the difference between $0, $20 and $200 for the same 45 minutes, and no provider will fill it in for you. It is also the mapping UptimeAudit automates when it drafts claims against the big four's health feeds, for teams who would rather not re-derive the table mid-incident.