Promised uptime vs actual

35 vendors · 99 services

Method and sources

142 SLA tiers and 6,598 status page incidents on file. Where the promises come from, how reality is measured, and where the method stops.

The promise

Every commitment is read off the vendor's own SLA page: the uptime percentage per tier, what it is measured over, the credit schedule, the cap, the claim window and the main exclusions, with a quote of the clause and the version or date the page prints. Where a vendor publishes no SLA, that is recorded as a finding, not a gap. The headline promise of a service is its highest published tier.

The reality

Observed uptime comes from each vendor's own status page, read through its public feed: Atlassian Statuspage and incident.io APIs, Google Cloud's incidents.json and the AWS Health Dashboard history. For vendors without a machine-readable feed, incidents.fru.dev fills in.

  • Downtime is the time during which the vendor itself marked a component of the service as a major outage, or rated the incident critical. Partial outages, degraded performance and incidents confined to the console, dashboards, billing, docs or delayed metrics are shown as degraded or left out, not counted. For feeds that never carry component statuses (OpenAI's and Cohere's), an incident the vendor rated major counts.
  • Overlapping incidents are merged. One incident counts for at most 72 hours.
  • When an incident names a region (in its components or its title), it counts for that region only, and the worst single region is used, since an SLA is per region. Incidents without a region count everywhere.
  • Uptime is 1 minus downtime over the covered time, for the last 90 and 365 days. Coverage is how far back the feed reaches; below 80% of the window the number is marked partial, below 7 days there is none.

Promise against reality

Because observed uptime is measured in the worst single region, it is set against the best promise a single-region deployment gets. Tiers that only hold across regions (DynamoDB Global Tables, multi-region WarpStream, dual-region Cloud Storage, geo-redundant Blob reads) exist to ride out a one-region outage, so they are shown with the service but not held against it. Downtime used is compared with the downtime that promise allows over the same covered days, and the months that fell below it are counted, since credits are claimed month by month.

Beside it, a smaller figure from the sister site Downtime, which logs every incident: uptime weighted over all incidents, minor ones included, per vendor. It is always lower and answers a different question (how often something was wrong). This site, Uptime, counts only major outages per service, which is what SLA credits rest on and what the rankings use. In short: Uptime is what vendors promise and how they did; Downtime is every incident.

What it is not

A status page is what a vendor chose to say. Some under-report, some are careful. An outage marked on a component may have hit a few customers, and an SLA's own definition of downtime (error rates, per-resource checks) is narrower than any status page. So observed uptime is evidence to weigh, not a credit calculation for your account. Summaries of published SLAs; the contract you sign governs.

Changes

Sourced changes come from the vendor or from Wayback Machine snapshots that show a different number. Once a month (the first Friday run 27 days or more after the last read) each SLA page is fetched again and compared with the text of the last read. A page whose sentences about percentages, credits, uptime, downtime, response times or exclusions changed is logged as detected and Unverified until reviewed, with a one-line summary by a language model where the budget allows (at most two calls a run), otherwise with whether the promise on file still stands on the page. Navigation, dates and marketing copy moving are not listed, and a read with under half of last time's text is refused.

Coverage

Rebuilt each Friday run

The scope is every company in the Glyph Ibis registry that sells cloud, data, AI or other hosted software, plus well-known services outside it. Each one is enrolled as a candidate, checked on its own domain (within its robots.txt) for a status feed and an SLA page a few dozen at a time, and added as a vendor once its terms are read.

Checked on its own domain
40.5%398 of 983
On file with terms read
3.6%35 of 983
Bellwethers on file
90%27 of 30

35 vendors and 99 services on file so far; 97 found and waiting for review, 585 still to check, 296 with neither a feed nor an SLA page on their domain (checked again after 120 days).

Bellwether companies

Company
On file
4 services, best promise 99.9%
On file
3 services, best promise 99.5%
On file
3 services, best promise 99.9%
On file
5 services, best promise 99.995%
Meta
Candidate
Meta's sites prohibit automated collection in their robots.txt notice, so nothing was read.
On file
2 services, no public uptime commitment found
Through a subsidiary
Via AWS: 6 services, best promise 99.999%
On file
3 services, best promise 99%
On file
2 services, best promise 99.99%
On file
2 services, best promise 99.99%
On file
3 services, best promise 99.95%
On file
3 services, best promise 99.995%
IBM
Candidate
Found, not reviewed yet. IBM Cloud SLAs are published in IBM Terms, a script-rendered page whose text did not load for an automated reader; not read yet.
On file
1 service, best promise 99.995%
On file
5 services, best promise 100%
On file
1 service, best promise 99.8%
On file
3 services, best promise 99.9%
On file
2 services, no public uptime commitment found
On file
2 services, no public uptime commitment found
On file
2 services, no public uptime commitment found
On file
1 service, no public uptime commitment found (unverified)
ServiceNow
Candidate
servicenow.com refuses automated readers (HTTP 403), so its subscription terms were not read.
On file
6 services, best promise 99.999%
On file
2 services, best promise 99.95%
On file
7 services, best promise 99.95%
On file
1 service, no public uptime commitment found
On file
1 service, no public uptime commitment found (unverified)
On file
1 service, no public uptime commitment found (unverified)
On file
1 service, no public uptime commitment found
On file
1 service, no public uptime commitment found

What each promise allows

  • 99%7.3 h3.7 d
  • 99.5%3.7 h44 h
  • 99.9%44 min8.8 h
  • 99.95%22 min4.4 h
  • 99.99%4.4 min53 min
  • 99.999%26 s5.3 min

Status feeds