A cloud cost CSV import, or file import, reads billing data from a downloaded file rather than from a running export connected to the provider's account: an invoice, the usage file that belongs to an invoice, or a CSV built by hand. It matters for the bill because a file freezes the state of its download day and carries only the columns the provider writes into that document, so the file, not the import, decides whether a cost allocation or a reconciliation with the invoice can be built from it.

How it works

Beside their continuous exports, the providers offer two kinds of file in the console. Invoice documents carry totals, tax, payment details and the invoice number, as described in Anatomy of a cloud invoice. Usage files carry line items per day, meter, SKU or project, which is what an analysis needs.

AWS

The Bills page of the AWS Billing and Cost Management console shows each billing period as Pending (estimated charges) or Issued. On the Invoices tab, the Invoice ID opens the invoice as a PDF; tax invoices sit under Tax Invoices and Supplemental Documents. Totals appear in US dollars, plus the invoice currency where that differs. The Download all to CSV button has been gone since 2025-11-01, so line-item data now comes only as an export to an S3 bucket, through a legacy monthly report configured earlier or through Data Exports (AWS Cost and Usage Report and Data Exports).

Azure

Under Cost Management + Billing, Invoices, an MOSP (pay-as-you-go) account has one invoice per subscription for service charges, plus separate invoices for Marketplace, reservations, spot VMs and support plans; an MCA or MPA account has one monthly invoice per billing profile. Prepare Azure usage file produces a CSV for each invoice with the daily breakdown of quantities and charges; for MCA it is typically ready within 72 hours of the invoice. EA customers download from Usage + charges, choosing all charges or the amortized view. The fields match the exports, among them Date, SubscriptionId, ResourceId, Tags, CostInBillingCurrency (EA, MCA; PreTaxCost for pay-as-you-go) and, for pay-as-you-go and MCA, InvoiceId; values are unrounded. On MPA accounts, the CSP programme, only the partner's billing admin and Admin Agent can download usage.

Google Cloud

Since the January 2021 invoice, invoices and statements, PDF and CSV alike, carry no cost details: company details, totals, tax and a link to the Cost table report. Invoiced accounts can download the invoice as CSV, which may arrive a day or two after the PDF. The Cost table report shows each invoice month by project, service, SKU, credit and label and downloads to CSV with the invoice header (billing account ID, total, currency). The CSV is capped at 4 million rows and 150 MB and reflects only the active filters, the visible columns and the chosen grouping. For continuous billing data, Google documents the export to BigQuery.

SourceFileGranularityKeys presentKeys missing
AWS invoicePDF per invoiceBilling periodInvoice number, invoicing entityResources, tags
Azure usage fileCSV per invoiceDay per meter and resourceSubscription, resource, tags, invoice id (pay-as-you-go, MCA)Tax and credits as line items
Google invoicePDF or CSVInvoice monthInvoice number, billing accountProject, service, SKU
Google Cost tableCSV per invoice monthInvoice month, rows per groupingProject, service, SKU, label, cost typeResources, usage day

What it means for your cost

To be reconciled and allocated, each line needs at minimum: the usage period's start and end and, for reconciliation, the invoice period; amount and currency; provider and service; the cost type, so usage, tax and credits stay apart; and an allocation key such as account, project, tag or cost centre. Without the key, the amount stays unallocated; without the cost type, tax lands in a team's cost. FOCUS has a column for each (ChargePeriodStart, ChargePeriodEnd, BillingPeriodStart, BillingPeriodEnd, BilledCost, BillingCurrency, ServiceProviderName, ServiceName, ChargeCategory, SubAccountId, Tags), so a mapped file carries the specification's column names; the specification itself is covered in FOCUS, the open specification for billing data, and how the providers' FOCUS exports map to these columns in FOCUS columns and the providers' mapping.

RFC 4180 documents the common CSV convention: one record per line, commas between fields, an optional header, and double quotes around fields containing a comma, line break or quote. It is informational, not an internet standard, names US-ASCII as the usual character set and fixes no number or date format. That gap is where a file breaks after a spreadsheet with a continental locale has saved it: decimal commas, a semicolon as field separator, dates written day first, a different encoding.

An imported file is a snapshot. Credits, refunds and support fees booked after the download never reach it, and a restatement shows only in a new file, so the import date is part of the data and two reports on one month can disagree when they rest on files downloaded on different days. When a month is final is covered in Freshness, restatements and finalisation, tying file and invoice together in Reconciling exports with the invoice, and the AI providers' usage data in Usage and cost exports of the AI providers. Once reports are needed daily or over many months, files run out: Google caps the CSV, Azure prepares one usage file per invoice and AWS no longer offers a line-item CSV in the console (Cost Explorer reports still download as CSV), while an export into storage the company owns delivers the same or finer fields continuously.

Where it goes wrong

  • Invoice month read as usage month. Symptom: cost from the last days of a month shows up in the next one. Cause: on Google Cloud, late-reported usage can roll over to the next invoice, and the Cost table report gives only the first and last usage date per invoice month.
  • A filtered Cost table CSV imported as complete. Symptom: the total differs from the invoice. Cause: filters, column choice and grouping limit the CSV; for reconciliation, Google names the default filters and the Unrounded cost column.
  • Tax counted twice or not at all. Symptom: the total differs by the tax amount. Cause: the invoice includes tax, while the Azure usage file reports cost before credits and taxes (CostInBillingCurrency, or PreTaxCost on pay-as-you-go); VAT itself is covered in VAT and reverse charge on cloud invoices.
  • A file not replaced after a restatement. Symptom: a closed month no longer matches the console. Cause: the file holds the state of the download, and later credits and corrections never reach it.
  • Locale applied on saving. Symptom: amounts or dates are read wrongly. Cause: RFC 4180 fixes no decimal separator, date order or encoding, and a spreadsheet can rewrite all three to its locale and save with a semicolon as field separator.

Sources

Read on 2026-10-16. AWS Understanding your bill, Exploring your data using Cost Explorer; Microsoft View and download your Microsoft Azure invoice, View and download your Azure usage and charges, Understand cost details fields; Google Get a Cloud Billing document such as an invoice, statement, or receipt, View and download the cost details of your invoice or statement, Export Cloud Billing data to BigQuery; FinOps Foundation FOCUS specification, publication version 1.4; RFC Editor RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files.