# Cloud Cost Review: [Organisation or business unit] [Period]

> Periodic review of cloud spend organised around the three FinOps
> Framework phases: Inform (visibility and allocation), Optimize (rates
> and usage) and Operate (governance and continuous improvement). Covers
> spend summary, cost by service and team, unit economics, anomalies,
> optimisation opportunities, commitments, tagging compliance and
> actions. Replace every `[bracketed]` value and every row marked
> *Example*.

<!--
Guidance: How to use this template
- Fill section 2 (Inform) from the billing export first, and reconcile
  the total with the invoice before discussing optimisation.
- Report unit cost alongside total cost. Rising spend with falling unit
  cost is often good news.
- Every opportunity in section 4 needs an owner, a savings estimate and
  a decision. Lists without owners are rarely acted on.
- Keep the same structure every period so trends are comparable.
-->

| Field | Value |
|---|---|
| Review ID | [FCR-2026-10] |
| Period | [YYYY-MM-DD to YYYY-MM-DD] |
| Scope | [Accounts, subscriptions or projects included] |
| Cloud providers | [Provider A], [Provider B] |
| Currency | [USD], amounts excluding tax, after credits |
| Data source | [Billing export, cost tool], extracted YYYY-MM-DD |
| Prepared by | [@finops-analyst] |
| Reviewed with | [Engineering leads, finance, product] |
| Status | [Draft / Final] |

## 1. Summary

<!-- Guidance: Five lines for leadership: total, change, unit cost, biggest driver, top actions. -->

| Metric | This period | Previous period | Change | Budget | Variance to budget |
|---|---|---|---|---|---|
| Total cloud spend | *Example:* 182,400 | 168,900 | +8.0% | 175,000 | +4.2% |
| Cost per 1,000 orders | *Example:* 3.42 | 3.61 | -5.3% | 3.50 | -2.3% |
| Commitment coverage | *Example:* 64% | 58% | +6 pts | 70% target | -6 pts |
| Tagged (allocatable) spend | *Example:* 91% | 87% | +4 pts | 95% target | -4 pts |
| Identified savings (annualised) | *Example:* 245,000 | n/a | n/a | n/a | n/a |

