Home / DC Solutions / Technical Manuals / DC Market Tracker

Technical Manual · Market Intelligence

Global DC Market Tracker — Methodology & Data Provenance

Every input, data lookup, scoring formula, and external source behind the Global DC Market Tracker. All per-market figures are stored in DATA.markets inside rz-engine.js; site scoring runs through models.site.score() using factor vectors derived from DATA.countries. No numbers are interpolated or back-solved — every field traces to a named source in DATA.sources.

Engine RZEngine v2.5.x Markets 25+ Site factors 10 Basis CBRE / JLL / IEA / Uptime 2025-26
▶ Open the live DC Market Tracker

01 Purpose & engineering basis

The DC Market Tracker answers three distinct questions in a single dashboard: where is capacity being built right now, how does per-market power cost and carbon intensity compare, and which markets score highest on a multi-factor site-selection screen. It is a decision-support tool for site screening, not a real-estate data feed or investment prospectus.

The tracker is DATA-provenance heavy by design. Every per-market field in DATA.markets traces to DATA.sources['markets']; every per-country environment and economy field used in site scoring traces to DATA.sources['countries']. The provenance chain is: raw research report → dcmoc/src/constants/countries.ts (single source of truth) → tools/build-countries-data.mjs (generator) → DATA.countries in rz-engine.js. Regenerate after editing countries.ts and bump the ?v= stamp.

Scope: the tracker is a screening-grade market-intelligence surface. Figures are sourced from publicly available brokerage research and utility filings; they carry the accuracy range of their source (~Class 4–5 per AACE 18R-97). They do not substitute for due diligence, utility interconnection studies, or site acquisition analysis.

02 Inputs — filters, sliders, and capacity range

The tracker exposes four user-controlled input surfaces. All filter/sort/weight operations run client-side against the in-memory DATA.markets snapshot — no server round-trip.

InputTypeValues / rangeEffect
Region filterButton groupAll · North America · Europe · Asia Pacific · Latin America · Middle East & AfricaRestricts displayed markets to the selected region field in DATA.markets.
Maturity filterButton groupAll · Established · Growing · EmergingFilters on the maturity field: established = deep-liquid hyperscale corridors, growing = active build-out, emerging = early-stage pipeline.
Capacity rangeRange slider (MW)0 – max operational in datasetHides markets whose operational MW falls below the slider value. Useful for screening out micro-markets.
Sort columnSelect + table header clickName · Operational MW · CAGR · Power Cost · Vacancy % · Colo Price · Site ScoreRe-orders the market table and card grid. All sorts are client-side stable sorts on the filtered set.
Site-score weighting sliders (Pro panel): the 10-factor weight vector defaults to DATA.site.weights (see Section 03). Pro-tier users can drag individual factor weights; the tracker renormalizes and recomputes all site scores live. Weight changes are session-only — they do not persist or alter the engine constants.

03 Calculation methodology

Three formula families: annual electricity cost, site score, and carbon footprint. Function names map to models.site.* in rz-engine.js. Market-level lookups (operational/pipeline MW, vacancy, colo price) are direct table reads, not computed.

Annual electricity cost per market

annualPowerCostUsd = powerCost · 8760 · itLoadMW · 1000 · PUE powerCost = market-level $/kWh from DATA.markets[id].powerCost (DC-contract industrial rate from utility filings).
8760 = hours per year (calendar constant; DATA.sources['hoursPerYear']).
itLoadMW = user-supplied IT load in MW (default 10 MW for comparison cards).
PUE = assumed from DATA.pueMatrix (default Tier III air 1.50, Uptime 2026); user can override.
Result is a screening comparison — not a tariff filing or utility bill.DATA.sources['markets'] · DATA.sources['hoursPerYear']

Site Score — 10-factor weighted model

siteScore = 100 × ( Σ w_k · f_k ) / ( Σ w_k ) [over supplied factors only] grade: A ≥ 85 · B ≥ 70 · C ≥ 55 · D ≥ 40 · E < 40 Implemented in models.site.score(factors). Weights renormalize over present factors so a partial factor set scores fairly. Factor values are 0-1 goodness scores (1 = best).DATA.site.weights · models.site.score

Factor derivation from DATA.countries

