A cloud budget template is filled in by finance and the cloud owner once a year before the budget round and carried forward every quarter; per team, environment and provider it records the basis the budget starts from, the drivers that move it, the price and exchange-rate assumptions, the commitments it covers, how much growth and contingency are planned and when it is reviewed. The decision it records is the set of assumptions on sheet 1 that finance signs. How an annual budget is built and what separates it from a guess is explained on annual cloud budget; the steps of a budget round are the article cloud budget planning for 2027. This page is the worksheet.
The template
Cloud budget <organisation>, budget year <YYYY>, version <1.0>, as of <date>, owner <finance>, currency <EUR>
Sheet 1, assumptions
| Assumption | Value | Source | Valid until |
|---|---|---|---|
| Cost basis | <effective cost, commitments spread by usage> | chargeback policy, section 2 | budget year |
| Data date of the basis | mean of the months <YYYY-MM to YYYY-MM> | billing exports | |
| Exchange rate USD per EUR | <rate> | <ECB reference rate of date, or the mean of the last twelve months> | <quarter> |
| Exchange rate GBP per EUR | <rate> | <source, date> | <quarter> |
| Announced price changes | <service, percent, from date> | <provider announcement, link> | per announcement |
| Commitment coverage, target | <percent> of compute cost | commitment strategy | budget year |
| Discount per commitment programme | <percent per the provider's price list, date> | <price list> | per price list |
| Contingency | <percent> of the annual budget, released by <role> | this template | budget year |
Sheet 2, basis and drivers per team, environment and provider
| Team | Environment | Provider | Monthly basis | Driver and unit | Units today | Units at year end | Fixed or variable |
|---|---|---|---|---|---|---|---|
<team A> | prod | <AWS> | <amount> | <customers, active users, requests, GB> | <number> | <number from the business plan> | <variable> |
<team A> | dev, staging | <AWS> | <amount> | <developers, environments> | <number> | <number> | <fixed> |
<team B> | prod | <Azure> | <amount> | <unit> | <number> | <number> | <variable> |
<platform> | shared | all | <amount> | <clusters, accounts> | <number> | <number> | <fixed> |
<AI product> | prod | <provider> | <amount> | <requests, tokens> | <number> | <number> | <variable> |
Sheet 2a, budget per quarter
| Team | Environment | Provider | Q1 | Q2 | Q3 | Q4 | Year | Of which under commitment |
|---|---|---|---|---|---|---|---|---|
<team A> | prod | <AWS> | <amount> | <amount> | <amount> | <amount> | <sum> | <amount> |
<team A> | dev, staging | <AWS> | <amount> | <amount> | <amount> | <amount> | <sum> | <amount> |
<team B> | prod | <Azure> | <amount> | <amount> | <amount> | <amount> | <sum> | <amount> |
<platform> | shared | all | <amount> | <amount> | <amount> | <amount> | <sum> | <amount> |
| Total | <amount> | <amount> | <amount> | <amount> | <sum> | <amount> |
Sheet 3, commitments
| Commitment | Provider and programme | Runs until | Monthly rate | In the budget until expiry | Renewal planned | Decision record |
|---|---|---|---|---|---|---|
<id> | <AWS, Compute Savings Plan> | <date> | <amount> | <amount> | <yes, no, open> | <link> |
<id> | <Azure, reservation> | <date> | <amount> | <amount> | <yes, no, open> | <link> |
<planned purchase> | <provider, programme> | from <date> | <amount> | <amount> | <link> |
Sheet 4, one-offs and contingency
| Item | Amount | Month | Reason | Approval |
|---|---|---|---|---|
<migration, project> | <amount> | <YYYY-MM> | <reason> | <role> |
<support plan> | <amount> | monthly | <tier per the provider> | <role> |
<marketplace contract> | <amount> | <YYYY-MM> | <term> | <role> |
| Contingency | <percent> of sheet 2a | not allocated | <role> |
Sheet 5, review dates and alerts
| Date | Check | Who | Output |
|---|---|---|---|
| monthly | actual against budget per team, variance explained | finance, team leads | review minutes |
| quarterly | exchange rate, price changes, forecast to year end | finance, cloud owner | new version of this sheet |
<month> | release or withdraw the contingency | <role> | sheet 4 |
<month> | next year's budget | finance | next template |
| Alert scope | Threshold | Recipients | Tool |
|---|---|---|---|
| per account, subscription, project | <80> percent actual, <100> percent forecast | <team lead> | <the provider's budget tool> |
| per team | <amount> per month | <team lead, finance> | <tool> |
| total | <percent> of the annual budget by quarter | <management> | <tool> |
How to fill it in
Assumptions: one rate per year with source and date, reviewed quarterly, as the exchange rate policy for budgets sets it; price changes only where the provider has announced them, with the link; a commitment's discount comes from the provider's price list, not from an estimate.
Basis and drivers: the monthly basis is the mean of the last three full months from the exports, not the last invoice. Every variable row has a unit whose year-end value comes from the business plan; the budget is then cost per unit times units, with the methods on forecasting methods. Fixed rows grow only by decision.
Commitments: the column "in the budget until expiry" is the sum of monthly rates within the budget year; after that a decision record decides, not the budget. Coverage per team is read as on commitment coverage and utilisation.
One-offs and contingency: an item sits here only with its approval and month, because otherwise it disappears as growth into the rows of sheet 2; the contingency is not distributed but released or withdrawn on a date.
Alerts: the thresholds go into the providers' budget tools, per account or project, as budget alerts and thresholds describes; the monthly review uses the checklist. Whoever capitalises cloud cost settles the rows with finance (capex, opex and capitalising cloud cost).
How to adapt it
One team: sheet 2 has two rows, prod and everything else, and the contingency is an amount rather than a percentage. Several teams: each team fills in its own rows on sheet 2 and signs the units; finance fills in sheets 1 and 4.
One provider: the rate rows go when the provider invoices in euro (invoice currency and exchange rates). Three providers: one rate row per invoice currency and the commitment programmes per provider on sheet 3.
Startup: a quarter instead of a year, units from the sales plan, no commitments until the basis has been stable for three months. Finance-led: a cost centre column on sheet 2a, budget and actual in the same cost basis as the chargeback, and the link to the P&L through cloud cost in the P&L.
Sources
Read on 2026-10-21. FinOps Foundation, Budgeting and Forecasting (CC BY 4.0), AWS Budgets, budget methods, creating a cost budget, create and manage budgets in Azure, budgets and budget alerts in Google Cloud, ECB reference rates, Bank of England exchange rates.