Most Azure waste isn't dramatic. It's not one giant mistake — it's a handful of small, boring, recurring line items that nobody ever looks at. Individually they're easy to ignore. Together they're 20–40% of your bill.
Here are the five worst offenders we find in almost every Azure account, and how to catch each one.
1. Orphaned disks
You delete a VM — but the disk it was attached to often stays behind. Unattached, doing nothing, still billing every hour. They pile up quietly over months. The fix: find unattached managed disks, snapshot them for safety, then delete.
2. Oversized VMs
The #1 silent budget killer. Someone picks a VM size "to be safe," goes two notches bigger than needed, and it runs at 3% CPU forever, billing full price. The fix: check actual peak usage and right-size — but only if the smaller size keeps safe headroom (halving a VM roughly doubles its load, so don't shrink something that's already busy).
3. Over-retained backups
Backup retention gets set once, generously, and never revisited. You end up paying to store snapshots from a year ago that no one will ever restore. The fix: review Recovery Services retention policies against what your business actually needs.
4. Forgotten public IPs
A static public IP that's no longer attached to anything still bills every month. They're tiny individually, but they accumulate. The fix: find unassociated public IPs and release them.
5. Idle and zombie services
Cognitive Services with zero API calls. Dev environments running 24/7 that only need business hours. Test resources from a project that shipped six months ago. All still on the meter. The fix: flag resources with no activity and confirm with the owner before deleting.
The pattern
None of these are hard to fix. The problem is that finding them means going through your estate resource by resource — and that's nobody's job. Which is exactly why the waste sits there for months.