Skip to content
Ownership and allocation

How to allocate cloud costs

Build a monthly report that shows each team's direct costs, shared services and unallocated charges. Start with one billing total and assign every charge once.

For FinOps analysts building monthly allocation reports4 min readSources reviewed
A shared pool of blocks passes through a junction into separate recipient groups.
Example allocation of a shared cost pool across teams and an unresolved remainder.
In this guide

Define the total before assigning it

Choose a complete month and list the subscriptions, accounts or projects in your report. Record the source and whether it uses actual charges or amortized costs. Reconcile each native currency separately. A report covering selected subscriptions explains that scope, not the entire provider invoice.

Include retained billed charges even when a resource was deleted or has no identifier. Compare the collection dates with the month you selected. Billing can contain charges without a matching current resource; an unavailable date is a data gap, not zero spend.

Apply a documented direct-mapping order

Choose the grouping your reader needs: applications for engineering or cost centers for finance. The FinOps Foundation describes using account structures, tags and sources such as a configuration database. Document when each source applies, especially when a resource mapping and subscription owner differ.

Write the mapping order before running the report. For example, prefer an accepted resource mapping, then its resource group, then its subscription. Retain the chosen source and any override. Use a customer default only for an agreed central owner; keep unresolved mappings visible for investigation.

Keep billing metadata separate from current inventory

Normalize the values used to match business groups, but retain the original source value and its date. Check spelling variants against finance's cost-center list. A populated tag that names a retired department needs review just as an empty tag does. Report assignment coverage by spend as well as by resource count, because many cheap tagged resources can hide one expensive exception.

Microsoft's tag inheritance applies tags to usage records, not to the resources themselves. Updating the setting can update current-month usage using current tags. This helps grouping but does not establish the owner on every earlier charge date. Do not silently treat the latest inventory tag as dated responsibility evidence.

Classify shared services before distributing them

Identify charges that serve multiple recipients, such as a central network or monitoring service. Keep those pools outside direct allocation until finance and the service owner approve their treatment. Central funding is a valid explicit policy. A shared label alone does not specify recipients or a split.

For September, this illustrative EUR report assigns dedicated application and analytics charges directly. The platform pool stays centrally funded, and EUR 600.00 remains unresolved. Each source charge belongs to exactly one row. If a later policy distributes the platform pool, replace its central allocation with recipient allocations; adding both would count the same spend twice.

Selected September chargesEUR 12,000.00Illustrative allocation · not customer results
Application teamEUR 7,200.00Direct application charges
Analytics teamEUR 2,400.00Direct analytics charges
Platform budgetEUR 1,800.00Shared platform, centrally funded
UnallocatedEUR 600.00Unresolved business mapping
Every charge has one destination. Unallocated remains part of the total.

Scroll the table sideways on smaller screens. Keyboard: focus the table and use the arrow keys.

Illustrative allocation, not a customer statement. EUR 7,200.00 + EUR 2,400.00 + EUR 1,800.00 + EUR 600.00 = EUR 12,000.00.
ClassificationAllocation destinationAmount
Direct application chargesApplication teamEUR 7,200.00
Direct analytics chargesAnalytics teamEUR 2,400.00
Shared platform, centrally fundedPlatform budgetEUR 1,800.00
Unresolved business mappingUnallocatedEUR 600.00
Total selected September chargesReconciled scopeEUR 12,000.00

Investigate the residual without changing the total

Allocated costs plus unallocated costs must equal the selected source total for each currency. Investigate differences before publishing. Common causes include duplicate joins, missing pages in an export or a filter that excludes resource-less charges. Net credits can make percentage-based coverage confusing, so retain the amounts and explain the denominator instead of relying on a percentage alone.

Give unresolved charges an investigation owner and a reason. Missing metadata, disputed responsibility and absent billing detail call for different work. Track the oldest unresolved period and the amount awaiting a decision. Resolving a mapping improves allocation coverage; it does not reduce provider spend or prove a saving. Preserve that distinction in reports sent to leadership.

Make the next month reproducible

Retain the selected source version and mapping policy with the report. Record corrections as a new revision, including which period changed and why. Compare source-cost changes separately from allocation changes. A department's reported cost can rise because a shared policy changed even when its underlying resource consumption stayed constant.

Use Costframe's ownership view to review supported Azure assignments and tags alongside the charges. Unallocated amounts remain visible. Confirm source availability for the connected scope and retain dated evidence when reviewing past responsibility. Shared-service distribution needs an approved policy. Costframe reads your cloud; your team manages changes.

Sources

Use this in your next review

Follow a labelled sample charge into its ownership view. Use the worked example above to check the reconciliation in your own monthly report.

Review the demo auditCheck plans and current scope