power = clamp( 1 − (electricityRate − 0.05) / 0.30 ) grid = clamp( (gridUptime% − 95) / 5 ) [or SAIDI path: 1 − saidiMin/500] seismic = pgaToScore lookup (USGS PGA %g → IBC SDC band) talent = clamp( talentScore / 100 ) tax = clamp( 1 − taxRate / 0.35 ) carbon = clamp( 1 − gridCarbonIntensity / 0.90 ) [kgCO₂/kWh] flood = { low: 1.0 · moderate: 0.66 · high: 0.33 · extreme: 0 } latency = clamp( hyperscalerPresence / 10 ) [0-10 scale] water = clamp( 1 − aqueductStressScore / 5 ) [WRI 0-5] climate = clamp( climateFreeHours[ashraeZone] / 5800 ) [ASHRAE 169-2021] Implemented in models.site.deriveFactors(countryId, overrides). Missing fields fall back to a neutral 0.6. SAIDI path preferred if env.saidiMinYr is present; otherwise uptime% path. PGA path preferred if env.pgaPct2in50yr is present; otherwise seismicZone (0-4) scale.DATA.countries · DATA.site · models.site.deriveFactors

Carbon intensity lookup

annualCarbonT = itLoadMW × 1000 × 8760 × PUE × gridCarbonIntensity / 1000 gridCarbonIntensity = DATA.countries[countryId].environment.gridCarbonIntensity in kgCO₂/kWh. Sourced from IEA 2026 + Ember grid intensity (see DATA.sources['carbon']). Values for the 25 tracker markets range from 0.01 kgCO₂/kWh (Stockholm) to 0.90 kgCO₂/kWh (high-coal grids). This is a grid-average intensity; market-level 24/7 CFE contracts are not modelled.DATA.sources['carbon'] · DATA.sources['countries']

PUE climate adjustment (partial-load model)

PUE(l) = 1 + overhead × ( 0.55/l + 0.45 ) [overhead = PUE_rated − 1] Screening-grade partial-load PUE model. At rated load (l=1) reproduces rated PUE. Infrastructure overhead share 0.55 at partial IT load (industry rule-of-thumb band 0.4-0.7; Green Grid partial-load PUE guidance). Used only when user adjusts load fraction — display cards default to rated PUE from DATA.pueMatrix.DATA.sources['pue.partialLoad']

04 Constants & data provenance

Per-market reference data. All figures are lookups from DATA.markets in rz-engine.js. Source: CBRE Global DC Market 2025, JLL Outlook 2025, Cushman & Wakefield 2025, Synergy Research 2024. Power cost from utility filings (PJM, ERCOT, Dominion, IMDA et al.). As-of date: 2026-04. DATA.sources['markets']

MarketRegionOp. MWPipe MWPower $/kWhVac. %Colo $/kW·moCAGRMaturity
Northern VirginiaNorth America4,0406,6000.0651.4$21525%Established
Dallas/Fort WorthNorth America1,2002,6000.0552.1$16022%Established
PhoenixNorth America8002,0000.0583.5$15020%Established
ChicagoNorth America7001,1000.0722.8$17515%Established
Silicon ValleyNorth America6007000.0951.8$2508%Established
TorontoNorth America4008000.0854.2$15518%Growing
LondonEurope1,5001,6000.1702.5$20010%Established
FrankfurtEurope9001,1000.1505.1$19510%Established
AmsterdamEurope6005500.1307.2$1808%Established
ParisEurope4507000.1404.0$19012%Growing
DublinEurope4004000.1553.8$1856%Growing
SingaporeAsia Pacific8506500.1800.8$39012%Established
TokyoAsia Pacific1,2001,2000.1601.2$2708%Established
Hong KongAsia Pacific5004000.1452.0$2806%Established
SydneyAsia Pacific6007500.1403.2$18014%Established
MumbaiAsia Pacific5001,1000.0856.0$12520%Growing
JakartaAsia Pacific3507000.0804.5$16018%Growing
SeoulAsia Pacific7006000.0952.5$21010%Established
Kuala LumpurAsia Pacific2505500.0605.5$14022%Growing
São PauloLatin America4004500.1005.0$16516%Growing
SantiagoLatin America1002000.0908.0$14518%Emerging
QuerétaroLatin America2004000.0704.0$13520%Growing
DubaiMiddle East & Africa2005000.0653.0$22025%Growing
JohannesburgMiddle East & Africa1502800.0756.0$17020%Emerging
NairobiMiddle East & Africa501300.11510.0$20025%Emerging

Site-score factor weights (from DATA.site.weights, sum = 1.0):

