Detailed cost data
LevelFour can read your AWS Cost and Usage Report 2.0 (CUR), the most detailed billing data AWS produces. Turn it on and LevelFour breaks costs down to the individual resource, tag, and usage type, and shows amortized and net costs alongside unblended spend. LevelFour copies each day's report into its own storage and refreshes your cost views.
The step is optional and you do it once. Your account works without CUR because LevelFour falls back to Cost Explorer, but resource-level views and tag-based cost allocation are richer once CUR is on.
On Google Cloud the equivalent is Cloud Billing export.
Run this in your management (payer) account, in us-east-1. The Cost and Usage Report is an organization-wide artifact: one export in the payer account covers every member account, so you do not run it in linked accounts.
What gets created
The stack creates three resources in your account:
- An S3 bucket named
levelfour-cur-<your-account-id>that receives the export. It is SSE-S3 encrypted, has public access blocked, and expires objects after 120 days. - A bucket policy that lets the AWS Data Exports service write the report and lets LevelFour read it. AWS Data Exports cannot read or delete anything in the bucket, and LevelFour has read-only access.
- A CUR 2.0 data export (
AWS::BCMDataExports::Export) that delivers a daily Parquet file with all available columns and resource IDs.
The export itself is free. You pay only standard S3 storage for the bucket, which is typically a few dollars per month.
Turn on the export
Use the AWS Console path unless you manage this account as code.
Sign in to the AWS Console, then open the one-click stack link:
- Confirm you are in the management (payer) account and the region is us-east-1.
- Leave the parameters at their defaults.
- Acknowledge the capabilities prompt and click Create stack.
The stack finishes in under a minute. AWS then delivers the first report within about a day.
Deploy the same published template through an aws_cloudformation_stack resource, from the management account in us-east-1. This keeps a single source of truth (the LevelFour template) and records the export in your state.
resource "aws_cloudformation_stack" "levelfour_cur" {
name = "levelfour-cur"
template_url = "https://cf-templates-1bsphth8u70q9-us-east-1.s3.amazonaws.com/onboarding/v2/onboarding-levelfour-enable-cur.template.json"
}Apply it:
terraform init
terraform applyIf you would rather not wrap a CloudFormation stack, you can create the same resources natively with aws_s3_bucket, aws_s3_bucket_policy, and aws_bcmdataexports_export.
Confirming it worked
Open Connect Accounts, then AWS in the dashboard. The Detailed cost data panel summarizes which payer accounts are connected.
Within about a day of the first delivery, your management account shows as connected there, and resource-level breakdowns appear in your cost views.
If it stays disconnected after a day, confirm the stack was created in the management account in us-east-1, and that no Service Control Policy blocks bcm-data-exports:CreateExport or the bucket policy.
Next
- Automated Savings covers the
LevelFourSavingsExecrole, which is what lets LevelFour apply an approved change - Costs is how cost data comes back over the API, with breakdowns by service, account and time period
Multi-account
Onboard every AWS account in your organization at once, from the dashboard or by deploying one CloudFormation StackSet in the management account.
Automated Savings
Add the empty LevelFourSavingsExec role that Automated Savings needs, in an account onboarded before the role existed: AWS Console, Terraform, or an AWS Organization.