An Azure cost export is a scheduled job in Microsoft Cost Management that writes cost and usage data, and related datasets, as files into a storage account you own, daily or monthly. It matters for the bill because the export is the scheduled way to keep every line item with its resource, tags, price and billing currency permanently in your hands, and because it delivers the same cost in two views: actual shows a purchase the way it is billed, amortized spreads it over the term. Which view a report uses decides which month looks expensive.
How it works
Datasets
Each data type in Exports has its own schema, whose version is chosen at creation. The schema index lists cost and usage details for EA, MCA, MPA and CSP at version 2023-12-01-preview, for pay-as-you-go (MOSA) at 2019-11-01, and the FOCUS variant for EA and MCA at 1.2-preview.
| Dataset | Question it answers | Cost measure | Agreements |
|---|---|---|---|
| Cost and usage details (actual) | What was billed per line item? | billed cost, purchases as one line | EA, MCA, MPA |
| Cost and usage details (amortized) | What does each resource cost, including its share of reservations and savings plans? | amortized cost | EA, MCA, MPA |
| Cost and usage details (FOCUS) | Both, in a schema shared across providers | BilledCost and EffectiveCost | EA, MCA |
| Price sheet | Which prices apply to the account? | price per meter | EA, MCA |
| Reservation details, recommendations, transactions | Reservation inventory, recommendations, purchases, exchanges and refunds | reservation data | EA, MCA |
Destination, format and schedule
An export writes into a container of an Azure storage account, as CSV (optionally Gzip) or Parquet (optionally Snappy). Partitioning is always on: each uncompressed file stays under 1 GB, and a manifest.json per run lists the files, row counts and configuration. Files land under Container/Directory/ExportName/[YYYYMMDD-YYYYMMDD]/[RunID]/. Overwrite is on by default and, for daily exports, replaces the previous day's file.
Cost and usage details run once, daily for the month to date, or monthly for the last month or the last billing month. Runs happen at varying times within a UTC day; an export can take up to 24 hours to complete before its data is ready. For the first five days of each month a daily export runs twice: a second run, not shown in the run history, rewrites the previous month, because late usage can reach the invoice up to 72 hours after the month closes. Export selected dates reruns an existing export for up to 13 months of history, one month per run; older cost and usage data comes from the Exports REST API, up to seven years back.
Scope
The scope an export is created on decides what it contains: for EA the enrollment, department, account, subscription or resource group; for MCA the billing account, billing profile, invoice section, subscription or resource group. A management group export exists for EA only and carries usage only: no reservation or savings plan purchases, no amortized cost, no FOCUS dataset.
Actual and amortized
In actual, an upfront reservation is one line with ChargeType Purchase in the month of purchase, as on the invoice, and the virtual machine that benefits shows no cost for the covered usage. In amortized, Azure spreads the same purchase evenly over the days of the term (365 days, or 366 when the term includes 29 February) and assigns it to the resources that used the benefit. The unused share appears as its own line with ChargeType UnusedReservation or UnusedSavingsPlan and is not attributed to the subscription that bought it. Only reservations and savings plans are amortized, not Marketplace purchases. PricingModel separates OnDemand, Reservation, Spot and SavingsPlan.
The load-bearing columns: CostInBillingCurrency is the amount in the billing currency before credits and taxes, EffectivePrice the rate actually paid per unit, Quantity the amount used, ResourceId the Azure Resource Manager id, Tags the resource's tags without those of its resource group, and InvoiceId (MCA and pay-as-you-go) the invoice number. MCA adds CostInPricingCurrency and ExchangeRatePricingToBilling. How the cost measures relate is covered in list, billed, effective and amortized cost.
Export or Cost Details API
The Cost Details API returns the same dataset on demand, asynchronously and for EA and MCA only: at most one month per report, up to 13 months back, with metric set to ActualCost or AmortizedCost. Reports refresh every four hours; above roughly 2 GB, or about 2 million rows, a month, Microsoft recommends exports instead.
What it means for your cost
Actual is the view that reconciles with the invoice; for MCA, Microsoft describes recomputing each cost as EffectivePrice times Quantity, converting it with ExchangeRatePricingToBilling and comparing the sum with the invoice. Amortized is the view for showback and chargeback, because a reservation sits with the resources that used it; it yields the effective cost of a report. Both files describe the same money, so a sum across both counts it twice. The FOCUS dataset holds both views in one file and separates them with x_AmortizationClass; its columns are covered in FOCUS columns and the providers' mapping.
Cost Management carries no taxes, no support charges and no credits. Until the invoice, every amount is an estimate, and tiered prices are estimated at the highest tier. Azure typically closes a billing period up to 72 hours after it ends, and usage can still change until the fifth day; rounding differences to the invoice then appear as RoundingAdjustment lines at billing profile or enrollment level. Closed months are covered in freshness, restatements and finalisation; each row carries a date, not an hour (granularity).
MCA data starts in March 2019; for offers with credits or advance payments the history can differ from the invoice, because that history leaves out payments and credits. The same data in the console is covered in Azure Cost Management and Billing, the AWS counterpart in AWS Cost and Usage Report and Data Exports.
Where it goes wrong
- Actual and amortized are added together. Symptom: the total exceeds the invoice, most visibly in months with a reservation purchase. Cause: both datasets contain the same usage; the purchase sits in one as a single line, in the other spread over the term.
- The export sits on a management group. Symptom: reservation and savings plan purchases are missing, and amortized and FOCUS cannot be selected. Cause: at that scope Azure exports usage only, and only for EA.
- The import reads a fixed file name. Symptom: rows go missing once the data grows. Cause: partitioning cannot be switched off and file names can change; only what the run's
manifest.jsonlists is complete. - The new export lacks the previous month. Symptom: a daily export created on the 3rd holds only the current month. Cause: a daily export created between the 1st and the 5th starts its schedule on the creation date; Export selected dates fills the previous month.
- Subscriptions do not add up to the billing account. Symptom: the sum of all subscriptions is lower. Cause: unused reservations and savings plans are attributed to no subscription, and new exports leave their subscription id empty.
Sources
Read on 2026-10-16. Microsoft Tutorial: Create and manage Cost Management exports, Cost Management dataset schema index, Microsoft Customer Agreement cost and usage details file schema, FOCUS cost and usage details file schema, View amortized benefit costs, Get small cost datasets on demand, Choose a cost details solution, Understand Cost Management data, Understand cost details fields.