---
name: cloud-cost-reviewer
description: Produces a monthly cloud cost report (AWS, Azure, GCP, SaaS) with anomaly callouts, optimisation actions, and an executive summary suitable for finance.
version: 1.0.0
author: VantagePoint Networks
audience: IT Managers, Cloud Engineers, FinOps Practitioners, Finance Business Partners
output_format: Formatted Markdown cost report with KPI dashboard, per-service breakdown, anomaly findings, optimisation backlog, and executive summary.
license: MIT
---

# Cloud Cost Reviewer

Turns raw cloud and SaaS billing data into a defensible monthly report that finance trusts, engineering can act on, and leadership reads.

## How to use this skill

1. Download this `SKILL.md` file.
2. Place it in `~/.claude/commands/` (macOS / Linux) or `%USERPROFILE%\.claude\commands\` (Windows).
3. Run `/cloud-cost-reviewer` in Claude Code. Paste the period's cost data (CSV exports from AWS Cost Explorer / Azure Cost Mgmt / GCP Billing / SaaS admin portals). Answer scope questions. Receive the report.

## When to use this

- Monthly FinOps review is due and you don't want to pivot a CSV by hand again.
- Cloud spend has spiked and you need an explanation by tomorrow.
- Finance has flagged budget overrun and is asking who's responsible.
- You're prepping a budget ask and need to defend current run-rate.
- You're transitioning from "everyone provisions" to "FinOps with guardrails" and need a baseline.

## What you'll get

- **Executive summary** — 5 lines, finance-readable, includes month-over-month and year-over-year deltas.
- **KPI dashboard** — total spend, vs budget, vs forecast, top 3 movers, cost-per-unit metric.
- **Per-service breakdown** — top 10 services by spend, each with %change vs prior period.
- **Anomaly findings** — sudden cost jumps, unused resources, pricing changes, untagged spend.
- **Optimisation backlog** — prioritised actions with estimated savings, owner suggestion, effort estimate.
- **Reservation / Savings Plan utilisation** — current commitment coverage, expiring soon.
- **Cost-per-team / cost-per-application** — if tags are clean, this is the most useful section for chargeback.
- **Forward-looking note** — flagged risks for next month, planned changes that affect cost.

## Clarifying questions I will ask you

1. **Which cloud(s) and SaaS providers?** (AWS / Azure / GCP / M365 / Google Workspace / specific SaaS)
2. **Reporting period?** (Calendar month, fiscal month, custom)
3. **Total spend this period?** (Single figure, all sources combined)
4. **Last period total + 12 months ago total?** (For deltas)
5. **Annual budget for this scope?** (Drives "% of budget consumed" framing)
6. **Top movers** — which services / accounts / subscriptions had biggest swings?
7. **Tag hygiene** — are workloads tagged with `Environment` / `Owner` / `CostCentre` / `Application`? (Drives chargeback fidelity)
8. **Reservations / Savings Plans / Committed Use Discounts** — what's currently committed and when does it expire?
9. **Anomalies you've already spotted?** (Cross-check)
10. **Audience for the report?** (Engineering only / engineering + finance / exec sponsor / customer in MSP context)
11. **Any planned changes next period?** (Migration, new product launch, decommissioning)
12. **Currency?** (For consistent reporting)

## Output template

```markdown
# Cloud Cost Report — <period> — YYYY-MM

**Report ID:** CCR-<YYYY-MM>
**Period:** YYYY-MM-01 to YYYY-MM-DD
**Prepared by:** <name>
**Audience:** <internal eng / finance / exec / customer>
**Currency:** GBP / USD / EUR

## 1. Executive Summary
> <Plain-English, 5 lines. State total, vs budget, biggest mover, top 1 action, forward risk.>

## 2. Headline KPIs
| KPI | This period | Last period | Change | YoY |
|---|---|---|---|---|
| Total spend | <amount> | <amount> | +/- N% | +/- N% |
| Budget consumed | XX% | XX% | — | — |
| Forecast for full year | <amount> | — | vs <annual budget> | — |
| Cost per <unit> (e.g. monthly active user) | <amount> | <amount> | +/- N% | — |
| Reservation / Savings coverage | XX% | XX% | +/- pp | — |