Key messages: [Example: "Spend grew 8% while orders grew 14%, so unit
cost fell 5%. Data platform storage is the main driver of the overrun.
The four approved or pending opportunities in section 4 could save about 18,500 per month."]

## 2. Inform: visibility and allocation

<!-- Guidance: Show where money goes and who owns it. Allocation by team is the basis for accountability. -->

### 2.1 Spend trend

| Month | Compute | Storage | Database | Network | Other | Total |
|---|---|---|---|---|---|---|
| *Example:* [Month -2] | 71,200 | 31,800 | 39,500 | 12,100 | 9,600 | 164,200 |
| *Example:* [Month -1] | 72,900 | 33,400 | 40,100 | 12,600 | 9,900 | 168,900 |
| *Example:* [This month] | 74,300 | 41,700 | 41,200 | 14,800 | 10,400 | 182,400 |

### 2.2 Cost by service

| Service | This period | Previous | Change | Share of total | Comment |
|---|---|---|---|---|---|
| *Example:* Virtual machines | 58,100 | 57,300 | +1.4% | 31.9% | Stable |
| *Example:* Managed Kubernetes | 16,200 | 15,600 | +3.8% | 8.9% | Expected growth |
| *Example:* Object storage | 29,900 | 22,100 | +35.3% | 16.4% | Analytics raw data retention |
| *Example:* Managed database | 41,200 | 40,100 | +2.7% | 22.6% | Stable |
| *Example:* Data transfer | 14,800 | 12,600 | +17.5% | 8.1% | Cross-region replication added |
| [Service] | [Amount] | [Amount] | [%] | [%] | [Comment] |

### 2.3 Cost by team or product

| Team / product | Owner | This period | Previous | Change | Budget | Status |
|---|---|---|---|---|---|---|
| *Example:* Checkout | [@lead] | 48,300 | 45,900 | +5.2% | 50,000 | On track |
| *Example:* Data platform | [@lead] | 61,700 | 50,800 | +21.5% | 52,000 | Over budget |
| *Example:* Shared platform | [@lead] | 55,800 | 55,200 | +1.1% | 57,000 | On track |
| *Example:* Unallocated (untagged) | n/a | 16,600 | 17,000 | -2.4% | n/a | Reduce |
| [Team] | [@lead] | [Amount] | [Amount] | [%] | [Amount] | [Status] |

Shared costs are allocated by [method, for example "proportional to
each team's direct compute spend"].

### 2.4 Unit economics

Unit cost links spend to business value:

$$
c_{\text{unit}} = \frac{C_{\text{period}}}{Q_{\text{period}}}
$$

where $C_{\text{period}}$ is allocated cloud cost and $Q_{\text{period}}$
the number of business units delivered (orders, active users, API calls).

| Unit metric | Cost | Units | Unit cost | Previous | Change | Target |
|---|---|---|---|---|---|---|
| *Example:* Cost per 1,000 orders | 182,400 | 53.3 M orders | 3.42 | 3.61 | -5.3% | 3.50 |
| *Example:* Cost per monthly active user | 182,400 | 1.92 M | 0.095 | 0.098 | -3.1% | 0.090 |
| [Metric] | [Cost] | [Units] | [Value] | [Value] | [%] | [Target] |

### 2.5 Anomalies

| ID | Date detected | Service / account | Expected | Actual | Cause | Status |
|---|---|---|---|---|---|---|
| AN-01 | YYYY-MM-DD | *Example:* Object storage, analytics account | 800 per day | 1,450 per day | Retention policy removed during migration | Fixed YYYY-MM-DD |
| AN-02 | YYYY-MM-DD | *Example:* GPU instances, sandbox | 0 | 2,300 total | Test cluster not deleted | Fixed; budget alert added |
| [AN-nn] | YYYY-MM-DD | [Service] | [Amount] | [Amount] | [Cause] | [Status] |

## 3. Commitments and reservations

<!-- Guidance: Show how much steady usage is covered by discounted commitments and how well existing commitments are used. -->

| Commitment | Type | Term | Expiry | Monthly value | Utilisation | Coverage of eligible usage |
|---|---|---|---|---|---|---|
| *Example:* Compute savings commitment | Spend-based | 1 year | YYYY-MM-DD | 32,000 | 98% | 61% |
| *Example:* Database reserved instances | Resource-based | 3 years | YYYY-MM-DD | 18,500 | 100% | 72% |
| [Commitment] | [Type] | [Term] | YYYY-MM-DD | [Amount] | [%] | [%] |

Effective savings rate across the estate:

$$
\text{ESR} = 1 - \frac{\text{Actual cost of covered and on-demand usage}}{\text{Same usage at on-demand prices}}
$$

*Example:* ESR this period = 23% (previous 20%). Expiring in the next
90 days: [list], decision required by YYYY-MM-DD.

## 4. Optimize: opportunities

<!-- Guidance: Separate rate optimisation (pay less per unit) from usage optimisation (use fewer units). Estimate savings conservatively and state confidence. -->

| ID | Opportunity | Lever | Est. monthly saving | Effort | Confidence | Owner | Decision |
|---|---|---|---|---|---|---|---|
| OP-01 | *Example:* Restore 90-day lifecycle policy on analytics raw data | Usage | 7,200 | Low | High | [@name] | Approved |
| OP-02 | *Example:* Rightsize 42 VMs below 15% peak CPU for 30 days | Usage | 4,900 | Medium | Medium | [@name] | Approved |
| OP-03 | *Example:* Increase compute commitment coverage from 61% to 75% | Rate | 3,800 | Low | High | [@name] | Pending finance |
| OP-04 | *Example:* Schedule non-production clusters off outside 07:00 to 20:00 weekdays | Usage | 2,600 | Low | High | [@name] | Approved |
| OP-05 | *Example:* Move cross-region replication to compressed batches | Architecture | 1,900 | High | Low | [@name] | Investigate |
| [OP-nn] | [Opportunity] | [Rate / Usage / Architecture] | [Amount] | [L / M / H] | [L / M / H] | [@name] | [Decision] |

Total approved savings: [amount] per month, [amount] annualised.

## 5. Operate: governance and tagging

<!-- Guidance: Track the controls that keep costs allocatable and predictable. Untagged spend cannot be owned. -->

### 5.1 Tagging compliance

Required tags: `cost-center`, `team`, `environment`, `service`.

| Account / project | Spend | Spend with all required tags | Compliance | Previous | Owner |
|---|---|---|---|---|---|
| *Example:* prod-core | 92,000 | 89,200 | 97.0% | 95.1% | [@name] |
| *Example:* analytics | 48,600 | 41,800 | 86.0% | 79.4% | [@name] |
| *Example:* sandbox | 9,800 | 6,100 | 62.2% | 60.0% | [@name] |
| [Account] | [Amount] | [Amount] | [%] | [%] | [@name] |

### 5.2 Governance controls

| Control | Status | Notes |
|---|---|---|
| Budgets and alerts per team at 80% and 100% | *Example:* In place for 9 of 11 teams | Add for two remaining teams |
| Anomaly detection with daily notification | In place | Threshold 30% above 7-day baseline |
| Tag policy enforced at resource creation | Partial | Enforced in prod, warning only in sandbox |
| Sandbox auto-expiry | Not in place | See action A-04 |
| [Control] | [Status] | [Notes] |

## 6. Actions and owners

<!-- Guidance: Carry open actions forward every period until they are closed. -->

| ID | Action | Related | Owner | Due | Expected impact | Status |
|---|---|---|---|---|---|---|
| A-01 | *Example:* Reapply lifecycle policy and add policy-as-code check | OP-01, AN-01 | [@name] | YYYY-MM-DD | -7,200 per month | In progress |
| A-02 | *Example:* Rightsize VMs in two waves with performance check | OP-02 | [@name] | YYYY-MM-DD | -4,900 per month | Not started |
| A-03 | *Example:* Present commitment purchase to finance | OP-03 | [@name] | YYYY-MM-DD | -3,800 per month | Not started |
| A-04 | *Example:* Enforce tags and auto-expiry in sandbox | 5.1, 5.2 | [@name] | YYYY-MM-DD | Compliance > 90% | Not started |
| [A-nn] | [Action] | [Ref] | [@name] | YYYY-MM-DD | [Impact] | [Status] |

### 6.1 Actions from previous review

| ID | Action | Outcome | Realised saving |
|---|---|---|---|
| [A-nn] | [Action] | [Done / Partly / Dropped and why] | [Amount per month] |

## 7. Forecast and next review

<!-- Guidance: Give a simple forecast for the next period and the date of the next review. -->

| Item | Value |
|---|---|
| Forecast next period (before actions) | [Amount] |
| Forecast next period (after approved actions) | [Amount] |
| Main assumptions | [Example: "orders grow 4%; no new regions"] |
| Next review date | YYYY-MM-DD |
| Attendees | [Names or roles] |

Based on the publicly described FinOps Framework phases (Inform,
Optimize, Operate), summarised in original wording. This template is
original text written for this collection and is not affiliated with the
FinOps Foundation. Template licence: MIT.