FactorKeyWeightSource field in DATA.countriesDerivation
Electricity costpower17%economy.electricityRate ($/kWh)clamp(1−(rate−0.05)/0.30)
Grid reliabilitygrid14%env.saidiMinYr or gridReliability.gridUptimeSAIDI path: 1−saidi/500; uptime path: (uptime%−95)/5
Talent pooltalent11%talentPool.talentScore (0-100)talentScore/100
Seismic riskseismic10%env.pgaPct2in50yr or naturalDisaster.seismicZonePGA lookup table (IBC/ASCE-7 SDC) or 1−zone/4
Tax environmenttax9%economy.taxRate (fraction)1−taxRate/0.35
Carbon intensitycarbon9%environment.gridCarbonIntensity (kgCO₂/kWh)1−gridCarbon/0.90
Water availabilitywater8%env.aqueductStressScore (WRI 0-5)1−stress/5
Climate / free-coolingclimate8%env.ashraeClimateZone (1-8)Lookup: free-cooling hr/yr / 5,800
Flood riskflood7%naturalDisaster.floodRisk (low/moderate/high/extreme)Map: {low:1, moderate:0.66, high:0.33, extreme:0}
Network latencylatency7%talentPool.hyperscalerPresence (0-10 scale)hyperscalerPresence/10

Grid carbon intensity for major tracker markets (from DATA.countries[*].environment.gridCarbonIntensity; source: IEA 2026 + Ember DATA.sources['carbon']):

Country / MarketGrid Carbon (kgCO₂/kWh)Electricity Rate ($/kWh)Tax RateAs-of
United States (N. Virginia)0.39~0.065~21%2026
Germany (Frankfurt)0.350.150~30%2026
Netherlands (Amsterdam)0.400.130~25%2026
United Kingdom (London)0.30 est.0.170~19%2026
Ireland (Dublin)0.35 est.0.155~12.5%2026
Sweden (Stockholm)0.01~0.09~20.6%2026
Singapore0.410.180~17%2026
Japan (Tokyo)0.480.160~23.2%2026
Australia (Sydney)0.550.140~30%2026
India (Mumbai)0.700.085~24%2026
Indonesia (Jakarta)0.780.080~22%2026
Malaysia (KL)0.600.060~24%2026
UAE (Dubai)0.450.065~9%2026
South Africa (Johannesburg)0.900.075~27%2026
Brazil (São Paulo)0.20 est.0.100~34%2026

05 Outputs

The tracker surfaces nine per-market outputs across the map, card grid, and data table views.

OutputSource / formulaUnitInterpretation
Operational capacityDATA.markets[id].operational — direct lookupMWLive commissioned and leased capacity at time of research snapshot.
Pipeline (construction + planned)operational + construction + plannedMWTotal addressable supply including current build and permitted pipeline. High pipeline / low absorption = supply overhang signal.
Vacancy rateDATA.markets[id].vacancy — direct lookup%Percentage of operational capacity available for lease. <2% = tight market, >7% = loose.
Power costDATA.markets[id].powerCost — direct lookup$/kWhMarket-level DC-contract industrial blended rate from utility filings. Distinct from DATA.regions[*].powerKwh macro blends.
Colo priceDATA.markets[id].coloPrice — direct lookup$/kW/monthRetail colocation asking price per kW per month. Headline rate; actual contracted rates vary 15-30% below ask in most markets.
CAGR (2025-2030)DATA.markets[id].cagr — direct lookupfractionCompound annual growth rate projection for operational MW. Sourced from broker reports; projection quality varies by market.
Annual power cost (comparison)powerCost × 8760 × itLoadMW × 1000 × PUEUSD/yrComputed for a reference load (default 10 MW IT at rated PUE) to normalize power cost across markets with different rate structures.
Site Scoremodels.site.score(deriveFactors(countryId))0-100 + A-E gradeWeighted composite of 10 site-selection factors. Reflects the country profile anchored to the market; does not reflect sub-national variation within large countries.
Carbon intensityDATA.countries[*].environment.gridCarbonIntensitykgCO₂/kWhGrid-average intensity. Used for annual carbon footprint comparison at the reference IT load. CFE contracts not modelled.

06 Worked example — Singapore market

