★ First page of Microsoft's 100,000-partner directory, sorted by responsiveness✓ Microsoft Solutions Partner — Security, Modern Work, Infrastructure, App Innovation, Data & AI · Support Services designation● Microsoft partner since 2006◆ 1,100+ organizations under management

How to Optimize Azure Cloud Spend: Right-Sizing and Commitment Rules

2026-10-11·IT Partner·Licensing and cost guidesNewAzureCostHow-to

Where does the Azure bill of a 10-to-500-person organization go, and in which order should you cut it? Compute nobody deallocated, disks nobody attached, blobs in the wrong tier, and commitments bought before right-sizing. This guide gives the threshold and the decision rule for each lever: when a VM is a resize candidate, when a workload has earned a reservation, when a savings plan fits, which tier a blob belongs in, and what to automate so the bill stays down.

The short answer: remove waste first, commit second, never the other way round

Azure cost work has an order because each step changes the input to the next: a reservation bought for an oversized VM locks in the waste for a year.

Order Lever Decision rule Tool
1 Deallocate what does not need to run Any VM idle outside business hours is scheduled off VM auto-shutdown; start and stop automation
2 Delete orphans Unattached disks, unused public IPs, old snapshots and idle gateways older than 30 days Azure Advisor, Resource Graph
3 Right-size Resize only on 30 days of CPU, memory and disk metrics that include a month-end Azure Monitor, Advisor
4 Tier storage Lifecycle rules by last-modified age, respecting the early-deletion clocks Blob lifecycle management
5 Apply Azure Hybrid Benefit Every Windows Server or SQL Server VM where you hold eligible licenses VM configuration
6 Reserve the floor Only resources unchanged for 90 days after steps 1 to 5 and staying 12 months Reservations
7 Cover the variable rest A compute savings plan sized to the lowest hourly spend Savings plans
8 Keep it fixed Budgets, anomaly alerts, Azure Policy on SKUs, tags and regions Cost Management, Azure Policy

Azure consumption is metered by Microsoft and billed to you; nothing below changes that. What changes is how much of it is waste.

Rule 1: a stopped VM still bills unless it is deallocated

Microsoft's state table is unambiguous. A VM in the Running state bills. A VM shut down from inside the guest operating system, or powered off through the API, shows Stopped (Allocated) and still bills for the cores it holds. Only Stopped (Deallocated), the state the portal's Stop button and the deallocate command produce, stops the compute meter. Managed disks and public IP addresses keep billing in every state.

The arithmetic: a VM that runs all month consumes about 730 hours. A development or test VM that runs 7 a.m. to 7 p.m. on weekdays consumes about 260. Scheduling it off removes roughly 470 hours of compute from the meter every month and changes nothing else about it.

Decision rule: every nonproduction VM gets an auto-shutdown time on day one, and a start schedule if people need it in the morning. For production, ask whether the workload is really a 24-hour one; a file server for a single time zone often is not.

Nonproduction also qualifies for Azure Dev/Test pricing when the users hold Visual Studio subscriptions: discounted rates on Windows VMs, Azure SQL Database, App Service, Logic Apps and HDInsight, restricted to development and testing with no uptime service level. Put dev and test in their own subscription under that offer.

Rule 2: Advisor's low-use flag is a candidate list, not a verdict

Azure Advisor's cost recommendations flag virtual machines and scale sets to resize or shut down. By default it evaluates the last seven days of CPU and outbound network utilization and recommends shutting down resources that were not used at all in that window. The look-back can be set per subscription to 14, 21, 30, 60 or 90 days.

Treat the list as candidates and apply these checks before touching anything:

  1. Extend the look-back to at least 30 days so a month-end peak is inside the window.
  2. Add memory through the Azure Monitor agent; Advisor's VM rule looks at CPU and network, and a SQL Server or file server idles its CPU while holding its memory.
  3. Confirm the owner and the maintenance window; a resize is a restart.
  4. Move down one size in the same family, or to a newer family at the same size, and watch for 14 days.
  5. For a VM busy an hour a day, a burstable size beats a smaller fixed size.

