Why
Managers optimise when they own the target. Without team-level budgets, nobody feels responsible and overspend diffuses across the organisation. Cloud-native budget alerts provide early warning before the monthly report — a forecasted alert at 100% tells you the budget will be exceeded, giving time to act.
What
Set per-application and per-team budgets with cloud-native alerts at progressive thresholds (50%, 75%, 90% actual + 100% forecasted).
How
Create Budgets per Provider
AWS Budgets:
aws budgets create-budget \
--account-id 123456789012 \
--budget '{
"BudgetName": "platform-engineering-monthly",
"BudgetLimit": {"Amount": "210000", "Unit": "USD"},
"TimeUnit": "MONTHLY",
"BudgetType": "COST",
"CostFilters": {
"LinkedAccount": ["111111111111", "222222222222"]
}
}' \
--notifications-with-subscribers '[
{"Notification": {"NotificationType": "ACTUAL",
"ComparisonOperator": "GREATER_THAN",
"Threshold": 75}, "Subscribers": [
{"SubscriptionType": "EMAIL", "Address": "finops@company.com"}]},
{"Notification": {"NotificationType": "ACTUAL",
"ComparisonOperator": "GREATER_THAN",
"Threshold": 90}, "Subscribers": [
{"SubscriptionType": "EMAIL", "Address": "eng-lead@company.com"}]},
{"Notification": {"NotificationType": "FORECASTED",
"ComparisonOperator": "GREATER_THAN",
"Threshold": 100}, "Subscribers": [
{"SubscriptionType": "EMAIL", "Address": "finance@company.com"}]}
]' Azure Budgets:
az consumption budget create \
--budget-name "platform-engineering-monthly" \
--amount 210000 --category Cost --time-grain Monthly \
--start-date 2026-07-01 --end-date 2027-06-30 Azure supports Action Groups that trigger Logic Apps or Azure Functions on threshold breach — useful for auto-scaling down dev/test environments or posting Slack notifications.
GCP Budgets:
gcloud billing budgets create \
--billing-account=XXXXXX-XXXXXX-XXXXXX \
--display-name="platform-engineering-monthly" \
--budget-amount=210000 \
--filter-projects="projects/platform-prod,projects/platform-staging" \
--threshold-rule=percent=0.75 \
--threshold-rule=percent=0.90 \
--threshold-rule=percent=1.0,basis=forecasted-spend \
--notifications-pubsub-topic="projects/finops/topics/budget-alerts" GCP’s Pub/Sub trigger enables programmable responses — a Cloud Function can post to Slack, create a Jira ticket, or even disable billing on sandbox/dev projects.
Set Alert Thresholds
| Threshold | Type | Who Gets It | Why |
|---|---|---|---|
| 50% | Actual | FinOps | Midpoint check |
| 75% | Actual | FinOps + Eng Lead | Time to investigate burn rate |
| 90% | Actual | FinOps + Eng Lead | Last chance before breach |
| 100% | Forecasted | FinOps + Finance | Projected exceed — time to act |
The forecasted alert at 100% is the most valuable. An actual alert at 100% tells you money is already spent. A forecasted alert gives you days of lead time.
Deliverable Checklist
- Budgets created per application / team per provider
- Alert thresholds configured (50%, 75%, 90% actual + 100% forecasted)
- Alert routing confirmed (email, Slack, PagerDuty)
- Budget amounts aligned with consolidated budget (S3-07)
- Budgets embedded in workload provisioning pipeline (links to S2-02)