Technical Manual · Capital Cost
CAPEX Calculator — Methodology & Formulas
Every input, multiplier chain, formula, constant, output, and data-source provenance behind the data-center CAPEX calculator. All math is executed by the deterministic engine RZEngine.models.capex.detailed() — constants live in the deep-frozen DATA.capexDetail block with a DATA.sources provenance sidecar. No back-solved constants, no random values.
01 Purpose & engineering basis
The CAPEX calculator produces a parametric, Class 4 (Study / Feasibility) budgetary estimate of data-center construction cost. It answers five pre-design questions: what is the total build cost, how does cost break down across engineering disciplines, what floor area and rack count does the design imply, what construction schedule should the project plan against, and what annual energy cost will the facility carry.
The governing cost basis is the Turner & Townsend Data Center Cost Index (DCCI) 2025, supplemented by the Cushman & Wakefield Data Center Cost Guide 2025 for city-level $/W anchors and JLL 2026 escalation indices. Category cost factors are calibrated so that the Americas baseline (locMult 1.00) at 4.65 $/W matches the sourced composite anchor. The model is AACE Class 4: project definition maturity 1–15%, typical accuracy −30% / +50%. It is an engineering pre-design screening tool, not a contractor bid.
The complete model body lives in rz-engine.js under RZEngine.models.capex.detailed() (approximately line 8399). The constant block is DATA.capexDetail (approximately line 5266). The provenance sidecar is DATA.sources['capexDetail']. The calculator page (capex-calculator.html) is a pure presentation layer that reads DOM inputs and calls the engine — no cost arithmetic lives on the page.
02 Inputs
Seventeen core inputs across five groups — IT infrastructure, cooling & density, fire/life-safety, power, and location. Eighteen additional advanced parameters unlock in Advanced mode. All defaults below reproduce the page's value="" / selected attributes exactly.
| Field / DOM id | Symbol | Unit | Range / default | Meaning |
|---|---|---|---|---|
itLoad | itLoadKw | kW | 100 – 100 000 · default 1 000 | Total IT load (IT power budget). Drives every per-kW cost line and rack count. |
rackType (radio) | rackType | enum | standard* / medium / high / ai | Rack-density tier. Sets rackKw (6 / 12.5 / 25 / 75 kW/rack) for rack count and rackMult for building, electrical, and cooling cost lines. |
coolingType (radio) | coolingType | enum | air* / inrow / rdhx / liquid | Cooling architecture. Drives coolingMult, design PUE from pueByCoolingRack, WUE, and construction timeline cooling multiplier. |
redundancy (radio) | redundancy | enum | n / n1* / 2n / 2n1 | Uptime Institute redundancy tier. Drives redMult applied to electrical, UPS, generator, and commissioning lines. Also scales testing and space support ratios. |
fuelHours | fuelHours | hours | 8 – 168 · default 48 | Generator fuel-tank autonomy. Fuel multiplier = 1 + (fuelHours − 24) × 0.008. Only hours above 24 accrue additional cost. |
buildingType | buildingType | enum | warehouse / modular / purpose* / highrise | Building construction type. Applies buildingMult (0.70 / 0.85 / 1.00 / 1.40×) to the building and seismic lines. Also scales construction schedule civil phase. |
seismicZone | seismicZone | enum | zone0 / zone1 / zone2* / zone3 / zone4 | Seismic design zone. Multiplies the seismic line item by seismicMult (0.2 / 1.0 / 2.5 / 5.0 / 8.0×). |
fireType | fireType | enum | fm200 / novec* / inergen / n2 / water | Fire-suppression agent. Applies fireSuppressionMult (1.0 / 1.3 / 1.2 / 1.8 / 0.6×) to the fire-suppression line. |
alarmType | alarmType | enum | conventional / addressable* / vesda / hybrid | Fire-detection system. Applies fireAlarmMult (0.6 / 1.0 / 1.8 / 2.2×) to the fire-alarm line. |
upsType | upsType | enum | standalone / modular* / distributed / rotary | UPS topology. Applies upsMult (0.9 / 1.0 / 1.2 / 1.5×) to the UPS line item. |
genType | genType | enum | diesel* / gas / dualfuel / hvo | Generator fuel type. Applies genMult (1.0 / 1.15 / 1.3 / 1.2×) to the generator line. |
locationFactor | location | enum | americas* / emea / middle_east / apac | Region group. Resolved via regionGroupDefaults to an internalRegion and a base locMult (1.00 / 1.15 / 0.90 / 0.85×). Overridden when a city is selected. |
cityMarket | city | enum | none* or any of 58 cities | Optional city-specific override. Sets locMult = city.perW / 4.65 and overrides effectiveRegion. City $/W values come from T&T DCCI 2025 + C&W 2025 anchor table. |
deepSeaEnable (checkbox) | deepSea | bool | off* | Enables deep-sea water cooling physics path. Adds a deepSeaCooling capex line from RZEngine.models.cooling.deepSea() and overrides PUE with the physics-derived value. |
dsDepth | depthM | m | 300 – 1 200 · default 900 | Seawater intake depth (active only when deep-sea is enabled). Drives pipeline head pressure and pump energy in the cooling physics model. |
dsPipeline | pipelineKm | km | 0.5 – 15 · default 3 | Subsea pipeline length. Scales pipeline capital cost in the deep-sea cooling capex model. |
refrigerantType | refrigerant | enum | auto* or R-410A / R-134a / R-513A / R-32 / R-454B / R-1234ze / R-1233zd / R-717 / R-290 | Chiller refrigerant selection. When not "auto", RZEngine.models.cooling.refrigerant() applies a capexMult premium to the cooling line item based on refrigerant equipment cost and safety-class installation requirements. |
DATA.capexDetail.03 Calculation methodology
All arithmetic is in RZEngine.models.capex.detailed(inp). The model has five sequential stages: resolve multipliers → compute 14 base cost lines → add advanced per-rack and fiber costs → apply soft costs and contingency → derive PUE, space, and timeline. Function location: rz-engine.js approximately line 8399.
Stage 1 — Multiplier resolution
DATA.capexDetail. locMult for city override: Dallas 14.30/4.65 = 3.075×; Tokyo 15.20/4.65 = 3.269×; Jakarta 11.21/4.65 = 2.411×.T&T DCCI 2025 · C&W 2025
Stage 2 — 14 base cost lines
Object.keys(CD.costFactors).forEach(…) iterating 14 keys. pr = CD.permitRegionMult[effectiveRegion].rz-engine.js ~line 8481
Stage 3 — Advanced per-rack costs (advanced mode only)
pduPerRack: basic $800, intelligent $1 500, switched $2 500. cablingPerRack: copper $600, hybrid $1 200, fiber $2 000. fiberEntryCost: single $150 k, dual $350 k, multi $600 k.DATA.capexDetail · rz-engine.js ~line 8499
Stage 4 — Soft costs, contingency, and FOM
Stage 5 — PUE, energy cost, space model, and timeline
RZEngine.models.cooling.refrigerant(refKey, opts) computes a capexMult based on GWP and safety class. If capexMult > 1, the premium = costs.cooling × (capexMult − 1) is added to costs.cooling and the total. Deep-sea cooling adds a physics-derived costs.deepSeaCooling from RZEngine.models.cooling.deepSea() and replaces the PUE lookup with the physics-derived value.04 Constants & data sources
Every constant lives in DATA.capexDetail (rz-engine.js ~line 5266) with provenance registered in DATA.sources['capexDetail']. The 14 base cost factors in $/kW IT:
| Category key | $/kW IT | Primary multipliers | Notes |
|---|---|---|---|
building | $800 | locMult · buildMult · rackMult · floorM · siteM | Civil, structural shell, raised floor, fit-out. |
seismic | $100 | locMult · seismicMult · buildMult | Seismic bracing, isolation pads. Zone 4 = 8× base. |
electrical | $1 200 | locMult · redMult · rackMult · powerDistM · transformerM | Switchgear, MV/LV distribution, busway, PDU (+ per-rack in adv. mode). |
ups | $600 | locMult · redMult · rackMult · upsM | UPS systems and battery strings. |
generator | $400 | locMult · redMult · fuelMult · genM | Gensets and day-tank. fuelMult > 1 above 24 h autonomy. |
cooling | $700 | locMult · coolMult · rackMult | Chillers, cooling towers, CRAC/CRAH, CDU, pipe work. |
fireSuppression | $150 | locMult · fireSupMult | Agent cylinders, distribution pipe, nozzles. |
fireAlarm | $80 | locMult · alarmMult | Detector field devices and fire control panel. |
bms | $120 | locMult | BMS / DCIM controllers, sensors, integration. |
network | $250 | locMult (+ per-rack cabling + fiber in adv. mode) | Structured cabling, patch panels, ODF. |
security | $80 | locMult · securityM | Access control, CCTV, man-trap. Security-level mult 1.0 / 1.5 / 2.2×. |
commissioning | $120 | locMult · redMult | IST, integrated systems testing, 3rd-party witness. |
testing | $90 | locMult · pr.testing · testingRedundancyMult | Factory acceptance, site acceptance, compliance testing. |
permits | $60 | locMult · pr.permits | Building permits, environmental approvals, utility interconnect. |
| Parameter | Values / range | Source | asOf |
|---|---|---|---|
| City $/W anchor table (58 cities) | $6.20 (Chennai) – $15.20/W (Tokyo) | Turner & Townsend DCCI 2025 + Cushman & Wakefield DC Cost Guide 2025 | 2025 |
| cityAnchorPerW | $4.65/W | Americas composite baseline (locMult normalisation anchor) | 2025 |
| Year escalation multipliers | 2025: 1.000 / 2026: 1.060 / 2027: 1.115 / 2028: 1.165 / 2029: 1.210 / 2030: 1.250 | JLL Data Center Outlook 2026 | 2026 |
| PUE matrix (air / inrow / rdhx / liquid × density tier) | 1.15 – 1.80 | Uptime Institute Global Survey 2026 (cooling-type cohorts) | 2026 |
| Space: rackFootprintM2 | standard 2.5 / medium 2.8 / high 3.2 / ai 4.2 m²/rack | Uptime/ASHRAE TC9.9 layout guidance; DLC rows +8% CDU clearance | 2026 |
| Space: supportRatioByRedundancy | N: 0.55 / N+1: 0.75 / 2N: 1.05 / 2N+1: 1.20 | Published DC space programs; white space typically 40–50% of gross | 2026 |
| fuelMultPerHourOver24 | 0.008 per hour | Engine lineage (capex-calculator inline model v2.3.0) | 2025 |
| energyRateByLocation.other | $0.12/kWh | Blended rate for regions other than SEA/India/USA | 2025 |
| AACE estimate class | Class 4; accuracy −30% / +50% | AACE International Recommended Practice 18R-97 | 2020 |
05 Outputs
The engine returns a single object R. The calculator page reads these fields to populate the KPI summary, cost breakdown chart, space program table, and timeline strip.
| Output field | Formula / source | Unit | Interpretation |
|---|---|---|---|
R.total | sum(costs) + softCosts + contingency + FOM + renewable | USD | Total project capital estimate (Class 4, −30/+50%). Displayed as headline KPI. |
R.perKw | R.total / itLoadKw | $/kW IT | Build cost intensity. Compare against AACE Class 4 band: ~$5–15 k/kW for Tier 2–4. |
R.costs | Object of 14 category costs (+ deepSeaCooling if enabled) | USD ea. | Line-item breakdown for the cost pie / waterfall chart. |
R.contingency | pre-contingency total × contingencyPct/100 | USD | Risk reserve. 5% simple mode, user-set in advanced mode. |
R.softCosts | design fee + PM fee (% of hard costs) | USD obj. | Professional fees. Zero in simple mode. |
R.fomTotal | substation + grid-connection + switchgear costs | USD | Off-site infrastructure. Zero unless FOM checkbox is enabled. |
R.racks | ceil(itLoadKw / CD.rackKw[rackType]) | count | Rack count driving space program and per-rack advanced costs. |
R.pue | CD.pueByCoolingRack[coolingType][rackType] | ratio | Design PUE used for annual energy estimate. Replaced by physics PUE in deep-sea mode. |
R.wue | CD.wueByCooling[coolingType] | L/kWh | Water usage effectiveness. 0 for air and liquid; 1.8 for in-row evaporative; 0.3 for RDHX. |
R.annualEnergy | itLoadKw × pue × 8 760 × energyRate | USD/yr | Annual electricity cost at the blended energy rate. Screening-grade opex proxy. |
R.space | racks, footprint, whiteSpaceM2, supportM2, grossM2, grossSqft, halls, kwPerM2 | various | Space program output. grossM2 = white + support + admin. Screens land-take and floor loading. |
R.timeline | design, permit, procurement, civil, mep, commission, totalMonths | months | Parallel-phase construction schedule. Phases overlap per fast-track logic. |
R.deepSea | physics model output (null if not enabled) | object | Deep-sea cooling capex, PUE, pump power, flow rates. |
R.refrigerant | refrigerant model output (null if auto resolves to none) | object | Refrigerant identity, GWP, capexMult, and capexPremium applied to cooling line. |
06 Worked example
1 000 kW IT, standard rack (6 kW/rack), air cooling, N+1 redundancy, 48 h fuel autonomy, purpose-built building, seismic zone 2 (moderate), Novec 1230 fire suppression, addressable fire alarm, modular UPS, diesel generator, Americas region (locMult 1.00), no city override, simple mode (no advanced options). All numbers below are the literal output of RZEngine.models.capex.detailed() run against rz-engine.js via Node.js vm.runInContext — engine run verified.
- Multiplier resolution: redMult (N+1) = 1.25 · coolMult (air) = 1.00 · rackMult (standard) = 1.00 · buildMult (purpose) = 1.00 · seismicMult (zone2) = 2.50 · fireSupMult (novec) = 1.30 · alarmMult (addressable) = 1.00 · upsM (modular) = 1.00 · genM (diesel) = 1.00 · locMult (americas) = 1.00 · fuelMult = 1 + (48−24) × 0.008 = 1.192 · advGlobalMult = 1.00
- Category costs (= costFactor × 1000 kW × multiplier):
building: 800 × 1.00 × 1.00 × 1.00 = $800 000
seismic: 100 × 1.00 × 2.50 × 1.00 = $250 000
electrical: 1200 × 1.00 × 1.25 × 1.00 = $1 500 000
ups: 600 × 1.00 × 1.25 × 1.00 = $750 000
generator: 400 × 1.00 × 1.25 × 1.192 = $596 000
cooling: 700 × 1.00 × 1.00 = $700 000
fireSuppression: 150 × 1.00 × 1.30 = $195 000
fireAlarm: 80 × 1.00 × 1.00 = $80 000
bms: 120 × 1.00 = $120 000
network: 250 × 1.00 = $250 000
security: 80 × 1.00 = $80 000
commissioning: 120 × 1.00 × 1.25 = $150 000
testing: 90 × 1.00 × 1.00 × 1.00 = $90 000
permits: 60 × 1.00 × 1.00 = $60 000 - Pre-contingency sum: $5 621 000
- Contingency (5% simple mode): 5 621 000 × 0.05 = $281 050
- Total CAPEX: 5 621 000 + 281 050 = $5 902 050
- Cost per kW IT: 5 902 050 / 1 000 = $5 902/kW
- Rack count: ceil(1000 / 6) = 167 racks
- Design PUE (air, standard): pueByCoolingRack.air.standard = 1.80 · WUE = 0.0 L/kWh
- Annual energy cost: 1000 × 1.80 × 8760 × $0.12 = $1 892 160/yr
- Space program: whiteSpaceM2 = ceil(167 × 2.5) = 418 m² · supportM2 = ceil(418 × 0.75) = 314 m² · adminM2 = ceil(300 + 167×0.15) = 326 m² · grossM2 = 1 058 m² (11 388 ft²) · kwPerM2 = 2.4 kW/m² · 1 data hall suggested
- Construction timeline (N+1, purpose-built, air, USA, 1 MW IT → lMult = 0.55): design 3 mo · permit 3 mo · procurement 2 mo · civil 6 mo · MEP 5 mo · commissioning 3 mo · total 15 months
RZEngine.models.capex.detailed({itLoadKw:1000, rackType:'standard', coolingType:'air', redundancy:'n1', fuelHours:48, buildingType:'purpose', seismicZone:'zone2', fireType:'novec', alarmType:'addressable', upsType:'modular', genType:'diesel', location:'americas'}) executed via node -e with vm.runInContext against the live rz-engine.js file. Not hand-computed — engine run verified.07 References & standards
- T&T DCCI 2025 — Turner & Townsend Data Center Cost Index 2025: primary source for regional build-cost benchmarks, cost-category composition, and the city $/W anchor table (58 markets).
- C&W 2025 — Cushman & Wakefield Data Center Cost Guide 2025: supplementary city $/W values (Americas and APAC markets) cross-checked against T&T.
- JLL 2026 — JLL Data Center Outlook 2026: year-on-year construction cost escalation indices (2025 baseline → 2030 at +25%).
- AACE 18R-97 — AACE International Recommended Practice "Cost Estimate Classification System": Class 1–5 estimate definitions, project definition maturity %, and accuracy ranges. Engine is Class 4 (−30% / +50%).
- Uptime Institute 2026 — Global Data Center Survey 2026: PUE distribution by cooling-architecture cohort (air, in-row, RDHX, liquid); staffing benchmarks; Tier availability definitions (T2 99.741% / T3 99.982% / T4 99.995%).
- ASHRAE TC9.9 (5th ed. 2021) — Thermal Guidelines for Data Processing Environments: supply-temperature envelopes (A1–A4, H1), maximum rack density by cooling type, floor-loading guidance. Referenced in space model and cooling architecture selection.
- TIA-942-C — Telecommunications Infrastructure Standard for Data Centers: Rated-1 through Rated-4 topology descriptions corresponding to Uptime Tier 1–4.
- Engine source —
rz-engine.js(RZEngine v2.5.1):models.capex.detailed()~line 8399;DATA.capexDetail~line 5266;DATA.sources['capexDetail']~line 6589. Minified twin:rz-engine.min.js(loaded by 52 pages includingcapex-calculator.html).
08 Assumptions & limitations
The model is a Class 4 parametric estimate (AACE 18R-97). Its accuracy is inherently −30% / +50% with 1–15% project definition completeness. Specific limitations and assumptions:
Cost basis: category $/kW factors are anchored to the T&T DCCI 2025 composite benchmark, calibrated so that Americas locMult 1.00 × all-defaults ≈ 4.65 $/W. They represent a market-median build; owner-specific procurement, site conditions, and design choices can shift individual lines by ±50%+.
Energy rate: the annual energy cost uses a fixed $0.12/kWh fallback for all regions except SEA ($0.08), India ($0.07), and USA ($0.10). The USA condition is a legacy key-mismatch quirk documented in the engine JSDoc — the location input never equals the string 'usa' (it maps to 'americas'), so the $0.12 fallback applies globally in simple mode. This is a documented non-defect preserved for calculation continuity; future reconciliation requires a deliberate data-model change.
Space model: rack footprint and support-to-white-space ratios are planning rules of thumb from Uptime/ASHRAE TC9.9 layout guidance. They produce a reasonable gross building footprint for programming purposes but are not a substitute for a detailed space plan or architectural layout study.
Timeline: the parallel-phase schedule model uses base durations calibrated from industry benchmarks (T&T + JLL project delivery data). Critical long-lead equipment (transformers 60–120 weeks, switchgear 50–80 weeks in the 2024–26 market) can be the dominant schedule driver and is not fully reflected in the model's phase durations — the engine's DATA.construction.longLeadWeeks table documents these but they are advisory, not input to the timeline formula.
Scope exclusions: the estimate does not include land acquisition, IT equipment, furniture and fixtures, moving/relocation, tenant improvement works above the base shell, or ongoing operating costs beyond the energy screening estimate. FOM (substation, grid connection, switchgear) is modelled only when the Advanced mode FOM checkbox is enabled.
This calculator and manual are an engineering education and pre-design screening tool. They do not constitute a professional engineering estimate, a quantity surveyor's report, or investment or procurement advice. Final capital budgets must be validated by a qualified cost engineer or quantity surveyor against site-specific project definition documents.