Cloud Waste Audit

connecting…
% %

Spend map

area = 30-day cost · colour = waste signal
Safe to remove Needs a decision Review No waste signal Grouped tail

Waste by category

estimated monthly saving

Allocation gap

spend you cannot attribute

Daily spend

a step in this line is a deploy, a SKU change or a new resource — not noise

Findings

Where this data comes from, and other ways to load it

By default this page audits Azure through the local server. The server holds the credential and returns only the audit bundle, so no token ever reaches your browser. Nothing is uploaded anywhere.

You need: the Reader role on the subscriptions you want to audit, and Cost Management Reader on the billing scope. Both are read-only. No resource is created or changed at any point.

The two options below are for auditing an estate you cannot reach from this machine, or for passing a point-in-time snapshot to someone else.

Option A — full audit, via Azure Cloud Shell

Cloud Shell already has the Azure CLI and jq installed, so there is nothing to install anywhere.

  1. Open shell.azure.com and choose Bash.
  2. Run cat > waste-export.sh, press Copy script below, paste into the terminal, then press Ctrl+D.
  3. Run bash waste-export.sh and wait. It prints what it found.
  4. Run download azure-waste-bundle.json to save it to your machine.
  5. Press Load export at the top of this page and pick that file.

reads inventory, cost and Advisor recommendations; writes azure-waste-bundle.json

Show the script

Option B — 60 seconds, costs only

Faster, but it carries no resource state, so the rules that find unattached disks, stopped-but-billing VMs, empty App Service Plans and backendless gateways cannot run. Good for a first look at where the money sits.

  1. Azure portal → Cost ManagementCost analysis.
  2. Set the range to the last 30 days, granularity to Daily, and group by Resource.
  3. DownloadCSV.
  4. Press Load export above and pick the CSV. The page will tell you which rules it had to switch off.

Running it regularly

The script is safe to run on a schedule — it only reads. A monthly run committed next to your Terraform gives you a diffable record of the estate, which is more useful than a dashboard nobody opens. Re-run it after any large change and compare the recoverable-waste figure.

Method, assumptions and what this cannot see
Read-only audit. Every figure below is an estimate derived from the loaded export — verify before acting.