How I Find Wasted Azure Spend Before It Becomes a Monthly Habit
A practical tutorial showing how I review Azure environments for wasted spend, quick wins, missing ownership, and repeatable cost governance.
Muhammed Baderdien
Cloud, DevOps & AI Engineering

Why Azure Waste Happens
Azure cost waste usually does not arrive as one dramatic mistake. It creeps in quietly.
A proof-of-concept VM stays online after the demo. A dev environment runs all weekend. A disk gets detached but never deleted. A team picks a bigger VM family because it is safer than right-sizing under pressure. Nobody is trying to waste money, but the monthly bill starts carrying old decisions.
When I review Azure spend, I am not looking for blame. I am looking for patterns that can be turned into operating rules.
The goal is simple: find the waste, protect the workloads that matter, and create a repeatable review habit so the same waste does not return next month.

Step 1: Export the Cost Picture
The first thing I do is create a clear cost view before touching resources.
I want cost grouped by:
- Subscription
- Resource group
- Service name
- Resource type
- Environment tag
- Owner tag
- Cost centre or project tag
If the tags are missing, that is already useful information. Untagged spend is not just a reporting problem. It means nobody can confidently answer who owns the resource, why it exists, or whether it can be stopped.
My quick rule: if a resource has no owner, no environment, and no recent deployment activity, it goes onto the review list.
Step 2: Find Compute Waste
Compute is usually the fastest place to recover value.
I start with non-production VMs because the risk is lower and the savings are often immediate. The checks are straightforward:
- Are dev and test VMs running overnight?
- Are larger VM families being used for low-load workloads?
- Are old build agents, jump boxes, or test servers still running?
- Is CPU consistently low for a VM that was sized for a temporary spike?
- Are there duplicate environments that nobody uses anymore?
The key is not to stop things randomly. I mark the resource, confirm the owner, agree a shutdown or resize window, and only then make the change.
This is where automation becomes valuable. Once a pattern is safe, I prefer to encode it as a policy, schedule, alert, or Bicep convention instead of relying on memory.
Step 3: Check Storage and Networking
Storage waste is less obvious because individual items can look cheap. Together, they add up.
I check for:
- Unattached managed disks
- Old snapshots
- Premium storage used where standard would be enough
- Forgotten diagnostic logs
- Public IP addresses no longer attached to active workloads
- Load balancers or gateways left behind after test deployments
The useful question is: "Would someone recreate this resource if it disappeared today?"
If the answer is no, it belongs in a cleanup queue.
Step 4: Fix Tags and Ownership
Cost optimisation fails when ownership is vague.
The minimum tag set I like is:
- owner
- environment
- workload
- cost-centre
- expiry-date for temporary resources
Tags should not be treated as admin decoration. They are operational control points. They make it possible to route alerts, review spend, apply policies, and ask the right team before changing anything.
If you use Bicep, make tags part of the module interface. Do not let every deployment invent a new naming and tagging style.
Step 5: Make It Repeatable
The first cost review finds waste. The second cost review proves whether your process works.
My recommended cadence is:
- Weekly: review new waste, non-production spend, shutdown exceptions, and untagged resources.
- Monthly: review right-sizing, reservations, savings plans, architecture choices, and budget trends.
- Quarterly: review landing zone standards, Bicep modules, policies, and team ownership.
The point is not to make engineers afraid of cloud spend. The point is to give them feedback quickly enough that cost becomes part of good engineering.
Use the Free Waste Finder
If you want a fast first-pass estimate, use the free Azure Cost Waste Finder:
Try the Azure Cost Waste Finder
It gives you a rough savings estimate and emails a mini-playbook with the first checks I would run.
If you want the deeper version, the full Azure Cost Optimisation Playbook includes the 30-day review process, Bicep-friendly governance patterns, and templates for turning savings into a repeatable operating habit:
Frequently Asked Questions
Let's Accelerate Your Development
Whether you're building an MVP, modernizing your infrastructure, or integrating AI into your workflows, Luminoxis can help you ship faster with confidence.
Related Articles

Use a Free Azure Cost Waste Finder Before You Buy a FinOps Platform
A free first-pass approach for spotting idle compute, oversized VMs, storage waste, and quick Azure savings opportunities.

A Practical Azure Bicep Landing Zone Starter Kit for Small Teams
How a compact Bicep landing-zone starter kit helps teams standardise naming, tagging, environments, monitoring, and budgets before cloud sprawl sets in.

How an Azure Log Analytics Dashboard Helps Teams Find Root Cause Faster
A practical guide to using Azure Log Analytics exports, severity trends, affected work items, and KQL starter queries to shorten incident reviews.
