πΈ The CFO walks into the room with a spreadsheet. Your Azure bill has doubled in six months. Everyone's looking at the cloud team. And nobody can clearly explain why.
Sound familiar? It's more common than you think. And here's the thing in most of the Azure environments I've worked in, the problem isn't the features you're running. It's the waste you're not looking at. Idle VMs, forgotten resources, licences you already own but are paying for twice, storage in the wrong tier.
This is the 90-day playbook for cutting your Azure bill by 40% β without removing a single feature, without a consultant, and without a six-month project. Let's get into it. π
of average Azure spend is pure waste β idle, oversized, or forgotten resources
of FinOps teams now manage AI workload spend β the fastest-growing cost category
max saving possible on reserved VMs vs pay-as-you-go β most teams never claim it
is genuinely all it takes to see a 40% reduction β if you follow the right order
Azure is designed to be easy to turn on and very easy to forget to turn off. Every project adds a little more. One VM here for a proof of concept. One storage account there for a migration. A PaaS service that auto-scales up, but never back down. Over 12 months, that's how a manageable bill becomes a problem.
In 2026, the pattern is even more pronounced because AI workloads are now in the mix. Azure OpenAI, Cognitive Services, and Azure AI Foundry are consumption-based β and without guardrails, a single misconfigured agent or a forgotten endpoint can burn through budget in days.
The good news? Most Azure cost problems are not technical. They're visibility problems. Once you can see where money is going, fixing it is actually straightforward.
Three phases. Each one builds on the last. Don't skip ahead.
Stop the bleeding. Find out where money is going before you touch anything. You can't optimise what you can't see.
Changes that cost nothing and save immediately. Right-sizing, auto-shutdown, Hybrid Benefit, orphan cleanup β all zero-risk.
Lock in structural savings with reservations, storage policies, and budget automation that keeps costs from creeping back.
The order matters. Teams that jump straight to Reserved Instances without first understanding their usage patterns often over-commit and end up paying for capacity they don't use.
Go to Portal β Cost Management + Billing β Budgets β Add. Set a budget at your current monthly average and configure email alerts at 80% and 100%. This sounds basic β but you'd be surprised how many teams are flying blind without one. This one step alone has saved teams from shock bills caused by runaway AI endpoints or forgotten dev environments.
Go to Portal β Azure Advisor β Cost. Azure Advisor analyses your actual usage and surfaces actionable recommendations β underutilised VMs, unattached disks, right-sizing suggestions, and reservation opportunities. It does the analysis for you. Most teams open this for the first time and immediately find 10β15% of their spend flagged as reducible.
Use Azure Policy to enforce tags like Environment, CostCenter, and Owner on all new resources. Without this, Cost Management gives you totals but not owners. Once you can attribute costs to a team or project, the conversation about who's responsible for reducing them becomes much simpler.
Go to Cost Management β Cost Analysis β Group by: Service. Then Group by: Resource. Your top 5 resources are almost certainly driving 70β80% of your total spend. Write them down. Everything in Phase 2 targets this list specifically. By Day 30, you should know exactly where your money is going β if you don't, you're not ready for the next phase.
Run this Azure CLI command to pull a fast breakdown of spend by resource group β your starting point for the visibility sprint:
π‘ From experience: The Advisor cost list often surfaces VMs with 0β5% CPU utilisation that have been running for months. I've seen single VMs costing $800+/month with barely any load on them. That's usually your first conversation with whoever owns that workload.
These four changes don't remove features, don't break anything, and don't require approval beyond your own team. They're the fastest path to a measurably lower bill.
Azure Advisor flags VMs running at under 5% CPU for 7+ days. Use its recommendation directly β it suggests the specific SKU to resize to. Typical saving: 15β25% on compute. This is usually the single largest line item in any cost review.
π Portal β Azure Advisor β Cost β VMs with low utilisation
Dev and test VMs running 24/7 cost the same as production. A simple weekday schedule (8amβ8pm) cuts those resource costs by 50β70%. Use Azure Automation or the built-in Auto-shutdown feature directly on each VM β it takes 2 minutes per VM to configure.
π VM β Operations β Auto-shutdown β Enable
If your organisation has existing Windows Server or SQL Server licences through Software Assurance, you can apply them to Azure VMs instead of paying the Windows licence cost again. This single toggle can cut those VM costs by 40β85%. Most teams don't know it exists. Check every Windows VM you have.
π VM β Configuration β Azure Hybrid Benefit β Enable
Managed disks attached to deleted VMs, unused Public IPs, empty App Service Plans, unattached NICs β these sit there billing you quietly. In a medium-sized environment this typically surfaces $500β$2,000/month in pure waste. Use the Resource Graph query below to find them in minutes.
π Portal β Resource Graph Explorer β run query below
Paste this directly into Azure Resource Graph Explorer β it shows every managed disk that isn't attached to a running VM:
β οΈ Before deleting: Always verify with the resource owner before removing anything. Some disks are intentionally retained for backup purposes. The query finds candidates β you make the final call.
Now that you understand your real usage patterns from Phase 1 and have removed the obvious waste in Phase 2, you're ready for the commitment layer. This is where the largest long-term savings come from.
Both commit you to Azure in exchange for a discount. The key difference: Reserved Instances (RIs) lock you into a specific VM type and region, saving up to 72%. Savings Plans are flexible across VM types and regions, saving up to 65%. For most teams, I'd recommend starting with a 1-year RI on your top 2β3 most stable, predictable workloads β the ones that have been running the same size for 6+ months. Don't commit to workloads you're still actively resizing or experimenting with.
π Portal β Cost Management + Billing β Reservations β Add
Blob data sitting in the Hot tier that hasn't been accessed in 90+ days should not be in Hot tier. The savings stack up fast: Hot β Cool saves ~50%. Cool β Archive saves up to 90% vs Hot. A lifecycle policy is a one-time configuration that runs automatically forever. For teams with large storage footprints (logs, backups, media, telemetry), this alone often accounts for 10β15% of total bill reduction.
π Storage Account β Data management β Lifecycle management β Add rule
The final step is making sure costs can't creep back without anyone noticing. Set a budget alert at 80% that emails the team. Set a 100% alert that triggers an Azure Automation runbook to pause non-critical resources automatically. This creates a feedback loop β you'll know about a cost anomaly before the end of the month, not after. Combined with proper tagging from Phase 1, you'll know exactly which team or project caused it.
π Cost Management β Budgets β Add β Alert conditions β Action group
The 40% figure isn't pulled from the air β it's the combined effect of layering these strategies. No single one gets you there. But together, applied in the right order on a typical Azure environment, they consistently hit that range within 90 days.
The biggest savings (Hybrid Benefit, Reserved Instances) are often the easiest to claim technically. The barrier is awareness, not effort. Most teams I've spoken to had no idea these options existed or applied to them.
| Tactic | Typical Saving | Effort | Phase |
|---|---|---|---|
| Right-size idle VMs | 15β25% | Low | Days 31β45 |
| Auto-shutdown dev/test | 50β70% on those VMs | Very low | Days 31β35 |
| Azure Hybrid Benefit | 40β85% on licensed VMs | Very low | Days 35β40 |
| Orphaned resource cleanup | $500β$2K+ one-time | Low | Days 31β45 |
| Reserved Instances (1-yr) | 30β72% | Medium | Days 61β75 |
| Storage tiering (lifecycle) | Up to 90% on cold data | Low | Days 61β70 |
If someone handed me access to an unfamiliar Azure tenant and said "cut the bill" β here's exactly where I'd look first, in this order:
Azure Advisor β Cost tab, sorted by impact. This is usually where I spend the first 30 minutes. Azure has already done the analysis β I'm just reading its findings and prioritising by savings amount. Nine times out of ten there are VMs on this list that the team has completely forgotten about.
Every Windows VM β does it have Hybrid Benefit enabled? I check this on every single Windows VM. The toggle is there, the licence is already paid for, and it's the lowest-effort saving in Azure. If a team has 20 Windows VMs and none of them have Hybrid Benefit on, that's often 20β30% of their compute bill that's recoverable in an afternoon.
Storage account tiers β are they actually configured? Teams with logging, telemetry, or backup workloads often have terabytes sitting in Hot storage that's never read. A quick check of access patterns via the storage metrics in Azure Monitor often reveals entire storage accounts that haven't had a read request in 60+ days. Lifecycle policies fix this permanently.
π If you only do one thing today: Open Azure Advisor β Cost. Read the list. Share the top 5 items with whoever owns those resources. That conversation alone usually unlocks more action than any formal cost review meeting.
Cloud costs feel overwhelming when you're looking at a bill with no clear story. The moment you apply the visibility lens β Cost Analysis, Azure Advisor, Resource Graph β the bill suddenly has a narrative. You see exactly what's driving it, and 90% of the time, the fixes are simpler than you expected.
A 40% reduction in 90 days is realistic. I've seen it happen consistently when teams follow the right sequence: visibility first, quick wins second, commitments third. Skip the order and you end up over-committing on Reserved Instances for workloads that were about to be right-sized anyway β and suddenly that "saving" becomes a loss.
Start with Day 1. Open Azure Advisor. The rest follows from there. π