Nobody needs a monthly cloud cost review that walks through every invoice line. A good one answers five questions: Is the data reconciled? What changed materially? Who owns the cost? Where are budget and forecast heading? Which small set of actions will be completed next?
You don't need a FinOps team to run it. In a small company, finance owns the invoice and the accounting basis, engineering explains what changed technically, and management sets priorities and decides which variances it can live with.
Define the output first
Decide up front what comes out of the meeting: a short, versioned monthly report that covers:
- closed period and data cut-off;
- cost basis, currency, and exchange-rate method;
- variance to previous month, budget, and forecast;
- material cost drivers with evidence or an explicit open status;
- allocated and unallocated cost;
- commitments and relevant savings work;
- actions with owners, dates, and verification methods;
- decisions and accepted risks.
A dashboard is fine for the analysis. It makes a poor record, though, because filters, data freshness and explanations can all change after the meeting.
1. Set a data cut-off
Cost data keeps changing after it first arrives. AWS documents at least daily Data Exports refreshes and possible updates to the previous billing period after period end. Azure also documents late usage and charges after calendar close.
So agree on a rule for each of these:
| Field | Rule to define |
|---|---|
| Data cut-off | When the period is considered closed for review |
| Late charges | How later corrections enter the next report or a new version |
| Source of truth | Export, invoice, and precedence when they differ |
| Cost type | Actual, amortized, billed, or effective, selected for the question |
| Currency | Reporting currency, rate source, effective date, and rounding |
| Completeness | Which providers, accounts, and subscriptions are included or missing |
If some data is not closed yet, the report should say so. A zero where the cost is simply missing is worse than a blank.
2. Reconcile invoice and cost data
It is tempting to jump straight to the anomalies. Get the baseline right first. For each provider:
- Compare the export total with the invoice or billing total.
- Explain tax, support, credits, refunds, and Marketplace separately.
- Record currency conversion and rounding differences.
- Mark missing accounts, subscriptions, or late files.
- Resolve the residual or leave it open with an owner and review date.
Pick one cost definition for management trends and stick with it. Actual Cost shows how the invoice moves; amortized or effective cost usually works better when you want to hold teams responsible for consumption. Both are correct. They just answer different questions.
3. Explain change as a bridge
“Compute went up” tells nobody what to do. Build a bridge from last closed month to this one instead:
- quantity change on the same architecture;
- rate or discount change;
- added or removed resource;
- scope or allocation change;
- one-off purchase, credit, or refund;
- currency effect;
- unresolved variance.
Only call a cause confirmed when cost and usage data or a documented deployment back it up. Something happening in the same week is not proof.
| Driver status | Evidence | Owner | Treatment |
|---|---|---|---|
| Confirmed | Query, deployment, or contract change | Team able to act | Explain and create an action if needed |
| Probable | Evidence exists but is incomplete | Investigation owner | Mark open and set a date |
| Unknown | No defensible cause | FinOps plus technical owner | Do not guess; narrow the scope and investigate |
4. Establish ownership before perfect tags
Don't wait for tagging to be complete; it never quite is. Start with stable hierarchies such as AWS accounts, Azure subscriptions, resource groups, billing profiles, or known service mappings. Tags refine allocation; they do not replace an ownership policy.
Show three numbers side by side:
- Directly allocated: supported by a stable source or rule.
- Rule-allocated: shared cost distributed by a documented method.
- Unallocated: visible, with an owner for resolution.
When an allocation rule changes, note the date and the effect. Otherwise a reallocation after the fact looks like a real change in cost.
5. Treat budget and forecast as decisions
Budget, forecast, and actual are different values:
- Budget: approved plan or boundary.
- Forecast: current projection based on usage and explicit assumptions.
- Actual: cost under the report’s defined monthly method.
Every variance needs a decision: revise the forecast, prioritise technical work, change scope, or accept it. “Keep an eye on it” only counts as an action if it comes with a threshold, an owner and a date to look again.
6. Keep a small action register
A long list of savings ideas looks productive and rarely is. Keep only the actions whose next step can realistically be done before the next review.
For each action, record:
| Field | Meaning |
|---|---|
| Scope | Resource, service, or cost population affected |
| Hypothesis | Why the action should change cost or risk |
| Expected effect | Estimate with a method, not a realised saving |
| Owner | Person or team able to make the change |
| Date | Next verifiable milestone |
| Status | Proposed, accepted, implemented, or verified |
| Verification | Fixed before/after scope and measurement window |
Commitment purchases go in the same register, with the term, coverage scope, break-even assumption and approver added. High coverage is not worth much if it leaves you paying for commitment you don't use.
A joint review agenda
| Section | Accountable perspective | Output |
|---|---|---|
| Data status and reconciliation | Finance or FinOps | Closed baseline or named gap |
| Cost bridge | Engineering and FinOps | Confirmed and open drivers |
| Ownership | Engineering and finance | Allocation and visible residual |
| Budget and forecast | Finance and owner | Variance decision |
| Commitments and actions | Engineering, procurement, management | Prioritised actions and approvals |
| Close | Decision owner | Accepted report, risks, next date |
Send the known data gaps and drivers round before the meeting. Spend the time together on decisions and open questions, not on reading charts aloud.
Quality check before close
- Does the report total reconcile to the declared source of truth?
- Are cost type, currency, exchange method, and data cut-off visible?
- Is every material movement confirmed or explicitly open?
- Does unallocated cost remain visible?
- Does every decision and action have an empowered owner?
- Are estimated, implemented, and verified savings distinct?
- Can a later reader reproduce the month under the same rules?
If you can answer these, the meeting can be short. If you can't, more charts won't fix it.
Which export feeds step 2 is its own decision: AWS CUR 2.0 or FOCUS 1.2. How the review fits the 2026 FinOps Framework is covered in what small teams should actually change. Costfluent cost reports can be saved and scheduled by email, so the review starts from the same view each month.
Sources and method
Reviewed on 6 September 2026: AWS Data Exports delivery, Microsoft Azure Cost Management exports, and FinOps Foundation Framework Domains. The agenda and control fields are Costfluent recommendations for a lean, repeatable monthly process.