

# Legacy Cost and Usage Reports


This section provides information on the Legacy Cost and Usage Reports feature.

Data Exports is the new and recommended way to receive your detailed cost and usage data from AWS. For more information, see [Migrating from CUR to CUR 2.0 in Data Exports](https://docs.aws.amazon.com/cur/latest/userguide/dataexports-migrate.html).

# What are AWS Cost and Usage Reports?


AWS Cost and Usage Reports (AWS CUR) contains the most comprehensive set of cost and usage data available. You can use Cost and Usage Reports to publish your AWS billing reports to an Amazon Simple Storage Service (Amazon S3) bucket that you own. You can receive reports that break down your costs by the hour, day, or month, by product or product resource, or by tags that you define yourself. AWS updates the report in your bucket once a day in comma-separated value (CSV) format. You can view the reports using spreadsheet software such as Microsoft Excel or Apache OpenOffice Calc, or access them from an application using the Amazon S3 API. 

AWS Cost and Usage Reports tracks your AWS usage and provides estimated charges associated with your account. Each report contains line items for each unique combination of AWS products, usage type, and operation that you use in your AWS account. You can customize the AWS Cost and Usage Reports to aggregate the information either by the hour, day, or month.

AWS Cost and Usage Reports can do the following:
+ Deliver report files to your Amazon S3 bucket
+ Update the report up to three times a day
+ Create, retrieve, and delete your reports using the AWS CUR API Reference

## How Cost and Usage Reports work


After you create a Cost and Usage Report, AWS sends your report to the Amazon S3 bucket that you specify. AWS updates your report at least once a day until your charges are finalized.

Your report files consist of a .csv file or a collection of .csv files and a manifest file. You can choose to configure your report data for integration with Amazon Athena, Amazon Redshift, or Quick.

## Report timeline


After you create your report, it can take up to 24 hours for AWS to deliver the first report to your Amazon S3 bucket.

After delivery starts, AWS updates the report files at least once a day. Each report update in a given month is cumulative, so each version of the report includes all of the billing data for the month to date. The report updates that you receive throughout the month are estimates. The charges are subject to change as you continue to use your AWS services.

**Note**  
Different AWS services provide your usage-based billing information at different times, so you might notice updates to a certain hour or day come in at different times.

AWS builds on previous reports until the end of the billing period. AWS finalizes your report’s usage charges after issuing an invoice at the end of the month. After the end of the report billing period, AWS generates a new report for the next month with none of the information from the previous report.

After your report is finalized, AWS might update the report if AWS applies refunds, credits, or AWS Support fees to your usage for the month. Because Developer, Business, and Enterprise Support are calculated based on final usage charges, those are reflected on the sixth or seventh of the month for the prior month’s Cost and Usage Report. AWS applies credits or refunds based on the terms of your agreement or contract with AWS.

## Report files


Your report is a .csv file or a collection of .csv files stored in an Amazon S3 bucket. The number of files that your report generates depends on your selection for report versioning and the size of your report.

When you create a report, you can choose to create new report versions or overwrite the existing report version with every update. If you choose to create new report versions, then your report generates more files with every update.

The size of an individual report can grow to more than a gigabyte and might exceed the capacity of desktop spreadsheet applications to display every line. If a report is larger than most applications can handle (around 1 million rows), then AWS splits the report into multiple files that are stored in the same folder in the Amazon S3 bucket.

AWS also generates refunds into separate files. AWS issues refunds after the closing of a monthly bill.

For more information on report files, file-naming conventions, and versioning, see [Understanding your report versions](understanding-report-versions.md).

## Report columns


Each report includes several columns with details about your AWS costs and usage. The columns that AWS includes in your report depend on your usage during the month.

Every report includes columns with the **identity/**, **bill/**, and **lineItem/** prefixes. All other columns are included only if your monthly AWS usage generates data to populate those columns.

For example, your report includes **savingsPlan/** columns only if you used Savings Plans during that month.

To learn more about the columns in your report, see the [Data dictionary](data-dictionary.md).

## Using your report


You can download your report from the Amazon S3 console, query the report using Amazon Athena, or upload the report into Amazon Redshift or Quick.
+ For more information about creating an Amazon S3 bucket and using Athena to query your data, see [Querying Cost and Usage Reports using Amazon Athena](cur-query-athena.md).
+ For more information about uploading to Amazon Redshift, see [Loading report data to Amazon Redshift](cur-query-other.md#cur-query-other-rs).
+ For more information about uploading to Quick, see [Loading report data to Amazon Quick](cur-query-other.md#cur-query-other-qs).

# Creating Cost and Usage Reports


**Note**  
Data Exports enables you to create exports of the Cost and Usage Report (CUR) 2.0. This is the new and recommended way to receive your detailed cost and usage data from AWS. For more information, see [Migrating from CUR to CUR 2.0 in Data Exports](https://docs.aws.amazon.com/cur/latest/userguide/dataexports-migrate.html).  
When you use billing transfer, you can create AWS Cost and Usage Report reports for your billing transfer views only from the Data Export page, not from the legacy AWS Cost and Usage Report page.

You can use the **Cost and Usage Reports** page in the Billing and Cost Management console to create Cost and Usage Reports. In the following section, you'll find information on how to get started with Cost and Usage Reports.

**Topics**
+ [

# Setting up an Amazon S3 bucket for Cost and Usage Reports
](cur-s3.md)
+ [

# Creating reports
](cur-create.md)

# Setting up an Amazon S3 bucket for Cost and Usage Reports


To receive billing reports, you must have an Amazon S3 bucket in your AWS account to receive and store your reports. When creating a Cost and Usage Report in the billing console, you can select an existing Amazon S3 bucket that you own or create a new bucket. In either case, you’ll be asked to review and confirm the application of the following default bucket policy. Editing this policy in the Amazon S3 console or changing the bucket owner after you’ve created a Cost and Usage Report will prevent AWS from being able to deliver your reports. Storing the billing reports data in your Amazon S3 bucket is billed at standard Amazon S3 rates. For more information, see [Quotas and restrictions](billing-cur-limits.md).

The following policy is applied to every bucket when creating a Cost and Usage Report:

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "billingreports.amazonaws.com"
            },
            "Action": [
                "s3:GetBucketAcl",
                "s3:GetBucketPolicy"
            ],
            "Resource":"arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:aws:cur:us-east-1:${AccountId}:definition/*",
                    "aws:SourceAccount": "${AccountId}"
                }
            }
        },
        {
            "Sid": "Stmt1335892526596",
            "Effect": "Allow",
            "Principal": {
                "Service": "billingreports.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:aws:cur:us-east-1:${AccountId}:definition/*",
                    "aws:SourceAccount": "${AccountId}"
                }
            }
        }
    ]
}
```

This default policy helps ensure that the Cost and Usage Report data can be read by the bucket owner and confirms that the bucket is owned by the account that created the Cost and Usage Report. Specifically: 
+ Every time a Cost and Usage Report is delivered, AWS first confirms whether the bucket is still owned by the account which setup the report. If the bucket ownership has changed, the report will not be delivered. This helps to ensure the security of the account’s billing data. This bucket policy allows AWS (`"Effect": "Allow"`) to check which account owns the bucket (`"Action": ["s3:GetBucketAcl", "s3:GetBucketPolicy"`).
+ To deliver reports to your Amazon S3 bucket, AWS needs write permissions for that bucket. To do this, the bucket policy grants (`"Effect": "Allow"`) the AWS Cost and Usage Reports service (`"Service": "billingreports.amazonaws.com"`) permission to deliver (`"Action": "s3:PutObject"`) reports to the bucket you own (`"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"`).

  This bucket policy does not give AWS permissions to read or delete any objects in your bucket, including the Cost and Usage Reports after they’ve been delivered.
+ For an Amazon S3 bucket that has ACL enabled, AWS further applies a `BucketOwnerFullControl` ACL to the reports when delivering them. By default, Amazon S3 objects, such as these reports, can only be read by the user or service principal who wrote them. To provide you or the bucket owner with permission to read the reports, AWS must apply the `BucketOwnerFullControl` ACL. The ACL grants the bucket owner `Permission.FullControl` for these reports. However, it’s recommended to disable ACL and use an Amazon S3 bucket policy to control access. Note that Amazon S3 has changed the default settings and, for newly created buckets, ACLs are disabled by default. For more information, see [Controlling ownership of objects and disabling ACLs for your bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html).

If you see an **Invalid bucket** error in your billing console for Cost and Usage Report, you should verify that this policy and bucket ownership haven’t changed after report setup.

# Creating reports


**Note**  
Data Exports enables you to create exports of the Cost and Usage Report (CUR) 2.0. This is the new and recommended way to receive your detailed cost and usage data from AWS. For more information, see [Migrating from CUR to CUR 2.0 in Data Exports](https://docs.aws.amazon.com/cur/latest/userguide/dataexports-migrate.html).

You can use the **Cost and Usage Reports** page of the Billing and Cost Management console to create Cost and Usage Reports. You can create up to 10 reports for an individual AWS account.

**Note**  
It can take up to 24 hours for AWS to start delivering reports to your Amazon S3 bucket. After delivery starts, AWS updates the AWS Cost and Usage Reports files at least once a day.<a name="create-cur-steps"></a>

**To create Cost and Usage Reports**

1. Open the Billing and Cost Management console at [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. In the navigation pane, under **Legacy Pages**, choose **Cost and Usage Reports**.

1. Choose **Create report**.

1. For **Report name**, enter a name for your report.

1. For **Report additional content**, select **Include resource IDs** to include the IDs of each individual resource in the report.
**Note**  
Including resource IDs creates individual line items for each of your resources. This might increase the size of your Cost and Usage Reports files significantly, based on your AWS usage.

1. Select **Split cost allocation data** to include detailed cost and usage for shared resources (Amazon ECS and Amazon EKS).
**Note**  
Including split cost allocation data creates individual line items for each of your resources (that is, ECS tasks and Kubernetes pods). This might increase the size of your Cost and Usage Reports files significantly, based on your AWS usage.

1. For **Data refresh settings**, select whether you want the AWS Cost and Usage Reports to refresh if AWS applies refunds, credits, or support fees to your account after finalizing your bill. When a report refreshes, a new report is uploaded to Amazon S3.

1. Choose **Next**.

1. For **S3 bucket**, choose **Configure**.

1. In the **Configure S3 bucket** dialog box, do one of the following:
   + Select an existing bucket.
   + Select **Create a bucket**, enter a bucket name, and then choose the Region where you want to create a new bucket.

1. Review the bucket policy, select **The following default policy will be applied to your bucket**, and then choose **Save**.

1. For **Report path prefix**, enter the report path prefix that you want prepended to the name of your report. 

1. For **Time granularity**, choose one of the following:
   + **Hourly** if you want the line items in the report to be aggregated by the hour.
   + **Daily** if you want the line items in the report to be aggregated by the day.
   + **Monthly** if you want the line items in the report to be aggregated by month.

1. For **Report versioning**, choose whether you want each version of the report to overwrite the previous version of the report or to be delivered in addition to the previous versions.

   Overwriting reports can save on Amazon S3 storage costs. Delivering new report versions can improve auditability of billing data over time.

1. For **Report data integration**, select whether you want to enable your Cost and Usage Reports to integrate with Amazon Athena, Amazon Redshift, or Quick. The report is compressed in the following formats:
   + **Athena**: parquet format
   + **Amazon Redshift or Quick**: .gz compression

1. Choose **Next**.

1. After you have reviewed the settings for your report, choose **Review and Complete**. 

You can always return to the **Cost and Usage Reports** page in the Billing and Cost Management console to see when your reports were last updated.

# Viewing and managing reports


To view information about your Cost and Usage Report, use the Billing and Cost Management console. To view your report’s files, you can use the Amazon S3 console.

Use the following procedures to find your report and report files.

**To view your report details and files**

1. Open the Billing and Cost Management console at [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. In the navigation pane, under **Legacy Pages**, choose **Cost and Usage Reports**.

1. From your list of reports, choose the name of the report that you want to view.

1. On the **Report Details** page, you can view the report’s settings.

1. To view the report’s files, note the **Report path prefix** on the **Report Details** page.

1. Choose the bucket name listed under **Amazon S3 bucket**. The link opens this bucket in the Amazon S3 console.

1. From the list of objects in the bucket, choose the folder named with the first part of the **Report path prefix** that you noted in step 5. For example, if your **Report path prefix** is **example-report-prefix/example-report-name**, then choose the folder named **example-report-prefix**.

1. From the list of objects in the folder, choose the folder named with the second part of the **Report path prefix** that you noted in step 5. For example, if your **Report path prefix** is **example-report-prefix/example-report-name**, then choose the folder named **example-report-name**. This folder contains your report files.

# Viewing the latest report version


AWS updates your Cost and Usage Report at least once a day until your charges are finalized. When you create a report, you can choose to create new report versions or overwrite the existing report version with every update.

If you configured your report to create new report versions with every update, then use the **assemblyId** in the manifest file to find the latest report files.

**To view your latest report files when you have multiple report versions**

1. Open the Billing and Cost Management console at [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. In the navigation pane, under **Legacy Pages**, choose **Cost and Usage Reports**.

1. From your list of reports, choose the name of the report that you want to view.

1. On the **Report Details** page, note the **Report path prefix**.

1. Choose the bucket name listed under Amazon S3 bucket. The link opens this bucket in the Amazon S3 console.

1. From the list of objects in the bucket, choose the folder named with the first part of the **Report path prefix** that you noted in step 4. For example, if your **Report path prefix** is **example-report-prefix/example-report-name**, then choose the folder named **example-report-prefix**.

1. From the list of objects in the folder, choose the folder named with the second part of the **Report path prefix** that you noted in step 4. For example, if your **Report path prefix** is **example-report-prefix/example-report-name**, then choose the folder named **example-report-name**.

1. Open the folder named with the latest billing period (in the YYYYMMDD-YYYYMMDD format).

1. Open the ****example-report-name**-Manifest.json** file.

1. At the top of the manifest file, note the **assemblyId**. The **assemblyId** value corresponds to the name of the folder with the latest report files.

1. Return to the Amazon S3 console page where you’re viewing the folder named with the latest billing period.

1. Open the folder named with the **assemblyId** value that you noted in step 10. For example, if the **assemblyId** value is **20210129T123456Z**, then open the folder named **20210129T123456Z/**. This folder contains your latest report files.

# Viewing your finalized report


After issuing your invoice at the end of the month, AWS finalizes your report’s usage charges. To determine if a line item on your report is final, review the **bill/InvoiceId** column. If the line item is final, then the **bill/InvoiceId** column is populated with an AWS invoice ID. If the line item is not yet final, then the **bill/InvoiceId** column is blank.

To determine if your entire report is finalized, review the **bill/InvoiceId** column. If the report is final, then the **bill/InvoiceId** column is populated with invoice ID values. If the report is not yet final, then the **bill/InvoiceId** column is blank.

**Note**  
After your report is finalized, AWS might update the report if AWS applies refunds, credits, or support fees to your usage for the month. Because Developer, Business, and Enterprise Support are calculated based on final usage charges, those are reflected on the sixth or seventh of the month for the prior month’s report. AWS applies credits or refunds based on the terms of your agreement or contract with AWS.

# Understanding your report versions


AWS updates your Cost and Usage Report at least once a day until your charges are finalized. When you create a report, you can choose to create new report versions or overwrite the existing report version with every update.

Your report files include a .csv file or a collection of .csv files and the manifest file. Your report can also include any additional files that support your data’s integration with Amazon Athena, Amazon Redshift, or Quick.

The following sections describe the file organization and naming conventions based on the report versioning that you choose.

## Cost and Usage Reports delivery timeline
AWS CUR delivery timeline

During the report period, AWS delivers a new report and a new manifest file each time AWS updates the report. AWS builds on previous reports until the end of the billing period. After the end of the report billing period, AWS generates a new report with none of the information from the previous report.

## Creating new Cost and Usage Report versions


When you choose to keep your previous Cost and Usage Reports, your AWS CUR uses the following Amazon S3 organization and naming conventions.

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<assemblyId>/<example-report-name>-<file-number>.csv.<zip|gz>
```
+ `report-prefix` = The prefix that you assign to the report.
+ `report-name` = The name that you assign to the report.
+ `yyyymmdd-yyyymmdd` = The range of dates that the report covers. Reports are finalized at the end of the date range.
+ `assemblyId` = An ID that AWS creates each time that the report is updated.
+ `file-number` = If the update includes a large file, AWS might split it into multiple files. The `file-number` tracks the different files in an update.
+ `csv` = The format of the report files.
+ `zip` or `gz` = The type of compression applied to the report files.

For example, your report could be delivered as a collection of the following files.

```
<example-report-prefix>/<example-report-name>/20160101-20160131/<123456789>/<example-report-name>-<1>.csv.<zip>
<example-report-prefix>/<example-report-name>/20160101-20160131/<123456789>/<example-report-name>-<2>.csv.<zip>
<example-report-prefix>/<example-report-name>/20160101-20160131/<123456789>/<example-report-name>-<3>.csv.<zip>
<example-report-prefix>/<example-report-name>/20160101-20160131/<123456789>/<example-report-name>-Manifest.json
<example-report-prefix>/<example-report-name>/20160101-20160131/<example-report-name>-Manifest.json
```

AWS delivers all reports in a report date range to the same `report-prefix/report-name/yyyymmdd-yyyymmdd` folder. AWS gives each report a unique ID and delivers it to the `assemblyId` subfolder in the date range folder. If the report is too large for a single file, the report is split into multiple files and delivered to the same `assemblyId` folder.

For more information on manifesting files when you keep a previous report, see [Cost and Usage Reports manifest files](#manifest-cur-files)

## Overwriting previous Cost and Usage Reports


When you choose to overwrite your previous Cost and Usage Reports, your AWS CUR uses the following Amazon S3 organization and naming conventions.

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-<file-number>.csv.<zip|gz>
```
+ `report-prefix` = The prefix that you assign to the report.
+ `report-name` = The name that you assign to the report.
+ `yyyymmdd-yyyymmdd` = The range of dates that the report covers. AWS finalizes reports at the end of the date range.
+ 
+ `file-number` = If the update includes a large file, AWS might split it into multiple files. The `file-number` tracks the different files in an update.
+ `csv` = The format of the report files.
+ `zip` or `gz` = The type of compression applied to the report files.

For example, your report could be delivered as a collection of the following files.

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-<1>.csv.<zip>
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-<2>.csv.<zip><example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-<3>.csv.<zip>
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-Manifest.json
```

### Athena specifications


If you chose Athena support when you created your AWS CUR, the file naming conventions are the same as when you choose to overwrite your AWS CUR except for the format and compression. Athena AWS CUR files use `.parquet` instead. For example, your report could be delivered as a collection of the following files.

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>.parquet
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<cost_and_usage_data_status>
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-Manifest.json
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-create-table.sql
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/crawler-cfn.yml
```

### CloudFormation specifications


In addition to the AWS CUR files, AWS also delivers an CloudFormation template that you can use to set up an CloudFormation stack that enables you to query Amazon S3 data using Athena. If you don't want to use the CloudFormation template, you can use the provided SQL to create your own Athena tables. For more information, see [Querying Cost and Usage Reports using Amazon Athena](cur-query-athena.md).

## Cost and Usage Reports manifest files


When AWS updates AWS CUR, AWS also creates and delivers manifest files that you can use for Amazon Athena, Amazon Redshift, or Quick.

Manifest files use the naming conventions, and lists the following:
+ All of the detail columns that are included in the report to date
+ A list of report files if the report was split into multiple files
+ The time period covered by the report, and other information.

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-Manifest.json
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<assemblyId>/<example-report-name>-Manifest.json
<example-report-prefix>/<example-report-name>/<example-report-name>/year=2018/month=12/<example-report-name>-Manifest.json
```

### Creating new Cost and Usage Report versions


When you keep the previous Cost and Usage Reports, the manifest file is delivered to both the date range folder and the `assemblyId` folder. Each time AWS creates a new AWS CUR for a date range, it overwrites the manifest file stored in the date range folder with an updated manifest file. AWS delivers the same updated manifest file to the `assemblyId` folder along with the files for that update. Manifest files in the `assemblyId` folder aren't overwritten.

### Overwriting the previous Cost and Usage Reports


When you overwrite the previous AWS CUR, the manifest file is delivered to the `month=mm` folder. The manifest file is overwritten along with the report files.

### Amazon Redshift specifications


If you chose the option for Amazon Redshift support in your AWS CUR, AWS also creates and delivers a file with the SQL commands that you need to upload your report into Amazon Redshift. You can open the SQL file with a regular text editor. The SQL file uses the following naming convention.

```
<example-report-prefix>/<example-report-name>/yyyymmdd-yyyymmdd/<assemblyId>/<example-report-name>-RedshiftCommands.sql
```

If you use the commands in the `RedshiftCommands` file, you don't need to open the `RedshiftManifest` file.

**Important**  
The `manifest` file determines which report files the `copy` command in the `RedshiftCommands` file uploads. Deleting or removing the `manifest` file breaks the copy command in the `RedshiftCommands` file.

### Amazon Athena specifications


If you chose the option for Amazon Athena support in your AWS CUR, AWS also creates and delivers multiple files to help set up all of the resources that you need. AWS delivers a CloudFormation template, a SQL file with the SQL to create your Athena table manually, and a file with the SQL to check your AWS CUR refresh status. These files use the following naming conventions.

```
<example-report-prefix>/<example-report-name>/<example-report-name>/yyyymmdd-yyyymmdd/crawler-cfn.yml
<example-report-prefix>/<example-report-name>/<example-report-name>/yyyymmdd-yyyymmdd/<example-report-name>-create-table.sql
<example-report-prefix>/<example-report-name>/<example-report-name>/yyyymmdd-yyyymmdd/<cost_and_usage_data_status>
```

# Editing your Cost and Usage Reports configuration
Editing reports

You can use the **Cost and Usage Reports** page in the Billing and Cost Management console to edit Cost and Usage Reports.

**Note**  
Report names can't be edited. If you chose **Overwrite** for **Report versioning**, you're unable to edit the report name, whether the report includes resource IDs, time granularity, or the report versioning. If you delete a report set to **Overwrite** and create a new report with the same name, Amazon S3 bucket, and path prefix, your data could corrupt and become inaccurate.<a name="edit-cur-steps"></a>

**To edit Cost and Usage Reports**

1. Open the Billing and Cost Management console at [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. In the navigation pane, under **Legacy Pages**, choose **Cost and Usage Reports**.

1. Select the report that you want to edit and choose **Edit report**.

1. (Versioned reports only) For **Report additional content**, select **Include resource IDs** to include the IDs of each individual resource in the report.
**Note**  
Including resource IDs creates individual line items for each of your resources. This might increase the size of your Cost and Usage Reports files significantly, based on your AWS usage.

1. Select **Split cost allocation data** to include detailed cost and usage for shared resources (Amazon ECS and Amazon EKS).
**Note**  
Including split cost allocation data creates individual line items for each of your resources (that is, ECS tasks and Kubernetes pods). This might increase the size of your Cost and Usage Reports files significantly, based on your AWS usage.

1. For **Data refresh settings**, select whether you want the AWS Cost and Usage Reports to refresh if AWS applies refunds, credits, or support fees to your account after finalizing your bill. When a report refreshes, a new report is uploaded to Amazon S3.

1. Choose **Next**.

1. For **S3 bucket**, enter the name of the Amazon S3 bucket where you want the reports delivered.

1. Choose **Verify**.
**Note**  
The bucket must have appropriate permissions to be valid. For more information on adding permissions to the bucket, see [ Setting Bucket and Object Access Permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/set-permissions.html) in the *[Amazon Simple Storage Service User Guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)*. 

1. For **Report path prefix**, enter the report path prefix that you want prepended to the name of your report. 

1. (Versioned reports only) For **Time granularity**, choose one of the following:
   + **Hourly**: If you want the line items in the report to be aggregated by the hour.
   + **Daily**: If you want the line items in the report to be aggregated by the day.
   + **Monthly** if you want the line items in the report to be aggregated by month.

1. (Versioned reports only) For **Report versioning**, choose whether you want each version of the report to overwrite the previous version of the report, or to be delivered in addition to the previous versions.

1. For **Report data integration**, select whether you want to enable your AWS CUR to integrate with Amazon Athena, Amazon Redshift, or Quick. The report is compressed in the following formats:
   + **Athena**: Parquet format
   + **Amazon Redshift or Quick**: .gz compression

1. Choose **Save**.

# Using Cost and Usage Reports for AWS Organizations


In AWS Organizations, both management accounts and member accounts can create Cost and Usage Reports. The IAM policies that allow or restrict the ability to create a report are the same for both types of accounts.

**Note**  
The account that creates the Cost and Usage Report must also own the Amazon S3 bucket that AWS sends the reports to. You cannot configure a Cost and Usage Report to deliver to an Amazon S3 bucket owned by another account. For more information about Amazon S3 bucket setup requirements, see [Setting up an Amazon S3 bucket for Cost and Usage Reports](cur-s3.md).

## Managing Cost and Usage Reports as a member account


If you have permissions to create a Cost and Usage Report for a member account within an organization, you can create a report for only the member account’s cost and usage data. The member account receives reports for its cost and usage during the time that the account has been a member of its current organization.

For example, say a member account leaves organization A and joins organization B on the 15th of the month. Then, the member account creates a report. Because the member account created a report after joining organization B, the member account’s report for the month includes billing data for only the time that the account has been a member of organization B.

After a member account joins a new organization, the member account's cost and usage are recorded in the new organization’s reports. This is the same outcome for a management account that converts to a member account and joins a new organization.

When a member account leaves an organization or converts into a standalone account, the member account can still access the previous reports as long as they have permissions to the Amazon S3 bucket where the previous reports are stored.

## Managing Cost and Usage Reports as a management account


If you’re an administrator of an AWS Organizations management account and you don’t want member accounts to create a report, you can apply a service control policy (SCP) that prevents member accounts from creating reports. The SCP can prevent member accounts from creating new reports, but it doesn’t delete reports created previously.

**Note**  
SCPs apply only to member accounts. To prevent a management account from creating a report, modify the IAM policies attached to the user roles in the management account.

For more information on consolidated billing, see [Consolidated billing for AWS Organizations](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/consolidated-billing.html) in the *AWS Billing User Guide*.

# Querying Cost and Usage Reports using Amazon Athena
Querying reports using Athena

Amazon Athena is a serverless query service that you can use to analyze the data from your AWS Cost and Usage Reports (AWS CUR) in Amazon Simple Storage Service (Amazon S3) using standard SQL. This helps you avoid having to create your own data warehouse solutions to query AWS CUR data.

We strongly recommend that you create both a new Amazon S3 bucket and a new AWS CUR report to use with Athena. AWS CUR supports only the Apache Parquet compression format for Athena and automatically overwrites previous reports that are stored in your S3 bucket.

This section outlines how to use Athena with Cost and Usage Reports. For a full description of the Athena service, see the [Amazon Athena User Guide](https://docs.aws.amazon.com/athena/latest/ug/).

**Topics**
+ [

# Setting up Athena using CloudFormation templates
](use-athena-cf.md)
+ [

# Setting up Athena manually
](cur-ate-manual.md)
+ [

# Running Amazon Athena queries
](cur-ate-run.md)
+ [

# Loading report data to other resources
](cur-query-other.md)

For a demonstration of querying reports using Athena, see the following video.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/KEeJEZTYE8E/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/KEeJEZTYE8E)


# Setting up Athena using CloudFormation templates
Setting up Athena with CloudFormation

**Important**  
CloudFormation doesn't support cross-Region resources. If you plan to use an CloudFormation template, you must create all resources in the same AWS Region. The Region must support the following services:  
AWS Lambda
Amazon Simple Storage Service (Amazon S3)
AWS Glue
Amazon Athena

To streamline and automate integration of your Cost and Usage Reports with Athena, AWS provides an CloudFormation template with several key resources along with the reports that you set up for Athena integration. The CloudFormation template includes an AWS Glue crawler, an AWS Glue database, and an AWS Lambda event. 

The Athena integration setup process using CloudFormation removes any Amazon S3 events that your bucket might already have. This can negatively affect any existing event-based processes that you have for an existing AWS CUR report. We strongly recommend that you create both a new Amazon S3 bucket and a new AWS CUR report to use with Athena.

Before you can use a CloudFormation template to automate Athena integration, make sure that you do the following:
+ Create a new Amazon S3 bucket for your reports. For more information, see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) in the *Amazon S3 User Guide*. 
+ [Create a new report](cur-create.md) to use with Athena. During the setup process, for **Report data integration**, choose **Athena**.
+ Wait for the first report to be delivered to your Amazon S3 bucket. It can take up to 24 hours for AWS to deliver your first report.<a name="use-athena-cf-steps"></a>

**To use the Athena CloudFormation template**

1. Open the Amazon S3 console at [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. From the list of buckets, choose the bucket where you chose to receive your AWS CUR report.

1. Choose your report path prefix (*your-report-path-prefix/*). Then, choose your report name (*your-report-name/*).

1. Choose the `.yml` template file.

1. Choose **Object actions**, and then choose **Download as**.

1. Open the CloudFormation console at [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. If you have never used CloudFormation before, choose **Create New Stack**. Otherwise, choose **Create Stack**.

1. Under **Prepare template**, choose **Template is ready**.

1. Under **Template source**, choose **Upload a template file**.

1. Choose **Choose file**.

1. Choose the downloaded `.yml` template, and then choose **Open**.

1. Choose **Next**.

1. For **Stack name**, enter a name for your template and choose **Next**.

1. Choose **Next**.

1. At the bottom of the page, select **I acknowledge that AWS CloudFormation might create IAM resources.** 

   This template creates the following resources:
   + Three IAM roles
   + An AWS Glue database
   + An AWS Glue crawler
   + Two Lambda functions
   + An Amazon S3 notification

1. Choose **Create stack**.

**To update the existing Athena CloudFormation template**

1. Open the Amazon S3 console at [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. From the list of buckets, choose the bucket where you chose to receive your AWS CUR report.

1. Choose your report path prefix (*your-report-path-prefix/*). Then, choose your report name (*your-report-name/*).

1. Choose the `.yml` template file.

1. Choose **Object actions**, and then choose **Download as**.

1. Open the CloudFormation console at [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Select the stack that was previously created, and then choose **Update**.

1. Under **Prepare template**, choose **Replace current template**.

1. Under **Template source**, choose **Upload a template file**.

1. Choose **Choose file**.

1. Choose the downloaded `.yml` template, and then choose **Open**.

1. Choose **Next**.

1. On the **Specify stack details** page, modify any details, and then choose **Next**.

1. Choose **Next**.

1. At the bottom of the page, select **I acknowledge that AWS CloudFormation might create IAM resources.** 

1. Choose **Update stack**.

# Setting up Athena manually


We strongly recommend that you use the AWS CloudFormation template to create your table instead of creating it yourself. The provided SQL query creates a table that covers only a single month of data, but the AWS CloudFormation template creates a table that can include multiple months and that updates automatically. For more information on how to set up the AWS CloudFormation template, see [Setting up Athena using CloudFormation templates](use-athena-cf.md).

If you choose not to use the CloudFormation template to set up your Athena table, manually follow the steps below. You need to create a table before you can run SQL queries on your AWS CUR data. You will need to do this step at least once a month and the table only includes data from the current AWS CUR.

As part of the table creation process, AWS transforms the AWS CUR column names. For more information about the transformation process, see [Column names](cur-ate-run.md#column-transformations).
+ [Creating an Athena table](create-manual-table.md)
+ [Creating a Cost and Usage Reports status table](create-manual-cur-table.md)
+ [Uploading your report partitions](upload-report-partitions.md)

# Creating an Athena table


AWS includes the SQL that you need to run to create this table in your AWS CUR bucket.<a name="create-manual-table-steps"></a>

**To create your Athena table**

1. Sign in to the AWS Management Console and open the Amazon S3 console at [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. From the list of buckets, choose the bucket where you chose to receive your Cost and Usage Reports.

1. Navigate the path `your-report-prefix-your-report-name-path-to-report`.

   The exact path depends on whether your AWS CUR is set to overwrite previous versions. For more information, see [Cost and Usage Reports delivery timeline](understanding-report-versions.md#access-cur-s3-timeline).

1. Open the file `my-report-name-create-table.sql`.

1. Copy the SQL from the file, starting with `CREATE` and ending with `LOCATION 's3://your-report-prefix/your-report-name/the-rest-of-the=path'`. Take note of the first line, as you need the database name and table to create the Athena database.

1. Open the Athena console at [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. In the **New query 1** query pane, paste the following SQL. For *`<database name>.<table name>`*, use the database and table name from the first line of the SQL that you copied.

   ```
   CREATE DATABASE <database name>
   ```

1. Choose **Run query**.

1. In the dropdown menu, choose the database that you just created.

1. In the **New query 1** query pane, paste the rest of the SQL from the SQL file.

1. Choose **Run query**.

After you create your table, you need to load your partitions before you can run a query. For more information, see [Uploading your report partitions](upload-report-partitions.md).

# Creating a Cost and Usage Reports status table
Creating a report status table

AWS refreshes your AWS CUR multiple times a day. There isn't a way for Athena to tell when AWS is in the process of refreshing your report, which can lead to query results with a combination of old and new data. To mitigate this, create a table to track whether AWS is refreshing your Cost and Usage Reports and query that table to see if AWS is refreshing your data. You only need to create this table once. After that, AWS keeps the table up to date.<a name="create-refresh-table"></a>

**To create your refresh table**

1. Open the Athena console at [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. In the **New query 1** query pane, paste the following SQL. 

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS cost_and_usage_data_status(
     status STRING)
   ROW FORMAT SERDE
     'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
   WITH SERDEPROPERTIES (
    'serialization.format' = '1'
   )
   LOCATION 's3://{S3_Bucket_Name}/{Report_Key}/cost_and_usage_data_status/'
   ```

1. Choose **Run query**.

To check whether AWS is refreshing your data, use the Athena console to run the following SQL query.

```
select status from cost_and_usage_data_status 
```

# Uploading your report partitions


To query your Cost and Usage Reports data, you need to upload the data into your Athena table. You must do this for each new AWS CUR report that AWS delivers to you.<a name="upload-partitions"></a>

**To upload your latest partitions**

1. Open the Athena console at [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Choose the vertical three dots next to your table name.

1. Choose **Load partitions**.

If you don't upload your partitions, Athena returns either no results or an error message that indicates missing data.

# Running Amazon Athena queries
Running Athena queries

To run Athena queries on your data, first use the Athena console to check whether AWS is refreshing your data and then run your query on the Athena console. When you run your SQL, make sure that the correct database is selected from the dropdown list. You can use the following SQL to check the status.

```
select status from cost_and_usage_data_status 
```

The two possible results are `READY` and `UPDATING`. If the status is `READY`, then you can query your Athena database. If the status is `UPDATING`, then Athena might return incomplete results.

After you've confirmed that AWS is refreshing your data, you can run your own queries. For example, the following query shows year-to-date costs by service for each month in the example database called `mycostandusage_parquet`. The following query shows 2018 year-to-date costs. Update the year to see current year-to-date costs.

```
SELECT line_item_product_code,
sum(line_item_blended_cost) AS cost, month
FROM mycostandusage_parquet
WHERE year='2018'
GROUP BY  line_item_product_code, month
HAVING sum(line_item_blended_cost) > 0
ORDER BY  line_item_product_code;
```

## Column names


Athena column name restrictions are different from the Cost and Usage Reports column name restrictions. This means that when your AWS CUR data is uploaded into an Athena table, the column names change. AWS makes the following changes:
+ An underscore is added in front of uppercase letters
+ Uppercase letters are replaced with lowercase letters 
+ Any non-alphanumeric characters are replaced with an underscore
+ Duplicate underscores are removed
+ Any leading and trailing underscores are removed
+ If the column name is longer than the allowed length of column names, underscores are removed from left to right

**Note**  
After applying these rules, some of the resource tag columns will have duplicate names. AWS merges columns when there are more than one columns with the same name. 

As examples, the column name `ExampleColumnName` becomes `example_column_name`, and the column name `Example Column Name` becomes `example_column_name`.

# Loading report data to other resources
Other resources

You can upload Cost and Usage Reports to Amazon Redshift and Amazon Quick to analyze your AWS cost and usage.

**Topics**
+ [

## Loading report data to Amazon Quick
](#cur-query-other-qs)
+ [

## Loading report data to Amazon Redshift
](#cur-query-other-rs)

## Loading report data to Amazon Quick


You can upload your Cost and Usage Reports into Amazon Quick.

For more information about uploading to Quick, see [Creating a Data Set Using Amazon S3 Files](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html) in the *Quick User Guide*.

## Loading report data to Amazon Redshift


This section shows how you can upload AWS CUR to Amazon Redshift to analyze your AWS costs and usage.

**Important**  
Amazon Redshift columns aren't case sensitive and has stricter character limitations than user-defined tags. To prevent conflicts between Amazon Redshift and user-defined tags, AWS replaces your tags with the tags `userTag0`, `userTag1`, `userTag2`, etc. After you create an Amazon Redshift table and upload your report into it, you can create an Amazon Redshift table that maps the AWS-defined tags to your user-defined tags. The tag table allows you to look up your original tags.  
For example, if you have the tags `OWNER` and `Owner`, Amazon Redshift doesn't allow you to create a table with two columns named "owner". Instead, you create a report table with the columns `userTag0` and `userTag1` instead of `OWNER` and `Owner`, and then create a table with the columns `remappedUserTag` and `userTag`. The `remappedUserTag` column stores the AWS-defined tags `userTag0` and `userTag1`, and the `userTag` column stores your original tags, `OWNER` and `Owner` 

AWS provides the commands to create your Amazon Redshift table, upload your report, create your tag table, and insert all of the tag rows into your tag table. The commands are provided to you in the `RedshiftCommands.sql` file that is stored alongside your manifest file in S3, and in the **Redshift file** **Helper file** in the Billing and Cost Management console. AWS also provides a RedshiftManifest file, which controls which report the commands in the RedshiftCommand file uploads. Deleting or removing the RedshiftManifest file breaks the copy command in the RedshiftCommands file.

**To find the `RedshiftCommands.sql` file in the Billing and Cost Management console**

1. Open the Billing and Cost Management console at [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. In the navigation pane, under **Legacy Pages**, choose **Cost and Usage Reports**.

1. Choose the report that you want to upload to Amazon Redshift.

1. Next to **You have enabled viewing reports in the following service(s):**, choose **Amazon Redshift**.

1. Copy the commands from the dialog box and paste them into your SQL client.

The following procedure assumes familiarity with databases and Amazon Redshift.

**To upload an Cost and Usage Reports to Amazon Redshift**

1. Create an Amazon Redshift cluster.

   For more information, see [Creating a Cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#create-cluster) in the *Amazon Redshift Management Guide*.

1. Sign in to the AWS Management Console and open the Amazon S3 console at [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Navigate to the Amazon S3 location where you store your AWS CUR.

1. Open the `RedshiftCommands.sql` file.

   The file contains customized commands to create an Amazon Redshift table, upload the AWS CUR from Amazon S3, and create a tag table that allows user-defined tags to be imported into Amazon Redshift.

1. In the `copy` command, replace *<AWS\$1ROLE>* with the ARN of an IAM role that has permissions to access the Amazon S3 bucket where you store your AWS CUR.

1. Replace *<S3\$1BUCKET\$1REGION>* with the Region your Amazon S3 bucket is in. For example, `us-east-1`.

1. Use a SQL client to connect to the cluster.

   For more information, see [Accessing Amazon Redshift Clusters and Databases](https://docs.aws.amazon.com/redshift/latest/mgmt/using-rs-tools.html) in the *Amazon Redshift Management Guide*.

1. Copy the SQL commands from the `RedshiftCommands.sql` file to your SQL client in the following order:
   + create table - This command creates an Amazon Redshift table with a schema customized to match your report.
   + copy - This command uses the provided IAM role to upload the AWS CUR files from S3 to Amazon Redshift.
   + create tag table - This command creates a table that allows you to map AWS-defined tags to your user-defined tags.
   + insert - These commands insert the user-defined tags into the tag table.

1. After you have copied all of the data from your AWS CUR into Amazon Redshift, you can query the data using SQL. For more information about querying data in Amazon Redshift, see [Amazon Redshift SQL](https://docs.aws.amazon.com/redshift/latest/dg/c_redshift-sql.html) in the *Amazon Redshift Database Developer Guide*.

**Note**  
The number of columns in Cost and Usage Reports can change from month to month, such as when a new cost allocation tag is created or a service adds a new product attribute. We recommend that you copy the data from your AWS CUR into a new table every month, and then copy the columns that interest you into a separate month-by-month table.

# Configuring Cost and Usage Reports using Billing Conductor
Configuring AWS CUR using Billing Conductor

You can create pro forma AWS Cost and Usage Reports (AWS CUR) for each billing group that you create in Billing Conductor. The pro forma AWS CUR has the same file format, granularity, and columns as the standard AWS CUR. Pro forma contains the most comprehensive set of cost and usage data available for a given period of time. For more information about Billing Conductor, see the [https://docs.aws.amazon.com/billingconductor/latest/userguide/what-is-billingconductor.html](https://docs.aws.amazon.com/billingconductor/latest/userguide/what-is-billingconductor.html).

**Topics**
+ [

## Understanding the differences between Billing Conductor AWS CUR and standard AWS CUR
](#cur-abc-type-differences)
+ [

## Create pro forma Cost and Usage Reports for a billing group
](#create-proforma)

## Understanding the differences between Billing Conductor AWS CUR and standard AWS CUR
Differences between Billing Conductor AWS CUR and standard AWS CUR

There are a few differences between the standard Cost and Usage Reports and pro forma AWS CUR created using the Billing Conductor configuration.
+ The standard AWS CUR computes the cost and usage for each account in your consolidated billing family. A pro forma AWS CUR per billing group only includes the accounts in the billing group at the time of computation.
+ The standard AWS CUR populates the invoice column once and invoice is generated by AWS. A pro forma AWS CUR doesn't populate the invoice column. Currently, no invoice is generated, or issued by AWS based on pro forma billing data.

## Create pro forma Cost and Usage Reports for a billing group


Use the following steps to generate a pro forma AWS CUR for a billing group.

**Note**  
The legacy AWS Cost and Usage Report page supports reports only for billing group views. To create reports for billing transfer views, use the Data Export page.

**To create pro forma Cost and Usage Reports for a billing group**

1. Open the Billing and Cost Management console at [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. In the navigation pane, under **Legacy Pages**, choose **Cost and Usage Reports**.

1. On the top right of the **Report table**, choose **Settings**.

1. Turn on the **Pro forma** data view.

1. Choose **Enable**.

1. Choose **Create report**.

1. For **Report name**, enter a name for your report.

1. For **Data view**, choose **pro forma**.

1. Choose a billing group.

1. For **Additional report details**, choose **Include resource IDs** to include the IDs of each individual resources in the report.

1. For **Data refresh settings**, choose if you want Cost and Usage Reports to refresh if AWS applies refunds, credits, or support fees to your account after finalizing your bill. When a report refreshes, a new report is uploaded to Amazon S3.

1. Choose **Next**.

1. For **S3 bucket**, choose **Configure**.

1. In the **Configure S3 Bucket** dialog box, do one of the following:
   + Choose an existing bucket from the drop down list and choose **Next**.
   + Enter a bucket name and the AWS Region where you want to create a new bucket and choose **Next**.

1. Review the bucket policy, select **I have confirmed that this policy is correct**, and choose **Save**.

1. For **Report path prefix**, enter the report path prefix that you want prepended to the name of your report.

   This step is optional for Amazon Redshift or Quick, but required for Amazon Athena. If you don't specify a prefix, the default prefix is the name that you specified for the report in step 7, and the date range for the report in the following format: `/report-name/date-range/` 

1. For **Time granularity**, choose one of the following:
   + **Hourly** if you want the line items in the report to be aggregated by the hour.
   + **Daily** if you want the line items in the report to be aggregated by the day.

1. For **Report versioning**, choose whether you want each version of the report to overwrite the previous version of the report, or to be delivered in addition to the previous versions.

   Overwriting reports can save on Amazon S3 storage costs. Delivering new report versions can improve auditability of billing data over time.

1. For **Report data integration**, choose whether you want to upload your Cost and Usage Reports to Amazon Athena, Amazon Redshift, or Quick. The report is compressed in the following formats:
   + **Athena**: parquet format
   + **Amazon Redshift or Quick**: .gz compression

1. Choose **Next**.

1. After you have reviewed the settings for your report, choose **Review and Complete**. 

# Data dictionary
Data dictionary

Cost and Usage Reports contain details about your usage. The following sections list and describe a subset of columns that you see in your report, and the corresponding definitions.

To download the full list of the columns that can appear in AWS Cost and Usage Reports (AWS CUR) and the services that the columns apply to, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). This comma-separated values (CSV) list includes **Identity**, **Bill**, **LineItem**, **Reservation**, **Pricing**, and **Product** columns.

Every Cost and Usage Report includes **Identity**, **Bill**, and **LineItem** columns. All other columns are included in your report only if your monthly AWS usage generates data to populate those columns.

**Topics**
+ [

# Identity details
](identity-columns.md)
+ [

# Billing details
](billing-columns.md)
+ [

# Line item details
](Lineitem-columns.md)
+ [

# Reservation details
](reservation-columns.md)
+ [

# Pricing details
](pricing-columns.md)
+ [

# Product details
](product-columns.md)
+ [

# Resource tags details
](resource-tags-columns.md)
+ [

# Savings Plans details
](savingsplans-columns.md)
+ [

# Cost Categories details
](cost-categories-columns.md)
+ [

# Discount details
](discount-details.md)
+ [

# Split line item details
](split-line-item-columns.md)

# Identity details


Columns under the **identity** header in AWS Cost and Usage Reports are static fields that appear in all Cost and Usage Reports.

You can use the identity line items in the report to find specific line items that have been split across multiple AWS CUR files. These include the following columns:

## identity/LineItemId

+ **Description:** This field is generated for each line item and is unique in a given partition. This does not guarantee that the field will be unique across an entire delivery (that is, all partitions in an update) of the AWS CUR. The line item ID isn't consistent between different Cost and Usage Reports and can't be used to identify the same line item across different reports.
+ **Example:** A report created for November 29 can be large enough to require multiple files. The **LineItemId** is consistent between the November 29 AWS CUR files, but doesn't match the **LineItemId** for the same resource in the November 30 report.

## identity/TimeInterval

+ **Description:** The time interval that this line item applies to, in the following format: `YYYY-MM-DDTHH:mm:ssZ/YYYY-MM-DDTHH:mm:ssZ`. The time interval is in UTC and can be either daily or hourly, depending on the granularity of the report.
+ **Example:** The **TimeInterval** `2017-11-01T00:00:00Z/2017-12-01T00:00:00Z` includes the entire month of November 2017.

# Billing details


Columns under the **bill** header in AWS Cost and Usage Reports are static fields that appear in all Cost and Usage Reports. You can use the billing line items in the report to find details about the specific bill covered by the report, such as the charge type and the beginning and end of the billing period. This includes the following columns: 

A \$1 [B](#b-B) \$1 C \$1 D \$1 E \$1 F \$1 G \$1 H \$1 [I](#b-I) \$1 J \$1 K \$1 L \$1 M \$1 N \$1 O \$1 [P](#b-P) \$1 Q \$1 R \$1 S \$1 T \$1 U \$1 VWXYZ 

## B


### bill/BillingEntity


Helps you identify whether your invoices or transactions are for AWS Marketplace or for purchases of other AWS services. Possible values include:
+ **AWS** – Identifies a transaction for AWS services other than in AWS Marketplace.
+ **AWS Marketplace** – Identifies a purchase in AWS Marketplace.

### bill/BillingPeriodEndDate


The end date of the billing period that is covered by this report, in UTC. The format is `YYYY-MM-DDTHH:mm:ssZ`.

### bill/BillingPeriodStartDate


The start date of the billing period that is covered by this report, in UTC. The format is `YYYY-MM-DDTHH:mm:ssZ`. 

### bill/BillType


The type of bill that this report covers. There are three bill types:
+ **Anniversary** – Line items for services that you used during the month
+ **Purchase** – Line items for upfront service fees
+ **Refund** – Line items for refunds

## I


### bill/InvoiceId


The ID associated with a specific line item. Until the report is final, the **InvoiceId** is blank.

### bill/InvoicingEntity


The AWS entity that issues the invoice. Possible values include:
+ **Amazon Web Services, Inc.** – The entity that issues invoices to customer globally, where applicable.
+ **Amazon Web Services India Private Limited** – The entity that issues invoices to customers based in India.
+ **Amazon Web Services South Africa Proprietary Limited** – The entity that issues invoices to customers in South Africa.

## P


### bill/PayerAccountId


The account ID of the paying account. For an organization in AWS Organizations, this is the account ID of the management account.

# Line item details


Columns under the **lineItem** header in AWS Cost and Usage Reports are static fields that appear in all Cost and Usage Reports. They cover all of the cost and usage information for your usage. This includes the following columns:

[A](#l-A) \$1 [B](#l-B) \$1 [C](#l-C) \$1 D \$1 E \$1 F \$1 G \$1 H \$1 I \$1 J \$1 K \$1 [L](#l-L) \$1 M \$1 [N](#l-N) \$1 [O](#l-O) \$1 [P](#l-P) \$1 Q \$1 [R](#l-R) \$1 S \$1 T \$1 [U](#l-U) \$1 VWXYZ 

## A


### lineItem/AvailabilityZone


The Availability Zone that hosts this line item. For example, `us-east-1a` or `us-east-1b`.

## B


### lineItem/BlendedCost


The `BlendedRate` multiplied by the `UsageAmount`.

**Note**  
**BlendedCost** is blank for line items that have a **LineItemType** of **Discount**. Discounts are calculated using only the unblended cost of a member account, aggregated by member account and SKU. As a result, **BlendedCost** is not available for discounts.

### lineItem/BlendedRate


The `BlendedRate` is the average cost incurred for each SKU across an organization.

For example, the Amazon S3 blended rates are the total cost of storage divided by the amount of data stored per month. For accounts with RIs, the blended rates are calculated as the average costs of the RIs and the On-Demand Instances.

Blended rates are calculated at the management account level, and used to allocate costs to each member account. For more information, see [Blended Rates and Costs](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/con-bill-blended-rates.html#Blended_CB) in the *AWS Billing User Guide*.

## C


### lineItem/CurrencyCode


The currency that this line item is shown in. All AWS customers are billed in US dollars by default. To change your billing currency, see [Changing which currency you use to pay your bill](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-account-payment.html#manage-account-payment-change-currency) in the *AWS Billing User Guide*.

## L


### lineItem/LegalEntity


The Seller of Record of a specific product or service. In most cases, the invoicing entity and legal entity are the same. The values might differ for third-party AWS Marketplace transactions. Possible values include:
+ **Amazon Web Services, Inc.** – The entity that sells AWS services.
+ **Amazon Web Services India Private Limited** – The local Indian entity that acts as a reseller for AWS services in India.

### lineItem/LineItemDescription


The description of the line item type. For example, the description of a usage line item summarizes what type of usage you incurred during a specific time period.

For size-flexible RIs, the description corresponds to the RI the benefit was applied to. For example, if a line item corresponds to a `t2.micro` and a `t2.small` RI was applied to the usage, the **lineItem/LineItemDescription** displays `t2.small`.

The description for a usage line item with an RI discount contains the pricing plan covered by the line item.

### lineItem/LineItemType


The type of charge covered by this line item. Possible types are the following:
+ **BundledDiscount** – A usage-based discount that provides free or discounted usage of a service or feature based on the usage of another service or feature.
+ **Credit** – Any credits that AWS applied to your bill. See the **Description** column for details. AWS might update reports after they have been finalized if AWS applies a credit to your account for the month after finalizing your bill.
+ **Discount** – Any discounts that AWS applied to your usage. This specific line item name may vary and require parsing based on the discount. For more information, refer to the **lineItem/LineItemDescription** column.
+ **DiscountedUsage** – The rate for any instances for which you had Reserved Instance (RI) benefits.
+ **Fee** – Any upfront annual fee that you paid for subscriptions. For example, the upfront fee that you paid for an **All Upfront RI** or a **Partial Upfront RI**.
+ **Refund** – The negative charges that AWS refunded money for. Check the **Description** column for details. AWS might update reports after they have been finalized if AWS applies a refund to your account for the month after finalizing your bill.
+ **RIFee** – The monthly recurring fee for subscriptions. For example, the recurring fee for **Partial Upfront RI**s, **No Upfront RI**s, and **All Upfront**s that you pay every month. Although the RIFee might be \$10 for all upfront reservations, this line is still populated for those reservation types to provide other columns such as **reservation/AmortizedUpfrontFeeForBillingPeriod** and **reservation/ReservationARN**.
+ **Tax** – Any taxes that AWS applied to your bill. For example, VAT or US sales tax.
+ **Usage** – Any usage that is charged at On-Demand Instance rates.
+ **SavingsPlanUpfrontFee** – Any one-time upfront fee from your purchase of an All Upfront or Partial Upfront Savings Plans.
+ **SavingsPlanRecurringFee** – Any recurring hourly charges that correspond with your No Upfront or Partial Upfront Savings Plans. The Savings Plans recurring fee is initially added to your bill on the day that you purchase a No Upfront or Partial Upfront Savings Plans. After the initial purchase, AWS adds the recurring fee to the first day of each billing period thereafter.
+ **SavingsPlanCoveredUsage** – Any on-demand cost that is covered by your Savings Plans. Savings Plans covered usage line items are offset by the corresponding Savings Plans negation items.
+ **SavingsPlanNegation** – Any offset cost through your Savings Plans benefit that’s associated with the corresponding Savings Plans covered usage item.

For more information and examples of Savings Plans line items, see [Understanding Savings Plans](cur-sp.md).

## N


### lineItem/NetUnblendedCost


The actual after-discount cost that you're paying for the line item. This column is included in your report only when your account has a discount in the applicable billing period.

### lineItem/NetUnblendedRate


The actual after-discount rate that you're paying for the line item. This column is included in your report only when your account has a discount in the applicable billing period.

### lineItem/NormalizationFactor


As long as the instance has shared tenancy, AWS can apply all Regional Linux or Unix Amazon EC2 and Amazon RDS RI discounts to all instance sizes in an instance family and AWS Region. This also applies to RI discounts for member accounts in an organization. All new and existing Amazon EC2 and Amazon RDS size-flexible RIs are sized according to a normalization factor, based on the instance size. The following table shows the normalization factor that AWS applies to each instance size.


**Normalization factors for Amazon EC2 size-flexible RIs**  

|  Instance size  |  Normalization factor  | 
| --- | --- | 
|  `nano`  |  0.25  | 
|  `micro`  |  0.5  | 
|  `small`  |  1  | 
|  `medium`  |  2  | 
|  `large`  |  4  | 
|  `xlarge`  |  8  | 
|  `2xlarge`  |  16  | 
|  `4xlarge`  |  32  | 
|  `8xlarge`  |  64  | 
|  `10xlarge`  |  80  | 
|  `16xlarge`  |  128  | 
|  `32xlarge`  |  256  | 

### lineItem/NormalizedUsageAmount


The amount of usage that you incurred, in normalized units, for size-flexible RIs. The **NormalizedUsageAmount** is equal to **UsageAmount** multiplied by **NormalizationFactor**.

## O


### lineItem/Operation


The specific AWS operation covered by this line item. This describes the specific usage of the line item. For example, a value of `RunInstances` indicates the operation of an Amazon EC2 instance.

## P


### lineItem/ProductCode


The code of the product measured. For example, Amazon EC2 is the product code for Amazon Elastic Compute Cloud.

## R


### lineItem/ResourceId


(Optional) If you chose to include individual resource IDs in your report, this column contains the ID of the resource that you provisioned. For example, an Amazon S3 storage bucket, an Amazon EC2 compute instance, or an Amazon RDS database can each have a resource ID. This field is blank for usage types that aren't associated with an instantiated host, such as data transfers and API requests, and line item types such as discounts, credits, and taxes. The following table shows a list of resource identifiers for common AWS services.


**AWS resource identifiers**  

|  AWS service  |  Resource identifier  | 
| --- | --- | 
|  Amazon CloudFront  |  Distribution ID  | 
|  Amazon CloudSearch  |  Search domain  | 
|  Amazon DynamoDB  |  DynamoDB table  | 
|  Amazon Elastic Compute Cloud - Amazon EBS  |  Amazon EBS volume  | 
|  Amazon Elastic Compute Cloud  |  Instance ID  | 
|  Amazon Elastic Compute Cloud - CloudWatch  |  CloudWatch charges for an instance ID  | 
|  Amazon EMR  |  MapReduce cluster  | 
|  Amazon ElastiCache  |  Cache cluster  | 
|  Amazon OpenSearch Service  |  Search domain  | 
|  Amazon Glacier  |  Vault  | 
|  Amazon Relational Database Service  |  Database  | 
|  Amazon Redshift  |  Amazon Redshift cluster  | 
|  Amazon Simple Storage Service  |  Amazon S3 bucket  | 
|  Amazon Virtual Private Cloud  |  VPN ID  | 
|  AWS Lambda  |  Lambda function name  | 

## T


### lineItem/TaxType


The type of tax that AWS applied to this line item.

## U


### lineItem/UnblendedCost


The `UnblendedCost` is the `UnblendedRate` multiplied by the `UsageAmount`.

### lineItem/UnblendedRate


In consolidated billing for accounts using AWS Organizations, the unblended rate is the rate associated with an individual account's service usage.

For Amazon EC2 and Amazon RDS line items that have an RI discount applied to them, the `UnblendedRate` is zero. Line items with an RI discount have a `LineItemType` of `DiscountedUsage`.

### lineItem/UsageAccountId


The account ID of the account that used this line item. For organizations, this can be either the management account or a member account. You can use this field to track costs or usage by account.

### lineItem/UsageAmount


The amount of usage that you incurred during the specified time period. For size-flexible Reserved Instances, use the **reservation/TotalReservedUnits** column instead.

**Note**  
Certain subscription charges will have a **UsageAmount** of `0`.

### lineItem/UsageEndDate


The end date and time for the corresponding line item in UTC, exclusive. The format is `YYYY-MM-DDTHH:mm:ssZ`.

### lineItem/UsageStartDate


The start date and time for the line item in UTC, inclusive. The format is `YYYY-MM-DDTHH:mm:ssZ`. 

### lineItem/UsageType


The usage details of the line item. For example, `USW2-BoxUsage:m2.2xlarge` describes an M2 High Memory Double Extra Large instance in the US West (Oregon) Region.

# Reservation details


Columns under the **reservation** header in AWS Cost and Usage Reports provide details about reserved resources.

 [A](#r-A) \$1 B \$1 C \$1 D \$1 [E](#r-E) \$1 F \$1 G \$1 H \$1 I \$1 J \$1 K \$1 L \$1 [M](#r-M) \$1 [N](#r-N) \$1 O \$1 P \$1 Q \$1 [R](#r-R) \$1 [S](#r-S) \$1 [T](#r-T) \$1 [U](#r-U) \$1 VWXYZ 

## A


### reservation/AmortizedUpfrontCostForUsage

+ **Description:** The initial upfront payment for all upfront RIs and partial upfront RIs amortized for usage time. The value is equal to: `RIAmortizedUpfrontFeeForBillingPeriod` \$1 `The normalized usage amount for DiscountedUsage line items` / `The normalized usage amount for the RIFee`. Because there are no upfront payments for no upfront RIs, the value for a no upfront RI is `0`. We do not provide this value for Dedicated Host reservations at this time. The change will be made in a future update.
+ **Line items applicable:** DiscountedUsage
+ **Sample values:** `0.05`, `0.17`, `0.15`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

### reservation/AmortizedUpfrontFeeForBillingPeriod

+ **Description:** Describes how much of the upfront fee for this reservation is costing you for the billing period. The initial upfront payment for all upfront RIs and partial upfront RIs, amortized over this month. Because there are no upfront fees for no upfront RIs, the value for no upfront RIs is `0`. We do not provide this value for Dedicated Host reservations at this time. The change will be made in a future update.
+ **Line items applicable:** RIFee
+ **Sample values:** `29.15`, `200.67`, `214.43`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

### reservation/AvailabilityZone

+ **Description:** The Availability Zone of the resource that is associated with this line item.
+ **Line items applicable:** Fee, Refund, RIFee
+ **Sample values:** `us-east-1`, `us-east-1b`, `eu-west-1b`, `ap-southeast-2a`
+ **Services:**
  + Amazon EC2

## E


### reservation/EffectiveCost

+ **Description:** The sum of both the upfront and hourly rate of your RI, averaged into an effective hourly rate. `EffectiveCost` is calculated by taking the `amortizedUpfrontCostForUsage` and adding it to the `recurringFeeForUsage`. For more information, see [Amazon EC2 Reserved Instances Pricing](https://aws.amazon.com/ec2/pricing/reserved-instances/pricing/).
+ **Line items applicable:** DiscountedUsage
+ **Sample values:** `0.23`, `0.68`, `0.10`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon ElastiCache
  + Amazon RDS

### reservation/EndTime

+ **Description:** The end date of the associated RI lease term.
+ **Line items applicable:** RIFee
+ **Sample values:** `2019-05-15T04:23:14.000Z`, `2020-02-08T17:32:15.000Z`, `2019-07-14T00:00:33.000Z`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

## M


### reservation/ModificationStatus

+ **Description:** Shows whether the RI lease was modified or if it is unaltered.
  + **Original:** The purchased RI was never modified.
  + **System:** The purchased RI was modified using the console or API.
  + **Manual:** The purchased RI was modified using AWS Support assistance.
  + **ManualWithData:** The purchased RI was modified using AWS Support assistance, and AWS calculated estimates for the RI.
+ **Line items applicable:** RIFee
+ **Sample values:** `Original`, `System`, `Manual`, `ManualWithData`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

## N


### reservation/NetAmortizedUpfrontCostForUsage


The initial upfront payment for All Upfront RIs and Partial Upfront RIs amortized for usage time, if applicable. This column is included in your report only when your account has a discount in the applicable billing period.

### reservation/NetAmortizedUpfrontFeeForBillingPeriod


The cost of the reservation's upfront fee for the billing period. This column is included in your report only when your account has a discount in the applicable billing period.

### reservation/NetEffectiveCost


The sum of both the upfront fee and the hourly rate of your RI, averaged into an effective hourly rate. This column is included in your report only when your account has a discount in the applicable billing period.

### reservation/NetRecurringFeeForUsage


The after-discount cost of the recurring usage fee. This column is included in your report only when your account has a discount in the applicable billing period.

### reservation/NetUnusedAmortizedUpfrontFeeForBillingPeriod


The net unused amortized upfront fee for the billing period. This column is included in your report only when your account has a discount in the applicable billing period.

### reservation/NetUnusedRecurringFee


The recurring fees associated with unused reservation hours for Partial Upfront and No Upfront RIs after discounts. This column is included in your report only when your account has a discount in the applicable billing period.

### reservation/NetUpfrontValue


The upfront value of the RI with discounts applied. This column is included in your report only when your account has a discount in the applicable billing period.

### reservation/NormalizedUnitsPerReservation

+ **Description:** The number of normalized units for each instance of a reservation subscription.
+ **Line items applicable:** RIFee
+ **Sample values:** `1316`, `54.5`, `319`
+ **Services:**
  + Amazon RDS

### reservation/NumberOfReservations

+ **Description:** The number of reservations that are covered by this subscription. For example, one RI subscription might have four associated RI reservations.
+ **Line items applicable:** Fee, RIFee, Refund, Credit
+ **Sample values:** `5`, `50`, `500`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

## R


### reservation/RecurringFeeForUsage

+ **Description:** The recurring fee amortized for usage time, for partial upfront RIs and no upfront RIs. The value is equal to: `The unblended cost of the RIFee` \$1 `The sum of the normalized usage amount of Usage line items` / `The normalized usage amount of the RIFee for size flexible Reserved Instances`. Because all upfront RIs don't have recurring fee payments greater than `0`, the value for all upfront RIs is `0`.
+ **Line items applicable:** DiscountedUsage
+ **Sample values:** `0.139`, `0.729`, `0.018`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon ElastiCache
  + Amazon RDS

### reservation/ReservationARN

+ **Description:** The Amazon Resource Name (ARN) of the RI that this line item benefited from. This is also called the "RI Lease ID". This is a unique identifier of this particular AWS Reserved Instance. The value string also contains the AWS service name and the Region where the RI was purchased.
+ **Line items applicable:** Fee, RIFee, DiscountedUsage, Refund, Credit
+ **Sample values:** `arn:aws:ec2:us-east-1:074108124787:reserved-instances/1d3fbc13-f181-4c40-9dd6-12b345678de9`, `arn:aws:ec2:us-east-1:499958231354:reserved-instances/be41234c3-b5c0-403e-a80c-1cfd12345678`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

## S


### reservation/StartTime

+ **Description:** The start date of the term of the associated Reserved Instance.
+ **Line items applicable:** RIFee
+ **Sample values:** `2018-07-29T02:56:10.000Z`, `2017-08-21T15:58:47.000Z`, `2019-02-01T22:01:34.000Z`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

### reservation/SubscriptionId

+ **Description:** A unique identifier that maps a line item with the associated offer. We recommend you use the RI ARN as your identifier of an AWS Reserved Instance, but both can be used.
+ **Line items applicable:** Fee, RIFee, DiscountedUsage, Refund, Credit, and Usage
+ **Sample values:** `123456789`, `111122222`, `333344444`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

## T


### reservation/TotalReservedNormalizedUnits

+ **Description:** The total number of reserved normalized units for all instances for a reservation subscription. AWS computes total normalized units by multiplying the `reservation/NormalizedUnitsPerReservation` with `reservation/NumberOfReservations`.
+ **Line items applicable:** DiscountedUsage
+ **Sample values:** `40320`, `3647.99`, `17928.77`
+ **Services:**
  + Amazon EC2
  + Amazon RDS

### reservation/TotalReservedUnits

+ **Description:** `TotalReservedUnits` populates for both Fee and RIFee line items with distinct values.
  + Fee line items: The total number of units reserved, for the total quantity of leases purchased in your subscription for the entire term. 

    This is calculated by multiplying the `NumberOfReservations` with `UnitsPerReservation`. For example, 5 RIs x 744 hours per month x 12 months = 44,640.
  + RIFee line items (monthly recurring costs): The total number of available units in your subscription, such as the total number of Amazon EC2 hours in a specific RI subscription.

    For example, 5 RIs x 744 hours = 3,720.
+ **Line items applicable:** Fee, RIFee, Refund, Credit
+ **Sample values:** `26208`, `98.19`, `15796`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

## U


### reservation/UnitsPerReservation

+ **Description:** `UnitsPerReservation` populates for both Fee and RIFee line items with distinct values.
  + Fee line items: The total number of units reserved for the subscription, such as the total number of RI hours purchased for the term of the subscription. 

    For example 744 hours per month x 12 months = 8,928 total hours/units.
  + RIFee line items (monthly recurring costs): The total number of available units in your subscription, such as the total number of Amazon EC2 hours in a specific RI subscription.

    For example, 1 unit x 744 hours = 744.
+ **Line items applicable:** Fee, RIFee, Refund, Credit
+ **Sample values:** `334.0`, `486.72`, `18455`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon DynamoDB
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

### reservation/UnusedAmortizedUpfrontFeeForBillingPeriod

+ **Description:** The amortized-upfront-fee-for-billing-period-column amortized portion of the initial upfront fee for all upfront RIs and partial upfront RIs. Because there are no upfront payments for no upfront RIs, the value for no upfront RIs is `0`. We do not provide this value for Dedicated Host reservations at this time. The change will be made in a future update.
+ **Line items applicable:** RIFee
+ **Sample values:** `6.05`, `1.97`, `0.17`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

### reservation/UnusedNormalizedUnitQuantity

+ **Description:** The number of unused normalized units for a size-flexible Regional RI that you didn't use during this billing period.
+ **Line items applicable:** RIFee
+ **Sample values:** `25.00`, `3.50`, `274.33`
+ **Services:**
  + Amazon RDS

### reservation/UnusedQuantity

+ **Description:** The number of RI hours that you didn't use during this billing period.
+ **Line items applicable:** RIFee line item
+ **Sample values:** `209.65110408`, `191.00000000`, `176.00000000`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

### reservation/UnusedRecurringFee

+ **Description:** The recurring fees associated with your unused reservation hours for partial upfront and no upfront RIs. Because all upfront RIs don't have recurring fees greater than `0`, the value for All Upfront RIs is `0`.
+ **Line items applicable:** RIFee
+ **Sample values:** `0.02971114`, `0.19190000`, `1.37280000`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

### reservation/UpfrontValue

+ **Description:** The upfront price paid for your AWS Reserved Instance. For no upfront RIs, this value is `0`.
+ **Line items applicable:** RIFee
+ **Sample values:** `150.00`, `1000.00`, `2000.00`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon Redshift
  + Amazon ElastiCache
  + Amazon RDS

# Pricing details


Columns under the **pricing** header in AWS Cost and Usage Reports contain the prices for a line item. The pricing columns are based off of the AWS Price List Service API. AWS Price List Service API doesn't include Spot Instances, products in AWS Marketplace, upfront annual subscription fees (`Fee`), and monthly recurring fees (`RIFee`). The columns include but are not limited to the following:

 A \$1 B \$1 C \$1 D \$1 E \$1 F \$1 G \$1 H \$1 I \$1 J \$1 K \$1 [L](#pr-L) \$1 M \$1 N \$1 O \$1 [P](#pr-P) \$1 Q \$1 [R](#pr-R) \$1 S \$1 [T](#pr-T) \$1 [U](#pr-U) \$1 VWXYZ 

## L


### pricing/LeaseContractLength


The length of time that your RI is reserved for.

## O


### pricing/OfferingClass

+ **Description:** Describes the offering class of the Reserved Instance. When you purchase a Reserved Instance, you can choose between a Standard or Convertible offering class.
+ **Sample values:** `Standard`, `Convertible`
+ **Services:**
  + Amazon DynamoDB
  + Amazon EC2
  + Amazon ElastiCache
  + OpenSearch Service
  + Amazon RDS
  + Amazon Redshift

## P


### pricing/publicOnDemandCost


The total cost for the line item based on public On-Demand Instance rates. If you have SKUs with multiple On-Demand public costs, the equivalent cost for the highest tier is displayed. For example, services offering free-tiers or tiered pricing.

### pricing/publicOnDemandRate


The public On-Demand Instance rate in this billing period for the specific line item of usage. If you have SKUs with multiple On-Demand public rates, the equivalent rate for the highest tier is displayed. For example, services offering free-tiers or tiered pricing.

### pricing/PurchaseOption


How you chose to pay for this line item. Valid values are `All Upfront`, `Partial Upfront`, and `No Upfront`.

## R


### pricing/RateCode


A unique code for a product/ offer/ pricing-tier combination. The product and term combinations can have multiple price dimensions, such as low-use tier, and high-use tier.

### pricing/RateId


The ID of the rate for a line item.

## T


### pricing/term


Whether your AWS usage is Reserved or On-Demand.

## U


### pricing/unit


The pricing unit that AWS used for calculating your usage cost. For example, the pricing unit for Amazon EC2 instance usage is in hours.

# Product details


The **product** columns provide metadata about the product that incurred the expense, and the line item. The product columns are dynamic, and their visibility in Cost and Usage Reports depends on the usage of product in the billing period. The pricing columns are based off of the AWS Price List Service API. AWS Price List Service API doesn't include Spot Instances, products in AWS Marketplace, upfront annual subscription fees (`Fee`), and monthly recurring fees (`RIFee`).

 [A](#A) \$1 B \$1 [C](#C) \$1 [D](#D) \$1 [E](#E) \$1 [F](#F) \$1 [G](#G) \$1 H \$1 [I](#I) \$1 J \$1 K \$1 [L](#L) \$1 [M](#M) \$1 [N](#N) \$1 [O](#O) \$1 [P](#P) \$1 Q \$1 [R](#R) \$1 [S](#S) \$1 [T](#T) \$1 [U](#U) \$1 [V](#V) \$1 [W](#W) \$1 XYZ 

## A


### product/APICalls

+ **Description:** Describes the number of APIs the DevOps Guru service uses to enable the DevOps Guru service.
+ **Sample values:** `100`, `500`, `10000`
+ **Services:**
  + Amazon DevOps Guru

### product/attachmentType

+ **Description:** Describes the type of attachment to Transit Gateway or Cloud WAN service.
+ **Sample values:** `VPC`, `AWS Site-to-Site VPN`, `AWS DirectConnect`, `Connect`, `Transit Gateway`
+ **Services:**
  + Amazon Virtual Private Cloud
  + AWS Cloud WAN

### product/availability

+ **Description:** Describes the availability of your various AWS storage options. 
+ **Sample values:** `99.99%`, `99.5%`
+ **Services:**
  + Amazon Glacier
  + Amazon S3
  + AWS Elemental MediaStore
  + AWS RoboMaker

## C


### product/cacheType

+ **Description:** Describes the provision opted by the customer on HDD-based file systems for a read-only SSD cache to improve performance for the frequently read data.

  For example, RC20 indicates the presence of a read-only SSD cache that is automatically sized to 20 percent of the file system's HDD storage capacity.
+ **Sample values:** `RC20`, `N/A`
+ **Services:**
  + Amazon FSx

### product/capacitystatus

+ **Description:** Describes the status of your capacity reservations. 
+ **Sample values:** `UnusedCapacityReservation`, `AllocatedCapacityReservation`, `Used`
+ **Services:**
  + Amazon EC2

### product/clockspeed

+ **Description:** Describes the operating speed of your AWS instances. 
+ **Sample values:** `2.4 GHz`, `2.6 GHz`
+ **Services:**
  + Amazon DocumentDB
  + Amazon EC2
  + Amazon MQ
  + Amazon Neptune
  + Amazon RDS
  + AWS Database Migration Service

### product/component

+ **Description:** Maps to features in SageMaker AI.

  For example, if a user is running a SageMaker AI notebook, the product will have a component attribute of Notebook. If the user has deployed and hosted their model for inference, they will see product with component attribute of Hosting.
+ **Sample values:** `Notebook`, `Hosting`
+ **Services:**
  + Amazon SageMaker AI

## D


### product/databaseedition

+ **Description:** Describes the database software suitable for different development, deployment scenarios, and specific application purposes.
+ **Services:**
  + Amazon RDS

### product/dataTransfer

+ **Description:** An AWS data transfer occurs whenever data is moved to from AWS to the internet, or moved between AWS instances across their respective Regions or Availability Zones. Interregional and inter availability zone data transfers incur costs, metered per Gigabyte.
+ **Services:**
  + AWS Systems Manager

### product/dedicatedEbsThroughput

+ **Description:** Describes the dedicated throughput between your instances (for example, Amazon EC2 instances and Amazon EBS volumes), with options between 500 and 10,000 megabits per second (Mbps) depending on the instance type used. The dedicated throughput minimizes contention between Amazon EBS I/O and other traffic from your EC2 instance, providing the best performance for your Amazon EBS volumes.
+ ** Sample values: ** `200 Mbps`, `Upto 5000 Mbps`
+ **Services:**
  + Amazon EC2
  + Amazon Neptune
  + Amazon RDS

### product/deploymentoption

+ **Description:** Describes where the infrastructure for the environment is located. The deployment models for AWS cloud are `public`, `on-premise`, and `hybrid`.
+ ** Sample values: ** `Multi-AZ`, `Single-AZ`
+ **Services:**
  + Amazon MQ
  + Amazon Neptune
  + Amazon RDS

### product/description

+ **Description:** The description of the specific AWS service.
+ **Services:**
  + AWS CodePipeline
  + AWS Device Farm
  + AWS Elemental MediaConvert
  + AWS Elemental MediaStore

### product/destinationCountryISOCode

+ **Description:** Describes the destination Country ISO 3166-1 alpha-2 code to which the SMS was sent to.

  For reference, visit [https://en.wikipedia.org/wiki/ISO\$13166-1\$1alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
+ ** Sample values:** `FR`, `CO`, `MA`, `KN`, `PL`, `LV`, `LA`, `GB`, `ID`, `KR`, `MY`, `BR`, `MM`, `CA`, `VN`, `BD`, `BJ`, `AU`, `HK`, `AM`, `CZ`, `UA`, `PH`, `TW`, `ES`, `DE`, `NG`, `FI`, `SG`, `TH`, `IL`, `TR`, `JP`, `IT`, `PR`, `RU`, `EE`
+ **Services:**
  + Amazon Simple Notification Service

### product/directconnectlocation

+ **Description:** Specifies the location where a private dedicated network connection from the customer to AWS exists.
+ ** Sample values: ** `Equinix DC1 - DC6`, `Equinix DC10 - DC11`, `Global Switch Singapore`
+ **Services:**
  + Direct Connect

### product/directorysize

+ **Description:** The space on the disk that is used to store the meta information for the directory or folder.
+ **Services:**
  + Direct Connect

### product/directorytype

+ **Description:** Specifies if the directory is a file or another directory.
+ **Services:**
  + Direct Connect

### product/directorytypedescription

+ **Description:** The meaningful name given to the directory.
+ **Services:**
  + Direct Connect

### product/disableactivationconfirmationemail

+ **Description:** Active or deactivate the ability to send an email to confirm the activation of a service.

### product/durability

+ **Description:** Describes the durability of objects over a given year. 
+ **Sample values:** `99.999999999%`, `N/A`, `99.99%`
+ **Services:**
  + Amazon Glacier
  + Amazon S3
  + AWS Elemental MediaStore

## E


### product/ebsOptimized

+ **Description:** Describes whether your Amazon EC2 instances are Amazon EBS–optimized. 
+ **Sample values:** `Yes`, `No`
+ **Services:**
  + Amazon EC2

### product/ecu

+ **Description:** Describes the EC2 Compute Unit (ECU) that provides the relative measure of the integer processing power of an Amazon EC2 instance. 
+ **Sample values:** `9`, `100`, `variable`
+ **Services:**
  + Amazon EC2
  + OpenSearch Service
  + Amazon GameLift Servers
  + Amazon Redshift

### product/endpointtype

+ **Description:** Describes the characteristics of the remote connection that a device connects to.

  For example, `REST` (representational state transfer) endpoints. A `REST` API (or `RESTful` API) is an application programming interface that conforms to the constraints of `REST` architectural style and you can interact with `RESTful` web services.
+ **Sample values:** `Ipsec`, `Amazon SQS`, `AWS Lambda`
+ **Services:**
  + Amazon SNS
  + Amazon VPC
  + Storage Gateway
  + Amazon Glacier

### product/enhancedNetworkingSupported

+ **Description:** Describes whether your instance supports enhanced networking. Enhanced networking uses single root I/O virtualization (SR-IOV) to provide high-performance networking capabilities on supported instance types. 
+ **Sample values:** `Yes`, `No`
+ **Services:**
  + Amazon DocumentDB
  + Amazon EC2
  + Amazon Neptune
  + Amazon RDS
  + AWS Database Migration Service

## F


### product/filesystemtype

+ **Description:** Describes the details of the local or remote storage device, and specifications of the operating system.

### product/findingGroup

+ **Description:** Specifies whether a finding stored in Security Hub is paid or free. If free, the reason may also be specified.
+ **Sample values:** `FreeFindingsIngestion-CrossRegion`, `FreeFindingsIngestion-FreeTier`, `FreeFindingsIngestion-FreeTrial`, `PaidFindingsIngestion`
+ **Services:**
  + AWS Security Hub

### product/findingSource

+ **Description:** Specifies whether a finding was generated by a Security Hub control or by other partner security product.
+ **Sample values:** `SecurityHubProduct`, `OtherProduct`
+ **Services:**
  + AWS Security Hub

### product/freeUsageIncluded

+ **Description:** Free usage under AWS Free Tier is calculated each month across all Regions, and automatically applied to your bill. For example, you receive 750 Amazon EC2 Linux Micro Instance hours for free across all of the Regions you use. Not 750 hours per Region.
+ **Services:**
  + Amazon Inspector

### product/fromLocation

+ **Description:** Describes the location where the usage originated from.
+ **Sample values:** `External`, `US East (N. Virginia)`, `Global`
+ **Services:**
  + Amazon CloudFront
  + AWS DataTransfer

### product/fromRegionCode

+ **Description:** Describes the source Region code for the AWS service. For more information, see [product/regioncode](#product-details-R-regioncode).
+ **Sample values:** `ap-northeast-1`
+ **Services:**
  + Amazon RDS
  + Amazon EC2
  + Amazon VPC
  + Direct Connect

### product/fromLocationType

+ **Description:** Describes the location type where the usage originated from.
+ **Sample values:** `AWS Region`, `AWS Edge Location`
+ **Services:**
  + Direct Connect
  + AWS Elemental MediaConnect
  + Amazon CloudFront
  + Amazon Lightsail
  + AWS Shield

## G


### product/gpu

+ **Description:** Describes the number of GPUs. 
+ **Sample values:** `16`, `32` 
+ **Services:**
  + Amazon SageMaker AI
  + Amazon EC2

### product/gpuMemory

+ **Description:** Describes your GPU memory details. 
+ **Sample values:** `16`, `32`
+ **Services:**
  + Amazon SageMaker AI
  + Amazon EC2

### product/group

+ **Description:** A construct of several products that are similar by definition, or grouped together. For example, the Amazon EC2 team can categorize their products into shared instances, dedicated host, and dedicated usage.
+ **Services:**
  + AWS Certificate Manager
  + AWS CodeCommit
  + AWS Glue
  + AWS IoT Analytics
  + AWS Lambda

### product/groupdescription

+ **Description:** A simplified name given to a product group.
+ **Services:**
  + AWS Budgets
  + AWS Certificate Manager
  + AWS Lambda
  + Amazon SQS

## I


### product/insightsType

+ **Description:** Indicates the type of Insight event generated.
+ **Sample values:** `APICallVolume` 
+ **Services:**
  + CloudTrail

### product/instance

+ **Description:** An Amazon EC2 instance is a virtual server in Amazon Elastic Compute Cloud (Amazon EC2) for running applications on the AWS infrastructure. You can choose an AMI provided by AWS, the user community, or through the AWS Marketplace.
+ **Sample values:** `T3` 
+ **Services:**
  + Amazon EC2

### product/instanceFamily

+ **Description:** Describes your Amazon EC2 instance family. Amazon EC2 provides you with a large number of options across 10 different instance types, each with one or more size options, organized into distinct instance families optimized for different types of applications. 
+ **Sample values:** `General Purpose`, `Memory Optimized`, `Accelerated Computing` 
+ **Services:**
  + Amazon EC2
  + Amazon RDS
  + OpenSearch Service
  + Amazon ElastiCache
  + Amazon EMR

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/instanceSize

+ **Description:** Indicates the instance size of a resource.
+ **Sample values:** `2vCPU`, `4vCPU`, `8vCPU`, `16vCPU` 
+ **Services:**
  + Amazon CodeCatalyst

### product/instanceType

+ **Description:** Describes the instance type, size, and family, which define the CPU, networking, and storage capacity of your instance. 
+ **Sample values:** `t2.small`, `m4.xlarge`, `t2.micro`, `m4.large`, `t2.large`
+ **Services:**
  + Amazon EC2
  + Amazon RDS
  + OpenSearch Service
  + Amazon ElastiCache
  + Amazon EMR

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/instanceTypeFamily

+ **Description:** The instance family that is associated with the given usage. 
+ **Sample values:** `t2`, `m4`, `m3`
+ **Services:**
  + Amazon DocumentDB
  + Amazon RDS

### product/integratingApi

+ **Description:** Application integration on AWS using service like Amazon API Gateway or no-code integration using Amazon AppFlow.

### product/integratingService

+ **Description:** Application integration on AWS is a suite of services used to communicate between decoupled components within micro services, distributed systems, and serverless applications. You don’t need to refactor your entire architecture. Decoupling applications at any scale can reduce the impact of changes, making it easier to update, and faster to release new features.

### product/intelAvxAvailable

+ **Description:** Describes whether your process has the Intel Advanced Vector Extension instruction set. 
+ **Sample values:** `Yes`, `No`.
+ **Services:**
  + Amazon EC2

### product/intelAvx2Available

+ **Description:** Describes whether your process has the Intel Advanced Vector Extension instruction set two. 
+ **Sample values:** `Yes`, `No`
+ **Services:**
  + Amazon EC2

### product/intelTurboAvailable

+ **Description:** Describes whether your core is allowed to use Intel Turbo Technology to increase frequency. 
+ **Sample values:** `Yes`, `No`
+ **Services:**
  + Amazon EC2

### product/invocation

+ **Description:** Describes the invocations that EventBridge Scheduler makes to an API or service.
+ **Sample values:** `Scheduled Invocation`
+ **Services:**
  + Amazon CloudWatch Events

## L


### product/licenseModel

+ **Description:** Describes the license model for your instance. 
+ **Sample value:** `license-included`, `bring-your-own-license`, `general-public-license`
+ **Services:**
  + Amazon AppStream
  + Amazon EC2
  + Amazon MQ
  + Amazon Neptune
  + Amazon RDS

### product/location

+ **Description:** Describes the Region that your Amazon S3 bucket resides in.
+ **Sample values:** `Asia Pacific (Mumbai)`, `Asia Pacific (Seoul)`, `Canada (Central)`, `EU (London)`, `US West (Oregon)`
+ **Services:**
  + Amazon EC2
  + AWS Certificate Manager
  + Amazon S3
  + Amazon RDS
  + Amazon DynamoDB

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/locationType

+ **Description:** Describes the endpoint of your task. 
+ **Sample values:** `AWS Region`, `AWS Edge Location`, `Other` 
+ **Services:**
  + Amazon EC2
  + AWS Certificate Manager
  + Amazon S3
  + Amazon RDS
  + Amazon DynamoDB

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/logsDestination

+ **Description:** The `AWS::Logs::Destination` resource specifies a CloudWatch logs destination. A destination includes a physical resource (for example, Amazon Kinesis data stream) and you can subscribe the resource to a stream of log events.
+ **Sample values:** `AWS Region`, `AWS Edge Location`, `Other` 
+ **Services:**
  + Amazon EC2
  + AWS Certificate Manager
  + Amazon S3
  + Amazon RDS
  + Amazon DynamoDB

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

## M


### product/maxIopsBurstPerformance

+ **Description:** Describes the max IOPS burst performance of your Amazon EBS volume. 
+ **Sample value:** `3000 IOPS for volumes <= 1TB`
+ **Services:**
  + Amazon EC2

### product/maxIopsvolume

+ **Description:** Describes maximum input/output per second of your Amazon EBS volume. 
+ **Sample value:** `16,000 (maxiops for a General Purpose SSD (gp2))`
+ **Services:**
  + Amazon EC2

### product/maxThroughputvolume

+ **Description:** Describes the max network throughput volume of your Amazon EBS volume. 
+ **Sample values:** `500 MiB/s`, `250 MiB/s`, `1000 MiB/s`, `40 - 90 MB/sec`
+ **Services:**
  + Amazon EC2
  + Amazon SageMaker AI

### product/memory

+ **Description:** The placeholder electronics for instructions and data a computer needs to respond quickly. Computer bytes indicate the storage units.
+ **Services:**
  + AWS Database Migration Service
  + DynamoDB Accelerator
  + Amazon DocumentDB
  + Amazon EC2

### product/messageCountfee

+ **Description:** Describes the type of metering usage, denoting whether the usage represents the number of messages or fees charged.
+ **Sample values:** `CarrierFeeCount`, `MessageFees`, `MessageCount`, `CarrierFees`
+ **Services:**
  + Amazon Simple Notification Service

### product/messageType

+ **Description:** Describes the type of SMS message. Note that SNS supports only Outbound SMS.
+ **Sample values:** `OutboundSMS`
+ **Services:**
  + Amazon Simple Notification Service

## N


### product/networkPerformance

+ **Description:** Describes the network throughput of your Amazon EC2 instances. 
+ **Sample values:** `moderate`, `high`, `up to 10 GB`
+ **Services:**
  + Amazon EC2
  + Amazon RDS
  + Amazon ElastiCache
  + Amazon SageMaker AI
  + AWS Database Migration Service

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/normalizationSizeFactor

+ **Description:** Describes the normalization factor of the instance size. 
+ **Sample values:** `nano - 0.25`, `micro - 0.5`, `medium - 2`, `xlarge - 8`, `16xlarge - 128`
+ **Services:**
  + Amazon DocumentDB
  + Amazon EC2
  + Amazon MQ
  + Amazon Neptune
  + Amazon RDS

## O


### product/operatingSystem

+ **Description:** Describes the operating system of your Amazon EC2 instance. 
+ **Sample values:** `Amazon Linux`, `Ubuntu`, `Windows Server`, `Oracle Linux`, `FreeBSD`
+ **Services:**
  + Amazon AppStream
  + Amazon EC2
  + Amazon GameLift Servers
  + Amazon Lightsail
  + Amazon WorkSpaces
  + AWS CodeBuild

### product/operation

+ **Description:** Describes the specific AWS operation that this line item covers. 
+ **Sample values:** `RunInstances` (indicates the operation of an Amazon EC2 instance)
+ **Services:**
  + Amazon EC2
  + Amazon S3
  + Amazon RDS
  + Amazon DynamoDB
  + Amazon CloudWatch
  + Amazon Redshift

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/originationIdType

+ **Description:** Describes the type of origination ID used when sending SMS messages.
+ **Sample values:** `Sharedroute`
+ **Services:**
  + Amazon Simple Notification Service

### product/osType

+ **Description:** Describes the operating system of the resource.
+ **Sample values:** `Dev Environment`, `Linux`, `Linux ARM64`, `Windows`
+ **Services:**
  + Amazon CodeCatalyst

## P


### product/parameterType

+ **Description:** Use parameters in CloudFormation to enter custom values to your template when you create or update a stack. For Example, `InstanceTypeParameter`. You can use this parameter to specify the Amazon EC2 instance type when you create or update the stack.

### product/physicalCores

+ **Description:** Describes the number of physical cores an instance provides. 
+ **Sample values:** `4`, `8`
+ **Services:**
  + Amazon EC2

### product/physicalProcessor

+ **Description:** Describes the processor on your Amazon EC2 instance. 
+ **Sample values: **`High Frequency Intel Xeon E7-8880 v3 (Haswell)`, `Intel Xeon E5-2670`, `AMD EPYC 7571`
+ **Services:**
  + Amazon DocumentDB
  + Amazon EC2
  + Amazon Neptune
  + Amazon RDS
  + AWS Database Migration Service

### product/platoClassificationType

+ **Description:** Tiered per object pricing for data annotation workflow routing.
+ **Sample values: **`LabeledObject`, `3DLabeledObjectMultiFrame`, `3DLabeledObject`, `Processing:VolumeUsage`
+ **Services:**
  + Amazon SageMaker AI

### product/pricingUnit

+ **Description:** The smallest billing unit for an AWS service. For example, 0.01c per API call.
+ **Services:**
  + Directory Service

### product/primaryplaceofuse

+ **Description:** The primary business or residential street address location where a customer's use of the service primarily occurs.

### product/processorArchitecture

+ **Description:** Describes your processor architecture. 
+ **Sample values:** `32-bit`, `64-bit`
+ **Services:**
  + Amazon DocumentDB
  + Amazon EC2
  + Amazon Neptune
  + Amazon RDS
  + AWS Database Migration Service

### product/processorFeatures

+ **Description:** Describes the processor features of your instances. 
+ **Sample values:** `Intel AVX`, `Intel AVX2`, `Intel AVX512`, `Intel Turbo`
+ **Services:**
  + AWS Database Migration Service
  + Amazon DocumentDB
  + Amazon EC2
  + Amazon Neptune
  + Amazon RDS

### product/ProductFamily

+ **Description:** The category for the type of product. 
+ **Sample values:** `Alarm`, `AWS Budgets`, `Stopped Instance`, `Storage Snapshot`, `Compute`
+ **Services:**
  + Amazon EC2
  + AWS Certificate Manager
  + Amazon S3
  + Amazon RDS
  + Amazon DynamoDB

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/ProductName

+ **Description:** The full name of the AWS service. Use this column to filter AWS usage by AWS service. 
+ **Sample values:** `AWS Backup`, `AWS Config`, `Amazon Registrar`, `Amazon Elastic File System`, `Amazon Elastic Compute Cloud`

### product/productSchemaDescription

+ **Description:** A blueprint of how your product is constructed. This contains the various attributes that make up your product.

### product/provisioned

+ **Description:** Indicates whether Amazon EBS usage was related to provisioned Amazon EBS storage. 
+ **Sample values:** `Yes`, `No`
+ **Services:**
  + Amazon EC2
  + Amazon MQ

### product/provisioningType

+ **Description:** Describes whether the resources were deployed on-demand or pre-provisioned.
+ **Sample values:** `On-Demand`, `Pre-Provisioned`
+ **Services:**
  + Amazon CodeCatalyst

### product/PurchaseOption

+ **Description:** Describes the available purchasing models for an AWS service. For example, AWS provides four main Amazon EC2 instance purchasing options: `On-Demand`, `Reserved Instances`, `Spot Instances`, with the added option of `Dedicated Hosts`.

### product/purchaseterm

+ **Description:** In Amazon EC2, this specifies a commitment to a consistent instance configuration. This includes instance type and Region for a period of 1 to 3 years.

## R


### product/region

+ **Description:** The geographical area that hosts your AWS services. Use this field to analyze spend across a particular Region. 
+ **Sample values:** `eu-west-3`, `us-west-1`, `us-east-1`, `ap-northeast-2`, `sa-east-1`
+ **Services:**
  + Amazon EC2
  + AWS Certificate Manager
  + Amazon S3
  + Amazon RDS
  + Amazon DynamoDB

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/regioncode

+ **Description:** A Region is a physical location around the world where data centers are clustered. AWS calls each group of logical data centers an Availability Zone (AZ). Each AWS Region consists of multiple, isolates, and physically separate AZs within a geographical area. The Region code attribute has the same name as an AWS Region, and specifies where the AWS service is available.
+ **Sample values:** `us-west-2`, `us-east-1`, `ap-southeast-2`
+ **Services:**
  + Amazon SageMaker AI

### product/replicationType

+ **Description:** Specifies that the service is free to use. For example, AWS Server Migration Service is free to use, and you only pay for the storage resources used during the migration process.
+ **Sample values:** `Free`
+ **Services:**
  + AWS Application Migration Service

### product/resourceAssessment

+ **Description:** A process that collects, stores, and manages evidence. You can use this to assess risk and compliance with industry standards and regulations.
+ **Sample values:** `All assessment`
+ **Services:**
  + AWS Audit Manager

### product/resourcePriceGroup

+ **Description:** Describes the resource type, the resource, and the price group (the price we charge for monitoring; there are currently two price classes: A and B). Therefore, as an example, if we were monitoring an RDS resource, the resource type would be RDS (the "product"), the resource would be instance, and the price group would be B.
+ **Sample values:** `RDS-DBInstance-GroupB`
+ **Services:**
  + Amazon DevOps Guru

### product/routeType

+ **Description:** Describes the type of SMS route used. Only Standard applies for now.
+ **Sample values:** `Standard`
+ **Services:**
  + Amazon Simple Notification Service

## S


### product/servicecode

+ **Description:** This identifies the specific AWS service to the customer as a unique short abbreviation.
+ **Sample values:** `Amazon EC2`, `AWS KMS`
+ **Services:**
  + AWS Budgets
  + AWS Backup
  + AWS Certificate Manager
  + AWS Cloud Map
  + AWS CloudTrail

### product/servicename

+ **Description:** A simplified description about the AWS service.
+ **Services:**
  + Amazon EC2 Budgets
  + Amazon ECR
  + Amazon ECS
  + Amazon EFS
  + Amazon Elastic Inference
  + Amazon EKS

### product/singleOrDualPass

+ **Description:** Terms used to decide the type of encoding that happens for videos. In one-pass encoding, the encoding is done in the first pass itself. For 2-pass encoding, the file is analyzed thoroughly in the first pass, and a intermediate file is created. In the second pass the encoder finds the intermediate file and allocates bits. The actual encoding takes place in the second pass.
+ **Services:**
  + AWS Elemental MediaConvert

### product/sizeFlex

+ **Description:** Describes whether a normalized benefit of the RI can be applied to other instance sizes within the Region and instance family.
+ **Sample values:** `true`, `false`
+ **Services:**
  + Amazon Elastic Compute Cloud

### product/sku

+ **Description:** A unique code for a product. The SKU is created by combining the `ProductCode`, `UsageType`, and `Operation`. For size-flexible RIs, the SKU uses the instance that was used. For example, if you used a `t2.micro` instance and AWS applied a `t2.small` RI discount to the usage, the line item SKU is created with the `t2.micro`.
+ **Sample values:** `FFNT87MQSCR328W6`, `VBYCEU494XUAHCA7`
+ **Services:**
  + Amazon EC2
  + AWS Certificate Manager
  + Amazon S3
  + Amazon RDS
  + Amazon DynamoDB

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/storage

+ **Description:** Describes the disk storage attached to your instance. 
+ **Sample values:** `60GB`, `True`, `EBS Only`, `1 x 900 NVMe SSD`, `1 x 150 NVMe SSD`
+ **Services:**
  + Amazon EC2
  + Amazon RDS
  + Amazon Redshift
  + OpenSearch Service
  + Amazon WorkSpaces

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/storageclass

+ **Description:** Describes the storage class of your Amazon S3 bucket. 
+ **Sample values:** `Archive`, `General Purpose`, `Infrequent Access`, `Intelligent-Tiering`, `Non-Critical Data`
+ **Services:**
  + AWS Elemental MediaStore
  + AWS Storage Gateway
  + Amazon Cloud Directory
  + Amazon EFS
  + Amazon MQ
  + Amazon S3

### product/storagemedia

+ **Description:** A storage medium is any technology, including device and material used to place, keep, and retrieve electronic data.
+ **Services:**
  + AWS Database Migration Service
  + Amazon CloudWatch
  + Amazon DocumentDB
  + Amazon EC2
  + Amazon ES

### product/storagetype

+ **Description:** Describes how and where the information is stored by a computer. This might be internal or external to a computer, server, or computing device.
+ **Sample values:** `Amazon S3`, `SSD`, `SSD-backed`
+ **Services:**
  + AWS Backup
  + Amazon ECR

## T


### product/tenancy

+ **Description:** The type of tenancy allowed on the Amazon EC2 instance. 
+ **Sample values:** `Dedicated`, `Reserved`, `Shared`, `NA`, `Host`
+ **Services:**
  + Amazon EC2
  + Amazon ECS

### product/throughputCapacity

+ **Description:** Describes the Speed at which the file server hosting the file system can serve file data. For Amazon FileCache, the value will be 1000 only.
+ **Sample values:** `12`, `40`, `50`, `100`, `125`, `250`, `500`, `1000`
+ **Services:**
  + Amazon FileCache
  + Amazon FSx

### product/tier

+ **Description:** With AWS, you can get volume based discounts and savings as your usage increases. For services like Amazon S3, pricing is tiered. This means the more you use, the less you pay per GB. AWS provides options to acquire services that assist your business needs.
+ **Services:**
  + AWS Elemental MediaConvert

### product/toLocation

+ **Description:** Describes the location usage destination.
+ **Sample values:** `External`, `US East (N. Virginia)`
+ **Services:**
  + Amazon CloudFront
  + AWS Data Transfer

### product/toLocationType

+ **Description:** Describes the destination location of the service usage.
+ **Sample values:** `AWS Region`, `AWS Edge Location`
+ **Services:**
  + Direct Connect
  + AWS Elemental MediaConnect
  + AWS Shield
  + Amazon CloudFront
  + Amazon Lightsail

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip).

### product/toRegionCode

+ **Description:** Describes the source Region code for the AWS service. For more information, see [product/regioncode](#product-details-R-regioncode).
+ **Sample values:** `eu-west-1`
+ **Services:**
  + Amazon RDS
  + Amazon EC2
  + Amazon VPC
  + Direct Connect

### product/transcodingResult

+ **Description:** The output of decoding an encoded video source to an intermediate uncompressed format, and re-encoding it into the target format.
+ **Services:**
  + AWS Elemental MediaConvert

### product/trialProduct

+ **Description:** Describes if AWS CloudHSM allows free hours.
+ **Services:**
  + AWS CloudHSM

## U


### product/upfrontCommitment

+ **Description:** Describes if any usage commitment is required for AWS CloudHSM. You will be charged an hourly fee for each hour (or partial hour) that an HSM is provisioned to a AWS CloudHSM cluster. A cluster with no HSMs is not billed, and you aren't billed for automatic storage of encrypted backups. For more information, see [AWS CloudHSM Pricing](https://aws.amazon.com/cloudhsm/pricing/).

  Network data transfers to and from your HSMs are charged separately. For more information, see [Amazon EC2 Pricing](https://aws.amazon.com/ec2/pricing/).
+ **Services:**
  + AWS CloudHSM

### product/usagetype

+ **Description:** Describes the usage details of the line item. 
+ **Sample values:** `EU-BoxUsage:c5d.9xlarge`, `EU-BoxUsage:m4.16xlarge`, `SAE1-InstanceUsage:db.t2.medium`, `USW2-AW-SW-19`, `SAE1-BoxUsage:c4.large`, 
+ **Services:**
  + Amazon EC2
  + AWS Certificate Manager
  + Amazon S3
  + Amazon RDS
  + Amazon DynamoDB

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

## V


### product/vcpu

+ **Description:** Describes the number of threads concurrently running on a single CPU core. Amazon EC2 instances support multithreading, which enables multiple threads to run concurrently on a single CPU core. Each thread is represented as a virtual CPU (vCPU) on the instance.
+ **Sample values:** `8`, `16`, `36`, `72`, `128`
+ **Services:**
  + Amazon EC2
  + Amazon RDS
  + Amazon Redshift
  + OpenSearch Service
  + Amazon ElastiCache

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

### product/videoCodec

+ **Description:** A software or hardware that compresses and decompresses digital video. In the context of video compression, codec is a blending of encoder and decoder. A device that only compresses is typically called an encoder, and one that only decompresses is a decoder.
+ **Services:**
  + AWS Elemental MediaConvert;

### product/videoFrameRate

+ **Description:** A video frame rate (shown as frames per second (FPS)) is the frequency rate which consecutive images (frames) are captured or displayed by video cameras, computer graphics, and motion capture systems.
+ **Services:**
  + AWS Elemental MediaConvert;

### product/videoQualitySetting

+ **Description:** Describes the quality setting used for the encode, which impacts the compression efficiency and, therefore, the video quality at a given bitrate.
+ **Sample values:** `Multi-pass`, `Multi-pass HQ`, `NA`, `Single-pass`, `Single-pass HQ`, 
+ **Services:**
  + AWS Elemental MediaConvert

### product/volumeType

+ **Description:** Describes your Amazon EBS volume types. 
+ **Sample values:** `Standard`, `General Purpose`, `General Purpose-Aurora`, `Amazon Glacier`, `Amazon SimpleDB – Standard`, 
+ **Services:**
  + Amazon EC2
  + Amazon S3
  + Amazon RDS
  + Amazon DynamoDB
  + Amazon Glacier

    and more. For the full service list, download [Column\$1Attribute\$1Service.zip](samples/Column_Attribute_Service.zip). 

## W


### product/workforceType

+ **Description:** The segmentation of the employed or unemployed labour pool. For example, `Full Time Employees` (FTE), or `Temporary`.
+ **Services:**
  + Amazon SageMaker AI

# Resource tags details


You can use the **resource** columns in AWS Cost and Usage Reports to find information about the specific resources covered by a line item. These columns include user-defined cost allocation tags. Examples include the following:

## resourceTags/user:creator


Use a **user:Creator** tag to track which user created a resource.

## resourceTags/user:name


Use a **user:Name** tag to track which resources are associated with a specific user.

## resourceTags/user:owner


Use a **user:Owner** tag to track which user owns a resource.

## resourceTags/user:purpose


Use a **user:Purpose** tag to track why a resource was created.

# Savings Plans details


The **SavingsPlan** columns in AWS Cost and Usage Reports provide details about the Savings Plans. For more information about Savings Plans, see [What are Savings Plans?](https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html) in the *Savings Plans User Guide*.

 [A](#sp-A) \$1 B \$1 C \$1 D \$1 [E](#sp-E) \$1 F \$1 G \$1 H \$1 [I](#sp-I) \$1 J \$1 K \$1 L \$1 M \$1 [N](#sp-N) \$1 [O](#sp-O) \$1 [P](#sp-P) \$1 Q \$1 [R](#sp-R) \$1 [S](#sp-S) \$1 [T](#sp-T) \$1 [U](#sp-U) \$1 VWXYZ 

## A


### savingsPlan/AmortizedUpfrontCommitmentForBillingPeriod

+ **Description:** The amount of upfront fee a Savings Plans subscription is costing you for the billing period. The initial upfront payment for **All Upfront Savings Plans** and **Partial Upfront Savings Plans** amortized over the current month. For **No Upfront Savings Plans**, the value is 0.
+ **Line items applicable:** SavingsPlanRecurringFee
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

## E


### savingsPlan/EndTime

+ **Description:** The expiration date for the Savings Plans agreement.
+ **Line items applicable:** SavingsPlanCoveredUsage, SavingsPlanNegation, SavingsPlanUpfrontFee, SavingsPlanRecurringFee
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

## I


### savingsPlan/InstanceTypeFamily

+ **Description:** The instance family that is associated with the specified usage.
+ **Line items applicable:** SavingsPlanCoveredUsage
+ **Sample values:** `m4`, `g2`
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

## N


### savingsPlan/NetAmortizedUpfrontCommitmentForBillingPeriod


The cost of a Savings Plans subscription upfront fee for the billing period. This column is included in your report only when your account has a discount in the applicable billing period.

### savingsPlan/NetRecurringCommitmentForBillingPeriod


The net unblended cost of the Savings Plans fee. This column is included in your report only when your account has a discount in the applicable billing period.

### savingsPlan/NetSavingsPlanEffectiveCost


The effective cost for Savings Plans, which is your usage divided by the fees. This column is included in your report only when your account has a discount in the applicable billing period.

## O


### savingsPlan/OfferingType

+ **Description:** Describes the type of Savings Plans purchased.
+ **Line items applicable:** SavingsPlanCoveredUsage, SavingsPlanNegation, SavingsPlanUpfrontFee, SavingsPlanRecurringFee
+ **Sample values:** `ComputeSavingsPlans`, `EC2InstanceSavingsPlans`, `SageMakerSavingsPlans`
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

## P


### savingsPlan/PaymentOption

+ **Description:** The payment options available for your Savings Plans.
+ **Line items applicable:** SavingsPlanCoveredUsage, SavingsPlanNegation, SavingsPlanUpfrontFee, SavingsPlanRecurringFee
+ **Sample values:** `Partial Upfront`, `All Upfront`, `No Upfront`
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

### savingsPlan/PurchaseTerm

+ **Description:** Describes the duration, or term, of the Savings Plans.
+ **Line items applicable:** SavingsPlanCoveredUsage, SavingsPlanNegation, SavingsPlanUpfrontFee, SavingsPlanRecurringFee
+ **Sample values:** `1yr`, `3yr`
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

## R


### savingsPlan/RecurringCommitmentForBillingPeriod

+ **Description:** The monthly recurring fee for your Savings Plans subscriptions. For example, the recurring monthly fee for a **Partial Upfront Savings Plans** or **No Upfront Savings Plans**.
+ **Line items applicable:** SavingsPlanRecurringFee
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

### savingsPlan/Region

+ **Description:** The AWS Region (geographic area) that hosts your AWS services. You can use this field to analyze spend across a particular AWS Region.
+ **Line items applicable:** SavingsPlanCoveredUsage, SavingsPlanNegation, SavingsPlanUpfrontFee, SavingsPlanRecurringFee
+ **Sample values:** `US East (N. Virginia)`, `US West (N. California)`, `US East (Ohio)`, `Asia Pacific (Mumbai)`, `Europe (Ireland)`
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

## S


### savingsPlan/SavingsPlanArn

+ **Description:** The unique Savings Plans identifier.
+ **Line items applicable:** SavingsPlanUpfrontFee
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

### savingsPlan/SavingsPlanEffectiveCost

+ **Description:** The proportion of the Savings Plans monthly commitment amount (upfront and recurring) that is allocated to each usage line.
+ **Line items applicable:** SavingsPlanCoveredUsage
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

### savingsPlan/SavingsPlanRate

+ **Description:** The Savings Plans rate for the usage.
+ **Line items applicable:** SavingsPlanCoveredUsage
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

### savingsPlan/StartTime

+ **Description:** The start date of the Savings Plans agreement.
+ **Line items applicable:** SavingsPlanCoveredUsage, SavingsPlanNegation, SavingsPlanUpfrontFee, SavingsPlanRecurringFee
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

## T


### savingsPlan/TotalCommitmentToDate

+ **Description:** The total amortized upfront commitment and recurring commitment to date, for that hour.
+ **Line items applicable:** SavingsPlanRecurringFee
+ **Services:**
  + Amazon EC2
  + Fargate
  + AWS Lambda
  + Amazon SageMaker AI

## U


### savingsPlan/UsedCommitment

+ **Description:** The total dollar amount of the Savings Plans commitment used. (SavingsPlanRate multiplied by usage)
+ **Line items applicable:** SavingsPlanRecurringFee
+ **Services:**
  + Amazon EC2
  + AWS Lambda
  + Fargate
  + Amazon SageMaker AI

# Cost Categories details


You can use the **Cost Category** columns in AWS Cost and Usage Reports to find information about the specific line items categorized by the Cost Categories feature. Cost Category columns are automatically populated when you create a Cost Category and categorization rule. These columns include user-defined Cost Category names as the column headers, and corresponding Cost Category values. Examples include the following:

## costCategory/Project


Use a **Project** Cost Category to categorize cost and usage information associated with the project. Project names such as “alpha” or “beta” will show as values under **costCategory/Project**.

## costCategory/Team


Use a **Team** Cost Category to categorize cost and usage information associated with the team. Team names such as “Marketing” will show as values under **costCategory/Team**.

## costCategory/Environment


Use a **Environment** Cost Category to categorize cost and usage information associated with the environment. Environment names such as “Development” will show as values under **costCategory/Environment**.

# Discount details


Columns under the **discount** header are included in AWS Cost and Usage Reports only when the account has a discount applied during the report's billing period. This includes the following columns: 

## discount/BundledDiscount


The bundled discount applied to the line item. A bundled discount is a usage-based discount that provides free or discounted usage of a service or feature based on the usage of another service or feature. Examples of bundled discounts include:
+ If you use AWS Shield Advanced, then you don't have to pay for AWS WAF separately. AWS WAF usage is bundled with AWS Shield Advanced. For more information about AWS Shield Advanced, see [Amazon CloudFront pricing](https://aws.amazon.com/cloudfront/pricing/).
+ If you create a NAT gateway with AWS Network Firewall, then the standard NAT gateway processing and per-hour usage charges are waived on a one-to-one basis with the firewall's processing per GB and usage hours. For more information, see [AWS Network Firewall pricing](https://aws.amazon.com/network-firewall/pricing/).
+ With Amazon Interactive Video Service (IVS) Chat, for every hour of video input sent, you get 2,700 sent messages and 270,000 delivered messages at no additional cost. For more information, see [Amazon Interactive Video Service pricing](https://aws.amazon.com/ivs/pricing/).

## discount/TotalDiscount


The sum of all the discount columns for the corresponding line item.

# Split line item details


Columns under the **splitLineItem** header in AWS Cost and Usage Reports are fields that appear in Cost and Usage Reports if you've opted in to the split cost allocation data feature. For more information, see [Understanding split cost allocation data](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data.html). The feature is limited to Amazon ECS (including Fargate), AWS Batch, and Amazon EKS only.

[A](#sli-A) \$1 B \$1 C \$1 D \$1 E \$1 F \$1 G \$1 H \$1 I \$1 J \$1 K \$1 L \$1 M \$1 [N](#sli-N) \$1 O \$1 [P](#sli-P) \$1 Q \$1 [R](#sli-R) \$1 [S](#sli-S) \$1 T \$1 [U](#sli-U) \$1 V \$1 W \$1 X \$1 Y \$1 Z

## A


### splitLineItem/ActualUsage

+ **Description:** The usage for vCPU or memory (based on lineItem/UsageType) you incurred for the specified time period for the Amazon ECS task or Kubernetes pod.
+ **Line items applicable:** Usage
+ **Sample values:** 0.1, 0.5, 1.3
+ **Services:** Amazon ECS, Fargate, Amazon EKS

**Note**  
Fargate costs are calculated based on vCPU and memory reservations and reflected in the lineItem/UsageAmount column. Split cost allocation data computes actual Fargate vCPU and memory usage by observing low latency telemetry data and then aggregating it to the hour, day, and month. Therefore splitLineItem/ActualUsage might not be the same as lineItem/UsageAmount.

## N


### splitLineItem/NetSplitCost

+ **Description:** The effective cost for Amazon ECS tasks or Kubernetes pods after all discounts have been applied. This column is included in your report only when your account has a discount in the applicable billing period.
+ **Line items applicable:** Usage
+ **Sample values:** 1.35, 1.75
+ **Services:** Amazon ECS, Fargate, Amazon EKS

### splitLineItem/NetUnusedCost

+ **Description:** The effective unused cost for Amazon ECS tasks or Kubernetes pods after all discounts have been applied. This column is included in your report only when your account has a discount in the applicable billing period.
+ **Line items applicable:** Usage
+ **Sample values:** 1.35, 1.75
+ **Services:** Amazon ECS, Fargate, Amazon EKS

**Note**  
Unused costs are proportionately applied to the Amazon ECS task or Kubernetes pod based on splitLineItem/SplitUsage.

## P


### splitLineItem/ParentResourceId

+ **Description:** The resource ID of the parent EC2 instance associated with the Amazon ECS task or Amazon EKS pod (referenced in the lineItem/ResourceId column). The parent resource ID implies that the ECS task or Kubernetes pod workload for the specified time period ran on the parent EC2 instance. This applies only for Amazon ECS tasks or Kubernetes pods with EC2 launch type.
+ **Line items applicable:** Usage
+ **Services:** Amazon ECS, Amazon EKS

**Note**  
splitLineItem/ParentResourceId is available only when resource IDs are included in AWS Cost and Usage Reports.

### splitLineItem/PublicOnDemandSplitCost

+ **Description:** The cost for vCPU or memory (based on lineItem/UsageType) allocated for the time period to the Amazon ECS task or Kubernetes pod based on public On-Demand Instance rates (referenced in the pricing/publicOnDemandRate column).
+ **Line items applicable:** Usage
+ **Sample values:** 1.35, 1.75
+ **Services:** Amazon ECS, Fargate, Amazon EKS

### splitLineItem/PublicOnDemandUnusedCost

+ **Description:** The unused cost for vCPU or memory (based on lineItem/UsageType) allocated for the time period to the Amazon ECS task or Kubernetes pod based on public On-Demand Instance rates. Unused costs are costs associated with resources (CPU or memory) on the EC2 instance (referenced in the splitLineItem/ParentResourceIdcolumn) that were not utilized for the specified time period.
+ **Line items applicable:** Usage
+ **Sample values:** 1.35, 1.75
+ **Services:** Amazon ECS, Fargate, Amazon EKS

## R


### splitLineItem/ReservedUsage

+ **Description:** The usage for vCPU or memory (based on lineItem/UsageType) that you configured for the specified time period for the Amazon ECS task or Kubernetes pod.
+ **Line items applicable:** Usage
+ **Sample values:** 1, 2, 4
+ **Services:** Amazon ECS, Fargate, Amazon EKS

## S


### splitLineItem/SplitCost

+ **Description:** The cost for vCPU or memory (based on lineItem/UsageType) allocated for the time period to the Amazon ECS task or Kubernetes pod. This includes amortized costs if the EC2 instance (referenced in the splitLineItem/parentResourceId column) has upfront or partial upfront charges for reservations or Savings Plans.
+ **Line items applicable:** Usage
+ **Sample values:** 1.35, 1.75
+ **Services:** Amazon ECS, Fargate, Amazon EKS

### splitLineItem/SplitUsage

+ **Description:** The usage for vCPU or memory (based on lineItem/UsageType) allocated for the specified time period to the Amazon ECS task or Kubernetes pod. This is defined as the maximum usage of splitLineItem/ReservedUsage or splitLineItem/ActualUsage.
+ **Line items applicable:** Usage
+ **Sample values:** 1, 1.3
+ **Services:** Amazon ECS, Fargate, Amazon EKS

### splitLineItem/SplitUsageRatio

+ **Description:** The ratio of vCPU or memory (based on lineItem/UsageType) allocated to the Amazon ECS task or Kubernetes pod compared to the overall CPU or memory available on the EC2 instance (referenced in the splitLineItem/ParentResourceId column).
+ **Line items applicable:** Usage
+ **Sample values:** 0.25, 0.75
+ **Services:** Amazon ECS, Fargate, Amazon EKS

**Note**  
splitLineItem/SplitUsageRatio is only available for AWS Cost and Usage Reports with a time granularity preference of hourly data.

## U


### splitLineItem/UnusedCost

+ **Description:** The unused cost for vCPU or memory (based on lineItem/UsageType) allocated for the time period to the Amazon ECS task or Kubernetes pod. Unused costs are costs associated with resources (CPU or memory) on the EC2 instance (referenced in the splitLineItem/ParentResourceId column) that were not utilized for the specified time period. This includes amortized costs if the EC2 instance (splitLineItem/parentResourceId) has upfront or partial upfront charges for reservations or Savings Plans.
+ **Line items applicable:** Usage
+ **Sample values:** 1.35, 1.75
+ **Services:** Amazon ECS, Fargate, Amazon EKS

**Note**  
Unused costs are proportionately applied to the Amazon ECS task or Kubernetes pod based on splitLineItem/SplitUsage.

# Use cases
Use cases

You can use the AWS Cost and Usage Reports (AWS CUR) to suit your reports management needs. This section goes in-depth to help you understand use cases such as tracking your Savings Plans and Reserved Instance (RI) utilization, charges, and allocations.

**Topics**
+ [

# Understanding Savings Plans
](cur-sp.md)
+ [

# Understanding your reservations
](understanding-ri.md)
+ [

# Understanding data transfer charges
](cur-data-transfers-charges.md)
+ [

# Understanding split cost allocation data
](split-cost-allocation-data.md)

# Understanding Savings Plans


You can use Cost and Usage Reports (AWS CUR) to track your Savings Plans utilization, charges, and allocations.

## Savings Plans line items


Savings Plans provide a flexible pricing model that offers low prices on Amazon EC2, AWS Fargate, AWS Lambda, and Amazon SageMaker AI in exchange for a commitment to a consistent amount of usage (measured in \$1/hour) for a 1-year or 3-year term.

The following line items in AWS CUR help you track and manage your spend with Savings Plans. 

**Note**  
In the following tables, the columns and rows from AWS CUR are transposed for clarity. The values in the first column represent the headers of a report. These examples include only a few key AWS CUR columns. To learn more about other AWS CUR columns, see the [Data dictionary](data-dictionary.md).

**Upfront fee**  
The **SavingsPlanUpfrontFee** line item is added to your bill when you purchase an `All Upfront` or `Partial Upfront` Savings Plans. The following table shows how this one-time fee appears in some AWS CUR columns.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/cur/latest/userguide/cur-sp.html)

 **Savings Plans recurring monthly fee**  
The **SavingsPlanRecurringFee** line item describes the recurring hourly charges that correspond to `No Upfront` or `Partial Upfront` Savings Plans. Initially, the **SavingsPlanRecurringFee** is added to your bill on the day of purchase and hourly thereafter.  
The **SavingsPlanRecurringFee** allocated to the hour (applicable to Hourly cost and usage) or day (applicable to Daily cost and usage) is added to your bill at the hour of purchase. It is added every hour/day of the billing period subsequently.  
For an `All Upfront` Savings Plans, the line item indicates the portion of the Savings Plans unused during the billing period.  
The following table shows how the recurring hourly charges appear in some AWS CUR columns.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/cur/latest/userguide/cur-sp.html)
  
The SavingsPlanRecurringFee is calculated differently than the recurring RI fee. The recurring RI fee is a monthly charge while the SavingsPlanRecurringFee is an hourly charge. For information on the recurring RI fee, see [Recurring monthly RI fee](regular-reserved-instances.md#recurring-monthly).

**Savings Plans discount benefits**  
The **SavingsPlanCoveredUsage** line item describes the instance usage that received Savings Plans benefits. A **SavingsPlanCoveredUsage** line item shows an unblended cost of what the On-Demand charge would have been without the Savings Plans benefit. This unblended cost is offset by the corresponding **SavingsPlanNegation** line item.   
In each **SavingsPlanCoveredUsage** line item, you can see how that usage was billed against your Savings Plans hourly commitment by using the **savingsPlan/SavingsPlanRate** and **savingsPlan/SavingsPlanEffectiveCost** fields.  
You'll see a corresponding **SavingsPlanNegation** for each **SavingsPlanCoveredUsage** line item. **SavingsPlanNegation** line items offset the unblended cost of **SavingsPlanCoveredUsage**, and grouped at the hourly level by SavingsPlanARN, Operation, Usage Type, and Availability Zone. Therefore, one **SavingsPlanNegation** line item might correspond to multiple **SavingsPlanCoveredUsage** line items.  
The following table shows how the covered usage and the negation line items appear in some AWS CUR columns.  
      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/cur/latest/userguide/cur-sp.html)
When you have more usage than your Savings Plans commitment can cover, your uncovered usage still appears as a Usage Line Item and the covered usage appears as **SavingsPlanCoveredUsage** with the corresponding **SavingsPlanNegation** line items.

# Understanding your reservations
Understanding reservations

You can use the AWS Cost and Usage Reports (AWS CUR) to track your Reserved Instance (RI) utilization, charges, and allocations. This section is an in-depth description to understand your reservations.

**Topics**
+ [

# Understanding your reservation line items
](regular-reserved-instances.md)
+ [

# Understanding your amortized reservation data
](amortized-reservation.md)
+ [

# Monitoring your size flexible reservations for Amazon EC2
](monitor-flexible-reservation.md)
+ [

# Monitoring your On-Demand capacity reservations
](monitor-ondemand-reservations.md)

# Understanding your reservation line items


RIs provide you a significant discount compared to On-Demand Instance pricing. RIs aren't physical instances. They're a billing discount applied to the use of On-Demand Instances in your account. These On-Demand Instances must match certain attributes to benefit from the billing discount. 

**Topics**
+ [

## Upfront fee
](#upfront-fee)
+ [

## True-up fee
](#true-up-fee)
+ [

## Recurring monthly RI fee
](#recurring-monthly)
+ [

## RI discount benefits
](#discount-benefits)
+ [

## Reserved Instance type
](#ri-type)
+ [

## Reserved Instance benefits applied to instance usage
](#ri-instance-usage)

**Note**  
In the following tables, the columns and rows from AWS CUR are transposed for clarity. The values in the first column represent the headers of a report. These examples include only a few key AWS CUR columns. To learn more about other AWS CUR columns, see the [Data dictionary](data-dictionary.md).

## Upfront fee


The **Fee** line item is added to your bill when you purchase an `All Upfront` or `Partial Upfront` RI.

The following table shows how this one-time fee appears in some AWS CUR columns.


|  |  | 
| --- |--- |
| lineItem/LineItemType | Fee | 
| lineItem/ProductCode | AmazonEC2 | 
| lineItem/UsageStartDate | 2016-01-01T00:00:00Z | 
| lineItem/LineItemDescription | Sign up charge for subscription: 363836886, planId: 1026576 | 
| lineItem/UnblendedCost | 68 | 
| Reservation/ReservationARN | arn:aws:ec2:us-east-1:123456789012:reserved-instances/f8c204c1-dd48-43f1-adb8-f88aa61e0dea | 

## True-up fee


If you exchange a Convertible Reserved Instance, any cost associated with the exchange of the original Reserved Instance and the new Reserved instance (true-up fee) is also added to your bill as a **Fee** line item. For a true-up fee, the **reservation/ReservationARN** column contains **reserved-instance-exchange/riex**.

The following table shows a true-up fee from exchanging a Convertible Reserved Instance.


| lineItem/LineItemType | lineItem/ProductCode | lineItem/UsageStartDate | lineItem/LineItemDescription | lineItem/UnblendedCost | Reservation/ReservationARN | 
| --- | --- | --- | --- | --- | --- | 
| Fee | AmazonEC2 | 2016-01-01T00:00:00Z |  |  | arn:aws:ec2:eu-west-1:012345678901:reserved-instance-exchange/riex-examplef-5d71-4215-886f-17a3f64ea972 | 

## Recurring monthly RI fee


The **RI Fee** line item describes the recurring monthly charges that are associated RIs applied that month. The **RI Fee** initially is added to your bill on the day of purchase and on the first day of each billing period thereafter.

The **RI Fee** is calculated by multiplying your discounted hourly rate and the number of hours in the month.

The following table shows how the recurring monthly charges appear in the report.


|  |  | 
| --- |--- |
| lineItem/LineItemType | RI fee | 
| lineItem/ProductCode | AmazonEC2 | 
| lineItem/UsageStartDate | 2016-01-01T00:00:00Z | 
| lineItem/UsageType | HeavyUsage: m4.large | 
| lineItem/LineItemDescription | USD 0.0309 hourly fee per Linux/UNIX (Amazon VPC), m4.large instance | 
| lineItem/NormalizationFactor | 4 | 
| lineItem/UnblendedCost | 23 | 
| Reservation/AvailabilityZone |  | 
| Reservation/ReservationARN | arn:aws:ec2:us-east-1:123456789012:reserved-instances/f8c204c1-dd48-43f1-adb8-f88aa61e0dea | 
| Reservation/TotalReservedunits | 744 | 
| Reservation/TotalReservedNormalizedUnits | 2976 | 

Recurring monthly charges are recorded differently for RIs that have an Availability Zone or AWS Region Region scope. For RIs that have an Availability Zone scope, the corresponding Availability Zone is shown in the **reservation/AvailabilityZone** column. For RIs that have a Region scope, the **reservation/AvailabilityZone** column is empty. RIs with a Region scope have values for the **lineitem/NormalizationFactor** and **reservation/TotalReservedNormalizedUnits** columns that show the instance size.

**Note**  
The recurring RI fee is calculated differently than the SavingsPlanRecurringFee. The recurring RI fee is a monthly charge while the SavingsPlanRecurringFee is an hourly charge. For information on the SavingsPlanRecurringFee, see [Understanding Savings Plans](cur-sp.md).

## RI discount benefits


The **Discounted Usage** line item describes the instance usage that received a matching RI discount benefit, and is added to your bill when you have usage that matches one of your RIs. AWS calculates RI discount benefits based on matching usage: for example, the use of an instance that matches the instance reservation. If you have matching usage, the cost associated with the usage line item is always zero because the charges associated with RIs are already accounted for in the two other line items (the upfront fee and the recurring monthly charges).

The following table shows an example of usage that received an RI discount benefit.


|  |  | 
| --- |--- |
| lineItem/LineItemType | DiscountedUsage | 
| lineItem/ProductCode | AmazonEC2 | 
| lineItem/UsageStartDate | 2016-01-01T00:00:00Z | 
| lineItem/UsageType | BoxUsage:m4.large | 
| lineItem/LineItemDescription | Linux/UNIX (Amazon VPC), m4.large Reserved Instance applied | 
| lineItem/ResourceId | i-1bd250bc | 
| lineItem/AvailabilityZone | us-east-1b | 
| lineItem/NormalizationFactor | 4 | 
| lineItem/NormalizedUsageAmount | 4 | 
| lineItem/UnblendedRate | 0 | 
| lineItem/UnblendedCost | 0 | 
| Reservation/ReservationARN | arn:aws:ec2:us-east-1:123456789012:reserved-instances/f8c204c1-dd48-43f1-adb8-f88aa61e0dea | 

The value for **UsageAmount** in the Amazon EC2 **DiscountedUsage** line is the actual number of hours used. The value for **NormalizedUsageAmount** is the value for **UsageAmount** multiplied by the value for **NormalizationFactor**. The value for **NormalizationFactor** is determined by the instance size. When an RI benefit discount is applied to a matching line item of usage, the Amazon Resource Name (ARN) value in the **reservation/ReservationARN** column for the initial upfront fees and recurring monthly charges matches the ARN value in the discounted usage line items. 

For more information about mapping instance size to normalization factor, see [ Support for modifying instance sizes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modification-instancemove.html) in the *Amazon EC2 User Guide*.

## Reserved Instance type


To determine if your report line items are associated with a Standard Reserved Instance or a Convertible Reserved Instance, filter the **lineItem/LineItemType** column by **Fee** or **RI fee**. Then, review the **product/OfferingClass** column, which indicates the Reserved Instance type.

To determine if your report line items are associated with a zonal or regional Reserved Instance, review the **reservation/AvailabilityZone** column. For zonal Reserved Instances, this column shows the corresponding Availability Zone. For regional Reserved Instances, this column is empty.

## Reserved Instance benefits applied to instance usage


To understand which instance usage line items benefitted from which Reserved Instances, you can filter your report by one or more of the following columns:
+ **reservation/reservationARN**: Filter this column by a reservation ARN to identify which Reserved Instance lease is associated with each line item.
+ **lineitem/ResourceId**: Review this column for the ID of the resource that's covered by the Reserved Instance.
+ **lineitem/LineItemType**: Filter this column by **Fee**, **RI fee**, or **DiscountedUsage** to determine the associated fees or benefits.
+ **lineitem/UsageType**: Filter this column by **HeavyUsage** to identify **RI fee** line items. Or, filter this column by **BoxUsage** to identify **DiscountedUsage** line items.
+ **lineitem/UsageAmount**: For **RI fee** line items, this column shows the total number of hours in the month that the Reserved Instance was applied. For **DiscountedUsage** line items, this column shows the total number of hours that the Reserved Instance was applied to a specific instance at the daily or monthly level, depending on how you configured your report.

To understand a size flexible Reserved Instance’s number of normalized units applied to instance usage, review the **lineitem/NormalizedUsageAmount** column in your report. The value in this column equals the product of the following columns:
+ **lineitem/UsageAmount**: This column shows the metered instance usage measured in hours.
+ **lineItem/NormalizationFactor**: For **DiscountedUsage** and **RI fee** line items, this column shows the associated normalization factor of the instance. For more information on the normalization factor, see [Instance size flexibility determined by normalization factor](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/apply_ri.html#ri-normalization-factor) in the *Amazon EC2 User Guide*.

For AWS Organizations with multiple accounts, to see which accounts purchased or benefitted from a Reserved Instance, review the following columns:
+ **reservation/reservationARN**: Review the reservation ARNs to see which accounts purchased the Reserved Instance. The ARN includes the account ID.
+ **lineitem/UsageAccountId**: For **DiscountedUsage** line items, this column identifies the account IDs that received benefits from the purchased Reserved Instances.

**Note**  
A Reserved Instance is a billing subscription and not a resource like an Amazon EC2 instance. Because of this, Reserved Instances that are tagged don't populate line items like a tagged resource. For line items with **DiscountedUsage**, tags populate for the tagged resources and not for the Reserved Instance.  
To identify costs associated with a specific Reserved Instance lease, you can filter **Fee** or **RI fee** line items by the Reserved Instance ARN, which is the lease ID. To organize your cost data for Reserved Instances, consider using AWS Cost Categories. For more information, see [Managing your costs with AWS Cost Categories](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html) in the *AWS Billing User Guide*

# Understanding your amortized reservation data


Amortizing is when you distribute one-time reservation costs across the billing period that is affected by that cost. Amortizing enables you to see your costs in accrual-based accounting as opposed to cash-based accounting. For example, if you pay \$1365 for an All Upfront RI for one year and you have a matching instance that uses that RI, that instance costs you \$11 a day, amortized.

You can see the data that Billing and Cost Management uses to calculate your amortized costs in the following Cost and Usage Reports columns. 

**Topics**
+ [

## Reserved Instance inventory
](#ri-inventory)
+ [

## Amortization data for the billing period
](#amortization-billing-period)
+ [

## Reserved Instance effective costs
](#ri-effective-costs)

**Note**  
Not all **reservation/** columns are populated for every Reserved Instance line item. The **reservation/** columns in your report are populated based on the line item type. For example, **RI fee** line items populate the **reservation/UnusedAmortizedUpfrontFeeForBillingPeriod** column. Meanwhile, **DiscountedUsage** line items populate the **reservation/effectivecost** column.

## Reserved Instance inventory


You can use the following columns to track your RI inventory. The values for these columns appear only for RI subscription line items (also known as `RI Fee` line items) and not for the actual instances using the RIs.

For more information about column descriptions and sample values, see [Reservation details](reservation-columns.md).
+ reservation/UpfrontValue
+ reservation/startTime
+ reservation/endTime
+ reservation/modificationStatus

## Amortization data for the billing period


You can use the following columns to understand the amortized costs of your RIs for the billing period. The values for these columns appear only for RI subscription line items (also known as `RI Fee` line items) and not for the actual instances using the RIs.

For more information about column descriptions and sample values, see [Reservation details](reservation-columns.md).
+ reservation/amortizedUpfrontFeeForBillingPeriod
+ reservation/unusedQuantity
+ reservation/unusedNormalizedUnitQuantity
+ reservation/unusedRecurringFee
+ reservation/unusedAmortizedUpfrontFeeForBillingPeriod

## Reserved Instance effective costs


You can use the following columns to understand your effective cost at the instance level. The values for these columns appear only for instance usage line items (also known as `Discounted Usage boxUsage` line items).

For more information about column descriptions and sample values, see [Reservation details](reservation-columns.md).
+ reservation/amortizedUpfrontCostForUsage
+ reservation/recurringFeeForUsage
+ reservation/effectiveCost

# Monitoring your size flexible reservations for Amazon EC2


Amazon EC2 Reserved Instances that apply to a Region provide Availability Zone flexibility and instance size flexibility. Reserved Instances that provide Availability Zone flexibility provide a discount on usage in any Availability Zone in the Region. Reserved Instances that provide instance size flexibility provide a discount on usage, regardless of instance size in that family. Size flexible Reserved Instances apply to the smallest instance sizes first. For more information, see [How Reserved Instances are applied](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/apply_ri.html) in the *Amazon EC2 User Guide*.

To understand how instance size flexibility provided by your Reserved Instance is applied to your usage, refer to the **lineItem/NormalizationFactor** and **lineItem/NormalizedUsageAmount** columns.

**Note**  
Instance size flexibility is supported only by Linux or Unix Reserved Instances with default tenancy that are assigned to a Region. For more information on the limitations of instance size flexibility for Regional Reserved Instances, see [How regional Reserved Instances are applied ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/apply_ri.html#apply-regional-ri) in the *Amazon EC2 User Guide*.

In a Cost and Usage Report, the Reserved Instance usage is applied by default to the account that purchased the Reserved Instance. Any available Reserved Instance benefit that the purchasing account can’t use within the hour is then applied to other linked accounts based on the available matching On-Demand Instance usage.

## Example


You purchase one `m4.xlarge` RI in a given Region. This `m4.xlarge` RI can be applied automatically to all `m4` instance usage in the same Region. In the following table, AWS applied the `m4.xlarge` to two separate `m4.large` instances.


|  |  |  |  | 
| --- |--- |--- |--- |
| lineItem/LineItemType | RIFee | Discounted Usage | Discounted Usage | 
| lineItem/ProductCode | AmazonEC2 | AmazonEC2 | AmazonEC2 | 
| lineItem/UsageStartDate | 2016-01-01T00:00:00Z | 2016-01-01T00:00:00Z | 2016-01-01T00:00:00Z | 
| lineItem/UsageType | HeavyUsage:m4.xlarge | BoxUsage:m4.large | BoxUsage:m4.large | 
| lineItem/LineItemDescription | USD 0.0618 hourly fee per Linux/UNIX (Amazon VPC), m4.xlarge instance | Linux/UNIX (Amazon VPC), m4.large Reserved Instance applied | Linux/UNIX (Amazon VPC), m4.large Reserved Instance applied | 
| lineItem/ResourceId |  | i-1bd250bc | i-1df340ed | 
| lineItem/UsageAmount |  | 1 | 1 | 
| lineItem/NormalizationFactor | 4 | 4 | 4 | 
| lineItem/NormalizedUsageAmount |  | 4 | 4 | 
| lineItem/UnblendedRate |  | 0 | 0 | 
| lineItem/UnblendedCost | 46 | 0 | 0 | 
| Reservation/ ReservationARN | arn:aws:ec2:us-east-1: 123456789012:reserved-instances /f8c204c1 | arn:aws:ec2:us-east-1: 123456789012:reserved-instances /f8c204c1 | arn:aws:ec2:us-east-1: 123456789012:reserved-instances /f8c204c1 | 
| Reservation/TotalReservedUnits | 744 |  |  | 
| Reservation/TotalReserved NormalizedUnits | 5952 |  |  | 

The two `m4.large` usage line items have different **ResourceId**s, and both received a discount benefit from the single `m4.xlarge` RI. This is shown by matching the **reservationARN** value across the usage and recurring monthly charge line items.

For more information about RI purchase options, see [How you are billed](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-reserved-instances-application.html#reserved-instances-payment-options) in the *Amazon EC2 User Guide*.

# Monitoring your On-Demand capacity reservations


Capacity reservations enable you to reserve capacity for your Amazon EC2 instances for any duration in a specific Availability Zone. This enables you to create and manage capacity reservations separately from the billing discounts offered by Regional Reserved Instances (RI). To benefit from billing discounts, you can use Regional RIs in combination with capacity reservations.

## Capacity reservation line items


You can use some columns defined in the AWS CUR data dictionary to track your capacity reservations. The following columns are also used for capacity reservations.

This section defines these line items with supplementary definitions specific to capacity reservations.

For more information about Cost and Usage Reports column descriptions, see [Line item details](Lineitem-columns.md).

A \$1 [B](#lcr-B) \$1 C \$1 D \$1 E \$1 F \$1 G \$1 H \$1 I \$1 J \$1 K \$1 L \$1 M \$1 N \$1 O \$1 P \$1 Q \$1 [R](#lcr-R) \$1 S \$1 T \$1 [U](#lcr-U) \$1 VWXYZ 

### B


#### lineItem/BlendedRate


For capacity reservations with a **UsageType** of **Reservation** or **DedicatedRes**, the **BlendedRate** is `0`. This is because the capacity reservation costs are associated with the instance that provides the capacity, instead of with the capacity reservation itself. 

### R


#### lineItem/ResourceId


If you included `lineItem/ResourceId` when you created your Cost and Usage Reports, you can identify and track your capacity reservations using the **ResourceId** column. The capacity reservation **ResourceId** is captured only for the **UnusedBox,** **UnusedDed**, **Reservation**, and **DedicatedRes** **UsageTypes**.

Capacity reservations always include a `cr-` in their resource ID, and the resource ID has the following format:

```
arn:aws:ec2:<region>:<account id>:<capacity-reservation>/cr-0be443example1db6f
```

### U


#### lineItem/UnblendedCost


The `BlendedRate` multiplied by the `UsageAmount`.

#### lineItem/UnblendedRate


For capacity reservations with a **UsageType** of **Reservation** or **DedicatedRes**, the **UnblendedRate** is `0`. This is because the costs for capacity reservations are associated with the instance that provides the capacity, instead of with the capacity reservation itself.

#### lineItem/UsageAmount


How much of a capacity reservation you've used. Each capacity reservation can have multiple slots for an hour, enabling you to run more than one instance that uses the reservation during an hour. Therefore, it's possible to use more than one instance-hour in an hour. **UsageAmount** is calculated by multiplying the number of instance slots covered by the line item with the number of hours covered by the line item.

#### lineItem/UsageType


How much of a specific reservation you've used. For Amazon EC2, the options are as follows:

##### lineItem/lineitemtype = BoxUsage


For this `UsageType`, the `UsageAmount` column is the amount of instance-hours of an instance you've used.

For example, a report covers 1 hour and has a capacity reservation line item that can cover 10 instances. If you use two instance-slots during the time period covered by the report, the **BoxUsage** **UsageAmount** covers the number of instance hours that you reserved and used. In this case, this is two (the number of used instance slots) multiplied by 1 hour (the time covered by the report) for a total of two. For a report that covers 1 day, the **UsageAmount** is two multiplied by 24, for a total of 48.

##### DedicatedRes


For a **UsageType** of **DedicatedRes**, the **UsageAmount** column describes how many instance-hours of a dedicated capacity reservation you reserved.

##### Reservation


For a **UsageType** of **Reservation**, the **UsageAmount** column describes how many instance-hours of a capacity reservation you reserved.

For example, if a report covers one hour and has a capacity reservation line item that can cover 10 instances, the **Reservation** **UsageAmount** covers the number of instance slots that you reserved. In this case, that's 10 (the number of available instance slots) multiplied by 1 hour (the time covered by the report) for a total of 10. For a report that covers 1 day, the **UsageAmount** would be 10 multiplied by 24, for a total of 240.

##### UnusedBox


For a **UsageType** of **UnusedBox**, the **UsageAmount** column describes how many instance-hours of a capacity reservation you reserved, but didn't use.

For example, a report covers 1 hour and has a capacity reservation line item that can cover 10 instances. If you didn't use eight instance-slots during the time period covered by the report, the **UnusedBox** **UsageAmount** covers the number of instance hours that you reserved but didn't use. In this case, that's eight (the number of unused instance slots) multiplied by 1 hour (the time covered by the report) for a total of eight. For a report that covers 1 day, the **UsageAmount** is eight multiplied by 24, for a total of 192.

##### UnusedDed


For a **UsageType** of **UnusedDed**, the **UsageAmount** column describes how many instance-hours of a dedicated capacity reservation that you reserved, but didn't use.

# Understanding data transfer charges


You can identify your AWS data transfer charges using the [lineItem/UsageType](Lineitem-columns.md#Lineitem-details-U-UsageType) column of your AWS CUR.

**Note**  
Data transfer charges can vary depending on the services used and the source AWS Region. For detailed pricing information, refer to the service’s pricing page. For example, see [Amazon EC2 On-Demand Pricing](https://aws.amazon.com/ec2/pricing/on-demand/) for detailed pricing information about Amazon EC2 data transfer.

## Data transfer within an AWS Region


Data transfer between Availability Zones in the same AWS Region have a **UsageType** of `Region-DataTransfer-Regional-Bytes`. For example, the `USE2-DataTransfer-Regional-Bytes` usage type identifies charges for data transfer between Availability Zones in the US East (Ohio) Region.

For a given resource, you’re charged for both inbound and outbound traffic in a data transfer within an AWS Region. This means for each resource metered, you'll see two `DataTransfer-Regional-Bytes` line items for each data transfer. Confirm the service's pricing page for more information, because some services have in-Region traffic at no cost.

## Data transfer between AWS Regions


Data transfer between different AWS Regions can have the following usage types:
+ `Source Region-Destination Region-AWS-In-Bytes`: Measures incoming data transfer TO the destination Region FROM another specific AWS Region.
+ `Source Region-Destination Region-AWS-Out-Bytes`: Measures outgoing data transfer FROM the source Region TO another specific AWS Region.
+ `Source Region-AWS-In-Bytes`: This usage type appears when traffic flows via VPC Peering.
+ `Source Region-AWS-Out-Bytes`: This usage type appears when traffic flows via VPC Peering.

For each resource, data transfer between AWS Regions corresponds to two line items in your report:
+ A line item for the data transferred into the destination Region 
+ A line item for the data transferred out from the source Region

There's no charge for the data transferred into the destination Region. The data transfer charge is determined by the data transferred out from the source Region.

For example, a data transfer from the `USE2` Region to the `APS3` Region will have both a `APS3-USE2-AWS-In-Bytes` line item and a `USE2-APS3-AWS-Out-Bytes` line item. The `APS3-USE2-AWS-In-Bytes` line item has no corresponding charge. The data transfer charge is associated with the `USE2-APS3-AWS-Out-Bytes` line item.

## Data transfer out to the internet


Data transfer from AWS to the internet have a **UsageType** of `Region-DataTransfer-Out-Bytes`. For example, the `USE2-DataTransfer-Out-Bytes` usage type identifies charges for data transfer from the `USE2` Region to the internet.

There’s no charge for data transfer from the internet to AWS.

**Note**  
Data transfer usage types that don’t have the Region prefix, such as `DataTransfer-Regional-Bytes` or `DataTransfer-Out-Bytes`, represent data transfer from the US East (N. Virginia) Region.

## Direct Connect traffic


Direct Connect data transfer over a public virtual interface have usage types that end with `DataXfer-In` or `DataXfer-Out`.

Direct Connect data transfer over a private or transit virtual interface have usage types that end with `DataXfer-In:dc.3` or `DataXfer-Out:dc.3`.

## S3 Transfer Acceleration traffic


Amazon S3 data transfer using S3 Transfer Acceleration have usage types that contain `ABytes`:
+ Between Amazon S3 and Amazon EC2: Usage types that end with `C3DataTransfer-In-ABytes` or `C3DataTransfer-Out-ABytes`
+ Between Amazon S3 and the internet: Usage types that end with `DataTransfer-In-ABytes` or `DataTransfer-Out-ABytes`
+ Between Amazon S3 and CloudFront: Usage types that end with `CloudFront-In-ABytes` or `CloudFront-Out-ABytes`
+ Between Amazon S3 buckets in different AWS Regions: Usage type of `Source Region-Destination Region-AWS-Out-ABytes`

## CloudFront traffic


CloudFront data transfer have a usage type of `Region-DataTransfer-Out-Bytes` or `Region-DataTransfer-Out-OBytes` coupled with the product code `AmazonCloudFront`. The Region prefix in the usage type refers to the CloudFront Edge location used in the data transfer. For example, the `AP-DataTransfer-Out-Bytes` usage type identifies charges for data transfer from the AP Region to the internet.

**Tip**  
Use the [lineItem/ProductCode](Lineitem-columns.md#Lineitem-details-P-ProductCode) column to distinguish CloudFront data transfer from data transfer out to the internet. The usage types for these data transfer types look similar.

# Understanding split cost allocation data


You can use Cost and Usage Reports (AWS CUR) to track your Amazon ECS and Amazon EKS container costs. Using split cost allocation data, you can allocate your container costs to individual business units and teams, based on how your container workloads consume shared compute and memory resources. Split cost allocation data introduces cost and usage data for new container-level resources (that is, ECS tasks and Kubernetes pods) to AWS CUR. Previously, AWS CUR only supported costs at the EC2 instance level. Split cost allocation data generates container-level costs by looking at each container’s EC2 instance resource consumption, and generates cost based on the amortized cost of the instance and the percentage of CPU and memory resources consumed by the containers that ran on the instance.

For accelerated computing instances used with Amazon EKS, split cost allocation data includes resource allocation for specialized processors alongside CPU and memory. This covers NVIDIA and AMD GPUs, AWS Trainium, and AWS Inferentia accelerators. The feature is available only for Amazon EKS environments and provides pod-level resource reservation data for these accelerated computing resources. This allows you to track and allocate costs for workloads that use these specialized processors, such as AI/ML applications and other computationally intensive tasks. For a current list of accelerated computing instances, see [Accelerated Computing](https://aws.amazon.com/ec2/instance-types/#Accelerated_Computing).

Split cost allocation data introduces new usage records and new cost metric columns for each containerized resource ID (that is, ECS task and Kubernetes pod) in AWS CUR. For more information, see [Split line item details](https://docs.aws.amazon.com/cur/latest/userguide/split-line-item-columns.html).

When including split cost allocation data in AWS CUR, two new usage records are added for each ECS task and Kubernetes pod per hour in order to reflect the CPU and memory costs. To estimate the number of new line items in AWS CUR per day, use the following formula:

For ECS: `(number of tasks * average task lifetime * 2) * 24`

For EKS: `(number of pods * average pod lifetime * 2) * 24`

For example, if you have 1,000 pods running each hour across a cluster of 10 EC2 instances and the lifetime for the pod is less than 1 hour, then: 

`(1000 * 1 * 2) * 24 = 48,000 new usage records in AWS CUR`

For accelerated computing instances in Amazon EKS, three new usage records are added for each Kubernetes pod per hour in order to reflect the accelerator, CPU, and memory costs. To estimate the number of new line items in AWS CUR per day, use the following formula:

For EKS with accelerated computing: `(number of pods * average pod lifetime * 3) * 24`

For example, if you have 1,000 pods running each hour across a cluster of 10 EC2 instances and the lifetime for each pod is less than one hour, then: `(1000 * 1 * 3) * 24 = 72,000 new usage records in AWS CUR`

**Note**  
For ECS: When it comes to AWS cost allocation tags, you can use Amazon ECS-managed tags or user-added tags for your Cost and Usage Reports. These tags apply to all new ECS split cost allocation data usage records. For more information, see [Tagging your ECS resources for billing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html#tag-resources-for-billing).  
For EKS: Split cost allocation data creates new cost allocation tags for some Kubernetes attributes. These tags include `aws:eks:cluster-name`, `aws:eks:deployment`, `aws:eks:namespace`, `aws:eks:node`, `aws:eks:workload-name`, and `aws:eks:workload-type`.  
`aws:eks:cluster-name`, `aws:eks:namespace`, and `aws:eks:node` are populated retrospectively with the name of the cluster, namespace, and node.
`aws:eks:workload-type` is only populated if there is exactly one workload managing the pod, and is one of the built in workloads. Workload types include `ReplicaSet`, `StatefulSet`, `Job`, `DaemonSet`, or `ReplicationController`, and `aws:eks:workload-name` includes the name of the workload. For more information, see [Workloads](https://kubernetes.io/docs/concepts/workloads/) in the *Kubernetes Documentation*.
`aws:eks:deployment` is only populated for the workload type `ReplicaSet`. It is the deployment that creates a `ReplicaSet`.
These tags apply to all new EKS split cost allocation data usage records. These tags are enabled for cost allocation by default. If you previously used and disabled the `aws:eks:cluster-name` tag, then split cost allocation data keeps this setting and doesn't enable the tag. You can enable it from the [Cost allocation tags](https://console.aws.amazon.com/billing/home#/tags) console page.

# Enabling split cost allocation data


**Note**  
Split cost allocation data is not available in Cost Explorer. It is available in legacy Cost and Usage Reports (CUR) and Cost and Usage Report 2.0 (CUR 2.0) with Data Exports.

It is a prerequisite to opt in to split cost allocation data through the Cost Management preferences.

**To opt in to split cost allocation data**

1. Open the Billing and Cost Management console at [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. In the navigation pane, choose **Cost Management preferences**.

1. Under **General**, in the **Split cost allocation data** section, choose between the following:
   + **Amazon Elastic Container Service (Amazon ECS)** to opt in to Amazon ECS only.
   + **Amazon Elastic Kubernetes Service (Amazon EKS)** to opt in to Amazon EKS only. For Amazon EKS, choose between the following:
     + **Resource requests**: This allocates your Amazon EC2 by Kubernetes pod CPU and memory resources only. This will encourage application teams to only provision what they need.
     + **Amazon Managed Service for Prometheus**: This allocates your Amazon EC2 costs by the higher of Kubernetes pod CPU and memory resource requests and actual utilization. This ensures each application team pays for what they use. To learn more about setting up Amazon Managed Service for Prometheus, see [Setting up](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-setting-up.html) in the *Amazon Managed Service for Prometheus user guide*. 

       Prerequisite: You must enable all features in AWS Organizations. To learn more, see [Enabling all features in your organization](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html) in the *Organizations user guide*.
     + **Amazon CloudWatch Container Insights**: This provides more granular cost visibility for your clusters running multiple application containers using shared EC2 instances, enabling better cost allocation for the shared costs of your EKS clusters.

**Note**  
Only regular and payer accounts have access to the AWS Cost Management preferences and can opt in to split cost allocation data. Once opted in, member accounts can view the data in the Cost and Usage Reports.
If you choose resource requests, only the pods configured with memory and CPU requests are used by split cost allocation data. Pods that haven't requested any usage won't see any split cost data.
If you choose Amazon Managed Service for Prometheus, you need to enable all features in AWS Organizations. For more information, see [Enabling all features in your organization](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html). In addition, split cost allocation data creates a new service-linked role, which enables access to AWS services and resources used or managed by split cost allocation data.
For accelerated computing instances, only the Resource request option is supported. Neither Amazon Managed Service for Prometheus nor Amazon CloudWatch Container Insights are supported for these instances. When using accelerated computing instances, the system will default to Resource request to compute accelerator, CPU, and memory costs, even if other measurement options are enabled.

Once you’ve opted in, you can choose to have cost and usage data for container-level resources included in your report during step one of report creation or later by editing the report details.

**To include cost and usage data in your report**

1. Open the Billing and Cost Management console at [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. In the navigation pane, under **Legacy Pages**, choose **Cost and Usage Reports**.

1. Whether creating a new report or editing an existing report, in the **Specify report details** page, under **Report content**, select **Split cost allocation data**.

**Note**  
You can also use the AWS CUR API or the AWS Command Line Interface (CLI) to manage your split cost allocation data preferences.

Split cost allocation data enables cost visibility for all Amazon ECS and Amazon EKS container objects across your entire consolidated billing family (payer and linked accounts). Once activated, split cost allocation data automatically scans for tasks and containers. It ingests the telemetry usage data for your container workloads and prepares the granular cost data for the current month.

**Note**  
It can take up to 24 hours for the data to be visible in AWS CUR.

For information about managing access to Billing and Cost Management console pages, see [﻿Overview of managing access permissions](https://docs.aws.amazon.com/cost-management/latest/userguide/control-access-billing.html).

For information regarding AWS Cost Management preferences and controlling access to Cost Explorer, see [﻿Controlling access to Cost Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-access.html).

# Example of split cost allocation data


The purpose of the following example is to show you how split cost allocation data is calculated by computing the cost of individual Amazon ECS services, tasks in Amazon ECS clusters, and Kubernetes namespace and pods in Amazon EKS clusters. The rates used throughout the example are for illustrative purposes only.

**Note**  
The example demonstrates Kubernetes namespace and pods running in Amazon EKS clusters. We can then apply the same cost model to Amazon ECS service and tasks running in a Amazon ECS cluster.

You have the following usage in a single hour:
+ Single instance (m5.xlarge) shared cluster with two namespaces and four pods, running for the duration of a full hour.
+ Instance configuration is 4 vCPU and 16 GB of memory.
+ Amortized cost of the instance is \$11/hr.

Split cost allocation data uses relative unit weights for CPU and memory based on a 9:1 ratio. This is derived from per vCPU per hour and per GB per hour prices in [AWS Fargate](https://aws.amazon.com/fargate/pricing/).

## Step 1: Compute the unit cost for CPU and memory


`Unit-cost-per-resource = Hourly-instance-cost/((Memory-weight * Memory-available) + (CPU-weight * CPU-available))`

= \$11/( (1 \$1 16GB) \$1 (9 \$1 4vCPU)) = \$10.02

`Cost-per-vCPU-hour = CPU-weight * Unit-cost-per-resource`

= 9 \$1 \$10.02 = \$10.17

`Cost-per-GB-hour = Memory-weight * Unit-cost-per-resource`

= 1 \$1 \$10.02 = \$10.02


****  

| Instance | Instance type | vCPU-available | Memory-available | Amortized-cost-per-hour | Cost-per-vCPU-hour | Cost-per-GB-hour | 
| --- | --- | --- | --- | --- | --- | --- | 
| Instance1 | m5.xlarge | 4 | 16 | \$11 | \$10.17 | \$10.02 | 

## Step 2: Compute the allocated capacity and instance unused capacity

+ Allocated capacity: The memory and vCPU allocated to the Kubernetes pod from the parent EC2 instance, defined as the maximum of used and reserved capacity.
**Note**  
If memory or vCPU usage data is unavailable, reservation data will be used instead. For more information, see [Amazon ECS usage reports](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html), or [Amazon EKS cost monitoring](https://docs.aws.amazon.com/eks/latest/userguide/cost-monitoring.html).
+ Instance unused capacity: The unused capacity of vCPU and memory.

`Pod1-Allocated-vCPU = Max (1 vCPU, 0.1 vCPU)` = 1 vCPU

`Pod1-Allocated-memory = Max (4 GB, 3 GB)` = 4 GB

`Instance-Unused-vCPU = Max (CPU-available - SUM(Allocated-vCPU), 0)` = Max (4 – 4.9, 0) = 0

`Instance-Unused-memory = Max (Memory-available - SUM(Allocated-memory), 0)` = Max (16 – 14, 0) = 2 GB

In this example, the instance has CPU over subscription, attributed to Pod2 that used more vCPU than what was reserved.


****  

| Pod name | Namespace | Reserved-vCPU | Used-vCPU | Allocated-vCPU | Reserved-memory | Used-memory | Allocated-memory | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Pod1 | Namespace1 | 1 | 0.1 | 1 | 4 | 3 | 4 | 
| Pod2 | Namespace2 | 1 | 1.9 | 1.9 | 4 | 6 | 6 | 
| Pod3 | Namespace1 | 1 | 0.5 | 1 | 2 | 2 | 2 | 
| Pod4 | Namespace2 | 1 | 0.5 | 1 | 2 | 2 | 2 | 
| Unused | Unused |  |  | 0 |  |  | 2 | 
|  |  |  |  | 4.9 |  |  | 16 | 

## Step 3: Compute the split usage ratios

+ Split usage ratio: The percentage of CPU or memory used by the Kubernetes pod compared to the overall CPU or memory available on the EC2 instance.
+ Unused ratio: The percentage of CPU or memory used by the Kubernetes pod compared to the overall CPU or memory used on the EC2 instance (that is, not factoring in the unused CPU or memory on the instance).

`Pod1-vCPU-split-usage-ratio = Allocated-vCPU / Total-vCPU`

= 1 vCPU / 4.9vCPU = 0.204

`Pod1-Memory-split-usage-ratio = Allocated-GB / Total-GB`

= 4 GB/ 16GB = 0.250

`Pod1-vCPU-unused-ratio = Pod1-vCPU-split-usage-ratio / (Total-CPU-split-usage-ratio – Instance-unused-CPU)` (set to 0 if Instance-unused-CPU is 0)

= 0 (since Instance-unused-CPU is 0)

`Pod1-Memory-unused-ratio = Pod1-Memory-split-usage-ratio / (Total-Memory-split-usage-ratio – Instance-unused-memory)` (set to 0 if Instance-unused-memory is 0)

= 0.250 / (1-0.125) = 0.286


****  

| Pod name | Namespace | vCPU-split-usage-ratio | vCPU-unused-ratio | Memory-split-usage-ratio | Memory-unused-ratio | 
| --- | --- | --- | --- | --- | --- | 
| Pod1 | Namespace1 | 0.204 | 0 | 0.250 | 0.286 | 
| Pod2 | Namespace2 | 0.388 | 0 | 0.375 | 0.429 | 
| Pod3 | Namespace1 | 0.204 | 0 | 0.125 | 0.143 | 
| Pod4 | Namespace2 | 0.204 | 0 | 0.125 | 0.143 | 
| Unused | Unused | 0 |  | 0.125 |  | 
|  |  | 1 |  | 1 |  | 

## Step 4: Compute the split cost and unused costs

+ Split cost: The pay per use cost allocation of the EC2 instance cost based on allocated CPU and memory usage by the Kubernetes pod.
+ Unused instance cost: The cost of unused CPU or memory resources on the instance.

`Pod1-Split-cost = (Pod1-vCPU-split-usage-ratio * vCPU-available * Cost-per-vCPU-hour) + (Pod1-Memory-split-usage-ratio * Memory-available * Cost-per-GB-hour)`

= (0.204 \$1 4 vCPU \$1 \$10.17) \$1 (0.25 \$1 16GB \$1 \$10.02) = \$10.22

`Pod1-Unused-cost = (Pod1-vCPU-unused-ratio * Instance-vCPU-unused-ratio * vCPU-available * Cost-per-VCPU-hour) + (Pod1-Memory-unused-ratio * Instance-Memory-unused ratio * Memory-available * Cost-per-GB-hour)`

= (0 \$1 0 \$1 4 \$1 \$10.17) \$1 (0.286 \$1 0.125 \$1 16 \$1 \$10.02) = \$10.01

`Pod1-Total-split-cost = Pod1-Split-cost + Pod1-Unused-cost`

= \$10.23


****  

| Pod name | Namespace | Split-cost | Unused-cost | Total-split-cost | 
| --- | --- | --- | --- | --- | 
| Pod1 | Namespace1 | \$10.22 | \$10.01 | \$10.23 | 
| Pod2 | Namespace2 | \$10.38 | \$10.02 | \$10.40 | 
| Pod3 | Namespace1 | \$10.18 | \$10.01 | \$10.19 | 
| Pod4 | Namespace2 | \$10.18 | \$10.01 | \$10.19 | 
| Unused | Unused | \$10.04 |  |  | 
|  |  | \$11 | \$10.04 | \$11 | 

The cost of the service is the sum of the cost of pods associated with each namespace.

Total cost of Namespace1 = \$10.23 \$1 \$10.19 = \$10.42

Total cost of Namespace2 = \$10.40 \$1 \$10.19 = \$10.59

## Sample AWS CUR


If you have a Savings Plans covering the entire usage for the EC2 instance in the billing period, amortized costs are computed using savingsPlan/SavingsPlanEffectiveCost.

![\[Table showing EC2 instance usage details with Savings Plans and cost breakdown.\]](http://docs.aws.amazon.com/cur/latest/userguide/images/savings-plan-entire-usage.png)


If you have a Savings Plans covering partial usage for the EC2 instance in the billing period and the rest of the EC2 instance usage is billed at On-Demand rates, EC2 instance amortized costs are computed using savingsPlan/SavingsPlanEffectiveCost (for SavingsPlanCoveredUsage) \$1 lineItem/UnblendedCost (for On-Demand usage).

![\[Table showing EC2 instance usage details, costs, and savings plan information.\]](http://docs.aws.amazon.com/cur/latest/userguide/images/savings-plan-partial-usage.png)


# Example of split cost allocation data for accelerated instances


The purpose of the following example is to show you how split cost allocation data is calculated by computing the cost of Kubernetes namespace and pods in Amazon EKS clusters. The rates used throughout the example are for illustrative purposes only.

You have the following usage in a single hour:
+ Single EC2 instance that is running four pods across two namespaces, and you want to understand the costs of each namespace.
+ The EC2 instance is p3.16xlarge with 8 GPU, 64 vCPU, and 488 GB RAM.
+ Amortized cost of the instance is \$110/hr.

Split cost allocation data normalizes the cost per resource based on a relative ratio of GPU:(cpu: memory) of 9:1. This implies that a unit of GPU costs 9x as much as a unit of CPU and memory. CPU and memory are then assigned a weight of 9:1. For a non-accelerated EC2 instance, the current default behavior will be adopted which is cpu: memory weight defaults to 9:1.

## Step 1: Compute the unit cost


Based on the cpu and memory resources on the EC2 instance and using the ratio of mentioned above, Split Cost Allocation data first calculates the unit cost per GPU, vCPU-hr and GB-hr.

`GPU-Weight =9`

`GPU+Memory-Weight =1`

`CPU-Weight=1*.9=.9`

`Memory-Weight=1*0.1=0.1`

`Hourly-Instance-Cost=$10`

`GPU-Available=8`

`Memory-Available=488`

`CPU-Available=64`

`UnitCostPerResource = Hourly-Instance-Cost/(( GPU-Weight * GPU-Available) + (Memory-Weight * Memory-Available) + (CPU-Weight * CPU-Available)) = $10/((9*8gpu)+ (0.1 * 488GB) + (.9 * 64vcpu)) = $0.056`

`Cost-per-GPU-Hour = GPU-Weight * UnitCostPerResource = 9 * $0.056 = $0.504`

`Cost-per-vcpu-Hour = CPU-Weight * UnitCostPerResource = .9 * $0.056 = $0.05`

`Cost-per-GB-Hour = Memory-Weight * UnitCostPerResource = .1 * $0.056 = $0.00506`


**Table 1: Unit cost calculation**  

| Instance | Instance Type | vCPU Available | GPU Available | \$1\$1 | Memory Available | Amortized Cost per Hour | Cost per vCPU-Hour | Cost per GPU-Hour | Cost per GB-Hour | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| Instance 1 | p3.16xlarge | 64 | 8 |  | 488 | \$110 | \$10.05 | \$10.50 | 0.005 | 

## Step 2: Calculate allocated and unused capacity


Allocated Capacity  
The GPU, vcpu and Memory allocated to the Kubernetes Pod from the parent EC2 Instance, defined as the Maximum of (reserved, used) capacity

Instance Unused Capacity  
The unused capacity of GPU, vcpu and Memory

`Pod1-Allocated-GPU = Max (1 GPU, 1 GPU) = 1 GPU`

`Pod1-Allocated-vcpu = Max (16 vcpu, 4 vcpu) = 16 vcpu`

`Pod1-Allocated-Memory = Max (100 GB, 60 GB) = 100 GB`

`Instance-Unused-GPU = Max (GPU-Available - SUM(Allocated-vcpu), 0)`

`= Max (8 – 8, 0) = 0`

`Instance-Unused-vcpu = Max (CPU-Available - SUM(Allocated-vcpu), 0)`

`= Max (16 – 18, 0) = 0`

`Instance-Unused-Memory = Max (Memory-Available - SUM(Allocated-Memory), 0)`

`= Max (488 – 440, 0) = 48 GB`

In this example, the instance has CPU over subscription, attributed to Pod 2 that used more GPU and vcpu that what was reserved.


**Table 2: Calculate Allocated and Unused Capacity**  

| Pod Name | Namespace | vcpu Reserved | vcpu Used | vcpu Allocated | GPU Reserved | GPU used | GPU Allocated | Memory Reserved | Memory Used | Memory Allocated | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| Pod 1 | Namespace 1 | 16 | 4 | 16 | 1 | 1 | 1 | 100 | 60 | 100 | 
| Pod 2 | Namespace 2 | 16 | 18 | 18 | 2 | 3 | 3 | 100 | 140 | 140 | 
| Pod 3 | Namespace 1 | 16 | 4 | 16 | 2 | 1 | 2 | 100 | 60 | 100 | 
| Pod 4 | Namespace 2 | 16 | 4 | 16 | 2 | 2 | 2 | 100 | 40 | 100 | 
| Unused | Unused | 0 | 34 | 0 | 1 | 1 | 0 | 88 | 188 | 48 | 
| \$1\$1\$1 |  | 64 | 32 | 66 | 8 | 8 | 8 | 488 | 488 | 488 | 

## Step 3: Compute the split usage and utilization ratios


Split usage ratio  
The percentage of CPU or memory used by the Kubernetes pod compared to the overall CPU or memory available on the EC2 instance.

Unused ratio  
The percentage of CPU or memory used by the Kubernetes pod compared to the overall CPU or memory used on the EC2 instance (that is, not factoring in the unused CPU or memory on the instance).

The percentage of CPU or memory used by the Kubernetes Pod compared to the overall CPU or memory available on the EC2 Instance.

`Pod1-GPU-Utilization-Ratio = Allocated-GPU / Total-GPU`

`= 1 gpu / 8 gpu = 0.125`

`Pod1-vcpu-Utilization-Ratio = Allocated-vcpu / Total-vcpu`

`= 16 vcpu / 66 vcpu = 0.24`

`Pod1-Memory-Utilization-Ratio = Allocated-GB / Total-GB`

`= 100 GB/ 488GB = 0.205`

`Pod1-GPU-Split-Ratio = Pod1-GPU-Utilization-Ratio / (Total-GPU-Utilization-Ratio – Instance-Unused-GPU). Set to 0 if Instance-Unused-GPU = 0`

`= 0 since Instance-Unused-GPU is 0`

`Pod1-vcpu-Split-Ratio = Pod1-CPU-Utilization-Ratio / (Total-CPU-Utilization-Ratio – Instance-Unused-CPU). Set to 0 if Instance-Unused-CPU = 0`

`= 0 since Instance-Unused-CPU is 0`

`Pod1-Memory-Split-Ratio = Pod-Memory-Utilization-Ratio / (Total-Utilization-Ratio – Instance-Unused-Memory). Set to 0 if Instance-Unused-Memory = 0`

`= 0.204/ (1-0.102) = 0.227`


**Table 3: Compute Utilization ratios**  

| Pod Name | Namespace | vcpu Utilization | vcpu Split Ratio | GPU Utilization | GPU Split Ratio | Memory Utilization | Memory Split Ratio | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Pod 1 | Namespace 1 | 0.242 | 0 | 0.125 | 0 | 0.205 | 0.227 | 
| Pod 2 | Namespace 2 | 0.277 | 0 | 0.375 | 0 | 0.287 | 0.318 | 
| Pod 3 | Namespace 1 | 0.242 | 0 | 0.25 | 0 | 0.205 | 0.227 | 
| Pod 4 | Namespace 2 | 0.242 | 0 | 0.25 | 0 | 0.205 | 0.227 | 
| Unused | Unused | 0 |  |  |  | 0.098 |  | 
|  |  | 1 | 0 | 1 | 0 | 1 | 1 | 

## Step 4: Compute the split cost and unused costs


Split Cost  
The pay per use cost allocation of the EC2 Instance cost based on allocated CPU and memory usage by the Kubernetes Pods

Unused Instance Cost  
The cost of unused CPU or memory resources on the instance

`Pod1-Split-Cost = (Pod1-GPU-Utilization-Ratio * GPU-Available * Cost per GPU-Hour) + (Pod1-vcpu-Utilization-Ratio * vcpu-Available * Cost per vcpu-Hour) + (Pod1-Memory-Utilization-Ratio * Memory-Available * Cost per GB-Hour)`

`= (.125*8gpu*$0.504) + (0.242 * 64 vcpu * $0.05) + (0.204 * 488GB * $0.00506) = 0.504+ 0.774 + 0.503 = $1.85`

`Pod1-Unused-Cost = (GPU-Split-Ratio * Unused-Cost) + (vcpu-Split-Ratio * Unused-Cost) + (Memory-Split-Ratio * Unused-Cost)`

`= (0*0*8*$0.504) + (0 * $0.05) + (0.227 *.102*488GB*$.00506) = $0.06`

`Pod1-Total-Split-Cost = Pod1-Split-Cost + Pod1-Unused-Cost = $1.85 + $0.06 = $1.91`

[Note: Unused cost = Unused util ratio \$1 Total resource \$1 resource hourly cost]


**Table 4 - Summary of the Split and Unused costs calculated each hour for all Pods running within the cluster**  

| Pod Name | Namespace | Split Cost | Unused Cost | Total Cost | 
| --- | --- | --- | --- | --- | 
| Pod 1 | Namespace 1 | \$11.85 | \$10.06 | \$11.91 | 
| Pod 2 | Namespace 2 | \$13.18 | \$10.09 | \$13.26 | 
| Pod 3 | Namespace 1 | \$12.35 | \$10.06 | \$12.41 | 
| Pod 4 | Namespace 2 | \$12.35 | \$10.06 | \$12.41 | 
| Total |  |  |  | \$110 | 

# Using Kubernetes labels for cost allocation in EKS


Split cost allocation data supports Kubernetes labels as cost allocation tags for Amazon EKS clusters. While these labels are automatically imported as user-defined cost allocation tags, they require activation at the management account level. Once activated, you can use them to attribute pod-level costs in your Cost and Usage Reports (CUR) using custom attributes such as cost center, application, business unit, and environment.

This feature helps organizations accurately track and allocate costs in shared EKS environments across teams, projects, or departments. Using Kubernetes labels, you can allocate your Kubernetes costs based on your specific business requirements and organizational design.

## Prerequisites


As prerequisites for using Kubernetes labels with split cost allocation data:
+ You need to enable split cost allocation data in the AWS Billing and Cost Management console. This must be enabled at the management account level. For details, see [Enabling split cost allocation data](https://docs.aws.amazon.com/cur/latest/userguide/enabling-split-cost-allocation-data.html).
+ You need an EKS cluster for which you want to track split cost allocation data. This can be an existing cluster, or you can create a new one. For more information, see [Create an Amazon EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) in the *Amazon EKS User Guide*.
+ You must have labels assigned to your pods in the EKS cluster. For more information on how to create labels in Kubernetes, see [Labels and Selectors](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) in the *Kubernetes Documentation*.

## Working with Kubernetes labels in EKS


Split cost allocation data supports up to 50 Kubernetes labels per pod, which are sorted alphabetically before being imported as cost allocation tags. Any labels beyond the first 50 are automatically discarded. If you need to add a new cost allocation tag after reaching the 50-label limit, you must first remove an existing label and ensure your new label falls within the first 50 when alphabetically sorted.

**Note**  
Some AWS managed services automatically add labels to EKS pods. These labels count toward the 50-label limit per pod and will appear on your cost allocation tags page.  
While Kubernetes labels have no size restrictions, cost allocation tags have specific character limits: 128 characters for tag keys and 256 characters for tag values. Labels that exceed these character limits will be discarded and not presented as cost allocation tags. It's recommended to create labels that follow these character limits for cost allocation purposes.

The imported Kubernetes labels appear as cost allocation tags and must be activated at the payer account level. For more information on cost allocation tags and activation, see [Using user-defined cost allocation tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html). The following cost allocation tag limits apply: 50 user-defined tags per resource and 500 user-defined tags per payer account. System-generated tags do not count toward these limits.

**Note**  
After you create and apply user-defined tags to your resources, it can take up to 24 hours for the tag keys to appear on your cost allocation tags page. Once you activate the tags, it can take an additional 24 hours for them to become active.

## Managing Kubernetes labels and cost allocation tags


You can add, delete, and edit Kubernetes labels in EKS, as well as deactivate the associated cost allocation tags. The following describes the expected behavior for each action.

**Adding a new label**

You can add a new Kubernetes label to a pod. If the label limit of 50 has not been reached, the new label will be imported and offered as a cost allocation tag, which can then be activated. However, if the limit of 50 has been reached, the new label will not be imported even if it falls within the alphabetical sort order of first 50 labels. You must first deactivate an existing cost allocation tag to import a new label.

**Editing a label**

Kubernetes does not allow you to edit a label key. To change a label key, you must remove it and add a new label. However, you can edit label values, which will be reflected in your next CUR.

**Deleting a label**

You can remove a label from EKS pods. Note that removing a label does not automatically deactivate its associated cost allocation tag. Split cost allocation data will continue to populate in CUR until you explicitly deactivate the cost allocation tag.

**Deactivating a cost allocation tag**

You can deactivate any cost allocation tag created from Kubernetes labels. Once deactivated, data will no longer populate in the respective columns, and the column will be deleted from the next month’s CUR.

## Best practices for managing Kubernetes labels for cost allocation


Kubernetes labels provide significant flexibility in shared cost allocation modeling. To maximize the potential of this capability, we recommend following these best practices to optimize your cost management approach.

**Understanding label limits**

The 50-label-per-pod limit is based on alphabetical sorting. Only the first 50 alphabetically ordered labels will be imported for cost allocation. To ensure critical labels are included, carefully plan your label naming to ensure important labels appear within the first 50 when alphabetically sorted.

**Following character constraints**

AWS cost allocation tags have the following character limits:
+ Tag keys: 128 characters
+ Tag values: 256 characters

While Kubernetes allows longer labels, any labels exceeding these limits will not be imported. Design your labels within these limits to ensure successful cost allocation tracking.

**Adding new labels when at capacity**

When a pod has reached the 50-label limit and you need to add a new cost allocation label, follow these steps:

1. Review existing labels and identify a cost allocation tag to deactivate.

1. Deactivate the selected tag.

1. Add the new cost allocation label.

1. Verify the new label falls within the first 50 alphabetically sorted labels.

**Note**  
Remember that only the first 50 alphabetically sorted labels are used for cost allocation.

# Using split cost allocation data with Amazon Managed Service for Prometheus


Splitting the cost data for Amazon EKS requires that you collect and store metrics from your clusters, including memory and CPU usage. Amazon Managed Service for Prometheus can be used for this purpose.

Once you're opted in to split cost allocation data and your Amazon Managed Service for Prometheus workspace starts receiving the two required metrics (`container_cpu_usage_seconds_total` and `container_memory_working_set_bytes`), split cost allocation data recognizes the metrics and uses them automatically.

**Note**  
The two required metrics (`container_cpu_usage_seconds_total` and `container_memory_working_set_bytes`) are present in the default Prometheus scrape configuration and the default configuration provided with an AWS managed collector. However, if you customize these configurations, do not relabel, modify, or remove the following labels from the `container_cpu_usage_seconds_total` and `container_memory_working_set_bytes` metrics: `name`, `namespace`, and `pod`. If you relabel, modify, or remove these labels, it can impact the ingestion of your metrics.

You can use Amazon Managed Service for Prometheus to collect EKS metrics from a single usage account, in a single Region. The Amazon Managed Service for Prometheus workspace must be in that account and Region. You need one Amazon Managed Service for Prometheus instance for each usage account and Region for which you want to monitor the costs. You can collect metrics for multiple clusters in the Amazon Managed Service for Prometheus workspace, as long as they're in the same usage account and Region.

The following sections describe how to send the correct metrics from your EKS cluster to the Amazon Managed Service for Prometheus workspace.

## Prerequisites


As prerequisites for using Amazon Managed Service for Prometheus with split cost allocation data:
+ You need to enable split cost allocation data in the AWS Billing and Cost Management console. For details, see [Enabling split cost allocation data](https://docs.aws.amazon.com/cur/latest/userguide/enabling-split-cost-allocation-data.html). Opting in to split cost allocation data creates a service-linked role in each usage account to query Amazon Managed Service for Prometheus for the Amazon EKS cluster metrics in that account. For more information, see [Service-linked roles for split cost allocation data](https://docs.aws.amazon.com/cost-management/latest/userguide/split-cost-allocation-data-SLR.html).
+ You need an EKS cluster for which you want to track split cost allocation data. This can be an existing cluster, or you can create a new one. For more information, see [Create an Amazon EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) in the *Amazon EKS User Guide*.
**Note**  
You will need the `EKS cluster ARN`, `security group IDs`, and at least two `subnet IDs` (in different availability zones) for use in later steps.  
(optional) Set your EKS cluster’s authentication mode to either `API` or `API_AND_CONFIG_MAP`.
+ You need an Amazon Managed Service for Prometheus instance in the same account and Region as your EKS cluster. If you do not already have one, you can create one. For more information on creating an Amazon Managed Service for Prometheus instance, see [Create a workspace](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) in the *Amazon Managed Service for Prometheus User Guide*.
**Note**  
You will need the `Amazon Managed Service for Prometheus workspace ARN` for use in later steps.

## Forwarding EKS metrics to Amazon Managed Service for Prometheus


Once you have an EKS cluster and an Amazon Managed Service for Prometheus instance, you can forward the metrics from the cluster to the instance. You can send metrics in two ways.
+ [Option 1: Use an AWS managed collector.](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data-resource-amp.html#use-managed-collector) This is the simplest way to send metrics from an EKS cluster to Amazon Managed Service for Prometheus. However, it does have a limit of only scraping metrics every 30 seconds at most.
+ [Option 2: Create your own Prometheus agent.](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data-resource-amp.html#create-prometheus-agent) In this case, you have more control over the scraping configuration, but you must manage the agent after creating it.

### Option 1: Using an AWS managed collector


Using an AWS managed collector (a *scraper*) is the simplest way to send metrics from an EKS cluster to an Amazon Managed Service for Prometheus instance. The following procedure steps you through creating an AWS managed collector. For more detailed information, see [AWS managed collectors](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector.html) in the *Amazon Managed Service for Prometheus User Guide*.

**Note**  
AWS managed collectors have a minimum scrape interval of 30 seconds. If you have short-lived pods, the recommendation is to set your scraper interval to 15 seconds. To use a 15 second scraper interval, use option 2 to [create your own Prometheus agent](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data-resource-amp.html#create-prometheus-agent).

There are three steps to create an AWS managed collector:

1. Create a scraper configuration.

1. Create the scraper.

1. Configure your EKS cluster to allow the scraper to access metrics.

*Step 1: Create a scraper configuration*

In order to create a scraper, you must have a scraper configuration. You can use a default configuration, or create your own. The following are three ways to get a scraper configuration:
+ Get the default configuration using the AWS CLI, by calling:

  ```
  aws amp get-default-scraper-configuration
  ```
+ Create your own configuration. For details, see the [Scraper configuration](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration) instructions in the *Amazon Managed Service for Prometheus User Guide*.
+ Copy the sample configuration provided in that same [Scraper configuration](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration) instructions in the *Amazon Managed Service for Prometheus User Guide*.

You can edit the scraper configuration, to modify the scrape interval or to filter the metrics that are scraped, for example.

To filter the metrics that are scraped to just include the two that are needed for split cost allocation data, use the following scraper configuration:

```
global:
   scrape_interval: 30s
   #external_labels:
     #clusterArn: <REPLACE_ME>
scrape_configs:
  - job_name: kubernetes-nodes-cadvisor
    scrape_interval: 30s
    scrape_timeout: 10s
    scheme: https
    authorization:
      type: Bearer
      credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - regex: (.+)
      replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
      source_labels:
      - __meta_kubernetes_node_name
      target_label: __metrics_path__
    - replacement: kubernetes.default.svc:443
      target_label: __address__
    metric_relabel_configs:
    - source_labels: [__name__]
      regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes'
      action: keep
```

Once you have the scraper configuration, you must base64 encode it for use in *step 2*. The configuration is a text YAML file. To encode the file, use a website such as [https://www.base64encode.org/](https://www.base64encode.org/).

*Step 2: Create the scraper*

Now that you have a configuration file, you need to create your scraper. Create a scraper using the following AWS CLI command, based on the variables outlined in the prerequisites section. You must use information from your EKS cluster for the *<EKS-CLUSTER-ARN>*, *<SG-SECURITY-GROUP-ID>*, and *<SUBNET-ID>* fields, replace *<BASE64-CONFIGURATION-BLOB>* with the scraper configuration you created in the previous step, and replace *<AMP\$1WORKSPACE\$1ARN>* with your Amazon Managed Service for Prometheus workspace ARN.

```
aws amp create-scraper \ 
--source eksConfiguration="{clusterArn=<EKS-CLUSTER-ARN>,securityGroupIds=[<SG-SECURITY-GROUP-ID>],subnetIds=[<SUBNET-ID>]}" \ 
--scrape-configuration configurationBlob=<BASE64-CONFIGURATION-BLOB> \ 
--destination ampConfiguration={workspaceArn="<AMP_WORKSPACE_ARN>"}
```

Note down the `scraperId` that is returned for use in *step 3*.

*Step 3: Configure your EKS cluster to allow the scraper to access metrics*

If your EKS cluster’s authentication mode is set to either `API` or `API_AND_CONFIG_MAP`, then your scraper will automatically have the correct in-cluster access policy, and the scrapers will have access to your cluster. No further configuration is required, and metrics should be flowing to Amazon Managed Service for Prometheus.

If your EKS cluster’s authentication mode is not set to `API` or `API_AND_CONFIG_MAP`, you will need to manually configure the cluster to allow the scraper to access your metrics through a ClusterRole and ClusterRoleBinding. To learn how to enable these permissions, see [Manually configuring an EKS cluster for scraper access](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-eks-setup) in the *Amazon Managed Service for Prometheus User Guide*.

Once the scraper is active, verify that both metrics (`container_cpu_usage_seconds_total` and `container_memory_working_set_bytes`) are being pushed to your Amazon Managed Service for Prometheus workspace.

```
awscurl --service="aps" --region="<REGION>" "https://aps-workspaces.<REGION>.amazonaws.com/workspaces/<WorkSpace_ID>/api/v1/label/__name__/values"
```

Output:

```
{
"status": "success",
"data": [
"container_cpu_usage_seconds_total",
"container_memory_working_set_bytes",
"scrape_duration_seconds",
"scrape_samples_post_metric_relabeling",
"scrape_samples_scraped",
"scrape_series_added",
"up"
]
}
```

### Option 2: Creating your own Prometheus agent


If you can’t use the AWS managed collector, or already have your own Prometheus server, you can use your own Prometheus instance as an agent to scrape metrics from your EKS cluster and send them to Amazon Managed Service for Prometheus.

For detailed instructions on how to use your own Prometheus instance as an agent, see [Using a Prometheus instance as a collector](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-ingest-with-prometheus.html) in the *Amazon Managed Service for Prometheus User Guide*.

The following is a sample Prometheus scrape configuration that includes the Prometheus server scrape interval and the container metrics required for split cost allocation data. If you have short-lived pods, the recommendation is to lower the default Prometheus server scrape interval from 30 seconds to 15 seconds. Note that this can result in high Prometheus server memory usage.

```
global:
   scrape_interval: 30s
   #external_labels:
     #clusterArn: <REPLACE_ME>
scrape_configs:
  - job_name: kubernetes-nodes-cadvisor
    scrape_interval: 30s
    scrape_timeout: 10s
    scheme: https
    authorization:
      type: Bearer
      credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - regex: (.+)
      replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
      source_labels:
      - __meta_kubernetes_node_name
      target_label: __metrics_path__
    - replacement: kubernetes.default.svc:443
      target_label: __address__
    metric_relabel_configs:
    - source_labels: [__name__]
      regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes'
      action: keep
```

If you followed [Set up ingestion from a new Prometheus server using Helm](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-ingest-metrics-new-Prometheus.html) in the in the *Amazon Managed Service for Prometheus User Guide*, then you can update your scrape configuration.

**To update your scrape configuration**

1. Edit `my_prometheus_values_yaml` from the guide and include the sample scrape config in the `server` block.

1. Run the following command, using `prometheus-chart-name` and `prometheus-namespace` from the *Amazon Managed Service for Prometheus User Guide*.

```
helm upgrade prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace -f my_prometheus_values_yaml
```

To learn more about `scrape_interval`or how to use a non-global scrape\$1interval, refer to [Prometheus scrape configuration](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config).

Alternatively, you can use the AWS Distro for OpenTelemetry collector that has a Prometheus Receiver, a Prometheus Remote Write Exporter, and the AWS Sigv4 Authentication Extension to achieve remote write access to Amazon Managed Service for Prometheus.

**Note**  
Once you have set up your Prometheus agent, unlike AWS managed collectors, you are responsible for keeping the agent up to date and running to collect metrics.

## Estimating your Amazon Managed Service for Prometheus costs


You can use AWS Pricing Calculator to estimate the cost of using Amazon Managed Service for Prometheus for split cost allocation data.

**To configure Amazon Managed Service for Prometheus for your estimate**

1. Open AWS Pricing Calculator at [https://calculator.aws/\$1/](https://calculator.aws/#/).

1. Choose **Create estimate**.

1. On the **Add service** page, enter **Amazon Managed Service for Prometheus** in the search field, and then choose **Configure**.

1. In the **Description** field, enter a description for your estimate.

1. Choose a **Region**.

1. Select **Calculate the cost using your infrastructure details**. This option allows you to estimate your ingestion, storage, and query sample costs based on your current or proposed infrastructure setup.

1. For **Number of EC2 instances**, enter the total number of EC2 instances across all your clusters for your entire consolidated billing family (including all accounts and Regions). If you use AWS Fargate, use the number of Fargate tasks as a proxy for your EC2 instance count.

1. Split cost allocation data requires two metrics: `container_cpu_usage_seconds_total` and `container_memory_working_set_bytes`. For **Prometheus metrics per EC2 instances**, enter 2.

1. Split cost allocation data suggests a scrape interval of 15 seconds. For **Metric collection interval (in seconds)**, enter 15. If you used a different interval (for example, 30 seconds), change this to the interval you set up.

1. Split cost allocation data does not impose any specific requirements for the other parameters so enter appropriate values for the rest of the input parameters as per your business requirements.

1. Choose **Save and add service**.

# Using split cost allocation data with Amazon CloudWatch Container Insights


Splitting the cost data for Amazon EKS requires that you collect and store metrics from your clusters, including memory and CPU usage. Amazon CloudWatch Container Insights can be used for this purpose.

Once you've opted in to split cost allocation data and set up the CloudWatch agent with EKS observability add-on on your EKS cluster, split cost allocation data starts receiving the two required metrics `(pod_cpu_usage_total` and `pod_memory_working_set`) in the `ContainerInsights` namespace and uses them automatically. To view the full set of container metrics for EKS, see [Amazon EKS and Kubernetes Container Insights metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html) in the *Amazon CloudWatch User Guide*.

The following sections describe how to send the correct metrics from your EKS cluster to split cost allocation data.

## Prerequisites


As prerequisites for using Amazon CloudWatch Container Insights with split cost allocation data:
+ You need to enable split cost allocation data in the AWS Billing and Cost Management console. For details, see [Enabling split cost allocation data](https://docs.aws.amazon.com/cur/latest/userguide/enabling-split-cost-allocation-data.html).
+ You need an EKS cluster for which you want to track split cost allocation data. This can be an existing cluster, or you can create a new one. For more information, see [Create an Amazon EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) in the *Amazon EKS User Guide*.

## Setting up Amazon CloudWatch Container Insights to forward EKS metrics


You need to set up and configure the CloudWatch agent in order to forward EKS metrics. You can use either the [Amazon CloudWatch Observability EKS add-on or the Amazon CloudWatch Observability Helm chart](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html) to install the CloudWatch agent and the Fluent-bit agent on an EKS cluster. For more information on how to install and set up the CloudWatch agent, see [Install the Amazon CloudWatch Observability EKS add-on](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html) in the *Amazon CloudWatch User Guide*.

The following are the minimum versions required for the CloudWatch agent and EKS add-on:
+ CloudWatch agent version: v1.300045.0
+ CloudWatch Observability EKS add-on version: v2.0.1-eksbuild.1

## Estimating your Amazon CloudWatch costs


Enabling the feature to use Amazon CloudWatch Container Insights with split cost allocation data adds two new metrics to Amazon CloudWatch Container Insights: `pod_cpu_usage_total` and `pod_memory_working_set`. For details on these metrics, see [Amazon EKS and Kubernetes Container Insights metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html) in the *Amazon CloudWatch User Guide*.

**To understand the costs associated with the feature**

1. Open Amazon CloudWatch Pricing at [https://aws.amazon.com/cloudwatch/pricing/](https://aws.amazon.com/cloudwatch/pricing/).

1. Navigate to the **Paid tier** section.

1. Choose the **Container Insights** tab.

1. For a detailed calculation of the costs, navigate to the **Pricing examples** section, and refer to **Example 13 - Container Insights for Amazon EKS and Kubernetes**.

# Understanding legacy billing reports


This section describes legacy billing reports offered outside of AWS Data Exports and AWS Cost and Usage Reports. These pages are available for reference. But, we recommend you use AWS Data Exports because these reporting methods will be unavailable at a later date.

**Topics**
+ [

# Using Detailed Billing Reports
](detailed-billing.md)
+ [

# Migrating from Detailed Billing Reports to Cost and Usage Reports
](detailed-billing-migrate.md)
+ [

# Understanding unused reservation costs
](unused-reservation-costs.md)
+ [

# Downloading a monthly report
](monthly-report.md)
+ [

# Downloading a monthly cost allocation report
](monthly-cost-allocation.md)
+ [

# Downloading an AWS Usage Report
](usage-report.md)

# Using Detailed Billing Reports
Detailed Billing Reports

**Important**  
The Detailed Billing Reports feature is unavailable for new customers as of July 8, 2019.

Detailed Billing Reports (DBR) contain similar information to AWS Cost and Usage Reports (AWS CUR) regarding your charges, but calculates the individual line items differently. If you've signed up for both the DBR and AWS CUR, the line items don't match. However, when the reports are finalized at the end of the month, the total cost will align.

AWS stores DBR in Amazon S3 as CSV files using the following naming convention:

```
AWS account number-aws-billing-detailed-line-items-yyyy-mm.csv.zip
```

AWS recreates Detailed Billing Reports (DBR) multiple times a day, overwriting the reports. When AWS overwrites reports, line items might be in a different order than they were in previous reports. A final report is created at the end of the month. For the next month, AWS creates a new report file instead of overwriting the final report from the previous month. Reports for previous months remain in your S3 bucket until you delete them.

For information on how to migrate your DBR to AWS CUR, see [Migrating from Detailed Billing Reports to Cost and Usage Reports](detailed-billing-migrate.md).

# Migrating from Detailed Billing Reports to Cost and Usage Reports
Migrating From DBR to AWS CUR

Detailed Billing Reports (DBR) and AWS Cost and Usage Reports (AWS CUR) both provide information about your charges. However, if you're using DBR, we recommend you transfer your report to Cost and Usage Reports.

**Topics**
+ [

## Comparing benefits of the Cost and Usage Reports (AWS CUR)
](#migrate-benefit-cur)
+ [

## Key differences between Detailed Billing Reports and Cost and Usage Reports
](#migrate-key)
+ [

## Reporting on advanced charge types
](#reporting-advanced-chargetype)

## Comparing benefits of the Cost and Usage Reports (AWS CUR)


AWS CUR provides the most comprehensive source of information. You can use AWS CUR to understand individual costs in depth, and to analyze them in greater detail. This is especially useful at an enterprise scale. AWS CUR is helpful if you have complex cost management needs and require dedicated query or analytic-based systems. AWS CUR also provides detailed information about Reserved Instances (RI), including amortized costs.

### Comprehensive reservation information


Reserved Instances (RI), or reservations, offer a discounted hourly rate compared to On-Demand usage in exchange for committing to a one- or three-year term of service. This can result in significant savings. You can use AWS CUR to monitor and manage your reservation portfolio. AWS CUR provides you with detailed information, such as reservation Amazon Resource Numbers (ARNs), numbers of reservations, and total RIs. You can track your reservation-related discounts to specific resources to build a better understanding of your savings.

Detail Billing Reports (DBR) provide a subset of this metadata, but work is required to transform the required columns.

AWS CUR provides additional columns that are not available in DBR, such as information regarding your amortized reservation costs. For more information, see [Understanding your amortized reservation data](amortized-reservation.md).

### On-Demand pricing availability


AWS CUR provides information regarding the On-Demand rates for each individual line item of usage. You can use this information to quantify your savings by subtracting the amount you paid from the On-Demand rate. This also gives you the flexibility of choosing to allocate your costs using public On-Demand rates.

DBR doesn’t contain information for On-Demand rates, but only the billed amount. This makes it difficult to calculate your overall savings or to allocate costs using On-Demand rates.

### Granular breakdown of discounts


AWS CUR can access a granular view of the usage-based discounts. If discounts were applied, you can use AWS CUR to view the following:
+ Cost before being discounted
+ Discounted amount
+ Total cost after the discount was applied at the line item level

DBR does not contain a granular breakdown of your discounts.

### Automated data ingestion at scale


When you use AWS CUR, you can easily configure an event to trigger an automated data ingestion process, streamlining the process of refreshing the billing data in your in-house systems. AWS CUR data can automatically be refreshed when charges related to previous months are detected.

Additionally, AWS CUR is generated as multiple files, providing the added benefit of segmenting the data into smaller pieces. This way, you can ingest the data according to the processes used by multiple workers. Moreover, you can retry data downloads in smaller pieces.

AWS CUR is formatted in a way that enables you to locate and extract data quickly. This report is modeled from a manifest file that contains information for the overall structure of the data. This includes a list of every column that's contained in the report. Using this information, you can extend the report and include new information regarding your usage when it becomes available.

### Cross-product integration


AWS CUR is integrated with Amazon Redshift, Quick, and Amazon Athena. You can use AWS CUR to build an AWS-based cost management solution. AWS CUR also provides data in Parquet format. This provides you with more options for building out your own cost and usage reporting system. For more information, see [AWS Cost and Usage Reports Manifest Files](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-reports-costusage-files.html#manifests) in the *AWS Billing User Guide*.

## Key differences between Detailed Billing Reports and Cost and Usage Reports


There are a few differences between DBR and AWS CUR to consider after you migrate to AWS CUR. For example, you might need to adjust how you ingest the data into your systems.

### File structure


Detailed Billing Reports (DBR) are delivered as a single file. In contrast, AWS CUR are a consolidated set of files. In AWS CUR, you can view the following files in your Amazon S3 bucket:
+ A set of data files that contain all of your usage line items
+ A separate data file that contains all of your discounts (if applicable)
+ A manifest file that lists all of the data files that belong to a single report

### Column structure


DBR have a fixed list of columns, limiting its flexibility. AWS CUR don't have a fixed column structure, and instead allow you to freely add or remove columns as needed. When you begin using a new AWS service, AWS CUR can dynamically start to include new data in the report that might be useful in your case. The manifest file provides a map of all columns present in the report.


**Equivalent Column Names for DBR and AWS CUR**  

| DBR column name | AWS CUR column name | 
| --- | --- | 
| InvoiceId | bill/InvoiceId | 
| PayerAccountId | bill/PayerAccountId | 
| LinkedAccountId | lineItem/UsageAccountId | 
| ProductName | product/ProductName | 
| SubscriptionId | reservation/subscriptionid | 
| UsageType | lineItem/UsageType | 
| Operation | lineItem/Operation | 
| AvailabilityZone | lineItem/AvailabilityZone | 
| ReservedInstance | Not Supported | 
| ItemDescription | lineItem/LineItemDescription | 
| UsageStartDate | lineItem/UsageStartDate | 
| UsageEndDate | lineItem/UsageEndDate | 
| UsageQuantity | lineItem/UsageAmount | 
| BlendedRate | lineItem/BlendedRate | 
| BlendedCost | lineItem/BlendedCost | 
| UnBlendedRate | lineItem/UnblendedRate | 
| UnBlendedCost | lineItem/UnblendedCost | 
| ResourceId | lineItem/ResourceId | 
| RecordType | Not Supported | 
| PricingplanId | Not Supported | 
| RateID | pricing/RateId | 

**Note**  
There's no equivalent for RecordId in AWS CUR. But, you can gather this information by combining identity/LineItemId, identity/TimeInterval, and bill/BillType.


**Retrieving DBR RecordType values through AWS CUR**  

| RecordType values in DBR | Syntax to retrieve RecordType through AWS CUR | Use case | 
| --- | --- | --- | 
| LineItem | SELECT SUM(line\$1item\$1unblended\$1cost) FROM [CUR] WHERE line\$1item\$1line\$1item\$1type = 'Usage' | Usage line item partitions out usage costs from one-time charges (for example, upfront RI payment). | 
| InvoiceTotal | SELECT (bill\$1invoice\$1id), sum(line\$1item\$1unblended\$1cost) FROM [CUR] GROUP BY bill\$1invoice\$1id | You can use invoice total to reconcile your costs between Invoices and Cost and Usage Reports. | 
| AccountTotal | SELECT line\$1item\$1usage\$1account\$1id, sum(line\$1item\$1unblended\$1cost) FROM [CUR] GROUP BY line\$1item\$1usage\$1account\$1id  | You can use account total to isolate costs related to your member accounts for charge back purposes. | 
| StatementTotal | SELECT SUM(line\$1item\$1unblended\$1cost) FROM [CUR] | You can use statement total to understand your costs for the billing period. | 
| Discount | SELECT SUM(line\$1item\$1unblended\$1cost) FROM [CUR] WHERE line\$1item\$1line\$1item\$1type = 'Discount'  | You can use discount line items to identify all of your discount-related line items. | 
| Rounding | Not yet supported | Not yet supported | 

## Reporting on advanced charge types


### Refunds


AWS CUR: Refunds are identified by filtering for the `lineItem/LineItemDescription = ‘Refund’` string.

DBR: Refunds are identified by checking the ItemDescription column for the `‘Refund’` substring.

### Credits


AWS CUR: Credits are identified by filtering for the `lineItem/LineItemDescription = ‘Credit’` string.

DBR: Credits are identified by checking the ItemDescription column for the `‘Credit’` substring.

### Taxes


AWS CUR: Taxes are identified by filtering for the `lineItem/LineItemDescription = ‘Tax’` string.

DBR: Taxes are identified by checking the ItemDescription column for the `‘Tax’` substring.

### Identifying reservation-related upfront costs


AWS CUR: Reservation-related upfront costs are identified by filtering for the `"lineItem/LineItemType" = 'Fee'` string.

DBR: Reservation-related upfront costs are identified by checking the UsageType column for the `'HeavyUsage'` substring, and whether the `'SubscriptionId'` is null.

### Identifying reservation-related monthly fees


AWS CUR: Reservation-related monthly fees are identified by filtering for the `"lineItem/LineItemType" = 'RIfee'` string.

DBR: Reservation-related monthly fees are identified by checking the UsageType column for the `'HeavyUsage'` substring.

### Identifying instances that received reserved instance benefits


AWS CUR: Reservation-related upfront fees are identified by filtering for the `"lineItem/LineItemType" = 'DiscountedUsage'` string.

DBR: Reservation-related upfront fees are identified by checking the ReservedInstance column for the `'Y'` substring. 

# Understanding unused reservation costs


You can use AWS Cost and Usage Reports (AWS CUR) to understand unused RI costs. The following four scenarios show how.

**Note**  
In the following tables, the columns and rows from AWS CUR and DBR/DBR-RT are transposed for clarity. The values in the first column represent the headers of a report.

## Scenario 1: RI usage is 100%


RI Fee line item has \$10 unused cost and 0 usage hours.

Using the DBR/DBR-RT, you can understand your unused RI usage and costs by referring to the fields UsageQuantity and UnblendedCosts for RI Fee line items. RI Fee line items can be identified by the existence of ‘purchased hours’ information in the ItemDescription field. Table 1 illustrates the columns and information used to manage unused RI costs in the DBR and DBR-RT report.

**Table 1 – Unused RI costs for a 100% RI usage in DBR and DBR-RT before June 17, 2019**


|  |  |  | 
| --- |--- |--- |
| ProductName |  Amazon Elastic Compute Cloud  |  Amazon Elastic Compute Cloud  | 
| UsageType | HeavyUsage:c3.8xlarge | HeavyUsage:c3.8xlarge | 
| Operation | RunInstances | RunInstances | 
| Availability Zone | us-east-1a | us-east-1a | 
| Reserved Instance | Y | Y | 
| ItemDescription | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge (744 hours purchased, 744 hours used) | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | 
| Usage Quantity | 0 | 744 | 
| Unblended Rate | 0.1 | 0.1 | 
| Unblended Cost | 0 | 74.4 | 

Using AWS CUR, you can understand your unused RI usage and costs by referring to the fields ‘reservation/ UnusedQuantity’ and ‘reservation/ UnusedRecurringFee’ for RI Fee line items. Table 4 below illustrates the current columns and information utilized to manage unused RI costs in AWS CUR.

**Table 2 – Unused RI costs for a 100% RI usage in AWS CUR**


|  |  |  | 
| --- |--- |--- |
| lineitem/Productcode |  Amazon EC2  |  Amazon EC2  | 
| UsageType | HeavyUsage:c3.8xlarge | USW2-BoxUsage:c3.8xlarge | 
| lineitem/LineItemType | RI Fee | DiscountedUsage | 
| lineitem/LineItemDescription | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | USD 0.00 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | 
| lineitem/UsageAmount | 744 | 744 | 
| lineitem/NormalizedUsageAmount | 47,616 | 47,616 | 
| lineitem/UnblendedRate | 0.1 | 0 | 
| lineitem/UnblendedCost | 74.4 | 0 | 
| reservation/UnusedQuantity | 0 |  | 
| reservation/UnusedRecurringFee | 0 |  | 
| reservation/UnusedAmortizedUpfrontFeeForBillingPeriod | 0 |  | 
| reservation/RecurringFeeForUsage |  | 74.4 | 
| reservation/AmortizedUpfrontCostForUsage |  | 5 | 
| reservation/EffectiveCost |  | 79.4 | 

In addition to matching the current functionality supported by DBR/DBR-RT, AWS CUR has the following advantages:
+ Using AWS CUR, you are able to access information regarding the EffectiveCost for the DiscountedUsage line item, which includes both the recurring and upfront fees. The DBR only accounts for recurring fees.
+ In AWS CUR, the UsageType field is not transformed for the DiscountedUsage line items whereas DBR replaces the information with RI Fee line item information. This is because the user can group line items in AWS CUR by ReservationARN in order to understand what usage was discounted by which RI.
+ In AWS CUR, the LineItemDescription field is not transformed for the RI Fee line item. DBR appends the hours purchased and hours used.

## Scenario 2: Partial RI usage


RI Fee line item has unused cost and usage.

Using the DBR/DBR-RT, you can understand your unused RI usage and costs by referring to fields UsageQuantity and UnblendedCosts for RI Fee line items. Table 3 illustrates the columns and information used to manage unused RI costs in the DBR and DBR-RT report.

**Table 3 – Unused RI costs for a partial RI usage in DBR and DBR-RT before June 17, 2019**


|  |  |  | 
| --- |--- |--- |
| ProductName |  Amazon Elastic Compute Cloud  |  Amazon Elastic Compute Cloud  | 
| UsageType | HeavyUsage:c3.8xlarge | HeavyUsage:c3.8xlarge | 
| Operation | RunInstances | RunInstances | 
| Availability Zone | us-east-1a | us-east-1a | 
| Reserved Instance | Y | Y | 
| ItemDescription | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge (744 hours purchased, 644 hours used) | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | 
| Usage Quantity | 100 | 644 | 
| Unblended Rate | 0.1 | 0.1 | 
| Unblended Cost | 10 | 64.4 | 

Using AWS CUR, you can understand your unused RI usage and costs by referring to fields ‘reservation/ UnusedQuantity’ and ‘reservation/ UnusedRecurringFee’ for RI Fee line items. Table 4 illustrates the current columns and information utilized to manage unused RI costs in AWS CUR.

**Table 4 – Unused RI costs for a partial RI usage in AWS CUR**


|  |  |  | 
| --- |--- |--- |
| lineitem/Productcode |  Amazon EC2  |  Amazon EC2  | 
| UsageType | HeavyUsage:c3.8xlarge | USW2-BoxUsage:c3.8xlarge | 
| lineitem/LineItemType | RI Fee | DiscountedUsage | 
| lineitem/LineItemDescription | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | USD 0.00 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | 
| lineitem/UsageAmount | 744 | 644 | 
| lineitem/NormalizedUsageAmount | 47,616 | 47,216 | 
| lineitem/UnblendedRate | 0.1 | 0 | 
| lineitem/UnblendedCost | 74.4 | 0 | 
| reservation/UnusedQuantity | 100 |  | 
| reservation/UnusedRecurringFee | 0 |  | 
| reservation/UnusedAmortizedUpfrontFeeForBillingPeriod | 10 |  | 
| reservation/RecurringFeeForUsage |  | 64.4 | 
| reservation/AmortizedUpfrontCostForUsage |  | 5 | 
| reservation/EffectiveCost |  | 69.4 | 

In addition to matching the current functionality supported by DBR/DBR-RT, AWS CUR has the following advantages:
+ AWS CUR has a separate column representing UnusedQuantity for the RI Fee line item vs. DBR / DBR-RT which overloads the UsageQuantity column with the unused hours 

## Scenario 3: Capacity reservation


DBR/DBR-RT filters out Capacity Reservations related UnusedBox and UnusedDed usage type line items when covered by an RI because the RI Fee line item already covers the unused amount in the UsageQuantity and UnblendedCost fields. Table 5 illustrates the columns and information utilized to manage unused RI costs in the DBR and DBR-RT report.

**Table 5 – Unused RI costs for Capacity Reservation scenario in DBR and DBR-RT prior to June 17 2019**


|  |  |  | 
| --- |--- |--- |
| ProductName |  Amazon Elastic Compute Cloud  |  Amazon Elastic Compute Cloud  | 
| UsageType | HeavyUsage:c3.8xlarge | HeavyUsage:c3.8xlarge | 
| Operation | RunInstances | RunInstances | 
| Availability Zone | us-east-1a | us-east-1a | 
| Reserved Instance | Y | Y | 
| ItemDescription | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge (744 hours purchased, 734 hours used) | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | 
| Usage Quantity | 10 | 734 | 
| Unblended Rate | 0.1 | 0.1 | 
| Unblended Cost | 1 | 73.4 | 

AWS CUR shows these line items as DiscountedUsage. Table 6 illustrates the current columns and information utilized to manage unused RI costs in AWS CUR.

**Table 6 – Unused RI costs for the Capacity Reservation scenario in AWS CUR**


|  |  |  |  | 
| --- |--- |--- |--- |
| lineitem/Productcode |  Amazon EC2  |  Amazon EC2  | Amazon EC2 | 
| UsageType | HeavyUsage: c3.8xlarge | USW2-Reservation: c3.8xlarge | USW2-BoxUsage: c3.8xlarge | 
| lineitem/LineItemType | RI Fee | Usage | DiscountedUsage | 
| lineitem/LineItemDescription | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | USD 0.00 per Reservation Linux/UNIX (Amazon VPC), c3:8xlarge Instance Hour | USD 0.00 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | 
| lineitem/UsageAmount | 744 | 744 | 744 | 
| lineitem/NormalizedUsageAmount | 47,616 |  | 47,216 | 
| lineitem/UnblendedRate | 0.1 | 0 | 0 | 
| lineitem/UnblendedCost | 74.4 | 0 | 0 | 
| reservation/RecurringFeeForUsage |  |  | 64.4 | 
| reservation/AmortizedUpfrontCostForUsage |  |  | 5 | 
| reservation/EffectiveCost |  |  | 69.4 | 

## Scenario 4: Size flexible reservations


Utilizing the DBR/DBR-RT, you can understand your unused RI usage and costs by referring to fields UsageQuantity and UnblendedCosts for RI Fee line items. RI Fee line items can be identified by the existence of ‘purchased hours’ information in the ItemDescription field. Table 9 illustrates the columns and information utilized to manage unused RI costs in the DBR and DBR-RT report.

**Table 7 – Unused RI costs for a size flex RI scenario in DBR and DBR-RT before June 17, 2019**


|  |  |  | 
| --- |--- |--- |
| ProductName |  Amazon Elastic Compute Cloud  |  Amazon Elastic Compute Cloud  | 
| UsageType | HeavyUsage:c3.8xlarge | HeavyUsage:c3.8xlarge | 
| Operation | RunInstances | RunInstances | 
| Availability Zone | us-east-1a | us-east-1a | 
| Reserved Instance | Y | Y | 
| ItemDescription | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge (744 hours purchased, 644 hours used) | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge; UsageType: BoxUsage:c3.large | 
| Usage Quantity | 100 | 644 | 
| Unblended Rate | 0.1 | 0.1 | 
| Unblended Cost | 10 | 64.4 | 

Using AWS CUR, you can understand your unused RI usage and costs by referring to fields ‘reservation/ UnusedQuantity’ and ‘reservation/ UnusedRecurringFee’ for RI Fee line items. Table 8 illustrates the current columns and information utilized to manage unused RI costs in the AWS CUR.

**Table 8 – Unused RI costs for a size flex RI scenario in AWS CUR**


|  |  |  | 
| --- |--- |--- |
| lineitem/Productcode |  Amazon EC2  |  Amazon EC2  | 
| UsageType | HeavyUsage:c3.8xlarge | USW2-BoxUsage:c3.8xlarge | 
| lineitem/LineItemType | RI Fee | DiscountedUsage | 
| lineitem/LineItemDescription | USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge | USD 0.00 hourly fee per Linux/UNIX (Amazon VPC), c3:8large | 
| lineitem/UsageAmount | 744 | 644 | 
| lineitem/NormalizedUsageAmount | 47,616 | 2,576 | 
| lineitem/UnblendedRate | 0.1 | 0 | 
| lineitem/UnblendedCost | 74.4 | 0 | 
| reservation/UnusedQuantity | 100 |  | 
| reservation/UnusedRecurringFee | 70.37 |  | 
| reservation/UnusedAmortizedUpfrontFeeForBillingPeriod | 5.5 |  | 
| reservation/RecurringFeeForUsage |  | 4.03 | 
| reservation/AmortizedUpfrontCostForUsage |  | 0.5 | 
| reservation/EffectiveCost |  | 4.53 | 

In addition to matching the current functionality supported by DBR/DBR-RT, AWS CUR has the following advantages:
+ AWS CUR has the NormalizedUsageAmount and quantity. The DBR / DBR-RT do not have columns representing this.
+ AWS CUR UsageType and Operation are not transformed for the DiscountedUsage lineitem. The DBR / DBR-RT replaces these values with the RI Fee line item.
+ AWS CUR LineItemDescription is not transformed for the DiscountedUsage line item. In DBR / DBR-RT, which replaces with the RI Fee line item description and appends the DiscountedUsage line item Usage Type to the end of the string i.e. “USD 0.10 hourly fee per Linux/UNIX (Amazon VPC), c3:8xlarge; UsageType: BoxUsage:c3.large”

# Downloading a monthly report
Monthly report

You can download a monthly report of your estimated AWS charges from the **Bills** page of the Billing and Cost Management console.

Suppose that you use the consolidated billing feature in AWS Organizations. Then, this report is available only for a management account and includes activity for all the member accounts. Member account owners can obtain the monthly report only from the management account. For more information, see [Consolidated Billing for Organizations](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/consolidated-billing.html) in the *AWS Billing User Guide*.

The report contains line items for each unique combination of AWS product, usage type, and operation that the account uses. The estimated report is updated several times per day. You can get reports for previous months by selecting the statement period. Start with the report for the month when you signed up for monthly reports. Reports from before you signed up are not available.

# Downloading a monthly cost allocation report
Monthly cost allocation report

**Important**  
The monthly cost allocation report feature will be unavailable at a later date. We recommend that you use the AWS Cost and Usage Reports instead.

You can create custom cost allocation tag sets for your AWS resources that can describe the business dimensions of your AWS usage. You can use these tag sets to organize and track your AWS costs. Many AWS services expose tagging in their feature sets. You create the tags within those services by using the console, API, or the AWS command line interface (CLI). For more information, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the *AWS Billing User Guide*.

After you create your tags, you can obtain a monthly cost allocation report. This is essentially a monthly report that includes your cost allocation tag sets.

# Downloading an AWS Usage Report
AWS Usage Report

**Important**  
On September 15, 2023, the AWS Usage Report will no longer provide access to usage data older than March 1, 2019. To access such usage data, download historical usage and save it locally before September 15, 2023. The AWS Usage Report feature will be unavailable at a later date. We recommend that you use AWS Cost and Usage Reports instead.

You can download a usage report in XML or CSV format. Your report covers a single service, based on usage type, operation, and time period. You can also choose how the data is aggregated.

**To download a usage report**

1. Open the Billing and Cost Management console at [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/).

1. In the navigation pane, under **Legacy Pages**, choose **Cost and Usage Reports**.

1. Under the **AWS Usage Report** section, choose **Create a Usage Report**.

1. On the **Download usage report** page, under **Services**, choose the service that you want to view usage for.

1. Choose the **Usage type**.

1. Choose the **Operation**.

1. Choose the **Time period** for the report. If you choose **Custom date range**, you need to specify the **Date range** for the report manually.

1. Under **Report granularity**, choose **Hourly**, **Daily**, or **Monthly**.

1. Choose **Download**, and then choose **XML Report** or **CSV Report**.

**Note**  
If you download a large report, the content of the report might be truncated. Check the last row of the downloaded file for warnings or error messages. If the report is truncated, download smaller reports by choosing a shorter time period. Another option is to decrease the report granularity from hourly to daily or monthly.

# Troubleshooting Cost and Usage Reports
Troubleshooting

Use the following topics to help you troubleshoot common issues with Cost and Usage Reports.

**Topics**
+ [

## There are no report files in the Amazon S3 bucket
](#no-report-files)
+ [

## One of my report data partitions is empty
](#partition-empty)
+ [

## My Cost and Usage Report data doesn’t match the data in other Billing and Cost Management features
](#data-differences)
+ [

## I want to backfill data because I changed the settings of my report
](#backfill-data)
+ [

## My report file folder in Amazon S3 is in an unnamed folder
](#unnamed-folder)
+ [

## I can’t select the option to include resource IDs on my report
](#activate-resource-ids)
+ [

## My Cost and Usage Report queries for Amazon Athena don’t work on Amazon Redshift, or my Amazon Redshift queries don’t work on Amazon Athena
](#athena-redshift-queries)
+ [

## The columns included in my report have changed from a previous month
](#cur-columns-changed)
+ [

## The queries or tables based on my report don’t work because the columns in my report have changed
](#cur-columns-changed-solutions)
+ [

## I need help querying my report
](#cur-query-help)
+ [

## I can’t find the billing data for my Amazon EC2 Dedicated Host
](#cur-dedicated-hosts)
+ [

## I don’t understand the billing data for my Amazon EC2 Elastic IP addresses
](#cur-elastic-ips)
+ [

## I use consolidated billing and I don’t understand the difference between unblended and blended rates or costs
](#consolidated-billing-unblended-blended)
+ [

## Some line items in my report have a blended rate or blended cost of 0
](#blended-rate-zero)
+ [

## I don't understand how All Upfront Reserved Instances are amortized in my report
](#all-upfront-ri)

## There are no report files in the Amazon S3 bucket


Confirm that the Amazon S3 bucket policy grants the **billingreports.amazonaws.com** service permission to put files in the bucket. For more information on the required bucket policy, see [Setting up an Amazon S3 bucket for Cost and Usage Reports](cur-s3.md).

## One of my report data partitions is empty


If a report is larger than most applications can handle, then AWS splits the report into multiple files. A report update might have fewer individual file partitions than an earlier report version.

Review the report’s manifest file to find any empty files that you don’t need to ingest.

## My Cost and Usage Report data doesn’t match the data in other Billing and Cost Management features


Other Billing and Cost Management features (Cost Explorer, Detailed Billing Reports, Billing and Cost Management console) might present your costs differently for the following reasons:
+ The billing features round cost data in different ways.
+ The billing features might have different data refresh settings. For example, you can choose whether or not your Cost and Usage Report automatically refreshes a previously closed bill with any refunds, credits, or Support fees applied after the bill is finalized. Cost Explorer automatically reflects the same items. In this scenario, if you don’t activate the automatic refresh on your Cost and Usage Report, then the Cost and Usage Report data won’t match the Cost Explorer data.
+ The billing features can group charges differently. For example, the **Bills** page in the Billing and Cost Management console shows data transfer charges as a separate **Data Transfer** grouping within your **AWS Service Charges**. Meanwhile, Cost and Usage Reports and Cost Explorer show data transfer charges as a usage type for each service.

If after reviewing these reasons you still believe you're seeing discrepancies between your Cost and Usage Report and other Billing and Cost Management features, open a support case to request a review of your cost data. In your support case, make sure to provide the report name and the billing period that you would like reviewed. For more information on opening a case, see [Getting help with your exports and reports](billing-get-answers.md).

## I want to backfill data because I changed the settings of my report


Open a support case to request a backfill of your cost data. In your support case, make sure to provide the report name and the billing period that you want backfilled. For more information on opening a case, see [Getting help with your exports and reports](billing-get-answers.md).

Note that you can't get a backfill of cost data for the following scenarios:
+ You can't get a backfill for cost data from before the date that you created the account.
+ If you use AWS Organizations and the structure of your organization changed, such as which account is designated the management account, then you can't get a backfill of data with the previous organization structure.
+ If you use AWS Organizations and you change organizations, then you can't get a backfill of data from prior to joining your current organization.

## My report file folder in Amazon S3 is in an unnamed folder


Any **/** character in the **Report path prefix** of your report generates an unnamed folder in your Amazon S3 bucket. To remove the unnamed folder in your next report update, edit your report settings and remove the **/** character from the **Report path prefix**. For instructions, see [Editing your Cost and Usage Reports configuration](edit-cur.md). 

## I can’t select the option to include resource IDs on my report


When you create your report, you can select the option to **Include resource ID**. If you create your report with **Report versioning** set to **Overwrite existing report**, then you can’t modify your **Include resource ID** selection after you create your report. To include resource IDs, you must create a new report and select the **Include resource ID** option. 

## My Cost and Usage Report queries for Amazon Athena don’t work on Amazon Redshift, or my Amazon Redshift queries don’t work on Amazon Athena


Amazon Athena and Amazon Redshift databases format Cost and Usage Report columns differently. Amazon Athena adds an underscore between words in the column name (line\$1item\$1normalized\$1usage\$1amount). Amazon Redshift adds an underscore between the column type and the attribute (lineitem\$1normalizedusageamount). Make sure to modify your queries to match the column name format in Amazon Athena or Amazon Redshift.

## The columns included in my report have changed from a previous month


The columns that AWS includes in your report depend on your AWS usage. Every report includes columns with the **identity/**, **bill/**, and **lineItem/** prefixes:
+ identity/LineItemId
+ identity/TimeInterval
+ bill/InvoiceId
+ bill/BillingEntity
+ bill/BillType
+ bill/PayerAccountId
+ bill/BillingPeriodStartDate
+ bill/BillingPeriodEndDate
+ lineItem/UsageAccountId
+ lineItem/LineItemType
+ lineItem/UsageStartDate
+ lineItem/UsageEndDate
+ lineItem/ProductCode
+ lineItem/UsageType
+ lineItem/Operation
+ lineItem/AvailabilityZone
+ lineItem/ResourceId
+ lineItem/UsageAmount
+ lineItem/NormalizationFactor
+ lineItem/NormalizedUsageAmount
+ lineItem/CurrencyCode
+ lineItem/UnblendedRate
+ lineItem/UnblendedCost
+ lineItem/BlendedRate
+ lineItem/BlendedCost
+ lineItem/LineItemDescription
+ lineItem/TaxType
+ lineItem/LegalEntity

All other columns are included only if your monthly AWS usage generates data to populate those columns.

For example, your report includes **savingsPlan/** columns only if you used Savings Plans during that month.

## The queries or tables based on my report don’t work because the columns in my report have changed


The columns that AWS includes in your report depend on your AWS usage for the month. Because the columns included in your report can change, it’s a best practice to reference column names instead of column numbers in any custom queries or tables based on your report.

## I need help querying my report


For detailed information about querying your Cost and Usage Report, see [CUR Query Library Help](https://wellarchitectedlabs.com/cost/300_labs/300_cur_queries/query_help/) in the AWS Well-Architected Labs website.

## I can’t find the billing data for my Amazon EC2 Dedicated Host


In the **ResourceID** column, look for the Dedicated Host ID rather than the instance ID. Because Dedicated Hosts are metered by Dedicated Host running hours, your report shows Dedicated Host usage by metered hours associated with the host ID.

## I don’t understand the billing data for my Amazon EC2 Elastic IP addresses


Amazon EC2 Elastic IP addresses are metered in aggregate. This means that each line item in your report doesn’t correspond with an individual Elastic IP address. Each line item represents the total number of chargeable hours. You can have one Elastic IP address assigned to a running instance at no charge. You’re charged per hour on a pro-rata basis for each additional Elastic IP address that you assign to the instance. Additionally, AWS charges an hourly fee for unassigned Elastic IP addresses. 

## I use consolidated billing and I don’t understand the difference between unblended and blended rates or costs


With consolidated billing for AWS Organizations, unblended and blended rates or costs can help you understand how much an account's usage would cost for a standalone account versus a linked account in an organization. Some services offer pricing tiers that can lower unit costs as usage increases. Because AWS aggregates all usage for a service in an organization, individual accounts might access lower-priced tiers sooner when their usage is aggregated in an organization's monthly usage.

Unblended rates are the rates associated with an individual account's service usage. For a line item, the unblended cost is usage multiplied by the unblended rate. The unblended cost would be the cost of the account's usage if it were a standalone account. Blended rates are the rates associated with total usage in an organization averaged across accounts. For a line item, the blended cost is usage multiplied by the blended rate. The blended cost is the cost attributed to the account's usage as a linked account in an organization.

For more information and examples of calculating unblended and blended costs, see [Understanding Consolidated Bills](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/con-bill-blended-rates.html) in the *AWS Billing User Guide*

## Some line items in my report have a blended rate or blended cost of 0


Amazon EC2 line items with a Reserved Instance discount have an blended rate of zero. For these line items, the **LineItemType** is **Discounted Usage**.

The blended cost is the usage multiplied by the blended rate. If the value for blended rate or usage is zero, then the blended cost is also zero. 

## I don't understand how All Upfront Reserved Instances are amortized in my report


Because All Upfront Reserved Instances are paid in full upfront, the amortized costs are reflected in your report as the upfront payment divided over the associated time period (one year or three years). 

**reservation/AmortizedUpfrontCostForUsage** and **reservation/EffectiveCost** are the same rate for All Upfront Reserved Instances. This is because both columns are an equal division of the upfront payment for the Reserved Instance over the total hours of its term.

It's expected that your report has **RIFee** line items populated for All Upfront Reserved Instances, even though the **RIFee** is \$10.00. These line items represent the recurring hourly costs for the month, and they have additional usage data in other columns. All Reserved Instances generate **RIFee** line items.

# Security in AWS Cost and Usage Reports
Security and permissions

Cloud security at AWS is the highest priority. As an AWS customer, you benefit from a data center and network architecture that is built to meet the requirements of the most security-sensitive organizations.

AWS Cost and Usage Reports is a feature in the AWS Billing and Cost Management console. For details about security considerations, see [Security in AWS Billing and Cost Management](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/security.html) in the *AWS Billing User Guide*.

For more information on access control and IAM permissions to use AWS CUR, see [Overview of Managing Access Permissions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/control-access-billing.html).

# Quotas and restrictions


The following table describes the current quotas and restrictions within AWS Cost and Usage Reports.

## Cost and Usage Reports



|  |  | 
| --- |--- |
| Number of Cost and Usage Reports | 10 per account | 
| Rates | Cost and Usage Reports are free of charge, but standard Amazon S3 rates apply. | 
| Number of Free Tier AWS Cost and Usage Reports | 10 | 