What is the AWS Cost and Usage Report?
The AWS Cost and Usage Report (CUR), is the most detailed source of billing and usage data available in AWS. It provides a line-by-line breakdown of every charge on an AWS account, including resource-level usage, pricing details, reservation and savings plan application, and cost allocation tag data.
For most AWS cost management work, the CUR is the starting point. Most third-party cost tools, including CloudSpend, ingest the CUR as their primary data source.
What the CUR contains
The CUR goes considerably further than the AWS billing dashboard or Cost Explorer. A single report can contain hundreds of columns covering:
- Resource-level usage by hour or day, down to individual EC2 instances, S3 buckets, and RDS databases.
- On-demand, reserved, and spot pricing for each line item.
- How Savings Plans and Reserved Instance discounts were applied to specific usage.
- Cost allocation tag values for each resource.
- Blended and unblended costs, amortized costs, and net costs after credits and refunds.
- Usage type, operation, and availability zone for each charge.
For organizations trying to do accurate cost allocation, chargeback, or commitment analysis, the CUR provides the raw data that other AWS tools summarize or abstract away.
How the CUR works
The CUR is delivered as a set of CSV or Parquet files to an S3 bucket that you specify. Reports can be configured to refresh daily or monthly and can be set to include or exclude specific data columns depending on what is needed.
Here are a few things worth knowing about when setting up the CUR:
- The CUR must be enabled manually in the AWS Billing console. It is not active by default.
- Once enabled, it takes up to 24 hours for the first report to appear in the S3 bucket.
- For organizations using AWS Organizations with multiple accounts, the CUR can be configured at the management account level to include data across all member accounts in a single report.
- The Parquet format is generally preferable for large organizations; it is significantly more efficient to query than CSV.
CUR vs. Cost Explorer
Both CUR and Cost Explorer draw on AWS billing data but serve different purposes:
| CUR | Cost Explorer | |
|---|---|---|
| Data granularity | Resource-level, hourly | Service-level, daily |
| Customization | High | Limited |
| Access method | S3 files, queried via Athena or similar | Console or API |
| Best for | Detailed analysis, custom tooling | Quick exploration and reporting |
| Cost | Storage and query costs | Free tier available |
Cost Explorer is useful for quick visibility and high-level trends. The CUR is for organizations that need to go deeper, build custom reports, or feed billing data into their own tools.
Querying the CUR
CUR files are not easy to work with directly. To make the data usable, most organizations use one of the following approaches:
AWS Athena: Query the CUR files directly using SQL without moving the data. This is the most common approach for teams building custom cost reports.
AWS QuickSight: Connect to the CUR via Athena to build dashboards and visualizations.
Third-party cost tools: Ingest the CUR automatically and present the data through a purpose-built interface, removing the need to manage the query layer yourself.
Tags in CUR: One step most teams miss
Cost allocation tags applied to resources do not automatically appear in the CUR. Each tag key must be activated separately in the AWS Billing console before it shows up as a column in the report. Tagging compliance and CUR configuration need to be managed together for cost allocation to work accurately. AWS has also released CUR 2.0 with a cleaner schema and better service coverage, and now recommends it as the preferred format.