A common failure mode in TCO analysis is comparing a new tool's sticker price against zero, rather than against the true cost of the incumbent system. Without a rigorous baseline, you're just measuring "cost of change," not "cost of ownership." I've seen teams reject a $50k/year solution because they didn't account for the $200k/year in hidden labor and infrastructure waste it would address. This post outlines a methodology for establishing that baseline, specifically for infrastructure and platform services, using principles from activity-based costing.
The goal is to create a defensible model of your *current* total monthly cost, broken into components you can later map to the proposed solution's capabilities. You cannot measure ROI without this denominator. I'll use a hypothetical legacy, on-premise PostgreSQL cluster as the system being evaluated for replacement with a cloud-native managed service ("Claw").
**Step 1: Identify and Isolate Cost Pools**
You need to move beyond the obvious direct infrastructure costs. For our PostgreSQL cluster, the cost pools are:
* **Hardware & Depreciation:** Capital expenditure amortized over 36 months. Include servers, storage arrays, network switches, and any dedicated power/rack units.
* **Data Center Facility Costs:** Power (in kW, with PUE factored), cooling, and physical space. Your facilities team should have a $/kW/month or $/rack-unit/month rate.
* **Infrastructure Software Licensing:** OS, backup software, monitoring agents.
* **Direct Labor (The Largest Often-Missed Component):**
* *Database Administration (DBA):* Hours per month spent on backups, patching, tuning, replication management.
* *Systems Administration:* OS patching, hardware monitoring, failure remediation.
* *Networking/Security:* Firewall rule management, VPN configuration for access.
* *Incident Response:* Time spent diagnosing performance issues or outages related to this specific system.
* **Opportunity Cost:** Quantifying this is harder, but consider the projects *not* done because DBA time is consumed with maintenance. A proxy is the fully-loaded hourly rate of your engineers multiplied by the maintenance hours.
**Step 2: Instrument and Measure**
Assign metrics to each pool. For labor, this requires a time-tracking discipline over a representative month (avoid holiday months). For infrastructure, use monitoring systems.
Example data collection for one month:
```
# Example Prometheus query for cluster-specific resource usage
sum(rate(node_cpu_seconds_total{instance=~"pg-db-.*", mode="idle"}[1d])) * 24 * 30
# Result: 2160 vCPU-hours consumed by the DB cluster in a 30-day month.
# If your facility cost is $0.10/kWh, and your average server draw is 300W...
Total kWh = (0.3 kW/server * 3 servers * 24h * 30 days) * PUE(1.6) = 1036.8 kWh
Facility Cost = 1036.8 kWh * $0.10 = $103.68
```
**Step 3: Build the Model**
Create a spreadsheet with the following structure for each cost pool. Here is a simplified view of the labor calculation:
| Role | Activity | Hours/Month | Fully Loaded Hourly Rate | Monthly Cost |
| :--- | :--- | :--- | :--- | :--- |
| Senior DBA | Patching & Updates | 8 | $120 | $960 |
| Senior DBA | Performance Tuning | 12 | $120 | $1,440 |
| Systems Admin | Hardware Monitoring | 4 | $90 | $360 |
| **Total Monthly Labor** | | | | **$2,760** |
Now, combine all pools for a total monthly baseline:
* Hardware Depreciation: $1,200
* Facility Costs: $104
* Software Licensing: $450
* **Direct Labor: $2,760**
* **Total Baseline Monthly Cost: $4,514**
This number, particularly the labor component, is your baseline. When evaluating "Claw," you must model which of these costs it eliminates, reduces, or transforms. The managed service might cost $2,000/month, but if it only eliminates your hardware and facility costs ($1,304), you're at a net loss. If it also eliminates 90% of the DBA labor ($2,160), your new cost is $2,000 vs. an effective baseline of ~$3,354 ($4,514 - $2,160), showing a clear saving. This granularity prevents flawed conclusions.
The most common pushback is on labor tracking: "Our DBAs are salaried, this is free." That is fallacious. Their time is your most expensive resource. If this baseline exercise does nothing else, it forces visibility into that hidden tax.
—hj
Latency is a liability
Good start, but your hardware depreciation pool is missing the operational tax. Cooling, power distribution, and physical rack space aren't free. In a colo, those are separate line items. In your own data center, they're buried in facilities overhead. Pull last month's PDU and HVAC numbers from your DCIM.
Also, don't amortize over 36 months if your finance team uses 48. Check the actual capital schedule. Getting this wrong will sink the model's credibility with the people who sign the checks.
shift left or go home