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
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:
| Scenario | Recommended budget dimension |
|---|---|
| You’re launching a new product this year | Per product and per environment (prod / R&D) |
| You’re migrating to a new stack | Per project (new migration / existing stack / R&D) |
| The billing ownership is clear by team | Per team (Engineering / ML / Data) |
| You’re upselling your customers on AI features | Per product category and per environment (AI prod / AI R&D / Prod / R&D) |
Define the budget values
- 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;
- Pick the best strategy to budget:
| Scenario | Approach |
|---|---|
| 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. |
- Assign an owner to each budget line.
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.
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.
What’s next?
- Set up a weekly Slack report to share budget status with each team.
- Explore your data in the Cost Explorer to identify cost drivers per team.
