Unattached storage
Managed disks that outlive their virtual machines are one of the most common sources of silent Azure spend.
- Unattached disks
- Disks still billing on deallocated VMs
- Orphaned snapshots
Varcio is an Azure cost management and optimization tool that connects through a Service Principal, reads Cost Management, Resource Graph and Azure Monitor across your subscriptions and resource groups, and runs 73 Azure detectors. Every finding is costed and ranked, and approved fixes such as deallocating idle VMs run behind protected tags, dry-run and full audit logging.
73 Azure detectors look across subscriptions and resource groups for resources that bill without delivering value, and put a monthly cost on each one.
Azure estates tend to sprawl along organisational lines. Each team gets a subscription or a resource group, resources are created quickly, and cleanup depends on whoever remembers what a disk or IP address was for. Managed disks and public IPs can outlive the VMs they served, and Microsoft documents that a VM shut down from inside the guest operating system stays allocated and is still billed for compute.
Varcio treats each of these as a costed finding with an estimated monthly saving, a confidence score, an effort level, a risk note and a recommended action. Ranking on those scores puts safe, high-value work at the top of the queue.
Managed disks that outlive their virtual machines are one of the most common sources of silent Azure spend.
Public IP addresses that are provisioned but no longer associated with a running workload.
Azure SQL databases that remain provisioned while showing no meaningful activity in Azure Monitor.
Compute that is paid for but not used, including App Service plans that no longer host any workload.
Spend tracked across subscriptions and resource groups, with anomaly detection, forecasting, budget enforcement and policy guardrails, plus log retention that costs more than it needs to.
Steady usage suited to reservations or savings plans, licences you already own but are not applying, and 23 cross-cloud detectors that catch duplication between Azure and your other clouds.
Each Azure detector uses the signals that answer its question. Not every signal applies to every resource type; these are the kinds of evidence Varcio reads.
The Cost Management Query API and, for EA and MCA billing, Cost Management FOCUS exports show cost that is moving without a matching change in demand.
Azure Resource Graph supplies current inventory and configuration, which is how unattached disks, unused public IPs and disks on deallocated VMs are found.
Azure Monitor metrics identify idle SQL databases, idle VMs and App Service plans with no workload.
Azure Advisor recommendations and reservation utilisation are read alongside Varcio’s own detectors.
Microsoft Graph provides Entra ID context, and security settings are evaluated alongside cost, so findings carry their access context.
A Service Principal with an encrypted secret, Azure’s own inventory and monitoring APIs, and a clear boundary between reading and acting.
You create a Service Principal in Microsoft Entra ID and grant it read access to the subscriptions you want analysed. Varcio stores the client ID and client secret encrypted. You can scope, rotate or revoke the credential from Azure at any time.
Findings, forecasts, anomaly detection, allocation, tag governance and Apex questions all run on read-only credentials with no time limit, so you can evaluate and operate Varcio without granting write access.
When you want Varcio to act, you grant write roles to the same Service Principal. Varcio checks those write permissions separately from the read connection, and every change still passes the guardrails below.
Azure is one of the three clouds, with AWS and Google Cloud, where Varcio’s automation goes deepest.
Once idle and oversized resources are gone, reservations and savings plans reduce the rate you pay for steady Azure usage.
Microsoft describes savings of up to 72% for reservations and up to 65% for savings plans compared with pay-as-you-go prices. Those ceilings depend on term, region and service, and a commitment only saves money if the usage it covers is still running when the term ends.
That is why order matters. Microsoft’s own guidance notes that Advisor rightsizing estimates do not account for existing reservations or savings plans, so resizing and committing need to be considered together. Varcio models commitment options from Azure retail prices and your usage, shows projected savings and break-even periods, and supports a dry-run simulation. Reservations can be purchased through Varcio after approval. Savings plans are modelled only, and Varcio does not buy Azure commitments automatically.
From a ranked finding to a completed, audited change, inside the guardrails you set.
Deallocating an idle VM is the classic Azure saving: a deallocated VM releases its hardware lease and stops accruing compute charges, while disks and networking continue to bill. Varcio can carry out that deallocation for you, inside an execution window and with protected resources excluded.
Requests made through Apex come back as a plan listing the affected resources and expected saving, and run only after someone types APPROVE with a single-use token or approves in Slack or Teams. Afterwards Varcio tracks realised savings against subsequent spend, not just the savings it identified.
These controls apply to all remediation Varcio executes, on every cloud, alongside the write permissions you grant and Varcio verifies before anything changes.
Resources carrying a protected tag are excluded from every remediation run, so a production database or a regulated workload cannot be changed by a rule that happens to match it.
Approved changes run only inside the windows you define, which keeps stops, deletions and resizes away from peak traffic, release trains and change freezes.
Before a live run, Varcio checks for step-up approval on high blast-radius changes, a rollback success floor, and a maintenance window for larger blast radius. If a gate is not met, the run drops to a dry run instead.
Any action can be previewed without making live API calls, and individual rules can be held to dry run. Per-rule action caps, a maximum number of actions per run and a monthly action budget bound how much changes at once.
Write actions requested through Apex come back as a plan that runs only after an authorised person types APPROVE, backed by a single-use token, or approves from Slack or Microsoft Teams. Autopilot runs in observe, suggest or autopilot mode. In autopilot mode it can act without a person above a confidence threshold, including deleting unattached volumes and orphaned snapshots, but resources that look production, public, critical or deletion-protected go to approval instead.
Every action records who requested it, who approved it, what changed and when, so finance, security and auditors can reconstruct any change after the fact.
Microsoft Cost Management and Azure Advisor are included with Azure and do a great deal well. Here is what each provides, according to Microsoft Learn.
Cost analysis in the Azure portal and Power BI, budgets on every supported scope, anomaly alerts for subscriptions, scheduled alerts, exports and the Cost Details API, plus tag inheritance and cost allocation rules that split shared costs.
Cost recommendations, updated daily, to shut down or resize underutilised VMs and scale sets based on CPU, memory and outbound network, with lookback periods configurable from 7 to 90 days and estimated savings.
Commitment offers purchased in the Azure portal. Reservation utilisation alerts in Cost Management help you track whether commitments are being used.
| Capability | Azure native tools | Varcio |
|---|---|---|
| Cost visibility | Cost analysis across billing accounts, management groups, subscriptions and resource groups | One normalised ledger across Azure, AWS, Google Cloud, OCI and Kubernetes |
| Waste and rightsizing | Advisor shutdown and resize recommendations for VMs and scale sets | 73 Azure detectors, including unattached disks, unused public IPs, idle SQL databases and zero-workload App Service plans |
| Allocation | Tag inheritance and cost allocation rules for shared costs | Tag governance, cost allocation and showback across every connected cloud |
| Budgets and alerts | Budget, anomaly, scheduled and reservation utilisation alerts | Anomaly detection, forecasting, budget and policy guardrails, with alerts in Slack or Teams |
| Commitments | Reservations and savings plans purchased in the Azure portal | 1- and 3-year reservation and 1-year savings plan modelling, with approval-gated reservation purchases |
| Acting on findings | Changes made in the portal, CLI or infrastructure code; budgets can notify action groups | Plan confirmed with APPROVE, protected tags, execution windows, rollout-safety gates, dry-run, action caps and audit log |
| Pre-merge cost review | Not covered by the tools listed here | PR cost review prices Terraform changes before they merge |
Scroll sideways to see the full table.
For an organisation that runs almost entirely on Azure and has a FinOps function comfortable in Cost Management, the native tooling covers reporting, budgets and allocation well. Varcio adds value when Azure is one of several clouds, when findings need to travel to the team that owns a resource group, and when changes need an approval trail.
Varcio puts Azure in a single ledger with AWS, Google Cloud, OCI and Kubernetes, runs cross-cloud detectors across them, ranks every finding by savings, confidence and effort, reviews infrastructure pull requests for cost before merge, and handles approvals in Slack or Teams. Apex answers spend questions in plain language and turns requests into governed plans.
Cost is shared work. Each team sees the same findings and ledger, framed for the decisions it owns.
Receives findings for the subscriptions and resource groups it owns, with evidence and a recommended action, and sees cost deltas on Terraform pull requests before merge.
Allocates Azure cost through tag governance and showback in the same ledger as other clouds, enforces budgets and policies, and reports identified against realised savings.
Approves deallocations and other changes from Slack or Teams, with protected tags and execution windows keeping critical workloads out of scope.
Uses Apex to ask where Azure spend is going and why it changed, and plans a ranked savings backlog alongside other engineering priorities.
Start by deleting unattached disks and unused public IP addresses, and deallocating or removing idle VMs. Then look at idle SQL databases and App Service plans with no workload, and rightsize the VMs that remain. Cover steady usage with reservations or savings plans once sizing is settled, and use budgets, policies and tag governance so the waste does not return. Varcio finds and ranks these opportunities with 73 Azure detectors.
Microsoft Cost Management is where you analyse, allocate, budget and export Azure costs. Azure Advisor generates recommendations, including cost recommendations to shut down or resize underutilised VMs and scale sets. Cost Management pulls Advisor cost recommendations in so they appear alongside your spend.
It does not need to. Many teams keep using Cost Management for Azure-native reporting. Varcio adds a multi-cloud ledger, 73 Azure detectors plus 23 cross-cloud detectors, costed and ranked findings, PR cost review, and approval-gated execution with a full audit trail.
Varcio connects through a Service Principal with an encrypted client ID and secret, and the whole analytical product runs on read-only access for as long as you like. If you want Varcio to act, you grant write roles to the same Service Principal and Varcio verifies them separately. Every write action is protected by tag exemptions, execution windows, rollout-safety gates, dry-run, approval or Autopilot limits, and audit logging.
It depends on the state. According to Microsoft, a VM shut down from inside the guest OS or with the PowerOff operation is Stopped (allocated) and still billed for compute. A deallocated VM releases its hardware and is not billed for compute, although disks and networking continue to incur charges.
Varcio models 1-Year and 3-Year reservations and 1-Year savings plans from Azure retail prices and your usage, shows projected savings and break-even periods, and supports a dry-run simulation. Reservations can be purchased through Varcio after explicit approval, with the purchase recorded in the audit log. Savings plans are modelled only, and Varcio does not buy Azure commitments automatically.
The Cost Management Query API and Cost Management FOCUS exports for EA and MCA billing, Azure Resource Graph for inventory and configuration, Azure Monitor for utilisation, Azure Advisor recommendations, reservation utilisation, and Microsoft Graph for Entra ID context.
Findings appear from the first scan after you connect a subscription. The free trial runs entirely on read-only access.
Connect a read-only Service Principal, see costed findings across your subscriptions, and grant write access only when you are ready.