Azure Stopped VM Still Charging: Why Stopped Virtual Machines Incur Compute Costs
Understanding the crucial billing difference between operating system shutdown and Azure deallocation
One of the most frequent surprises on a Microsoft Azure invoice is seeing ongoing compute charges for virtual machines that engineering teams believed were turned off. When you shut down a virtual machine from inside the guest operating system (such as initiating a shutdown command in Windows Server or Linux), Azure places the instance in a Stopped state rather than a Deallocated state.
In the Stopped state, Microsoft Azure continues to reserve the underlying physical host CPU cores and memory allocation exclusively for your virtual machine so it can start up instantly. Because that physical compute capacity remains locked to your tenant, Azure bills for the full hourly compute rate of the instance size, in addition to the provisioned OS and data disks.
WasteRadar queries Azure Resource Graph to evaluate the runtime power state across all connected subscriptions. When an instance is detected in the Stopped state without being deallocated, WasteRadar flags the ongoing monthly compute waste and provides the exact portal step or CLI command to transition the VM to the Deallocated state so compute billing drops to zero.