Purpose
Produce a defensible, line-item TCO comparison between self-managed and managed cloud options over 1-, 3-, and 5-year horizons — capturing the hidden costs (labor, downtime, migration, egress) that surface-level pricing comparisons miss — so finance and IT leaders can make an infrastructure decision they can defend in a budget review.
When to Use
Invoke this skill when the user asks to:
- Compare the total cost of self-managed infrastructure vs. a managed cloud service
- Build a business case for cloud migration, consolidation, or repatriation
- Calculate the multi-year cost of a specific workload across deployment options
- Justify a cloud spend decision to a CFO, board, or budget committee
- Quantify the labor and downtime costs hidden inside an infrastructure decision
- Run a sensitivity analysis on cloud cost assumptions before committing budget
Inputs Required
Before starting, collect:
- Workload description: What is being run (e.g., production database, Kubernetes cluster, data warehouse), scale, and criticality
- Current infrastructure costs: Monthly or annual spend on compute, storage, networking/egress, and any reserved commitments
- Headcount & labor rates: Number of FTEs (or FTE fractions) supporting this workload and their loaded annual cost
- Licensing & software costs: OS, database, monitoring, backup, and third-party tool licenses
- Downtime cost: Cost per hour of outage (revenue loss + SLA penalties + recovery labor) and current/target availability
- Options to compare: The specific self-managed and managed alternatives (e.g., self-hosted PostgreSQL on EC2 vs. RDS; on-prem vs. managed Kubernetes)
- Migration/transition estimate: One-time cost to move to the managed option (labor, dual-running, data transfer) if known
If downtime cost is unknown, apply a conservative industry proxy and flag it as a sensitivity variable. If migration cost is unknown, estimate it as 2–4 months of one FTE plus data egress, and note the assumption.
Instructions
Step 1: Normalize All Inputs to Annual Figures
Convert every cost input to a consistent annual basis before comparison.
- Monthly figures × 12; hourly labor × loaded FTE hours (2,080/yr baseline)
- Separate one-time costs (migration, setup, training) from recurring costs
- Loaded FTE cost = base salary × 1.3–1.4 (benefits, overhead, tooling) unless the user provides a fully-loaded number
- State every conversion assumption explicitly so the model is auditable
Step 2: Build the Cost Category Framework
Model both options across seven cost categories. A category may be $0 for one option — that difference is often the point.
- Compute — on-demand, reserved, or managed instance pricing
- Storage & data — block, object, backup storage, and snapshots
- Networking & egress — data transfer costs (frequently underestimated for managed services)
- Labor — FTE time for provisioning, patching, scaling, on-call, and incident response (managed options typically reduce this 40–70%)
- Licensing & software — OS, DB, monitoring, security tooling (managed services often bundle these)
- Downtime — expected annual outage hours × cost/hour, derived from each option's realistic availability
- One-time / migration — transition labor, dual-running overlap, egress, and training (applied to the managed option in year 1)
For each category, produce a line item for Self-Managed and Managed, and a one-line rationale for any figure that isn't a direct input.
Step 3: Project Across 1/3/5-Year Horizons
Build a horizon table for each option showing cumulative cost.
- Year 1: recurring costs + one-time/migration costs
- Years 3 and 5: cumulative recurring costs, applying growth and inflation assumptions
- Apply a default workload growth rate of 15%/yr to variable costs (compute, storage, egress) and a 3%/yr labor inflation unless the user specifies otherwise
- Include a discount rate of 8% to present NPV alongside nominal totals, so the comparison reflects the time value of money
- Show cumulative delta (Managed − Self-Managed) at each horizon and the crossover point if one exists
Step 4: Run Sensitivity Analysis
Identify which assumptions actually move the decision, and test them.
- Select the 3–4 highest-leverage variables (typically: labor cost, downtime cost/hour, workload growth rate, egress volume)
- For each, model low / base / high scenarios (e.g., ±30%) and show the 5-year TCO of both options under each
- Identify the breakeven value for the single most influential variable — the point at which the recommendation flips
- Call out any assumption where a plausible change reverses the conclusion; this is what a CFO will probe
Step 5: Recommendation
State a clear recommendation tied to the horizon that matters most to the decision.
- Name the lower-TCO option at 3 years and 5 years, with the dollar and percentage delta
- State the conditions under which the recommendation would change (drawn from the sensitivity analysis)
- Note any non-cost factors that should weigh on the decision (vendor lock-in, team capacity, risk tolerance) — briefly, without letting them replace the numbers
Output Format
- Structure: Assumptions block → seven-category cost breakdown table (Self-Managed vs. Managed) → 1/3/5-year horizon table with NPV → sensitivity analysis tables → recommendation
- Length: 900–1,300 words plus tables
- Format: Tables for all cost breakdowns and horizon/sensitivity projections; concise prose for assumptions and recommendation
- Sections: Assumptions & Normalization → Cost Category Breakdown → Multi-Year Horizon Comparison → Sensitivity Analysis → Recommendation
- Tone: FinOps analyst — precise, assumption-transparent, defensible under scrutiny; no boosterism toward either option
Quality Checklist
Before delivering output, verify:
- [ ] All seven cost categories are modeled for both options (labor and downtime are not omitted)
- [ ] Every non-input figure has a stated assumption or derivation — no unexplained numbers
- [ ] 1-, 3-, and 5-year cumulative totals are present for both options, with delta at each horizon
- [ ] One-time/migration costs appear only in year 1, not smeared across all years
- [ ] Sensitivity analysis tests at least 3 variables with low/base/high scenarios and identifies one breakeven value
- [ ] The recommendation names a specific option with a dollar delta and states what would flip it
Notes
- Labor and downtime are where self-managed options usually lose the true cost comparison — an on-paper cheaper instance often costs more once on-call and outage risk are priced in
- Egress is the most common hidden cost in managed-service comparisons; ask explicitly if the user hasn't provided data transfer volumes
- Present NPV alongside nominal totals but lead with nominal in the recommendation — most budget decisions are argued in nominal dollars, and NPV is the supporting refinement
- If the user only has partial data, produce the model with clearly flagged estimates rather than refusing — a transparent estimate is more useful than no model, and the sensitivity analysis absorbs the uncertainty
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills