Enable detailed cost data (CUR 2.0)
LevelFour can read your AWS Cost and Usage Report 2.0 (CUR), the most detailed billing data AWS produces. Enabling it lets LevelFour break costs down to the individual resource, tag, and usage type, and show amortized and net costs alongside unblended spend.
This step is optional. Your account works without it (LevelFour falls back to Cost Explorer), but resource-level views and tag-based cost allocation are richer once CUR is on.
It is a one-time setup. Run it 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.
LevelFour copies each day's report into its own storage and refreshes your cost views. The export itself is free. You pay only standard S3 storage for the bucket, which is typically a few dollars per month.
Method A: AWS Console (recommended)
Sign in to the AWS Console as your management (payer) account, then open the one-click stack link:
- Confirm 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.
Method B: Terraform
If you manage your account with infrastructure as code, deploy the same published template through an aws_cloudformation_stack resource. 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 from the management account in us-east-1:
terraform init
terraform applyNative Terraform resources (alternative)
If 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. The wrapped-template approach above is simpler and stays in sync with LevelFour automatically, so prefer it unless your platform standards require native resources.
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.
Enable Automated Savings
Update your AWS CloudFormation to add the LevelFourSavingsExec role that Automated Savings needs. One-click AWS Console path, or Terraform and AWS Organizations for multi-account rollout.
GitHub
Install LevelFour as a GitHub App on your organization so we can read your Infrastructure-as-Code (Terraform, CloudFormation, AWS CDK, Pulumi, and Kubernetes manifests), open savings pull requests, and comment cost impact on the PRs your team opens.