SPB Git forge
38commits 1branches 0releases
338.7 MBsize
maindefault branch
3 h agolast push
HTML 53.9% TypeScript 44.5% JavaScript 0.6% SQL 0.5%
6.9 KB · 88 lines markdown
Rendered Raw Blame History
1# Rankings — methodology23> **2026-09-12 — containment-aware aggregation.** Every aggregate reads `FACILITY_VIEW` (apps/worker/src/rankings.ts): a campus row whose buildings publish MW contributes nothing itself, a building covered by its campus figure counts as covered, a campus with buildings is not an extra facility. Project figures are summed only from site-scoped claims (`projectPlannedMw`). Hidden / merged projects are excluded everywhere. New keys: metros_ai, metros_cloud_regions, metros_projects, operators_ai, operators_projects, operators_project_mw, countries_project_mw, countries_projects, countries_ixps.45Rankings are recomputed by `computeRankings()` (`apps/worker/src/rankings.ts`) and served with the methodology6text below (`rankings.methodology`, also returned in the API `meta`). They are only as good as the coverage of the7index; every row therefore exposes `coverage`, the share of the entity's facilities that carry any MW figure.89## Definitions shared by all rankings1011- **Facility** — a live record in `facilities` (`merged_into IS NULL`), any status. Duplicates folded by12  reconciliation are excluded.13- **Operational** — status `operational`, `partially_operational` or `expansion`.14- **Under construction** — status `under_construction`.15- **Planned** — status `rumored`, `proposed`, `announced`, `permitting`, `approved` or `delayed`.16- **Known MW** — Σ over operational facilities of *IT capacity*, or *total power* when the operator publishes only17  that. Figures marked as estimates count only when no measured figure exists for the facility, and the facility is18  flagged `mw_is_estimate`. We never impute MW to facilities without a published or filed figure.19- **Pipeline MW** — Σ over facilities not yet operational of *planned power* (or IT/total power when no planned figure20  is published), split into *planned MW* (planning statuses) and *construction MW* (under construction).21- **Coverage** — facilities with any MW figure ÷ facilities.22- **Coverage gate** — MW-based and per-capita rankings exclude entities with fewer than **5 facilities** or coverage23  below **35 %** (`minCoverage`), so that thin data does not produce spurious leaders. Count-based rankings have no24  gate.25- **Delta** — rank change versus the previous snapshot of the same ranking (positive = moved up).2627Population and GDP come from the latest World Bank vintage stored on the country (`countries.population`,28`countries.gdp_usd`, `stats_year`); the vintage is shown on country pages.2930## Countries3132| Key | Label | Unit | Method |33|---|---|---|---|34| `countries_facilities` | Facility count | facilities | Number of facilities located in the country. Secondary: known MW. |35| `countries_known_mw` | Known operational MW | MW | Known MW (see above). Gate applies. Secondary: operational facilities. |36| `countries_planned_mw` | Planned MW | MW | Pipeline MW over planning statuses. Gate applies. |37| `countries_construction_mw` | MW under construction | MW | Pipeline MW over facilities under construction. Gate applies. |38| `countries_hyperscale` | Hyperscale facilities | facilities | Facilities flagged hyperscale (self-described, or operated by AWS, Microsoft, Google, Meta, Oracle, Alibaba Cloud, Tencent Cloud, Apple, IBM or Huawei Cloud). |39| `countries_ai` | AI facilities | facilities | Facilities flagged as AI / accelerated-computing sites by their operator or a primary source. |40| `countries_cloud_regions` | Cloud regions | regions | Public cloud regions (announced or operational; retired excluded) across indexed providers. |41| `countries_facilities_per_million` | Facilities per million residents | per million | facilities ÷ (population / 1 000 000). Requires ≥ 5 facilities and a population figure. |42| `countries_mw_per_capita` | Known MW per capita | kW per 1 000 residents | known MW × 1 000 000 ÷ population (equivalently kW per 1 000 residents). Gate applies. |43| `countries_mw_per_gdp` | Known MW per $bn GDP | MW per $bn | known MW ÷ (GDP in current US$ / 10⁹). Gate applies. |44| `countries_growth` | Facilities opened in the last 3 years | facilities | Facilities whose (possibly partial) opening date is in the current year − 3 or later. Facilities with no opening date are not counted, so this understates growth where operators do not publish dates. |4546## Metros4748Facilities are assigned to a metro when they lie within the metro's radius (40–80 km) of its reference point, or —49without coordinates — when their city matches one of the metro's listed sub-markets. Metros never span borders.5051| Key | Label | Unit | Method |52|---|---|---|---|53| `metros_facilities` | Facility count | facilities | Facilities assigned to the metro. |54| `metros_known_mw` | Known operational MW | MW | Known MW. Gate applies. |55| `metros_pipeline_mw` | Pipeline MW | MW | Planned MW + construction MW. Gate applies. |56| `metros_operators` | Operator count | operators | Distinct operators with ≥ 1 facility in the metro. |5758## Operators5960"Operated by" means the facility's `operator_id`; owners and tenants are not counted. Subsidiaries listed in the61curated alias table are folded into the parent brand (e.g. Interxion → Digital Realty, RagingWire → NTT Global Data62Centers, zColo → DataBank).6364| Key | Label | Unit | Method |65|---|---|---|---|66| `operators_facilities` | Facility count | facilities | Facilities operated. Secondary: countries. |67| `operators_countries` | Country footprint | countries | Distinct countries with ≥ 1 operated facility. |68| `operators_metros` | Metro footprint | metros | Distinct metros with ≥ 1 operated facility (facilities outside any defined metro are not counted). |69| `operators_known_mw` | Known operational MW | MW | Known MW. Gate applies. |70| `operators_pipeline_mw` | Pipeline MW | MW | Planned MW + construction MW. Gate applies. |7172## Summary statistics and daily metrics7374`refreshStats()` writes the same aggregates (counts, MW sums, status breakdown, coverage) into75`countries.stats`, `metros.stats` and `operators.stats` for fast summaries. `computeDailyMetrics()` snapshots76`facilities_total`, `operational`, `under_construction`, `planned`, `known_mw`, `construction_mw`, `planned_mw`,77`mw_coverage`, `events_24h` (plus `sources`, `documents`, `operators`, `cloud_regions`, `projects`, … globally) into78`daily_metrics` — one row per day, metric and dimension (`global`, `country:<iso2>`, `operator:<id>` for the top 10079operators, `metro:<id>`) — and mirrors them to ClickHouse `entity_daily` for growth charts.8081## Known limitations8283- Known MW mixes IT capacity and total power when operators publish only one of them; the facility page shows84  which one is available.85- Coverage varies strongly by country: primary-source disclosure is much higher in North America and Europe than86  elsewhere, so cross-region comparisons of MW rankings should be read with the coverage column.87- Per-capita and per-GDP rankings depend on the World Bank vintage stored on the country.88