Last reviewed: 29 July 2026. Azure prices and features vary by region, agreement and service. Validate every recommendation against workload performance, resilience, security and support requirements before changing production.
The safest way to reduce an Azure bill is to optimise in this order: visibility, waste, architecture, then commitment discounts. Buying a reservation before removing idle resources can lock an organisation into paying efficiently for capacity it did not need. This 30-day Azure cost optimisation checklist gives a small IT team a repeatable audit with owners, evidence and rollback points.
The process follows Microsoft’s FinOps workload optimisation guidance, which recommends starting with native tools such as Cost Management and Azure Advisor, tracing costs to business value, and tuning or stopping wasteful usage.
On this page
- The 30-day checklist at a glance
- Before day one: set guardrails
- Week 1: understand and allocate the bill
- Week 2: remove waste without breaking production
- Week 3: optimise rates only after usage
- Week 4: make savings durable
- Worked example: a hypothetical $12,000 monthly bill
- Metrics worth keeping
- Common Azure cost optimisation mistakes
- Frequently asked questions
- Bottom line
The 30-day checklist at a glance
| Week | Goal | Main outputs |
|---|---|---|
| 1 | Make spend explainable | Baseline, owners, allocation coverage, budgets and anomaly route |
| 2 | Remove obvious waste | Approved rightsizing, shutdown, deletion and storage actions |
| 3 | Improve rates and architecture | Measured commitment proposal, Hybrid Benefit review and design backlog |
| 4 | Prevent the bill growing back | Policies, dashboard, monthly cadence and benefit validation |
Before day one: set guardrails
Create a small working group with a cloud engineer, application owner and finance or procurement representative. Record the audit period, subscriptions in scope, business-critical exclusions, maintenance windows and the person authorised to accept risk. Export the current bill and usage data so savings can be measured against a fixed baseline rather than a screenshot that changes every day.
Every action should have four fields: owner, expected monthly benefit, validation test and rollback. A cheaper but unavailable application is not an optimisation. Security logging, backups and disaster-recovery capacity also need explicit protection from indiscriminate cuts.
Week 1: understand and allocate the bill
- Choose the baseline. Use at least the last 30 days and preferably 90 days to account for payroll runs, month-end processing and irregular jobs.
- Group spend. In Cost Analysis, review cost by subscription, resource group, service, location and resource. Separate production, non-production, shared platform and security costs.
- Find unallocated cost. List resources with no owner, application, environment or cost-centre mapping. Do not invent tags after the fact without confirming ownership.
- Enable tag inheritance where appropriate. Microsoft’s cost planning guidance explains how tag inheritance can supplement the Azure hierarchy in cost records.
- Create budgets and alert routes. Set alerts at useful thresholds and name the person who investigates them. A shared mailbox with no operating procedure is not a control.
- Review anomalies. Cost Management anomaly detection is available in Cost Analysis for subscriptions. Compare anomalies with deployments, scaling events and Marketplace changes.
Finish week one with an allocation percentage: the share of monthly cost mapped to an accountable owner and workload. Do not block useful engineering while chasing 100%, but make “unknown” visible.
Week 2: remove waste without breaking production
Start with Azure Advisor’s cost recommendations. Microsoft calls Advisor the first stop for existing-resource optimisation, but recommendations are inputs, not automatic approvals. For example, Microsoft warns that some VM rightsizing estimates do not account for reservations or savings plans and can overstate the benefit. Review the VM recommendation caveats before acting.
| Check | Evidence required | Safe action |
|---|---|---|
| Idle or oversized VM/VMSS | CPU, memory, disk and application latency across a representative period | Resize one tier, test, then repeat; or deallocate confirmed non-production capacity |
| Stopped but allocated VM | Power state and owner confirmation | Deallocate through Azure; check disks and other resources that continue billing |
| Unattached disk, snapshot, IP or network component | Dependency and recent-use check | Quarantine/tag first, then delete under change control |
| Old backup or snapshot | Retention policy, legal hold and restore test | Apply approved lifecycle and retention settings |
| Low-use non-production service | Required hours and startup dependencies | Schedule shutdown; avoid automatic start on holidays when unnecessary |
| Storage in an expensive tier | Access frequency, retrieval time and transaction profile | Apply lifecycle rules to eligible data |
Stopping compute does not necessarily stop storage, backup, licence or networking charges. Confirm the billing model for each service. For variable workloads, evaluate autoscaling, serverless tiers or scheduled capacity rather than a permanent downsizing that harms peak performance.
Week 3: optimise rates only after usage
Once the waste actions are reflected in usage, review rate discounts. Azure reservations exchange flexibility for a commitment to eligible resource usage. Azure savings plans commit to an hourly spend and can apply across eligible compute. Microsoft’s savings plan overview says unused hourly commitment expires and plans cannot be cancelled or refunded, so base a purchase on stable measured consumption.
- Compare one-year and three-year terms, payment options, scopes and the operational likelihood of migration.
- Use Advisor or the purchase experience for recommendations, then challenge the assumed baseline.
- Check current reservation utilisation and coverage before buying more.
- Review Azure Hybrid Benefit eligibility for Windows Server, SQL Server and supported Linux subscriptions. Confirm licence ownership and mobility terms with the licensing owner.
- Price Azure Dev/Test offers where workloads and subscriptions qualify.
- Avoid long commitments to a service scheduled for retirement or redesign. Microsoft’s reservation guidance specifically cautions against committing to deprecated services.
For architecture changes, create a backlog rather than forcing everything into 30 days. Candidates might include managed databases, autoscale, serverless compute, storage redesign, reducing cross-region transfer, or moving interruptible work to Spot VMs. Each item needs a performance and reliability case as well as a cost estimate.
Week 4: make savings durable
- Validate realised benefit. Compare actual cost after the change, normalised for demand. Do not report an Advisor estimate as booked savings.
- Deploy policy controls. Use Azure Policy to audit required tags, allowed locations or SKUs where the rule is operationally justified. Start in audit mode.
- Publish a small dashboard. Show total cost, forecast, allocation coverage, top changes, anomalies, commitment utilisation and validated savings.
- Set a monthly cadence. Review anomalies weekly, waste monthly, commitments quarterly and architecture during service planning.
- Keep an exception register. Record why an expensive resource exists, who approved it and when it will be reviewed.
Microsoft’s free FinOps workbooks can centralise Advisor recommendations, idle-resource indicators, commitment usage, Hybrid Benefit opportunities and policy compliance. They still require appropriate Azure permissions and human validation.
Worked example: a hypothetical $12,000 monthly bill
This example demonstrates the arithmetic; it is not a promised saving or an Azure quote. Assume the baseline contains $6,000 VM compute, $2,400 databases, $1,800 storage, $1,000 network and $800 other services. The team identifies separate, non-overlapping targets:
| Action | Explicit assumption | Estimated monthly change |
|---|---|---|
| Rightsize production VM subset | $2,400 subset × 20% after performance testing | $480 |
| Schedule non-production compute | $1,500 subset reduced from 730 to 220 billable hours: $1,500 × (1 − 220/730) | $1,048 |
| Storage lifecycle | $800 eligible data × 25%, after retrieval testing | $200 |
| Database scaling change | $800 eligible workload × 30%, after load testing | $240 |
| Remove confirmed orphan resources | Actual current charges | $250 |
The modelled total is $2,218 per month, or 18.5% of the baseline. Report it first as “identified” benefit. After deployment, compare the invoice and usage-normalised cost to convert it to “validated” benefit. Only then should the team model a reservation or savings plan against the remaining stable demand. This avoids double counting the same compute saving twice.
Metrics worth keeping
- Allocation coverage: percentage of cost mapped to an owner and workload.
- Forecast variance: actual cost versus the approved forecast.
- Unit cost: cost per transaction, customer, device or other business output.
- Validated savings: invoice-supported reduction after normalising for usage.
- Commitment utilisation and coverage: both matter; high coverage with poor utilisation can still waste money.
- Anomaly response time: time from detection to accountable investigation.
A practical cloud audit is also a strong portfolio project. Our guide to system administration projects explains how to document the design, testing and outcome for employers or internal stakeholders.
Common Azure cost optimisation mistakes
- Buying commitments before deleting waste or confirming the future architecture.
- Using CPU alone to resize memory-, disk- or latency-sensitive workloads.
- Deleting unowned resources without a quarantine period and dependency check.
- Counting forecast, negotiated discount and rightsizing against the same baseline.
- Ignoring data transfer, backup, storage transactions, Marketplace and support charges.
- Turning off security logs or resilience controls without risk approval.
- Reporting estimated recommendations as cash already saved.
Frequently asked questions
What is the fastest safe Azure cost saving?
Scheduling confirmed non-production compute outside required hours is often fast and reversible. Test startup dependencies, backups and business schedules first. Deallocate VMs through Azure rather than merely shutting down the guest operating system.
Should I choose a reservation or savings plan?
Reservations can suit stable, specific resource usage and may offer deeper discounts. Savings plans trade some discount for flexibility across eligible compute through an hourly spend commitment. Compare current recommendations, scope, term, exchange rules and the probability of architecture change.
Is Azure Advisor enough for a cost audit?
No. It is an excellent starting point, but it cannot fully understand business value, application dependencies, future migrations or every existing discount. Combine it with Cost Analysis, monitoring, owner interviews and invoice validation.
How often should Azure costs be reviewed?
Route material anomalies as they occur, review waste and forecast monthly, and review commitments at least quarterly and before renewal. High-growth environments may need a weekly operating review.
Bottom line
Make the bill explainable, remove measured waste, improve the workload, then buy commitments against the stable remainder. Preserve evidence and rollback at every step. A one-off cost-cutting sprint creates temporary savings; a monthly FinOps operating habit keeps them.
Related practical guides