Combine multi-region redundancy with a serial dependency chain to get the availability a user actually experiences.
Redundant regions fail independently, so their unavailabilities multiply and the combined figure improves exponentially with each region added — but only to the extent the failures really are independent, which is why a correlated share is blended back in. Serial dependencies work the opposite way: every component in the request path must be up, so their availabilities multiply downward and four components at 99.95% land below 99.8%. Publishing a target of four nines while running a five-hop request path of three-nines components is arithmetically impossible, and this calculation shows that before the incident review does. Provider availability figures are design targets, not guarantees — check the specific service's published SLA.
Cloud Availability
parallel availability = 1 − (1 − a)^regions, blended with the correlated share; chain availability = c^components; effective = parallel × chain; annual downtime = (1 − effective) × 525,600 minutes.
parallel availability = 1 − (1 − a)^regions, blended with the correlated share; chain availability = c^components; effective = parallel × chain; annual downtime = (1 − effective) × 525,600 minutes. Redundant regions fail independently, so their unavailabilities multiply and the combined figure improves exponentially with each region added — but only to the extent the failures really are independent, which is why a correlated share is blended back in. Serial dependencies work the opposite way: every component in the request path must be up, so their availabilities multiply downward and four components at 99.95% land below 99.8%.
Publishing a target of four nines while running a five-hop request path of three-nines components is arithmetically impossible, and this calculation shows that before the incident review does. Provider availability figures are design targets, not guarantees — check the specific service's published SLA.
This calculator takes 5 inputs: Availability of a single region, Independent regions serving traffic, Correlated failure between regions, Components in the request path, Availability of each component in the chain. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Each region multiplies the remaining unavailability, so the absolute gain shrinks fast while the correlated component does not shrink at all. Once shared dependencies such as global DNS, identity or a config rollout dominate the failure budget, a third region buys almost nothing and the money is better spent on the dependency chain.