Decision rule: resize when 30 days of metrics show the VM never used more than half of its CPU and memory outside a maintenance job; otherwise leave the size alone and schedule it instead.

Rule 3: orphans — disks, IPs, snapshots and gateways

Resources that outlive the VM they served keep billing. Advisor flags unattached managed disks, unused public IP addresses, idle virtual network gateways and ExpressRoute circuits; snapshots and old backup recovery points need your own query.

Monthly routine:

  1. Run the Advisor cost list and a Resource Graph query for disks with no owning VM.
  2. Tag each find with a deletion date 14 days out and the last known owner.
  3. Delete on the date unless someone claimed it; snapshot a disk first if a restore request is plausible.
  4. Review Recovery Services vault retention: a daily backup kept 365 days on a test VM is a line nobody meant to buy.

Decision rule: an unattached disk older than 30 days with no tag is deleted after the 14-day notice. No exceptions list; an exception is a tag.

Rule 4: blob tiers by access pattern, with the early-deletion clock in mind

Blob storage has four access tiers, and the cheaper tiers charge for early deletion and for reads:

Tier Fits Minimum days before deletion or a move is charged in full Retrieval
Hot Data read or written often None Immediate
Cool Data kept at least 30 days and read rarely 30 Immediate, with a read charge
Cold Data kept at least 90 days and read very rarely 90 Immediate, with a higher read charge
Archive Data kept at least 180 days that nobody needs within a day 180 Offline; rehydration takes up to 15 hours at standard priority, and under an hour at high priority for blobs under 10 GB

Deletion before the minimum is charged for the remaining days: a cool blob deleted after 20 days pays for 10 more.

Lifecycle rule for a typical file and log estate: cool 30 days after last modification, cold at 90, archive at 180 for anything under a retention obligation, delete when retention ends. Decision rule: never archive anything with a restore expectation shorter than a day, and never tier a container whose files are rewritten daily.

Rule 5: Azure Hybrid Benefit before any reservation

Azure Hybrid Benefit removes the Windows Server or SQL Server software meter from a VM when you hold Windows Server Standard or Datacenter core licenses, or SQL Server Standard or Enterprise core licenses, with active Software Assurance or a qualifying subscription. CSP subscription licenses qualify; perpetual licenses bought through CSP carry no Software Assurance and do not. You apply it in the VM's configuration (or the SQL virtual machines resource), you attest to the license yourself, and Microsoft reserves the right to audit, so keep the agreement, the core counts and the Software Assurance end date on file.

Do this before reservations because a VM reservation covers compute only, never the Windows or SQL software charge; the benefit and the reservation stack. The core minimums, the conversion ratios and the evidence to keep are in Azure Hybrid Benefit explained.

Rule 6: reserve the 90-day-stable floor, then cover the rest with a savings plan

Microsoft's reservation recommendations look at hourly usage over 7, 30 or 60 days, simulate costs with and without reservations at different quantities, and suggest the quantity with the greatest saving. If a resource is shut down regularly, the simulation finds no saving and makes no recommendation, which is the engine telling you to schedule, not reserve.

Decision rules:

  • Reserve a VM size, SQL tier or storage block only when it has run unchanged for 90 days after right-sizing and will stay in place for the full term. One-year terms unless the workload has already survived three years without change.
  • Reservations can be refunded up to USD 50,000 of canceled commitment in a rolling 12 months, and today exchanged within a product family. From February 1, 2027, reservations bought for services a savings plan covers, including virtual machines, App Service and SQL Database, can no longer be exchanged; reservations bought before that date keep one final exchange. After that date, buy a reservation only for something you are certain about.
  • Size a compute savings plan at the lowest hourly compute spend observed across the last 30 days after the reservations are applied, because a savings plan cannot be canceled, refunded or exchanged and unused hourly commitment expires.

How the two commitments apply hour by hour, who can buy them under CSP, and the trade-in path from reservations to a savings plan are in Azure reservations, savings plans and pay-as-you-go.

