Skip to main content
Effective cloud budget management is the foundation of engineering teams using Cloud. This guide walks you through setting up per-team budgets in Costory, from choosing the right cost dimension to automating alerts when a team exceeds its target, so you can move from a single centralized budget to a scalable Cloud budgeting workflow. If you want a product overview first, see Budgets.

Context

  • You have a central budget owned by a single person responsible for the entire company spending.
  • You want to give them more autonomy to manage their own spending.
  • You want to increase the accountability of each team.

Prerequisites

  • You have set up the Slack or Teams integration to share reports with the teams.
  • You can split your bill per budget line (team, sub product, etc.).

What you can expect

  • Budget per month to be shared with the team.
  • Automated monthly reports to increase visibility for each team.
  • Alerting if a team is over budget.

Steps

1

Choose a dimension to budget your costs

There is no ideal dimension to budget your costs: you should choose a dimension that makes sense for your organization and your yearly goals:
ScenarioRecommended budget dimension
You’re launching a new product this yearPer product and per environment (prod / R&D)
You’re migrating to a new stackPer project (new migration / existing stack / R&D)
The billing ownership is clear by teamPer team (Engineering / ML / Data)
You’re upselling your customers on AI featuresPer product category and per environment (AI prod / AI R&D / Prod / R&D)
  • Keep a buffer Add in your budget a buffer to account for new projects, unexpected errors etc… 5% of overall budget is a good starting point.
  • Use a stable attribution: This is not the time to find the best attribution strategy for your shared database… Split the costs in a simple way: attribution should be easy. Use Virtual Dimensions to create simple team-level groupings without re-tagging your cloud resources.
  • Share the division with the team: they need to understand the attribution. If your virtual dimension is too complex, they won’t trust it.
  • Take into account credits (yearly credits, migration plan, etc.). Two options: exclude them fully, or keep them in a separated budget line. See Cost Metrics for a full comparison of how each metric handles credits and discounts.
  • Handle savings plans carefully: if you have a global savings plan over all your accounts, it can be assigned to different accounts over time, creating fake cost variations. Use for a metric that is stable against savings plan movements.
2

Define the budget values

  1. Instantiate a budget in Costory, this will allow you to export the historical cost per budget line over last 12 months and help you forecast;
  2. Pick the best strategy to budget:
ScenarioApproach
General budget increase (fixed % over current spend)Apply the increase incrementally across each month’s budget (pro-rata distribution).
Production costs (cost per user/activity)Use to find the historical cost-per-user ratio, then multiply by Finance’s user forecast with a small decrease of marginal costs.
R&D CI costs (cost per engineer/CI hours)Correlate spend with engineer count and CI hours
Fast-growing product (Spotify’s cost-vs-growth approach)Don’t budget cost but marginal cost (cost per user/transaction). A rising bill is healthy if cost-per-unit decreases.
Budget in units, not dollars (Indeed talk)Budget each big category using consumption units (API calls, compute-hours, GB) for your most expensive services. Convert to $ only for Finance reporting.
  1. Assign an owner to each budget line.
3

Share the budget with the team

  • Validate the budget with the team: Before locking it in, align with each team on the budget values and the dimension (environment, product, or team) so they understand and accept their targets.
  • Share the budget on a schedule: Once owners are assigned (see previous step), share the budget with the team regularly, for example via a weekly Slack report or a recurring email, so everyone sees their budget status and stays accountable.
4

Be alerted if you exceed your budget

Create a budget alert so that when the monthly budget is exceeded or is forecast to be exceeded, the alert is sent to the overall budget owner and to each budget line owner through Slack or email.
5

Update the budget quarterly

Every beginning of quarter, review the budget. If a team consistently overspends, take this into account and update your forecast accordingly.
  • Create a new version of the budget.
  • Align past costs with the updated budget and check if the forecast still makes sense.
What to do with unused costs? You can either:
  • Keep them in a buffer budget line to be used for unexpected expenses.
  • Move them to a different budget line to be used for a different purpose.

What’s next?

Last modified on March 18, 2026