The history of billing data is the period for which a provider serves cost and usage data in its console, API and exports, and the period an export of one's own actually holds. Both are shorter than often assumed: consoles show a fixed window, and exports mostly begin on the day they were set up. It matters for the bill as soon as a year-on-year comparison, a multi-year forecast or an audit needs older months than the provider still delivers.

How it works

Three things are separate: how long the provider keeps data, how far back it serves it, and what an export the customer stores holds. Only the last is the customer's to decide.

AWS

Cost Explorer shows up to 13 months of history by default. With multi-year data, which the management account enables under Cost Management preferences, history reaches 38 months, at monthly granularity only; hourly and resource-level data cover 14 days (AWS Cost Explorer and AWS Budgets). AWS Data Exports writes to an S3 bucket, and what lands there stays until the customer deletes it. With the versioning option Create new data export file every refresh is kept, at the cost of more storage (AWS Cost and Usage Report and Data Exports).

The Data Exports documentation describes no self-service way to load earlier months into a new export. For Cost and Usage Reports, AWS describes a backfill through a support case naming the report and the billing period. Excluded are data from before the account was created, data under a previous organisation structure, and data from before the account joined its current organisation.

Azure

Microsoft states that Cost Management retains cost and usage data for at least seven years. Cost analysis, exports in the portal and the Cost Details API serve the last 13 months; older data comes through the Exports - Execute REST API. In the portal, Export selected dates reruns an existing export definition for past months, one month per run, up to 13 months back (Azure cost exports). Through the REST API, the cost and usage datasets (actual, amortized, FOCUS) reach back seven years; reservation details and the price sheet have shorter limits. Microsoft Customer Agreements hold no data before March 2019, and when a subscription changes offer, costs from before the change are no longer available.

Google Cloud

Cloud Billing reports show cost by charge period (formerly usage date) back to January 2017. The BigQuery export, by contrast, starts with its set-up. With the dataset in a multi-region (EU or US), Google loads data retroactively from the start of the previous month when the export is first enabled, which can take up to five days; in a single region the data start on the day of enabling, and the pricing export never loads retroactively. If an export is disabled and re-enabled, the gap may be missing. A change of target dataset carries nothing over, and old and new tables have to be joined in queries (Google warns that rows inserted into export tables may be deleted) (Google Cloud billing export).

Tables stay as long as the customer keeps them. Google asks for the dataset option Enable table expiration to be cleared and states that deleted export records cannot be backfilled. The FOCUS export (Preview) sits in a Google-provided immutable dataset (gcp_billing_immutable_ followed by the billing account ID and location), under a two-year time to live: Google deletes older data automatically, so longer history needs a copy in a table of one's own. BigQuery charges for the storage; tables and partitions unmodified for 90 days move to the lower long-term rate.

When the payer changes

An AWS member account that leaves its organisation keeps its invoices and bills data but loses the Cost Explorer data from its membership, which the management account keeps. An export of the member account then reports Bill owner changed, and AWS advises creating it anew. On Azure, after a subscription is transferred, the new account sees usage and billing history only from the transfer onward. On Google Cloud, a project's charges up to a change of Cloud Billing account go to the previous account and so into that account's export. How accounts and payers relate is covered in Billing accounts and hierarchies.

What it means for your cost

ProviderConsoleExport holds data fromReloadLost by a late set-up
AWSCost Explorer 13 months, 38 months monthly with multi-year datacreation of the exportsupport case, described for Cost and Usage Reportsmonths before the export, unless AWS backfills
Azurecost analysis 13 monthsthe period chosen, retroactive tooExport selected dates up to 13 months, REST API up to seven yearslittle, while the months are within the limit
Google Cloudreports back to January 2017start of previous month (multi-region) or enabling (region)not providedeverything before

A cost report spanning more than 13 months needs storage of its own on AWS and Azure; on Google Cloud the reports reach further back, but a report built on the export only reaches its start. An export preserves rows as the provider wrote them at delivery: at the chosen granularity, with the tags in force at the time (Azure applies tags only while they are set, never retroactively), and in the state the month had at that delivery. It does not preserve invoice documents, which the providers issue separately.

Record-keeping duties are not set by the providers. In Germany, § 147 of the Abgabenordnung sets periods of ten, eight and six years depending on the kind of record; in the United Kingdom, for limited companies, GOV.UK states six years from the end of the last company financial year the records relate to, longer in some cases. Whether billing data, exports or invoices fall under them, and in which form, is for the reader's tax adviser or auditor to decide.

Where it goes wrong

  • Export set up only when needed. Symptom: the year-on-year comparison finds no data. Cause: AWS exports and Google exports in a single region start at set-up, and the consoles show 13 months by default.
  • Target dataset changed. Symptom: the history in BigQuery ends on the day of the switch. Cause: Google does not copy previously exported data into the new dataset.
  • Old months vanish from BigQuery. Symptom: months that could be queried yesterday are gone. Cause: table expiration is active on the dataset, or the query reads the FOCUS export with its two-year time to live.
  • Account move without a copy. Symptom: after leaving the organisation or transferring the subscription, earlier months are missing. Cause: the history stays with the previous payer.

Sources

Read on 2026-10-16. AWS Analyzing your costs and usage with AWS Cost Explorer, Configuring multi-year and granular data, What is AWS Data Exports?, Creating a standard export, Understanding export delivery, General troubleshooting, Troubleshooting Cost and Usage Reports, Leaving an organization from a member account with AWS Organizations, Removing a member account from an organization with AWS Organizations; Microsoft Understand Cost Management data, Tutorial - Create and manage Cost Management exports, Azure product transfer hub; Google Set up Cloud Billing data export to BigQuery, Structure of Standard data export, Structure of FOCUS data export, Analyze billing data and cost trends with Reports, Enable, disable, or change billing for a project, BigQuery pricing; German Federal Ministry of Justice § 147 AO; GOV.UK Company and accounting records.