## TL;DR
Forty alerts means zero alerts. Replace per-linked-account budgets with one payer-level budget per threshold, and route it to a channel the team actually watches. Keep per-account budgets only where an account truly has its own owner and its own money.

```text
agent created 40 budget alerts, one per linked account, and the team muted all of them
```

## Use this when
- Every linked account has its own near-identical budget alert.
- The team mutes or filters the alerts because the volume is unmanageable.
- Alerts fire on accounts whose spend is a rounding error of the total.

## Not for this skill when
- You have no budgets at all yet. Set up one payer-level budget first.
- Individual accounts have independent owners and separate spending authority. Per-account budgets make sense there.

## Steps
1. List all budgets and find the near-duplicates: `aws budgets describe-budgets --account-id PAYER_ID`. Verify: you see the same threshold repeated across accounts.
2. Pick the thresholds that matter (for example, 80% actual and 100% forecasted at payer level) and create one budget per threshold on the payer account.
3. For accounts with a real owner, keep a per-account budget but rename it clearly and send it to that owner only.
4. Delete the remaining per-account duplicates: `aws budgets delete-budget` per account. Verify: describe-budgets shows only the consolidated set.
5. Point the consolidated alerts at a channel with an owner and a response runbook, not a shared inbox nobody reads.
6. Wait a full billing cycle and confirm the consolidated alert fires exactly once per threshold breach.

## Variant phrasings
### too many aws budget alerts from linked accounts
Same consolidation fix, organization-wide.
### team ignores budget alerts because there are too many
Alert fatigue framing, same fix path.
### consolidate aws budgets at payer level
The deliberate version of this fix.

Compatibility: AWS Budgets via the management (payer) account; consolidated billing or AWS Organizations required. Budget limits: 10,000 per payer account by default.

## Why it happens
Agents and scripts loop over accounts because it is easy to template, not because it is useful. The result is N alerts for the same underlying event, and humans do what humans always do with noise: mute it. One alert per threshold per org is the shape people read.

## Edge cases / pitfalls
- Deleting alerts nobody reads feels safe but removes the only coverage for a spend runaway. Consolidate, do not just delete.
- The payer-level budget fires later than a per-account one for a spike in one small account. If that account matters, keep its budget.
- Budget alerts are evaluation-delayed; do not treat a quiet alert channel as proof of flat spend. Check the console.
- Renaming matters: an alert named after one account that now covers forty will confuse whoever picks it up next.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_Frwg2-YClC0CAPO8acQU-Q
