Azure / Technical guide
Reconcile Azure cost data before using it in finance reports
A resource-cost subtotal and an invoice can disagree without either calculation being broken. They may include different subscriptions, tax, support, commitment purchases or credits. They can also describe different periods or versions of the same open billing data.
Reconciliation starts with a written definition of what the report includes. Otherwise a team can spend hours investigating a difference that comes from comparing incompatible totals.
Open the demo auditChoose the financial basis first
An invoice records the payable billing result. Azure Cost Management describes usage and supported purchases; its contents vary by offer and do not universally include every invoice component. Microsoft's documentation identifies taxes, support and credits as important differences to inspect.
Actual cost and amortized cost also answer different questions. Actual cost can show a commitment purchase at purchase time. Amortized cost distributes its cost across eligible usage and unused commitment. A resource subtotal on one basis should not be reconciled directly to an invoice on another.
| Field | Record before comparison |
|---|---|
| Scope | Included subscriptions and billing agreement |
| Period | Start/end boundaries and billing-cycle alignment |
| Basis | Invoice, ActualCost or amortized cost |
| Categories | Usage, purchases, adjustments, tax, support and credits |
| Version | Extraction time and open/closed period status |
| Currency | Separate provider-native totals |
Keep charges that cannot be joined to inventory
Billing records can outlive the resource. Other rows may have no usable resource ID at all. An inner join from cost rows to current inventory drops those charges and makes a visually tidy report financially incomplete.
Preserve every included source charge in a reconciliation bucket. Use a resource association only where supported; otherwise keep service or subscription context. Costframe retains supported Azure actual-cost rows even when the resource reference is missing or the object is absent from current inventory.
Aggregate source precision before display rounding
Small usage charges can carry more precision than a two-decimal display. Rounding each row first can produce a different sum from aggregating exact source amounts. Retain native precision in the calculation and machine export, then apply display rounding consistently.
Never sum different currencies into a single unlabeled amount. If a finance model requires conversion, record the exchange-rate source, date and treatment separately. Provider actual cost already reflects applicable rating; applying an organization discount again would double-discount it.
- Reconcile the full included result before paging or visual grouping.
- Keep unknown charge types explicit rather than inventing a purchase or credit classification.
- Check whether the report uses cumulative observations or independent daily buckets.
- Review rerated periods with the source version used for the earlier report.
What Costframe can and cannot reconcile
Costframe supports exact native-currency cost contracts and retained Azure resource/service investigation. Collection success, selected scope and available history bound the result. A successful query for one subscription does not certify the entire billing account.
It is not an invoice-accounting system or a universal custom-rate-card engine. Internal chargeback statements are reporting and review artifacts, not tax invoices. When a report and provider total differ, compare their included basis before claiming missing spend or realized savings.
References and further reading
Provider documentation explains native capabilities. Costframe availability and limitations are stated separately in this guide.
Inspect the financial context
Use the labelled demo to review how scope, estimates and supporting evidence are presented.
Open the demo audit