Rule 7: budgets, anomaly alerts and policy so it stays fixed

  • Anomaly detection runs at subscription scope in Cost Management: each day's spend is compared with a forecast trained on the previous 60 days, so a weekly batch job is expected rather than flagged, and the evaluation runs 36 hours after the end of the day. Turn on an anomaly alert per subscription with two recipients.
  • Budgets: one per subscription, with alerts at a fraction of the budget and when the forecast crosses it, sent to the owner and to finance.
  • Azure Policy: allowed VM sizes, required tags (Owner, Environment, CostCenter) at creation, allowed regions. Policy at deployment time beats a retroactive tagging project.
  • A monthly 30-minute review: the anomaly list, the orphan list, reservation utilization, and the three largest month-over-month changes.

The commitments and the metered usage stay on your Microsoft invoice; the Managed Azure FinOps and Cost Guardrails service runs this routine for a fixed monthly fee when nobody internal owns it.

A worked order for a 20-VM estate

Week Work Output
1 Inventory: every VM with owner, role and hours needed; every disk and public IP with its use; a Dev/Test subscription for nonproduction Owner list; orphan list
2 Auto-shutdown on nonproduction; delete tagged orphans after notice; lifecycle rules on blob containers Fewer meters
3 to 6 Azure Monitor agent on every VM; 30 days of metrics; Hybrid Benefit applied where licenses exist Right-size candidates
7 Resize candidates one size down; watch 14 days Stable estate
8 to 12 90-day stability clock on the remaining VMs; anomaly alerts, budgets, Azure Policy Governance in place
Month 4 Reserve the unchanged floor on one-year terms; savings plan on the rest Commitments matched to the real estate

No two estates produce the same saving, which is why this article gives rules and not a number.

Frequently asked questions

Does deallocating a VM delete anything?

No. Stopped (Deallocated) releases the compute and stops that meter; the managed disks and the configuration stay, and the VM starts again from the portal. A dynamic public IP can change on restart, so use a static one where the address matters.

Should I buy a reservation or a savings plan?

A reservation for a resource that has run unchanged for 90 days and will stay for the term; a compute savings plan for a fleet that changes shape but keeps a steady hourly floor. Reservations can be refunded within a USD 50,000 rolling limit; savings plans cannot be canceled.

When should data go to the archive tier?

When it must be kept for at least 180 days, is read almost never, and a restore can wait up to 15 hours. Anything with a faster restore expectation stays in cool or cold.

What do I need for Azure Hybrid Benefit?

Windows Server or SQL Server core licenses with active Software Assurance or a qualifying subscription, including CSP subscription licenses. Perpetual CSP licenses do not qualify, and you attest to eligibility yourself.

Sources

Key takeaways

  • Work in order: deallocate, delete orphans, right-size on 30 days of metrics, tier storage, apply Hybrid Benefit, then reserve the 90-day-stable floor and cover the rest with a savings plan.
  • Only Stopped (Deallocated) stops the compute meter; a VM shut down inside the guest still bills, and disks and public IPs bill in every state.
  • Azure Advisor's seven-day low-use flag is a candidate list; extend the look-back to 30 days and add memory metrics before resizing.
  • Cool, cold and archive blobs carry 30-, 90- and 180-day early-deletion clocks, and archive rehydration takes up to 15 hours at standard priority.
  • Reservations can be refunded up to USD 50,000 per rolling 12 months and, from February 1, 2027, can no longer be exchanged for savings-plan-covered services; savings plans are final.
  • Anomaly alerts, budgets and Azure Policy at deployment time are what keep the bill down after the cleanup.

Want the rules applied to your subscriptions with the numbers filled in? The Azure Cost Optimization and FinOps Assessment inventories the estate, runs the right-sizing and orphan passes, applies Hybrid Benefit where you hold licenses and sizes the reservation and savings plan layer, as a fixed-price project quoted in writing before work begins; the Azure consumption and any commitments stay on your own Microsoft invoice.

Didn’t find your question?

Ask it here. A real engineer answers by email within one business day — and if it’s a good one, it becomes part of this page so the next person finds it.

Answered by a person, one time, to your inbox. Nothing you type here is published without a human reviewing and anonymizing it first.

Questions this article didn’t answer?

Thirty minutes with Mike — our CEO, not a sales rep. Bring the hard version of the question.