Understand Azure Virtual Desktop costs
Start an Azure Virtual Desktop cost review with a complete month and a resource map. Microsoft separates underlying Azure consumption from licensing. Session host compute is one part of the service: managed disks, profile storage and supporting services can remain chargeable when hosts are deallocated. Keep actual charges separate from estimates, and record which costs your review excludes.
In this guide
Define the desktop service boundary
List the subscriptions and host pools that deliver the desktops under review. Separate personal desktops from pooled desktops and RemoteApp delivery. Include development or recovery pools when they belong to the same service, but identify their purpose so that a reviewer can explain their cost independently. A resource group name alone cannot establish the complete service boundary.
Microsoft names session host VMs, managed disks and network bandwidth as session host cost components. Depending on your deployment, add FSLogix profile storage, App Attach storage, image storage and Azure Monitor logs. Identity infrastructure may support several services. Record its AVD share through an agreed allocation policy instead of charging the entire identity platform to desktops.
Keep licensing visible
Microsoft describes different licensing arrangements for internal commercial use and external commercial use. Internal users need an eligible license; external commercial access has a separate per-user access pricing arrangement. Confirm the arrangement with your licensing owner and the current Microsoft guidance before making a budget.
An Azure consumption export may omit licenses purchased outside that subscription. Show those amounts as a separate line in the service budget, with the source and period. Existing licenses still need an explicit inclusion decision when finance asks for a fully loaded cost. Avoid adding the same license to both an enterprise software allocation and the desktop subtotal.
Choose a consistent measurement basis
Use a previous complete calendar month for the first reconciliation. Record the currency, included subscriptions and date boundaries with the export. Group actual charges by resource and service, then match the resource identifiers to the host pool inventory. Preserve a separate list of costs whose service membership is unresolved.
Keep provider actual cost and calculator estimates in separate columns. Actual cost can already reflect negotiated pricing. Applying another discount to that amount would understate the bill. A partial current month needs a provisional label. Check credits and adjustments against the billing period they describe before interpreting a month-to-month movement.
An illustrative monthly service budget
Assume a single USD billing month with no reserved commitments or savings plans. These invented amounts demonstrate reconciliation; they are not Azure rates or customer results. The compute and disk subtotal is USD 2,700. Adding the other Azure items gives USD 3,600. A separately sourced licensing amount brings the service budget to USD 4,000.
The shared identity amount assumes finance has already approved the USD 100 share. An unresolved allocation would remain outside the attributed subtotal with an explanation. Retain the original shared-service total so that another team can check the allocation and confirm that its own budget does not duplicate it.
Scroll the table sideways on smaller screens. Keyboard: focus the table and use the arrow keys.
| Cost component | Illustrative monthly amount | Measurement source |
|---|---|---|
| Session host compute | USD 2,400 | Azure actual charges |
| Managed disks | USD 300 | Azure actual charges |
| Profile storage | USD 600 | Azure actual charges |
| Monitoring and network | USD 200 | Azure actual charges |
| Approved shared identity share | USD 100 | Documented allocation |
| Azure service subtotal | USD 3,600 | Reconciled scoped charges |
| Separately purchased licenses | USD 400 | Licensing owner records |
| Service budget total | USD 4,000 | Azure subtotal plus licenses |
Account for resource history and gaps
A current inventory can miss resources that were billed earlier in the month and later removed. Keep their charge rows in the reconciliation. Conversely, a disk attached today does not establish which desktop used it throughout the selected month. Historical attachment evidence is necessary when the attribution depends on that relationship.
Failed queries, missing subscriptions and unsupported cost categories need visible scope notes. Do not turn an unavailable amount into zero. Separate confirmed AVD charges from unresolved membership, and retain totals for both. This lets a service owner improve the map without changing the underlying bill.
Use the baseline to choose the next review
Once the scope reconciles, investigate the largest unexplained movements. More hosts, longer allocated hours or profile growth require different evidence. Deallocation removes VM instance charges while disks and some network resources can continue to cost money. A smaller compute subtotal therefore needs a check of the remaining service costs.
Costframe uses read-only Azure access for review. Customers decide and make cloud changes. Its AVD evidence normalization requires a proven session-host or service-resource relationship before admitting costs into the AVD scope; unrelated resource charges are not automatically classified as shared desktop costs. Verify any broader supporting-service budget against your billing records.
Sources
Use this in your next review
See the review format before connecting your own Azure scope.
Inspect a demo auditCheck plans and current scope