## 3. Spend by Provider
| Provider | This period | % of total | vs last period |
|---|---|---|---|
| AWS | <amount> | XX% | +/- N% |
| Azure | <amount> | XX% | +/- N% |
| Microsoft 365 | <amount> | XX% | +/- N% |
| <SaaS> | <amount> | XX% | +/- N% |
| **Total** | **<amount>** | 100% | +/- N% |

## 4. Top 10 Services (by spend)
| Rank | Service | This period | % of total | Change | Notes |
|---|---|---|---|---|---|
| 1 | <service> | <amount> | XX% | +/- N% | <one-liner> |
| 2 | ... |  |  |  |  |
| ... |  |  |  |  |  |

## 5. Anomalies & Findings
Each finding rated: critical / high / medium / low.

### Finding 1 — <short title> (severity: <level>)
**What changed:** <plain-English>
**Cost impact:** <amount> over <period>
**Likely cause:** <hypothesis with evidence>
**Recommended action:** <specific>
**Owner suggestion:** <team / role>
**Estimated effort to remediate:** <hours / days>
**Estimated savings if actioned:** <amount per month>

(Repeat for each finding — usually 5-15 per period)

## 6. Optimisation Backlog
Aggregate of all actionable items, prioritised by ROI.

| # | Action | Estimated saving / mo | Effort | Owner | Status |
|---|---|---|---|---|---|
| 1 | <action> | <amount> | XS / S / M / L | <team> | Open / In progress / Done |
| 2 | ... |  |  |  |  |

## 7. Reservations / Savings Plans / Commitments
| Commitment | Provider | Coverage | Expiry | Renewal recommendation |
|---|---|---|---|---|
| EC2 Compute Savings Plan | AWS | 65% | 2027-03-15 | Re-evaluate Q1 2027 — current usage suggests downsize |
| Azure Reserved VM Instances | Azure | 80% | 2026-09-01 | Renew at 1-year, 100% upfront |
| ... |  |  |  |  |

## 8. Cost by Tag (chargeback)
Only meaningful if tag hygiene is good. Note any "untagged" bucket prominently — it's a governance flag.

| CostCentre | Application | Environment | Spend |
|---|---|---|---|
| ENG-001 | platform-api | prod | <amount> |
| ENG-001 | platform-api | dev | <amount> |
| BUS-002 | sales-portal | prod | <amount> |
| **untagged** | — | — | <amount> ← flag |

## 9. Forward Look
- **Next month:** planned changes affecting cost (<bullet list>)
- **Risk:** <events that could spike spend>
- **Opportunity:** <upcoming reservation expirations, pricing model changes>

## 10. Decisions Needed (for the review meeting)
- [ ] Approve action items 1-3 from optimisation backlog (~<saving>/mo)
- [ ] Ratify reservation renewal for <commitment>
- [ ] Acknowledge untagged spend remediation deadline
- [ ] Sign off forecast for Q+1
```

## Example invocation

**User:** "/cloud-cost-reviewer — March AWS spend was £14,200 (up from £11,800 in Feb), Azure £6,400 (flat), M365 £2,900 (flat). Annual cloud budget is £180k. Top mover was a new GPU instance for ML experimentation. We just signed a 1-year EC2 Savings Plan in February."

**What the skill will do:**
1. Quantify: cloud is on track (£23,500 month, ~£282k forecast vs £180k budget — flag overrun risk).
2. Drill into AWS jump: GPU instance accounted for ~£2k uplift; check it's not running 24x7, recommend spot or scheduled stop.
3. Cross-check Savings Plan utilisation (since signed in Feb) — if utilisation < 80%, flag.
4. Produce 5-7 specific findings with savings estimates and owners.
5. Generate forecast revision and a "decisions needed" list for the FinOps meeting.

## Notes for the requester

- **CSV is fine, JSON is better.** Most providers export both. Larger orgs feed the data warehouse / Looker / Power BI; for monthly review, raw exports work.
- **Tags are everything.** Spend you can't attribute is spend you can't optimise. If `untagged` is > 5% of total, it gets its own action item every month.
- **"Up 20%" without context is meaningless.** Always frame movers as "% but also absolute change" and tie to a cause.
- **Don't confuse cost with value.** A spike from a launched product driving revenue is good. A spike from a forgotten dev VM is bad. Surface both.
- **Reservations / SP commitments are time-bombs.** Track expiry dates. A surprise SP rollover at the wrong commitment level burns money.
- **"Good" looks like:** finance signs off the report without follow-up. Engineering knows what to action this week. The exec sponsor reads section 1 and trusts the trajectory.
