TL
The short answer

Shared costs on Azure are untangled by working from cost exports, switching from the actual cost view to the amortized cost view, and allocating each non attributable line with a written rule. The usual culprits are bandwidth and egress, shared Log Analytics workspaces, central networking such as gateways and firewalls, support plan fees, and the discount from reservations and the Azure Savings Plan bought at a shared scope. The amortized view attributes most of the commitment discount automatically, and a defensible key handles the rest, shrinking the unallocated bucket from a large unexplained number to a small disclosed overhead.

Azure makes this both easier and harder than AWS. Easier, because the management group and subscription hierarchy gives natural boundaries. Harder, because shared Log Analytics workspaces and central networking pull cost into places that serve everyone. Here is the order of operations.

Where do shared costs come from on Azure?

Azure cost exports, increasingly in the FOCUS format, are the source of truth, and they expose the problem the moment you group by tag and find a large untagged remainder. That remainder is mostly five things. Bandwidth and egress rarely carry a team tag. Shared Log Analytics workspaces collect diagnostics from across the estate and bill mostly by data ingested, so a single workspace can hold many teams' logging. Central networking such as VPN and ExpressRoute gateways, Azure Firewall, and load balancers serves everyone. Support plan fees land in one place. And the discount from reservations and the Azure Savings Plan, purchased at a shared or management group scope, spreads across subscriptions.

The subscription and resource group structure helps, because a charge already belongs to a subscription before any tag is applied. But shared workspaces and central networking deliberately cross those boundaries, which is why allocation, not just tagging, is required.

Use the amortized cost view, not actual cost

Azure Cost Management offers two views, and the choice changes every team's number. Actual cost records a reservation purchase as a single lump charge in the month you bought it, which makes that month look enormous and every later month look artificially cheap. Amortized cost spreads the reservation across its term and attributes the cost to the resources that consumed the benefit.

Build allocation on amortized cost. It is the only view that charges a team the effective rate for what it ran rather than the timing of a central purchase. Using actual cost is the most common reason an Azure allocation does not survive scrutiny: a team queries a spike, you trace it, and find it was a reservation purchase that had nothing to do with their usage that month.

The rule

Allocate on the amortized cost view. The day you switch, some teams' numbers will move, which is the reservation timing distortion you were carrying becoming visible and fair.

Allocate each shared line with a documented key

On the amortized view, attack the remainder line by line with a key that tracks the real driver.

Shared costDriverAllocation key
Bandwidth and egressTraffic volumeProportional to each team's measured data movement
Shared Log AnalyticsData ingestedBy each team's ingestion, or by workload footprint
Central networkingConnectivity consumedProportional to each team's compute footprint
Support plan feesSize of estate consumedProportional to each team's amortized spend
Reservation and Savings Plan discountResources running under the commitmentAmortized view attributes it automatically

As on AWS, the commitment discount mostly allocates itself once you use the amortized view, because Cost Management attributes covered usage to the resource that ran it. That removes the largest and most contentious piece before any hand allocation begins. Azure Cost Management also supports cost allocation rules that automate splitting a shared workspace or networking cost across subscriptions by a chosen key, which is worth configuring once the key is agreed.

Reduce shared cost, do not just allocate it

Allocation makes the cost owned, but the prize is shrinking it. Log Analytics is the classic Azure example: it bills mostly by data ingested, retention is configurable per table, and verbose diagnostic logging from a few noisy resources often drives most of the workspace bill. Cut ingestion and set per table retention before you allocate, and the shared number you are splitting gets smaller for everyone.

Worked example

A Fortune 500 retailer carried close to a fifth of its Azure bill as unallocated shared cost. Moving to the amortized view attributed the bulk of the reservation discount automatically. A shared Log Analytics workspace turned out to hold verbose diagnostics from a handful of resources, so trimming ingestion and setting per table retention shrank it before it was split by team ingestion. Bandwidth was allocated by measured egress, which surfaced two data heavy teams that then consolidated cross region traffic. The unallocated bucket fell to a small, disclosed overhead. Figures are verified against billing data and anonymized.

Where this fits in the Azure estate

Untangling shared costs is the foundation for accountable budgets and sound reservation decisions across Azure. It pairs with disciplined tagging and clean reporting. Read tagging for cost allocation on Azure to get the inputs clean, multi subscription cost reporting for the structure, and Azure cost exports and FOCUS data for the source data. The whole estate picture lives in the Azure cost optimization guide.

Frequently asked questions

What counts as a shared cost on Azure?
Any cost that does not attach cleanly to one team: bandwidth and egress, shared Log Analytics workspaces, central networking such as gateways and firewalls, support plan fees, and the amortized discount from reservations and the Azure Savings Plan bought at a shared scope.
What is the difference between actual and amortized cost?
Actual cost shows a reservation purchase as a lump charge in the month it was bought, distorting allocation. Amortized cost spreads the reservation across its term and attributes it to the resources that used it, which is the view you build showback on.
How do you allocate a shared Log Analytics workspace?
Log Analytics bills mostly by data ingested, so allocate it by each team's ingestion or by workload footprint. Better still, reduce the cost first by setting per table retention and trimming verbose diagnostics before allocating what remains.

Untangle your Azure bill with us

We help enterprises turn an unowned shared cost bucket into accountable, defensible numbers and then cut the spend underneath it. Our guarantee: we reduce your cloud spend or we reimburse our service fee. Pricing is either a Fixed Fee scoped up front or Gainshare, a share of verified savings with no retainer and no risk.

Independent · buyer-side

Put a defensible number on your cloud spend.

No provider in the room, no published price list. Tell us your footprint and we will scope the savings against your billing data — we reduce your cloud spend or we reimburse our service fee.

Buyer-side intelligence, monthly.

The Cloud Spend Navigator: what changed in cloud pricing, commitments, and FinOps — no vendor spin.