Singapore (DATA.markets['singapore']) is a useful reference: very high colo pricing, extremely low vacancy, and a moderate-carbon grid. Numbers are verifiable against the engine constants — no interpolation.

  1. Market lookup: op=850 MW, pipe=500 MW, vacancy=0.8%, powerCost=$0.180/kWh, coloPrice=$390/kW·mo, cagr=12%, region='Asia Pacific', maturity='established' → direct read from DATA.markets['singapore']
  2. Annual power cost at 10 MW IT, PUE 1.50 (Tier III air): 0.180 × 8760 × 10 × 1000 × 1.50 = $23,652,000 / yr
  3. Carbon footprint at 10 MW IT, PUE 1.50, grid 0.41 kgCO₂/kWh: 10 × 1000 × 8760 × 1.50 × 0.41 / 1000 = 53,898 t CO₂/yr
  4. Factor derivation from DATA.countries['SG']:
    power = clamp(1−(0.180−0.05)/0.30) = 0.567
    grid = clamp((99.5−95)/5) = 0.90 (SAIDI path preferred if available)
    talent = talentScore/100 → ~72/100 = 0.72
    seismic = pgaToScore[pgaPct2in50yr<5] = 1.00 (low seismicity)
    tax = clamp(1−0.17/0.35) = 0.514
    carbon = clamp(1−0.41/0.90) = 0.544
    flood = moderate → 0.66
    latency = hyperscalerPresence=8/10 = 0.80
    water = clamp(1−aqueductStress/5) → est. 0.55
    climate = climateFreeHours['1']/5800 = 800/5800 = 0.138 (tropical — minimal free cooling)
  5. Site Score (10 factors, full weight vector):
    Weighted sum = (0.17×0.567) + (0.14×0.90) + (0.11×0.72) + (0.10×1.00) + (0.09×0.514) + (0.09×0.544) + (0.08×0.55) + (0.08×0.138) + (0.07×0.66) + (0.07×0.80)
    = 0.096 + 0.126 + 0.079 + 0.100 + 0.046 + 0.049 + 0.044 + 0.011 + 0.046 + 0.056
    = 0.653 → score 65.3 / 100 → Grade C "Viable"
  6. Reading: Singapore scores strongly on grid, seismic, and latency factors, but the high electricity tariff, tropical climate (minimal free-cooling hours), and moderate carbon intensity pull the composite to grade C. Premium positioning shows in the colo rate ($390/kW·mo) and near-zero vacancy (0.8%).
Verify via node: node -e "var e=require('./rz-engine.js'); var f=e.models.site.deriveFactors('SG'); console.log(e.models.site.score(f));" — the live engine result should match within rounding of the worked values above.

07 References & data lineage

08 Assumptions & limitations

The tracker is a screening-grade market-intelligence dashboard. Key limitations to understand before using the outputs for decisions:

ItemAssumption / limitationImplication
Capacity figuresSnapshot from broker research (CBRE/JLL/C&W) as of 2025-2026. Figures are reported operational MW — not independently audited.Fast-moving markets (N. Virginia, Johor, Indonesia) can diverge from snapshot within one quarter. Treat as order-of-magnitude context.
Power costDC-contract industrial blended rate per market from utility filings. Not an actual contracted PPA rate. Does not include network charges, taxes, or surcharges in all markets.Actual contracted energy cost can differ 10-25% from the listed rate depending on load profile, PPA term, and regulatory regime.
Site Score geographySite Score is anchored to the country profile, not sub-national variation. A score for "Jakarta" uses Indonesia country data — it does not reflect Batam vs. Bekasi vs. Cibitung sub-market differences.Sub-national site selection requires a dedicated country-level assessment beyond this engine's scope.
Carbon intensityGrid-average intensity. Does not model 24/7 carbon-free energy (CFE) contracts, Power Purchase Agreements, or regional dispatch mix.Operators with CFE contracts (Google, Microsoft, Meta) experience effective carbon intensities well below the listed grid averages.
Vacancy rateMarket-level vacancy from broker research. Definition varies: some sources report pre-committed but not yet occupied space as vacant; others do not.Use vacancy as a directionality signal (tight vs. loose), not as a precise availability figure for procurement.
CAGR projection2025-2030 CAGR from broker research. Projections reflect demand-side scenarios (AI inference, sovereign cloud, enterprise migration) that carry material uncertainty.High-CAGR markets (N. Virginia 25%, Dubai 25%, Nairobi 25%) reflect strong pipeline confidence; realized growth depends on power availability, permitting, and capital formation.
Site Score neutralityDefault factor weights are a transparent heuristic informed by published DC site-selection frameworks. They are not calibrated to any single operator's proprietary weighting.Users with different priorities (e.g., carbon-first, lowest-cost-power) should adjust the Pro-panel weight sliders to reflect their actual criteria.
Not investment adviceThis tool is an engineering education and pre-screening aid. It does not constitute investment advice, real-estate advice, or site-acquisition recommendation.Any site-acquisition or investment decision requires independent due diligence, utility studies, and qualified professional advice.
▶ Open the live Global DC Market Tracker