Methodology & Data Sources
Data Sources
All data comes from official cloud provider status pages:
| Provider | Source | Method |
|---|---|---|
| Google Cloud | status.cloud.google.com/incidents.json | JSON feed — fetched directly |
| AWS | health.aws.amazon.com | JSON events API |
| Azure | azure.status.microsoft | HTML scraping of Post Incident Reviews |
Uptime Calculation
For a given time window (e.g., 90 days):
uptime% = (total_minutes − incident_minutes) / total_minutes × 100
Per-category scores only count incidents affecting services in that category. Scores are recomputed daily at build time.
Severity Mapping
- Google Cloud: Uses the
severityfield from the JSON feed —high→ critical,medium→ major,low→ minor. - AWS: Derived from the event status code — 3 → critical, 2 → major, 1 → minor.
- Azure: Inferred from narrative text using keyword matching (e.g., "outage" → critical, "degradation" → major) combined with the number of affected services. This is the most heuristic-heavy mapping.
Known Limitations
- Cloud providers may not publicly report all incidents. This data reflects only what appears on official status pages.
- Azure data is extracted from narrative HTML, which is less reliable than structured JSON feeds.
- Uptime percentages are estimates based on reported incident durations. Actual SLA performance as experienced by customers may differ.
- Service category mappings are manually maintained and may not cover every service.
Collection Frequency
A GitHub Actions workflow runs daily at 06:00 UTC, executing the scrapers, merging new data, and redeploying the site. Data can also be collected manually via npm run collect.
Open Source
This project is fully open source. You can audit the scrapers, data pipeline, and every data point in the repository: