Technical Manual · Operating Cost
OPEX Calculator — Methodology & Formulas
Every input, equation, constant, data source, and output KPI behind the data center operating-cost calculator. All cost lines are deterministic — energy via PUE × load × hours × rate, staffing via FTE models benchmarked to Uptime Institute, maintenance via system-level $/kW rates cross-multiplied by age, country, and contract scope. No random values; no back-solved constants.
▶ Open the live OPEX Calculator01 Purpose & engineering basis
The OPEX Calculator produces an annual operating-cost estimate for a colocation or owned data center. It decomposes total cost into six independently-modelled lines: energy (IT load × PUE × hours × rate), staffing (FTE by tier and staffing model), maintenance (per-system $/kW rates, age-adjusted, OEM-factored), spare parts inventory (risk-weighted by contract model), software & licensing (DCIM, BMS, CMMS, cybersecurity), and insurance & compliance (jurisdiction-specific). A 4 000-run Monte Carlo seeded around these deterministic core values produces P10/P50/P90 confidence bands.
The primary design authorities are ASHRAE TC 9.9 (2021) for PUE & thermal envelopes, Uptime Institute Tier Standard for staffing benchmarks (4.2 FTE/MW critical-facilities), and IEC 62040-3 / ISO/IEC 30134-2 for energy metrics. Country electricity and labor rates come from national utility filings and statistics (as-of 2026, cited per row in DATA.opsBudget.countries).
02 Inputs
Fourteen inputs across four groups — facility profile, energy model, staffing model, and optional advanced parameters. Core inputs are always active; advanced inputs are unlocked in the expanded panel.
| Field (HTML id) | Type | Range / default | Description |
|---|---|---|---|
IT Load itLoad | number | 100 – 100 000 kW · default 1 000 | Nameplate IT power draw of all installed equipment. Base for all energy and staffing calculations. |
Base PUE pueSlider | slider | 1.10 – 2.00 · default 1.50 | Power Usage Effectiveness before cooling-type adjustment. Effective PUE = base PUE + cooling.pueImpact. |
Country countrySelect | enum | 20 countries · default ID | Sets energyRate ($/kWh), laborMult, maintMult, and workerTax from DATA.opsBudget.countries. |
Tier Level tierLevel | enum | I / II / III / IV · default III | Uptime Tier drives staffing headcount multipliers and spare-parts tier multiplier (T-IV = 1.35×, T-III = 1.15×, T-II = 1.00×, T-I = 0.80×). |
Facility Age facilityAge | enum | new / mid / old · default mid | Age factor applied to all maintenance line items (new = 0.60×, mid = 1.00×, old = 1.50×). Also drives spare-parts age multiplier (0.65 / 1.00 / 1.45). |
Climate Zone climateZone | enum | 6 zones · default tropical_humid | Sets coolingEnergyMult (applied to cooling-overhead portion) and coolingMaintMult (applied to cooling maintenance). See §04 for zone constants. |
Cooling Type coolingType | enum | 7 types · default water_chiller | Sets pueImpact (effective PUE delta), efficiencyMult (cooling-power modifier), and maintCostPerKw (baseline cooling maintenance rate). See §04. |
Generator Config genConfig | enum | N / N+1 / 2N / 2N+1 · default N+1 | Drives generator maintenance multiplier (N=1.0×, N+1=1.30×, 2N=2.10×, 2N+1=2.40×) applied to the generator $/kW maintenance rate. |
| Staffing Model (card selector) | enum | inhouse / partial / contractor | Selects the FTE cost multiplier, OEM factor, and spare-parts contract multiplier. Partial mode uses slider inhousePercent (10–90%). |
In-House % inhousePercent | slider | 10 – 90% · default 70% | Only active in partial mode. Blends OEM factor: 1.0 + (oemMult−1.0) × contractorPct where contractorPct = (100 − inhousePercent) / 100. |
Utilization utilizationSlider | slider | 40 – 100% · default 70% | Capacity utilization applied to annual energy calculation. OPEX calculator uses retail-screening basis (0.70); DCMOC uses DC-contract basis (1.00). |
DCIM Level dcimLevel (advanced) | enum | 0 / 1 / 2 / 3 · default 1 | Adjusts software-licensing basket and BMS maintenance rate. Higher DCIM levels add CMMS and monitoring tool costs. |
Energy Contract energyContract (advanced) | enum | spot / fixed / ppa · default fixed | Modifies the effective energy rate: spot adds volatility risk premium, PPA applies a discount factor. Used for Monte Carlo variance seeding. |
Maintenance Level maintLevel (advanced) | enum | basic / standard / comprehensive · default standard | Scales the OEM-factor range: basic caps OEM at 1.5×, comprehensive allows up to 2.5×. Drives overall maintenance spend vs contract-risk trade-off. |
03 Calculation methodology
Six independently-modelled cost lines, each with its own data path. All function names below map to the page-side calculation in opex-calculator.html, cross-checked against RZEngine.models.opsBudget.opex() and RZEngine.models.opsBudget.staffing().
Line 1 — Annual energy cost
updateCalculation() lines 3286–3291. Climate zone multiplier applies only to the cooling-overhead portion of power, not to IT load. Engine equivalent: loadKW × pue × energyRate × 8760 × utilization in RZEngine.models.opsBudget.opex().DATA.opsBudget · 2026
Line 2 — Staffing cost
calculateStaffingFTE(itLoadKW, tier) → calculateStaffingDetail(fte, countryData).DATA.opsBudget · Uptime Institute · 2026
Line 3 — Maintenance cost (per-system)
generator.maintMult for redundancy configuration.DATA.opsBudget · industry cost surveys · 2026
Line 4 — Critical spare parts inventory
Line 5 — Software & licensing
Line 6 — Insurance & compliance
Total OPEX and per-unit KPIs
computeDerivedMetrics(result). Monte Carlo (4 000 runs) varies: energy price (uniform ±15–20%), PUE drift (uniform 0.97–1.05×), labor/maintenance escalation (normal μ=4%, σ=2%). Tornado analysis ranks which driver most moves OPEX.RZEngine v2.0 · models.sim.tornado
04 Constants & data sources
Every constant lives in DATA.opsBudget with a corresponding DATA.sources['opsBudget'] citation (as-of 2026). Partial listing of the most material constants:
Cooling-type database — coolingTypes
| Cooling type | PUE impact | Efficiency mult | Maint $/kW/yr (ID) | OEM mult |
|---|---|---|---|---|
| Air-Cooled Chiller | +0.15 | 1.15 | 18.00 | 2.2 |
| Water-Cooled Chiller | ±0.00 | 1.00 | 32.00 | 2.2 |
| Hybrid Free Cooling | −0.10 | 0.80 | 28.00 | 2.2 |
| In-Row Cooling (CRAC) | +0.05 | 1.05 | 22.00 | 2.0 |
| Rear-Door Heat Exchanger | −0.05 | 0.90 | 20.00 | 2.0 |
| Direct Liquid Cooling | −0.15 | 0.70 | 45.00 | 2.5 |
| Immersion Cooling | −0.25 | 0.60 | 55.00 | 2.5 |
Climate-zone database — climateFactors
| Zone | Cooling energy mult | Cooling maint mult | Free-cooling hrs/yr | Example markets |
|---|---|---|---|---|
| Tropical Humid | 1.00 | 1.00 | 0 | Indonesia, Malaysia, Singapore |
| Tropical Dry | 0.92 | 1.15 | 500 | UAE, Saudi Arabia |
| Subtropical | 0.88 | 0.95 | 1 500 | Hong Kong, Taiwan, Australia-QLD |
| Temperate | 0.75 | 0.85 | 4 000 | Europe, Japan, South Korea |
| Continental | 0.70 | 0.80 | 5 000 | US Central, Canada |
| Cold Climate | 0.55 | 0.75 | 7 000 | Nordic, Northern US |
Country economics — DATA.opsBudget.countries (selected rows)
| Country key | Labor rate (local/yr) | Energy rate ($/kWh) | FX to USD | Trop factor | Source · as-of |
|---|---|---|---|---|---|
| Indonesia | 18 000 IDR-k/yr | 0.085 | 0.000063 | 1.12 | PLN tariff · 2026 |
| Singapore | 72 000 SGD/yr | 0.168 | 0.74 | 1.10 | SP Group · 2026 |
| Malaysia | 48 000 MYR/yr | 0.082 | 0.22 | 1.11 | Tenaga · 2026 |
| India | 24 000 INR-k/yr | 0.075 | 0.012 | 1.08 | CERC · 2026 |
| Japan | 82 000 JPY-k/yr | 0.210 | 0.0067 | 1.00 | TEPCO · 2026 |
| US-Virginia | 95 000 USD/yr | 0.068 | 1.00 | 1.00 | Dominion Energy · 2026 |
| US-Texas | 88 000 USD/yr | 0.058 | 1.00 | 1.06 | ERCOT avg · 2026 |
| US-Oregon | 90 000 USD/yr | 0.042 | 1.00 | 1.00 | PacifiCorp · 2026 |
| EU-Germany | 78 000 EUR/yr | 0.235 | 1.08 | 1.00 | BDEW · 2026 |
| EU-Netherlands | 75 000 EUR/yr | 0.195 | 1.08 | 1.00 | ACM · 2026 |
| UAE | 65 000 AED/yr | 0.082 | 0.27 | 1.15 | DEWA · 2026 |
| Saudi Arabia | 60 000 SAR/yr | 0.048 | 0.27 | 1.18 | SEC · 2026 |
| Australia | 88 000 AUD/yr | 0.185 | 0.65 | 1.05 | AEMO · 2026 |
| UK | 72 000 GBP/yr | 0.215 | 1.26 | 0.96 | Ofgem · 2026 |
System maintenance base rates — maintenanceRates (Indonesia baseline $/kW/yr)
| System | Base $/kW/yr | OEM mult (full contractor) | Frequency |
|---|---|---|---|
| Generator (genset + fuel + 6M/12M OH) | 31.50 | 2.5× | Monthly + 6M/12M OH |
| Cooling / HVAC (chiller + consumables) | 38.00 | 2.2× | Monthly PM |
| Electrical (UPS / PDU / STS) | 28.50 | 2.0× | Quarterly |
| Fire suppression system | 10.00 | 1.8× | Semi-annual |
| BMS / DCIM / Controls | 14.00 | 2.0× | Continuous |
| Building / Facility | 7.50 | 1.5× | Quarterly |
Key engine scalars — DATA.opsBudget
| Constant | Value | Meaning |
|---|---|---|
shiftMult | 4.2 | Shift coverage multiplier for 24/7 critical facility staffing (Uptime benchmark) |
laborBurden | 1.35 | Fully-loaded multiplier over base salary (benefits, payroll tax, overhead) |
maintPerMwUsd | $180 000/MW/yr | Comprehensive maintenance base (engine-level; page uses per-system rates) |
pmBaseline | 0.50 | PM ratio baseline (50% — average across sites) |
pmSavingsSlope | 0.30 | Maintenance savings per unit of PM ratio above baseline |
maintCapexShare | 0.15 | Fraction of maintenance budget classified as capital expenditure for FFO calculation |
ffoFactor | 0.12 | FFO as fraction of total OPEX |
outsourcedCostFactor | 0.65 | Cost ratio of outsourced vs in-house staff at equal headcount |
replacementCostFactor | 1.5 | Replacement cost as multiple of annual salary (SHRM benchmark) |
hoursPerYear | 8 760 h | Calendar constant (non-leap year) |
05 Outputs
| Output KPI | Formula / source | Unit | Interpretation |
|---|---|---|---|
| Total annual OPEX | Σ six cost lines | $/yr | Primary output. Displayed as totalOpex in the results panel. |
| OPEX per kW per month | totalOPEX / IT_kW / 12 | $/kW/month | Industry benchmark metric. Tier-III US target: $80–130/kW/month. |
| OPEX per rack per year | totalOPEX / rackCount | $/rack/yr | Colocation pricing reference. Rack density default 10 kW/rack. |
| OPEX per m² per year | totalOPEX / whiteSpaceM2 | $/m²/yr | Real-estate efficiency metric. White space = rackCount × 3.5 m². |
| Energy cost | annualKWh × energyRate | $/yr | Typically 40–65% of total OPEX in tropical markets. |
| Staffing cost | FTE × burdenedRate × costMult | $/yr | Total people cost including burden. |
| Maintenance cost | Σ per-system rates × factors | $/yr | Six-system breakdown with age, OEM, and climate adjustments. |
| Effective PUE | basePUE + coolingType.pueImpact | ratio | Actual power overhead ratio after cooling selection. |
| Annual kWh consumed | adjustedTotalKW × 8760 × util | MWh/yr | Total facility energy draw for carbon and tariff calculations. |
| CO₂ tonnes/yr | annualKWh × gridEmFactor / 1000 | t CO₂e/yr | Carbon footprint based on country grid emission factor. |
| P10 / P50 / P90 (Monte Carlo) | 4 000-run simulation | $/yr | Optimistic / most-likely / conservative OPEX bands. P90/P10 spread shown as sensitivity indicator. |
| Tornado chart | RZEngine.models.sim.tornado() | ±$/yr | Ranks energy price, PUE drift, and labor/maintenance escalation by OPEX impact. |
06 Worked example
Inputs: 1 000 kW IT load · PUE 1.50 base · water-cooled chiller (pueImpact 0) · tropical-humid climate · Indonesia (energyRate $0.085/kWh, laborMult 1.0×, maintMult 1.0×) · Tier III · in-house staffing · mid-age facility · 70% utilization. Numbers reproduce the live calculator output.
- Effective PUE:
1.50 + 0 =1.50 - Cooling power:
1 000 × (1.50 − 1.0) × 1.00 × 1.00 =500 kW - Adjusted total power:
1 000 + 500 =1 500 kW - Annual energy (kWh):
1 500 × 8 760 × 0.70 =9 198 000 kWh/yr (9 198 MWh) - Energy cost:
9 198 000 × $0.085 =$781 830/yr - Staffing (Tier III, in-house, 1 MW): baseline ≈ 4.2 FTE/MW → 4–5 FTE × burden. Indonesia laborRate $18 000 × fxToUSD 0.000063 = negligible in direct USD; page uses IDR-based salaryData. Representative total staffing cost at 1 MW Indonesia in-house: ≈ $48 000–75 000/yr
- Maintenance (mid-age, in-house, ID baseline):
Generator:1 000 × 31.50 × 1.00 × 1.00 × 1.00 =$31 500
Cooling:1 000 × 38.00 × 1.00 × 1.00 × 1.00 =$38 000
Electrical:1 000 × 28.50 × 1.00 × 1.00 × 1.00 =$28 500
Fire:1 000 × 10.00 × 1.00 × 1.00 × 1.00 =$10 000
BMS:1 000 × 14.00 × 1.00 × 1.00 × 1.00 =$14 000
Building:1 000 × 7.50 × 1.00 × 1.00 × 1.00 =$7 500
Total maintenance: $129 500/yr - Spare parts (Tier III, mid-age, in-house):
1 000 × $36/kW × 1.15 × 1.00 × 1.00 =≈ $41 400/yr - Software & licensing:
1 000 × $16.50/kW × (0.70 + 0.30×1.0) =$16 500/yr - Indonesia compliance (SLO + AMDAL + BPJS + fire audit + ISO 27001, 1 MW):
(5 000+1 500) + (3 000+500) + 1 500 + (2 500+500) + (8 000+1 000) =$24 000/yr - Total annual OPEX:
781 830 + ~62 000 + 129 500 + 41 400 + 16 500 + 24 000 ≈$1 055 000 – $1 120 000/yr - Per kW per month:
$1 087 000 / 1 000 kW / 12 =≈ $90.60/kW/month (Tier-III average band) - CO₂ footprint:
9 198 MWh × 0.709 kg CO₂/kWh (ID grid) / 1 000 =≈ 6 521 t CO₂e/yr
07 References & data sources
- ASHRAE TC 9.9 (2021) — Thermal Guidelines for Data Processing Environments, 5th ed. PUE definition, cooling-type effectiveness ranges, and climate-zone thermal envelopes.
- Uptime Institute (2024) — Global Data Center Survey. 4.2 FTE/MW staffing benchmark for Tier III+ critical facilities; staffing model cost differentials (in-house vs hybrid vs outsourced).
- IEC 62040-3 — UPS performance classification. Maintenance rate basis for UPS/PDU/STS systems ($28.50/kW/yr).
- ISO/IEC 30134-2 — PUE metric definition and measurement guidance.
- PLN (2026) — Indonesian electricity tariff for industrial and large-business consumers. Basis for Indonesia energyRate $0.085/kWh.
- BDEW (2026) — German electricity industry association, industrial tariff average. Basis for EU-Germany $0.235/kWh.
- DEWA (2026) — Dubai Electricity and Water Authority industrial tariff. Basis for UAE $0.082/kWh.
- SHRM (2024) — Society for Human Resource Management. Replacement cost multiplier 1.5× annual salary for specialised DC roles.
- Indonesian MEMR / BPJS / Ministry schedules (2026) — SLO, AMDAL, BPJS TK, fire audit, and ISO 27001 compliance cost schedules.
- Engine source —
rz-engine.js DATA.opsBudget(models.opsBudget.opex(),models.opsBudget.staffing()) · page calculation inopex-calculator.htmlupdateCalculation()function. Source citation:DATA.sources['opsBudget'] · asOf 2026.
08 Assumptions & limitations
The calculator assumes steady-state annual operation at the stated utilization level. Seasonal load variation, demand-charge components, time-of-use tariff spikes, and short-interval peaks are not modelled. Specific scope and limitations:
Energy: assumes a flat energy tariff ($/kWh). Demand charges ($/kW/month) can be material in some US and Japanese markets and are not included. Free-cooling hours (captured in climate zone) reduce the effective cooling load in temperate and cold zones but the model does not apply these as a direct reduction — they are reflected through the coolingEnergyMult applied to the cooling-overhead fraction.
Staffing: FTE estimates use Uptime Institute 4.2 FTE/MW as a benchmark — actual headcount depends on operating philosophy, automation level (DCIM), and local labour law (shift patterns, overtime caps). The 1.35 labour burden covers typical benefits and payroll taxes; jurisdictions with mandatory 13th-month pay (e.g. Indonesia) may have higher effective burden.
Maintenance: base rates are sourced from Indonesia DC industry cost surveys and calibrated to approximately IDR 1 billion/year for 2 MW generator scope (incl. fuel system and 6M/12M overhaul). OEM-contractor premiums (2–2.5×) reflect all-risk contract pricing; basic labour-only contracts will sit closer to 1.0–1.3×. Rates for other countries are scaled by country.maintMult which is a relative index, not a direct cost survey.
Scope exclusions: capital expenditure (CAPEX), depreciation, financing cost, land and building lease, bandwidth/connectivity, taxes on revenue, and one-time project costs are not included. Use the TCO projections (5-year / 10-year) in the calculator's derived-metrics panel for multi-year cost-in-use estimates including escalation (energy +3%/yr, labor +4%/yr, general +2.5%/yr).
Monte Carlo: the 4 000-run simulation is reproducibly seeded. It is a sensitivity tool, not a statistical model of market price movements. P90 should be interpreted as "a plausible high-cost scenario given the stated uncertainty ranges", not as a 90th-percentile market outcome.