Technical Manual · Commissioning
Cx Calculator — Methodology & Formulas
Every input, equation, constant, output, and reference behind the commissioning (Cx) calculator. All math is anchored to the RICH engine in RZEngine.models.commissioning (rz-engine.js §v2.5.0) against deep-frozen constants in DATA.commissioning.cx.rich — no back-solved coefficients, no random schedule values.
01 Purpose & engineering basis
The calculator estimates the total cost and working-day schedule of a data center commissioning (Cx) program across the full project-delivery lifecycle — L0 Design & Planning through L5 Integrated Systems Testing (IST) to L6 Turnover & Closeout. It answers four questions: how much will the Cx program cost, how long will each phase take, what is the cost uncertainty band (P5–P95), and which inputs drive the most budget swing.
Basis of design is user-driven: supply IT load, cooling type, redundancy, building configuration, and region; the engine returns a deterministic staffed-duration and cost estimate per level. The governing process framework is ASHRAE Guideline 0-2019 (Commissioning Process), with test-procedure scope from NETA ECS/ATS-2025, IST scenario counts from Uptime Institute Tier Standard 2024, and structured-cabling tests from BICSI 002. Day-rate calibration reflects industry practice (n = 50+ DC Cx programs, 2021–2026).
02 Inputs
Fourteen inputs across five groups — facility sizing, cooling & redundancy, electrical infrastructure, project delivery, and region. All are mapped through models.commissioning.mapInput() which fills any missing field with the budgetary defaults in DATA.commissioning.cx.rich.defaults.
| Field (UI / key) | Type | Default | Values / range | Effect |
|---|---|---|---|---|
IT Load itLoad | number kW | 2 000 | ≥ 100 | Drives all equipment-count scales; appears in every level cost formula. |
Cooling Type coolingType | enum | air | air / inrow / rdhx / dlc / immersion | Cost mult (1.00–1.55) and duration mult (1.00–1.40); liquid cooling adds CDU scope to L2–L5. |
Redundancy redundancy | enum | N+1 | N / N+1 / 2N / 2N+1 | Cost mult (1.00–2.25), duration mult (1.00–1.90), IST scenario count (3–10), IST hours (14–120). |
Rack Density rackDensity | enum | standard | standard (6 kW) / medium (12 kW) / high (25 kW) / ai_hpc (75 kW) | Sets rack count for equipment scale; density.cool multiplier (1.00–1.60) enters global cost. |
Building Type buildingType | enum | purpose | warehouse / modular / purpose / highrise | Cost mult (0.75–1.30) and duration mult (0.70–1.25). |
Fire Suppression fireSuppression | enum | novec | fm200 / novec / inergen / n2 / water / water_mist | Scalar multiplier on global cost (0.85–1.15). |
UPS Type upsType | enum | modular | standalone / modular / distributed / rotary | Scalar multiplier (1.00–1.40) on global cost. |
Generator generatorType | enum | diesel | diesel / gas / dualfuel / hvo | Scalar multiplier (1.00–1.25); load-bank diesel cost in L5 uses the regional diesel $/L rate. |
Seismic Zone seismicZone | enum | 1 | 0 / 1 / 2 / 3 / 4 | Cost mult (1.00–1.35) and duration mult (1.00–1.25). |
Cx Scope cxScope | enum | new_build | new_build / retrofit / recommission / continuous | Duration mult (0.25–1.00) and cost mult (0.30–1.00) applied to all levels uniformly. |
Substation Config substationConfig | enum | single_sub | utility_fed / single_sub / dual_sub / ring_bus | Cost mult (0.70–2.10) and duration mult (0.75–1.80); adds days to L0 for complex configs. |
BMS Complexity bmsComplexity | enum | standard | basic (200 pts) / standard (500 pts) / advanced (1 200 pts) / ai_driven (2 000 pts) | Cost mult (0.60–2.00) and duration mult (0.50–1.70); BMS point count directly scales L3 BMS verification days. |
Delivery Method deliveryMethod | enum | traditional | traditional / design_build / epc / modular_pod | Cost mult (0.70–1.00) and duration mult (0.60–1.00); modular_pod increases L1 by ×1.5. |
Region region | enum | us_virginia | 30 market keys (or ISO-2 country code via iso2Region map) | Selects day-rate card: cxDay / fieldDay / oemDay / witnessDay / perDiem / diesel $/L / mult (0.29–1.00 vs US). |
03 Calculation methodology
The RICH engine executes six sequential steps. All function names map one-to-one to RZEngine.models.commissioning.* in rz-engine.js (v2.5.0).
Step 1 — Equipment-quantity scaling
models.commissioning.equipScale(inp).inline · rz-engine.js §9505
Step 2 — Per-level working-day durations (L0–L6)
models.commissioning.levelDurations(inp, eq).inline · rz-engine.js §9522
Step 3 — Per-level costs (regional day-rate pricing)
models.commissioning.levelCosts(inp, dur, eq). r = regional rate card.inline · rz-engine.js §9573
Step 4 — Grand total (GM-normalized blend with global multiplier)
models.commissioning.programRich(input).inline · rz-engine.js §9595
Step 5 — Monte Carlo cost band
models.commissioning.monteCarlo(input, opts). opts.rng can override Math.random for deterministic testing.inline · rz-engine.js §9656
Step 6 — Sensitivity tornado (7-parameter OAT)
models.commissioning.sensitivity(input, baseCost).inline · rz-engine.js §9681
Compact schedule model (programSchedule)
models.commissioning.programSchedule(input). Used by the Gantt chart. Phase weights: L0 6% · L1 8% · L2 12% · L3 20% · L4 18% · L5 27% · L6 9%.DATA.commissioning.cx.levels · rz-engine.js §5572
04 Constants & data sources
All constants live in deep-frozen DATA.commissioning.cx.rich (rz-engine.js §5591). Source tag on each block: DATA.sources['commissioning.cx'] cites "DC Cx budgetary practice (ASHRAE Guideline 0 / BCxA / NETA ECS scope, Uptime IST scenario counts), rates calibrated to industry n=50+ programs 2021–2026, asOf 2026."
| Multiplier table | Keys | Cost range | Duration range |
|---|---|---|---|
Cooling rich.cooling | air / inrow / rdhx / dlc / immersion | 1.00 – 1.55× | 1.00 – 1.40× |
Redundancy rich.redundancy | N / N+1 / 2N / 2N+1 | 1.00 – 2.25× | 1.00 – 1.90× |
Building rich.building | warehouse / modular / purpose / highrise | 0.75 – 1.30× | 0.70 – 1.25× |
Seismic rich.seismic | zones 0–4 | 1.00 – 1.35× | 1.00 – 1.25× |
Substation rich.substation | utility_fed / single_sub / dual_sub / ring_bus | 0.70 – 2.10× | 0.75 – 1.80× |
BMS/DCIM rich.bms | basic (200 pts) – ai_driven (2 000 pts) | 0.60 – 2.00× | 0.50 – 1.70× |
Delivery rich.delivery | traditional / design_build / epc / modular_pod | 0.70 – 1.00× | 0.60 – 1.00× |
Scope rich.scope | continuous / recommission / retrofit / new_build | 0.30 – 1.00× | 0.25 – 1.00× |
Fire rich.fire | water / fm200 / novec / inergen / n2 / water_mist | 0.85 – 1.15× | — |
UPS rich.ups | standalone / distributed / modular / rotary | 1.00 – 1.40× | — |
Generator rich.gen | diesel / hvo / gas / dualfuel | 1.00 – 1.25× | — |
Rack density rich.density | standard / medium / high / ai_hpc | cool 1.00 – 1.60× | — |
| Regional day-rate card (sample) | CxDay $/d | FieldDay $/d | OEMDay $/d | WitnessDay $/d | Diesel $/L | Mult vs US |
|---|---|---|---|---|---|---|
| Northern Virginia (us_virginia) | 1 200 | 850 | 2 000 | 3 500 | 1.10 | 1.00 |
| London (uk_london) | 875 | 650 | 1 500 | 3 000 | 1.75 | 0.73 |
| Singapore | 850 | 620 | 1 500 | 3 000 | 1.60 | 0.71 |
| Jakarta (indonesia_jakarta) | 350 | 200 | 700 | 1 800 | 1.05 | 0.29 |
| São Paulo (brazil_saopaulo) | 500 | 350 | 900 | 2 200 | 1.25 | 0.42 |
30 markets are covered. ISO-2 country codes not in the exact rate table are mapped to the nearest labor/cost peer via rich.iso2Region. Contingency is a flat 15% on subtotal. GM-normalization exponent normExp = 0.45 — chosen to dampen multiplicative extremes while preserving relative cost ordering across the 11 multiplier tables.
05 Outputs
| Output | Field | Unit | Interpretation |
|---|---|---|---|
| Grand total cost | grand | USD | Subtotal + 15% contingency. Budgetary estimate ±30–50% at this stage. |
| Cost per kW IT | perKw | $/kW | Sanity check: typical range $150–$800/kW depending on redundancy and region. |
| Cx cost as % of capex | pctCapex | % | Industry benchmark 3–8% for standard builds; 8–15% for 2N+ hyperscale. |
| Total duration | durationDays / durationWeeks / durationMonths | days / weeks / months | Working days (5-day week, 22-day month). Excludes procurement lead times. |
| L0–L6 cost breakdown | levels[].cost | USD | Fixed proportions of grand total per level: L0 3% · L1 4% · L2 10% · L3 22% · L4 20% · L5 32% · L6 9%. |
| Discipline breakdown | disciplines[].cost | USD | Electrical 40% · Mechanical 24% · Fire 9% · Controls 8% · IT 7% · Security 4% · Building 4% · Management 4%. |
| Equipment counts | equip | count | 25+ equipment types driving duration calculations. |
| Tier & IST info | tierInfo | — | Uptime tier label, availability string, IST scenario count, and IST staffed-hours for the selected redundancy. |
| Monte Carlo band | P5 / P25 / P50 / P75 / P95 / CVaR-95 | USD | P5–P95 = 90% budget confidence interval. CVaR-95 = average of worst-5% outcomes. |
| Sensitivity tornado | sensitivity[].{name, low, high, range} | USD swing | 7 parameters ranked by range; widest bar is the top cost driver for this configuration. |
06 Worked example — Enterprise 2 MW, N+1, air cooling, Northern Virginia
Input: itLoad = 2 000 kW, coolingType = air, redundancy = N+1, rackDensity = standard, buildingType = purpose, fireSuppression = novec, upsType = modular, region = us_virginia, generatorType = diesel, seismicZone = 1, cxScope = new_build, substationConfig = single_sub, bmsComplexity = standard, deliveryMethod = traditional. Numbers verified by executing the engine logic in Node.js against rz-engine.js constants.
- Equipment scale: switchgear 2 · transformers 1 · generators 1 · ups_modules 4 · cooling_units 10 · pdus 20 · sts 2 · chillers 4 · pumps 7 · racks 334 · fireZones 10 · ats 1 (+ 12 others)
- L0 duration: base 15 d (2 000 kW < 5 000 threshold) × 1.00 scope = 15 working days
- L1 duration: 2×2 + 1×3 + 1×2 + 2 + 4×0.5 + 1 + 2×0.5 + 2×0.5 + 20×0.3 + 2×0.3 + 1×0.3 = 22.9 → ⌈22.9×1.00⌉ = 23 working days
- L2 duration: max(13.5, 13.5) + 10×0.75 + (10×0.25 + 2×2 + 1) = 28.5 → ⌈28.5×1.30 red×1.00 bld×1.00 scope⌉ = 38 working days
- L3 duration: l3elec=10 + max(l3mech=17.5, l3fire=15) + l3bms=⌈500×2/100⌉=10 = 37.5 → ⌈37.5×1.00 cool×1.30 red⌉ = 49 working days
- L4 duration: (3+2)+max(7,3)=12 → ⌈12×1.0 sf×1.30 red⌉ = 16 working days
- L5 duration: N+1 → istHrs=16, scenarios=6; hrs=16+6×3=34; ⌈34/10⌉=4 → ⌈4×1.0 sf5⌉ = 4 working days
- L6 duration: base 10 d (no 2N/liquid/advanced-BMS adder) → 10 working days
- Total duration: 15+23+38+49+16+4+10 = 155 working days (≈ 31 weeks / 8 months)
- Level costs (us_virginia rates):
L0 = (15×1200×2.5 + 2000×2)×1.00 = $49 000
L1 = 23×1200×2 + 23×300 = $62 100
L2 = 38×1200×3 + 38×350 + 2000×0.5 = $151 100
L3 = 49×1200×4 + (1×12+8)×350 + 49×500 + (1×2+4×2)×2000 = $286 700
L4 = 16×1200×5 + 24×350 + 16×800 + 16×600 = $126 800
L5 = 4×1200×8 + 2×8000×2 + 20×2000×0.3×1.10 + 4×3500 = $97 600
L6 = (10×1200×3 + 1×1200×2 + 2000×3 + 2000×1.5)×1.00 = $47 400
levelTotal = $820 700 - Global multiplier: gm = 1.00×1.35×1.00×1.05×1.00×1.00×1.00×1.05×1.25×1.00×1.00 = 1.8605 → normFactor = 1.8605^0.45 = 1.3223
- totalBase: (72+35+12+6+11+14+5)×2000×1.3223 = 155×2000×1.3223 = $409 913
- Blend: max(409 913, 820 700) = 820 700 + doc 2000×5=10 000 + travel 155×300×3=139 500 → subtotal×1.00 = $970 200
- Grand total: subtotal + 15% contingency = 970 200 × 1.15 = $1 115 730 ($557.9/kW · 5.31% of capex at $10 500/kW)
- Level split (fixed proportions of grand):
L0 3% = $33 k · L1 4% = $45 k · L2 10% = $112 k · L3 22% = $245 k · L4 20% = $223 k · L5 32% = $357 k · L6 9% = $100 k
rz-engine.js (v2.5.0). Results match the live calculator output for the Enterprise 2 MW archetype preset. The level-split values are display-only proportions applied to grand total — they do not add up to levelTotal exactly because the blended grand may exceed the pure level-cost sum.07 Eight preset archetypes
The calculator ships eight archetype presets in DATA.commissioning.cx.rich.scenarios. Each preset is a full 14-parameter input vector.
| Archetype | IT Load | Cooling | Redundancy | Region | Rack density | Delivery |
|---|---|---|---|---|---|---|
| Enterprise 2 MW | 2 000 kW | air | N+1 | us_virginia | standard | traditional |
| Colo 10 MW | 10 000 kW | in-row | 2N | us_virginia | medium | design-build |
| Hyperscale 50 MW | 50 000 kW | DLC | 2N+1 | us_virginia | ai_hpc | EPC |
| Edge 500 kW | 500 kW | air | N+1 | us_texas | standard | traditional |
| Modular 5 MW | 5 000 kW | RDHX | N+1 | nordics_stockholm | high | modular_pod |
| Recommission 3 MW | 3 000 kW | air | N+1 | uk_london | standard | traditional |
| AI Factory 100 MW | 100 000 kW | DLC | 2N+1 | us_texas | ai_hpc | EPC |
| Fast-track 10 MW | 10 000 kW | in-row | N+1 | us_virginia | medium | design-build |
The AI Factory archetype (100 MW, DLC, 2N+1, ai_hpc density, EPC) applies the ×1.08 hyperscale surcharge (kW ≥ 50 000) and ×1.05 (kW ≥ 100 000), plus the highest redundancy IST hours (120 h) and scenario count (10 failure scenarios). It represents the most complex and costly Cx program the engine models.
08 References & standards
- ASHRAE Guideline 0-2019 — The Commissioning Process: lifecycle process backbone (pre-design through occupancy & operations). L0–L6 labels follow this general phase structure. BMS point-to-point verification (§5.4), IST (§5.5), and test documentation requirements.
- ASHRAE Guideline 1.1-2018 — HVAC&R Technical Requirements for the Commissioning Process: HVAC functional performance test (FPT) scope and chiller acceptance criteria.
- NETA ECS/ATS-2025 — Electrical Commissioning Specification / Acceptance Testing Specification: insulation resistance test tables (§7.2), circuit breaker timing (§7.5), transformer DGA (§7.6), UPS testing (§7.11), visual & mechanical inspection (§7.1).
- Uptime Institute Tier Standard (2024) — IST scenario counts and required hours per tier: N (Tier I, ~14 h / 3 scenarios) → 2N+1 (Tier IV+, ~120 h / 10 scenarios).
- BCxA (Building Commissioning Association) — Commissioning process scope definition and Cx agent (CxA) role standards; industry cost benchmarks.
- BICSI 002 (2019) — Data Center Design and Implementation Best Practices: IST acceptance criteria, structured-cabling OTDR limits, and overall test scope reference.
- TIA-942-B — Telecommunications Infrastructure Standard for Data Centers: cable test acceptance (attenuation, continuity) and structured-cabling test scope for L2.
- IEEE 519-2022 — Harmonic voltage/current limits — referenced in UPS and PDU performance testing acceptance criteria (THDv).
- IEC 62040-3 — UPS transfer time Class 1 (≤ 10 ms); output THDv and autonomy acceptance criteria in the L4 UPS section.
- NFPA 72 / 75 / 76 / 2001 — Fire alarm, data-center fire protection, and clean-agent system: fire-zone scope and suppression acceptance tests in L3/L4.
- ISO 10816 — Vibration severity for rotating machinery: chiller vibration limit in OEM startup (L3).
- RSMeans 2025 — Day-rate cost calibration reference for US markets.
- Engine source —
rz-engine.js(RZEngine v2.5.0):DATA.commissioning.cx.rich(§5591) ·models.commissioning.*(§9418–9751).