AWS Cost Explorer is the part of the AWS console that shows what an account spends, on what, and how that spend moves, from one service's daily cost to a forecast of the next 18 months. The console is free. Two things are billed: the Cost Explorer API, per paginated request, and granular data, the hourly and resource-level detail, per usage record hosted. Both stay small until a script or a setting multiplies them. Their prices sit in one Region of the AWS Price List, US East (N. Virginia), so there is no Paris price to show. This article has two halves. The first is Cost Explorer itself: where its data comes from, how fresh and how deep it is, what unblended, amortized and blended cost mean, and what the tool charges. The second is how to reduce AWS costs with it: the practices AWS documents for cutting the rest of the bill, and the habits that keep Cost Explorer's own lines down. Four illustrative configurations price both, and the cost section opens with an index of the levers, in the order to work through them.
Cost Explorer's prices and AWS Budgets' have no Paris row: the AWS Price List carries Cost Explorer's three prices under US East (N. Virginia) only and Budgets' as global prices, and it follows that both apply wherever an account runs. Every other price in this article is an AWS list price for the EU (Paris) Region, in USD before tax, from the AWS Price List: Amazon Simple Storage Service (Amazon S3), Amazon Athena, Amazon Elastic Compute Cloud (Amazon EC2) with its Amazon Elastic Block Store (Amazon EBS) volumes and NAT gateways, Amazon Relational Database Service (Amazon RDS), and Compute Savings Plans. The offer files and their publication dates are listed in the Sources section, and each table repeats the dates of its own prices. Monthly amounts (730 hours, or a 30-day month for requests), totals and percentages are computed from these prices. Free tiers are left out.
What AWS Cost Explorer is
In AWS's words, "AWS Cost Explorer is a tool that enables you to view and analyze your costs and usage." The same page says what is free and what is not: "You can view your costs and usage using the Cost Explorer user interface free of charge. You can also access your data programmatically using the Cost Explorer API." Each paginated API request costs $0.01. One rule comes before the first click: "You can't disable Cost Explorer after you enable it."
The console opens on a dashboard, which Exploring your data describes in one sentence: "On the Cost Explorer dashboard, Cost Explorer shows your estimated costs for the month to date, your forecasted costs for the month, a graph of your daily costs, your five top cost trends, and a list of reports that you recently viewed." Every figure on it is a day behind: "All costs reflect your usage up to the previous day." From the dashboard, reports filter and group the same data by service, account, Region, usage type, tag and more, at monthly or daily granularity, and hourly for those who pay for it.
So is AWS Cost Explorer free? The console is, and two things are billed:
What AWS Cost Explorer charges for, and what it does not
| Feature | What it gives | Billed |
|---|---|---|
| The console | Reports, filters, grouping, forecasts, Cost Comparison | No: "free of charge" |
| The API, on the primary billing view | The same data, for scripts and dashboards | Per paginated request |
| The API, on a custom billing view | Several billing views combined into one | Per request, once for each source |
| Granular data | Hourly and resource-level data for the past 14 days | Per usage record hosted |
| Multi-year data | Up to 38 months at monthly granularity | No price on AWS's pages |
| Cost Anomaly Detection | Machine-learning alerts on unusual spend | No price on AWS's pages |
The prices are in How Cost Explorer pricing works. Cost Explorer is not a silo either. The Billing User Guide lists where its data shows: "Your Cost Explorer data appears in the following places", the Billing and Cost Management home page, the pages for Cost Explorer, Budgets and Cost Anomaly Detection, and the reports for coverage and usage. It follows that what organizes Cost Explorer organizes the other tools too: once created, Cost Categories "appear in Cost Explorer, AWS Budgets, AWS CUR, and Cost Anomaly Detection."
Four tools sit next to it: AWS Budgets warns and acts on thresholds, AWS Trusted Advisor runs a fixed list of checks, Cost Optimization Hub gathers recommendations, and AWS Compute Optimizer sizes resources from their metrics. Cost Explorer shows the spend; the toolbox section compares them.
How Cost Explorer works under the hood
AWS documents Cost Explorer through its data: where it comes from, how fresh, how deep and how fine it is, which cost it shows, and the reports built on it. Two of these, the API and granular data, set what Cost Explorer bills.
How often Cost Explorer updates, and where its data comes from
Cost Explorer reads the account's billing and usage data, at a pace the what-is page gives in two steps: "The current month's data is available for viewing in about 24 hours. The rest of your data takes a few days longer." Then comes the rule that sets the pace of every report:
Cost Explorer refreshes your cost data at least once every 24 hours. However, this depends on your upstream data from your billing applications, and some data might be updated later than 24 hours.
Two paths lead out of that data. Cost Explorer's own console and API are one. AWS Data Exports is the other: it "enables you to create exports of your billing and cost management data, such as cost and usage or cost optimization recommendations as well as carbon emissions data" (AWS Data Exports), delivered as files to an Amazon S3 bucket and queried there, with Amazon Athena for instance. The export this article uses is the AWS Cost & Usage Report (CUR), in its 2.0 version: "The CUR 2.0 table provides the same information as Cost and Usage Reports (CUR) along with some improvements" (Migrating to CUR 2.0). Granular data is an opt-in inside Cost Explorer itself:
- Your billing and usage data: Cost Explorer refreshes it at least once every 24 hours, and Data Exports refreshes an export each time it is updated.
- Cost Explorer's console is free; its API is $0.01 a paginated request on the primary billing view.
- Hourly or resource-level data is an opt-in inside Cost Explorer, priced at $0.01 per 1,000 usage-record-months.
- Data Exports (CUR 2.0) delivers to S3 at least once a day; its pages state no charge for the export itself.
- S3 storage is billed per GB-month, $0.024.
- Athena queries the export, billed per terabyte scanned, $7.00.
The export documents the same pace: "Data Exports refreshes your exports each time the source data is updated. For CUR 2.0, this occurs at least once a day" (Understanding export delivery), and AWS may still update a closed month's export during the two weeks after it ends. It follows that neither path promises fresher data than a day's, and a script that asks far more often mostly pays for the same answer: Poll the API no faster than the data changes.
History: 13 months or 14, and up to 38
By default, "Cost Explorer provides AWS cost and usage data for the current month and up to the previous 13 months at daily and monthly granularity" (Exploring more data for advanced cost analysis). The what-is page and Cost Comparison say 13 months too. One page disagrees: Multi-year data at monthly granularity says "While you can use the default 14-month historical data to perform cost analysis at quarterly or monthly level, you should enable multi-year data in Cost Explorer if you want to evaluate your year-over-year cost or identify long-term cost trends." AWS's own pages give two numbers for the same default, and no page this article found settles it: three pages say 13 months, one says 14, and this article uses 13.
Multi-year data goes further: "You can enable up to 38 months of multi-year data at monthly granularity for your entire organization." It arrives within 48 hours, and AWS turns it off when no one in the organization opens it for three consecutive months, though it can be turned on again. It shows in Cost Explorer only, not in the Savings Plans and Reservations utilization and coverage reports; it covers chargeable costs only; and accounts onboarded to AWS Billing Conductor cannot use it. Neither its page nor the pricing page gives it a price, and the price list's storage line names granular data only. The windows, side by side:
How far back and how finely Cost Explorer's data goes, and what each window bills
| Data | Granularity | Window | Billed |
|---|---|---|---|
| Default | Monthly and daily | This month and the previous 13 | No |
| Multi-year data | Monthly | Up to 38 months | No price stated |
| Hourly data, every service | Hourly, no resource detail | The past 14 days | Per usage record |
| Resource-level data | Daily, by resource | The past 14 days | Per usage record |
| EC2 instances, by instance | Hourly, by resource | The past 14 days | Per usage record |
Granular data: hourly, and by resource
The last three rows are what AWS calls granular data: "Cost Explorer provides hourly and resource-level granularity through three features" (Granular data), each turned on alone: resource-level data at daily granularity, data for every service at hourly granularity without resource detail, and EC2 instances' resource-level data at hourly granularity. Hourly and by resource are two axes, not one.
Only the management account turns them on, in the Cost Management preferences (Configuring multi-year and granular data), and the settings move slowly: "It can take up to 48 hours for changes to your data settings to reflect in Cost Explorer. Also, after saving your preferences, you won't be able to make any additional changes for 48 hours." Hourly data can be limited to some services, picked from those the organization used in the last six months. Accounts in a standard or billing transfer billing group of AWS Billing Conductor cannot see granular data.
What the feature bills is the usage record, which AWS defines on its hourly granularity page: "A usage record corresponds to a line item with a specific resource and usage type." One instance running all day is one record an hour for each of its usage types, kept for 14 days. Hourly granularity pricing prices it.
Cost types: unblended, amortized, blended and net
Every Cost Explorer report shows one cost type at a time, picked with the "Aggregate costs by" control under Advanced options (Choosing advanced options). The five names people search for are defined there, and each answers its own question:
The five cost types of Cost Explorer, in AWS's words, and what each is for
| Cost type | What it shows, in AWS's words | Use it for |
|---|---|---|
| Unblended costs | "This cost metric reflects the cost of the usage." | What was charged, on the day it was charged |
| Amortized costs | "This cost metric reflects the effective cost of the upfront and monthly reservation fees spread across the billing period." | A commitment's cost per day it covers |
| Blended costs | "This cost metric reflects the average cost of usage across the consolidated billing family." | The average rate across an organization |
| Net unblended costs | "This cost metric reflects the cost after discounts." | What Cost Anomaly Detection watches |
| Net amortized costs | "This cost metric amortizes the upfront and monthly reservation fees while including discounts such as RI volume discounts." | A commitment's daily cost, after discounts |
The difference that changes decisions is between the first two. "By default, Cost Explorer shows the fees for Reserved Instances as a spike on the day that you're charged. However, if you choose to show costs as amortized costs, the costs are amortized over the billing period." AWS gives one example. Alejandro buys a Partial Upfront t2.micro Reserved Instance for a one-year term, at $30.00 upfront and $2.48 a month, and "Cost Explorer shows the costs for this RI as a spike on the first of the month." With Amortized costs, for a 30-day month, the chart shows a daily effective rate of $0.165: "This is the EC2 effective rate multiplied by the number of hours in a day." What differs: when the fees appear, not what the reservation costs. Unblended cost shows the money on the day it is charged; amortized cost spreads it over the days the reservation covers.
The arithmetic holds: the upfront fee over the 365 days of the term plus the monthly fee over the 30 days of the month gives $0.165 a day, computed. Billing periods before 2018 have no amortized view, and blended costs matter only to an organization that uses consolidated billing in AWS Organizations. Judge commitments on amortized cost is the lever.
Filters, dimensions and grouping
Filtering the data that you want to view lists the dimensions a report filters by: API operation, Availability Zone, Billing entity, Charge type, Include all, Instance type, Legal entity, Linked account, Platform, Product attribute, Purchase option, Region, Resources, Service, Tag, Tenancy, Usage type and Usage type group, 18 in all, though the page gives no count. The newest, Product attribute, covers Amazon Bedrock usage from September 2026.
Within one filter the values are ORed, and across filters ANDed: "When you select multiple filters, Cost Explorer applies the logical AND operator to your selections." A report takes 1,024 filters at most. Two dimensions have conditions: the Resources filter needs granular data turned on from the management account, for Amazon EC2 instances, and "You can filter RI Utilization reports by only one service at a time." Through the API, GetCostAndUsage groups by "up to two different groups, either dimensions, tag keys, cost categories, product attributes, or any two group by types."
Cost allocation tags and Cost Categories
Tags and categories are how a bill acquires the organization's own names. Cost allocation tags come in two kinds, AWS-generated and user-defined: "You must activate both types of tags separately before they can appear in Cost Explorer or on a cost allocation report." They take up to 24 hours to appear. Cost Categories work a level above: "Cost categories is a cost allocation service to help you map your AWS costs, to your unique internal business structures." A rule maps accounts, charge types, other categories, Regions, services, tag keys, usage types or billing entities to a value, statically or by inheriting it from a dimension, such as a tag's value. The two side by side:
- What it is
- A key and a value on each resource, activated for billing
- Who sets it
- AWS for AWS-generated tags, you for user-defined tags, each kind activated separately
- Where it shows
- Cost Explorer and the cost allocation report
- How soon
- Up to 24 hours to appear
- What it is
- Rules that map slices of the bill to the organization's structure
- Who sets it
- You, with rules on accounts, services, tags, Regions, usage types and more
- Where it shows
- Cost Explorer, AWS Budgets, AWS CUR and Cost Anomaly Detection
- How soon
- Up to 24 hours to categorize the cost
What differs: a tag labels one resource; a category maps whole slices of the bill, tags included, to a team, a product or a cost center.
Advanced options have a switch for each, "Show only untagged resources" and "Show only uncategorized resources", to find what is left over. Neither carries a price of its own: both are part of the free console. Tag and categorize first is the first lever.
Forecasts and Cost Comparison
The forecast reads the past: "Cost Explorer estimates your cost and usage for the next 18 months at monthly granularity and for the next 3 months at daily granularity" (Cost Explorer FAQs). A guide that gives three months as the whole forecast has the daily window only. In a report, the "Show forecasted values" control adds it.
Cost Comparison explains a change between two months instead of drawing it: "You can compare costs between any two months within the last 13 months to identify and understand changes in your AWS spending. If you have enabled multi-year data at monthly granularity, you can go back up to 38 months" (Performing a cost comparison). It works in two modes:
Cost Comparison's two modes, and what it cannot do
| Mode | Compares | How far back |
|---|---|---|
| Relative (Month over month) | "Compare current month to previous month." | One month |
| Absolute (Custom) | Any two months | 13 months, or 38 with multi-year data |
| Either mode | Not by resource: "Group by resource is not available for cost comparisons." | — |
It works on every cost type: "Cost Comparison supports all of the available cost metrics (unblended, net unblended, net amortized, etc.) options in Cost Explorer, giving you flexibility to view the data in the way that is most meaningful for your needs" (How a cost comparison works). The Top trends widget of the console's home page runs it across services, accounts and Regions. Neither page gives it a price.
Cost Anomaly Detection
"AWS Cost Anomaly Detection is a feature that uses machine learning models to detect and alert on anomalous spend patterns in your deployed AWS services" (Detecting unusual spend). It lives inside Cost Explorer, which must be turned on to reach it (Setting up your anomaly detection), and it follows Cost Explorer's data:
AWS says
About 3 runs a dayof Cost Anomaly Detection over net unblended cost data, once the billing data is processed: an anomaly can take up to 24 hours to show after the usage.
AWS · Detecting unusual spend with AWS Cost Anomaly Detection
It watches net unblended cost, after discounts, and reads Cost Explorer's data, which can be up to 24 hours late. A new monitor needs 24 hours before it detects anything, and a service used for the first time needs days of history first. Each anomaly comes with its likely causes, ranked by dollar impact across service, account, Region and usage type, and alerts go by email or to an Amazon SNS topic. Neither of its pages gives a dollar figure, the pricing page does not name it, and the AWS Price List has no service code for it.
Cost Explorer vs AWS Budgets, Trusted Advisor and Cost Optimization Hub
Cost Explorer sits among tools whose names are easy to confuse. The Cost Optimization Pillar splits their jobs (COST03-BP05): "Notifications: Provide notifications when cost or usage exceeds defined limits and anomalies occur with AWS Budgets or AWS Cost Anomaly Detection", and "Review cost optimization recommendations with AWS Trusted Advisor or AWS Compute Optimizer." Cost Optimization Hub gathers those recommendations, and "Resource rightsizing and idle resource recommendations are provided by AWS Compute Optimizer" (Cost Optimization Hub):
- See: Cost Explorer, a free console and an API billed by the page. Cost Anomaly Detection works from its data.
- Alert: AWS Budgets on thresholds of cost or usage; Cost Anomaly Detection on unusual spend, about three times a day.
- Recommend: Trusted Advisor's checks and Compute Optimizer's rightsizing and idle-resource findings, which Cost Optimization Hub gathers with Savings Plans and Reserved Instance recommendations.
Each tool's job and price, from its own pages:
The AWS cost-management toolbox: what each tool does, and what it costs
| Tool | What it does | What it costs |
|---|---|---|
| Cost Explorer | Shows and analyzes costs and usage, with forecasts and Cost Comparison | The console is free; the API costs $0.01 a page |
| Cost Anomaly Detection | Alerts on unusual spend, with its likely causes | No price on its pages |
| AWS Budgets | Thresholds on cost or usage, with alerts and, optionally, actions | Budgets without actions are free; two action-enabled budgets are free, then $0.10 a budget-day; $0.01 a report delivered |
| Trusted Advisor | A fixed set of checks, cost optimization among them | 56 checks on every plan, 482 with Business Support+ and above |
| Cost Optimization Hub | Gathers advice on sizing, idle resources, Savings Plans and Reserved Instances, across accounts and Regions | No price on its page |
| Compute Optimizer | Sizes a resource, or flags it idle, from its metrics | No price shown for its core; one metrics option is paid |
| AWS Pricing Calculator | Estimates what a setup will cost, before it runs | Free |
USD, before tax. AWS Price List, us-east-1 and global, offer file published September 11, 2026, fetched October 16, 2026.
Budgets prices actions, not budgets: "Your first two action-enabled budgets are free (regardless of the number of actions you configure per budget) per month" (AWS Budgets pricing), and "Budgets without actions are free" (Budgets FAQs). The price list counts that allowance as the first 62 action-enabled budget-days of a month, two budgets for a 31-day month, computed, so a third one costs:
A third action-enabled budget, all of a 31-day month
$3.10 a monthof AWS Budgets, beyond the two free ones, computed; budgets that only notify stay free.
Computed from the AWS Price List · global · Sep 11, 2026
Where Cost Explorer reads what was spent, AWS Pricing Calculator estimates what will be: it "is a free web-based planning tool that you can use to create cost estimates for using AWS services." The two answer different questions, before and after the bill. Trusted Advisor's cost optimization checks change too: its low-utilization check for Amazon EC2 instances is now marked "a legacy check", replaced by one "that offers additional customized recommendations".
In short: Read every Cost Explorer report knowing three settings: its data is a day old at best, 13 months deep by default, and shown as unblended cost until you choose another cost type.
What Cost Explorer is used for
Every item on Cost Explorer's features page is a way of looking, not of acting: visualization, filters and grouping, forecasts, saved reports, multi-year history, hourly and resource-level granularity, CSV downloads and the API. In practice, each question about a bill has its cut:
Questions a Cost Explorer report answers, and the cut that answers each
| Question | Filter or group by |
|---|---|
| Who spends it? | Cost category, or a tag |
| What grew? | Service, then usage type |
| Where does it run? | Region, or linked account |
| What did a reservation leave unused? | Purchase option |
| What is in EC2 - Other? | That service, grouped by usage type |
| Which resource? | The Resources filter, once granular data is on |
The Well-Architected Framework places it at the step where a team sees its spend before it acts (Expenditure and usage awareness): "Use AWS Cost Explorer for visibility into your cost and usage, or create customized dashboards and analytics with Amazon Athena and Amazon QuickSight." The same page keeps daily granularity for "high level insights and trends" and hourly data, in Cost Explorer or in Athena over the CUR, for deeper analysis. Access goes through IAM, as for any tool (COST03-BP05), and Amazon Q can explain a report in words (what-is page).
EC2 - Instances and EC2 - Other: how Cost Explorer groups a bill
Cost Explorer does not group the bill as the invoice does. The Billing User Guide takes compute costs "compared to ancillary cost, such as Amazon Elastic Block Store volumes or NAT gateways": "Instead of a single group for Amazon EC2 costs, Cost Explorer will group costs into EC2 - Instances and EC2 - Other." Data transfer moves too: the invoice groups it into one service named Data Transfer, Cost Explorer by service. Here is a small platform's month in Paris, ten EC2 instances, one RDS database, EBS volumes, three NAT gateways and S3 storage, both ways:
The same month on the invoice and in Cost Explorer: a small platform in Paris, On-Demand (computed)
| Line | On the invoice | In Cost Explorer |
|---|---|---|
| Amazon EC2 | $1,173.66 | — |
| EC2 - Instances: 10 × m7i.large | — | $858.48 |
| EC2 - Other: 600 GB of gp3 volumes, 3 NAT gateways and the 3,000 GB they process | — | $315.18 |
| Amazon RDS: db.r6g.large, PostgreSQL | $192.72 | $192.72 |
| Amazon S3: 2,000 GB in S3 Standard | $48.00 | $48.00 |
| A month | $1,414.38 | $1,414.38 |
Computed from the AWS Price List, eu-west-3, offer files published October 6, 2026, October 12, 2026 and October 14, 2026, fetched October 16, 2026.
To see what EC2 - Other holds, filter a report by it and group by usage type: the volumes, the NAT gateways' hours and the bytes they process come apart, each its own line. The bytes are the line pattern 4 moves to a gateway endpoint, and its card gives the bill line by line. The EC2 article's FAQ comes back to EC2 - Other, and the NAT gateway article reads the network lines usage type by usage type.
Cost Explorer, the invoice and the Cost and Usage Report
Cost Explorer and the Bills page can show different amounts for the same month, and the Billing User Guide gives five reasons:
Why Cost Explorer and the bill can show different amounts, in AWS's words
| Reason | Billing data | Cost Explorer data |
|---|---|---|
| Basis | "Billing data is always presented on a cash basis." | Can show amortized costs: "A one-year, all-upfront Savings Plan purchase will be spread evenly across the 12 months of the commitment term." |
| Grouping | Amazon EC2 as one service; data transfer as one service named Data Transfer | EC2 - Instances and EC2 - Other; data transfer by service |
| Refresh | "Your billing data and Cost Explorer data are refreshed at least once per day. The cadence when they're refreshed might differ." | The same |
| Granularity | "Billing data is monthly and doesn't offer resource-level details." | Hourly and by resource, so "your billing data and Cost Explorer data might vary due to rounding." |
| Refunds | The Bills page "excludes refunds" | "Cost Explorer data includes refunds" |
When they differ, one of them wins:
When these data sources are different, the amount on your invoice is the final amount that you owe to AWS.
The Cost and Usage Report is the third view of the same month, as files rather than a console. CUR 2.0 changes the format, not the facts: "Consistent schema: CUR 2.0 contains a fixed set of columns, whereas the columns included for CUR can vary monthly depending on your usage of AWS services, cost categories, and resource tags." The export lands as "one or more gzip/csv or Parquet files" under a path partitioned by billing period, and Processing data exports loads it into Athena with an AWS Glue crawler. For the same questions, the two paths compare as follows:
- Where the data is
- In Cost Explorer's console and API
- How fresh
- At least daily
- How you query it
- The console, or GetCostAndUsage at $0.01 a page
- What it bills
- The API, and granular data per usage record
- Where the data is
- Files in your Amazon S3 bucket, gzip/csv or Parquet
- How fresh
- At least once a day, and the closed month for two more weeks
- How you query it
- Amazon Athena at $7.00 per TB scanned, or Amazon Redshift
- What it bills
- No charge for the export on its pages; S3 storage at $0.024 per GB-month
What differs: who runs the queries. Cost Explorer answers in its console for free and through its API by the page; an export is files you keep and query, billed by Amazon S3 and Amazon Athena.
Move heavy reporting to Data Exports and Athena says when the switch pays.
In short: Use Cost Explorer to see and slice the spend, the invoice for what is owed, and an export when the questions outgrow the console.
How Cost Explorer pricing works
Is Cost Explorer free?
The console is, with its reports, forecasts, Cost Comparison, tags and Cost Categories. Two things bill: the API, by the paginated request, and granular data, by the usage record hosted. Multi-year data and Cost Anomaly Detection have no price on the pages this article cites, and Cost Anomaly Detection has no service code in the AWS Price List. The price list holds three Cost Explorer prices, and only these three:
AWS Cost Explorer's prices, all three, in its one Region of the AWS Price List
| Item | List price | Unit |
|---|---|---|
| API request, primary billing viewEach paginated request | $0.01 | per request |
| API request, custom billing viewEach request, for each source of the view | $0.01 | per request |
| Granular dataPer 1,000 usage records hosted, a month | $0.01 | per 1,000 records a month |
USD, before tax. AWS Price List, us-east-1, offer file published September 11, 2026, fetched October 16, 2026.
What sets them apart is where they are:
Read from the AWS Price List
1 Regionholds Cost Explorer's prices: US East (N. Virginia) only. It follows that every account pays the same price, wherever it runs, and there is no Paris row to show.
AWS Price List · AWSCostExplorer offer file, Sep 11, 2026
The pricing page itself says nothing about Regions either way; the offer file does. It follows that an account that runs only in Paris still sees its Cost Explorer lines under US East usage types (Reading Cost Explorer's lines on a bill).
Cost Explorer API pricing: billed per page
The what-is page prices each paginated request at $0.01, and the pricing page gives the two rates behind the word: each request on the primary billing view, "which contains cost management data associated with your account", costs $0.01, and on a custom billing view "each request will incur" $0.01 per source. Its own example combines five billing views into one: "that view has 5 sources", so each request on it costs $0.05, computed.
The request most dashboards make is GetCostAndUsage: a period, a granularity (DAILY, MONTHLY or HOURLY), the cost types above, filters and up to two groups. Its answer comes in pages, each a request: NextPageToken is "The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size." No AWS page gives that maximum. It follows that one query broad enough to need several pages, many accounts, two groupings, a long period, is billed once per page, every time it runs. A schedule turns the page price into a monthly bill:
A dashboard that polls every 5 minutes, 3 pages a poll
$259.20 a monthof Cost Explorer API requests in a 30-day month, computed, for data AWS refreshes at least daily; polled once a day, the same dashboard costs $0.90.
Computed from the AWS Price List · us-east-1 · Sep 11, 2026
Pattern 1 prices that dashboard, and Poll the API no faster than the data changes is the lever.
Hourly granularity pricing: per usage record hosted
Granular data bills what Cost Explorer keeps for you. The hourly granularity page puts the rule in one line, "Cost Explorer bills you daily based on the total hourly usage records hosted in Cost Explorer for the past 14 days", and gives an example: "if you run one EC2 instance all day every day for the past month, and you have hourly granularity enabled, Cost Explorer will host 336 records per day (24 hours x 14 days)". AWS rounds that instance's month to $0.003. In the price list's unit, $0.01 per 1,000 records a month, 336 records hosted all month are 336 usage-record-months: $0.00336, computed.
Since a record is "a line item with a specific resource and usage type", the bill grows with the resources and usage types in scope, not with the reports read: a fleet of thousands of instances on every usage type is a different line from a few hundred under investigation. The page counts hourly records; it does not say how resource-level data at daily granularity is counted. Pattern 2 prices a fleet both ways.
Reading Cost Explorer's lines on a bill
Cost Explorer's usage types carry the US East prefix whatever Region the account runs in; Budgets' carry none:
Cost Explorer, Budgets and Athena usage types on a bill
| Usage type | What it counts |
|---|---|
USE1-APIRequest |
Cost Explorer: API requests on the primary billing view |
USE1-AdditionalSourceViews |
Cost Explorer: API requests on a custom billing view, for each source |
USE1-CostDataStorage |
Cost Explorer: granular data hosted, in usage-record-months |
ActionEnabledBudgetsUsage |
Budgets: action-enabled budget-days |
BudgetsReports |
Budgets: reports delivered |
EUW3-DataScannedInTB |
Athena: data scanned in Paris, by a CUR export's queries |
A Cost Explorer line is easy to read once found: filter a report by the Cost Explorer service and group by usage type, and the three lines above split the month between pages and records.
In short: Cost Explorer bills two things, the pages its API returns and the granular records it hosts, at one price in US East (N. Virginia) for every account; nothing else it shows carries a price of its own.
Architecture patterns around Cost Explorer and what they cost
Four illustrative configurations, each priced before and after the levers of the next section, line by line from the AWS Price List. The first three are Cost Explorer's own bill: a dashboard that polls the API, a fleet with granular data turned on, and a reporting pipeline that pulls the API against one that queries an export. The fourth is what Cost Explorer is for: a sample Paris bill before and after the recommendations around it. None is a client case; every amount is computed, and each card lists its assumptions and what it leaves out. Patterns 1 and 2 are priced in US East (N. Virginia), Cost Explorer's one Region; pattern 3 mixes it with Paris; pattern 4 is all Paris.
Pattern 1 of 4 · Illustrative configuration
A dashboard polling the Cost Explorer API
A FinOps dashboard calls GetCostAndUsage on a schedule, filtered and grouped across several linked accounts, so each poll needs 3 paginated requests on average: every 5 minutes, around the clock, then once a day, matching Cost Explorer's own 24-hour refresh.
- Polling every 5 minutes, around the clock: 8,640 polls a month.
- Each poll returns its answer in pages, and each page is a request, at $0.01.
- 3 pages a poll: 25,920 requests a month, for data Cost Explorer refreshes at least once a day.
AWS documents a refresh at least once a day and no faster cadence, so most of the 8,640 polls of the "before" month read the same numbers as the poll before. On a custom view of five sources, the same cadence would cost $1,296.00 a month, five times the primary view's, computed.
With the levers: $258.30 a month less (99.7% less), computed.
The bills line by line, the assumptions and the sources
A dashboard polling the Cost Explorer API, before: Every 5 minutes, around the clock Illustrative
8,640 polls a month (24 × 60/5 × 30), 3 requests each, on the primary billing view.
| Line | A month |
|---|---|
| Other | |
| Cost Explorer API requests: 8,640 polls a month × 3 requests, every 5 minutes25,920 requests × $0.01 /req | $259.20 |
| A month, computed | $259.20 |
A dashboard polling the Cost Explorer API, with the levers: Once a day, matching Cost Explorer's own refresh Illustrative
30 polls a month, 3 requests each, on the primary billing view ("Cost Explorer refreshes your cost data at least once every 24 hours.").
| Line | A month |
|---|---|
| Other | |
| Cost Explorer API requests: 30 polls a month × 3 requests, once a day90 requests × $0.01 /req | $0.90 |
| A month, computed | $0.90 |
A combined view of 5 sources, polled every 5 minutes: $1,296.00 a month, 400.0% more than before, computed.
Assumptions
- Illustrative configuration. AWS Cost Explorer's own charges have no Paris price: the AWS Price List carries them in US East (N. Virginia) only, and they apply wherever the account runs.
- 3 paginated requests a poll on average: no AWS page gives how many results a page of GetCostAndUsage holds, so the page count is an assumption.
- A 30-day month. The primary billing view throughout, except the alternative line, which combines 5 billing views.
- No retries.
Not counted
- The dashboard's own hosting, and anything else outside Cost Explorer's API charge.
Sources
USD before tax, a 30-day month. AWS Price List, us-east-1, offer file published September 11, 2026, fetched October 16, 2026. Illustrative configuration, not a client case.
Pattern 2 of 4 · Illustrative configuration
Hourly and resource-level granularity for a fleet
A platform team turns on hourly, resource-level data for the EC2 instances of a fleet of 5,000, each with 3 usage types on average: for the whole fleet, then only for the 300 instances still under investigation.
The data this pattern turns on is the granular branch of the data-flow diagram. Each usage type of an instance is 336 usage-record-months a month, $0.00336, the exact figure behind AWS's rounded $0.003 for one instance, and the bill is that figure times the records in scope: the lever changes the scope, not the price. Daily and monthly data, by service and by account, stay free in both bills.
With the levers: $47.38 a month less (94.0% less), computed.
The bills line by line, the assumptions and the sources
Hourly and resource-level granularity for a fleet, before: Enabled fleet-wide Illustrative
5,000 instances × 3 usage types = 15,000 streams of hourly usage records, all month.
| Line | A month |
|---|---|
| Storage | |
| Hourly, resource-level data: 5,000 instances × 3 usage types, all month5,040,000 usage-record-months × $0.01 /1K rec-mo | $50.40 |
| A month, computed | $50.40 |
Hourly and resource-level granularity for a fleet, with the levers: Scoped to the 300 instances under active investigation Illustrative
300 instances × 3 usage types = 900 streams of hourly usage records, all month.
| Line | A month |
|---|---|
| Storage | |
| Hourly, resource-level data: 300 instances × 3 usage types, all month302,400 usage-record-months × $0.01 /1K rec-mo | $3.02 |
| A month, computed | $3.02 |
Assumptions
- Illustrative configuration. AWS Cost Explorer's own charges have no Paris price: the AWS Price List carries them in US East (N. Virginia) only, and they apply wherever the account runs.
- 3 usage types an instance on average, each a usage record every hour (a usage record is a line item for one resource and one usage type): an illustrative assumption.
- AWS's worked example: one EC2 instance running all month with hourly granularity has 336 records hosted (24 hours × 14 days), which AWS rounds to $0.003 a month; at $0.01 per 1,000 usage-record-months, 336 records hosted all month are 336 usage-record-months, $0.00336. The pattern scales that to each instance's usage types, running all month.
- Daily and monthly data, by service and by account, stays free in both bills.
Not counted
- Multi-year data at monthly granularity: AWS states no price for it.
Sources
- Granular data
- Estimating cost for Cost Explorer hourly granularity
- AWS Cost Explorer pricing
- Configuring multi-year and granular data
- Expenditure and usage awareness
USD before tax, a 30-day month. AWS Price List, us-east-1, offer file published September 11, 2026, fetched October 16, 2026. Illustrative configuration, not a client case.
Pattern 3 of 4 · Illustrative configuration
A reporting pipeline: hourly API pulls, or a CUR 2.0 export queried daily
A FinOps team's multi-account reports, grouped by linked account, service and usage type: pulled from the Cost Explorer API every hour, or built once a day from a CUR 2.0 export in Amazon S3, queried with Amazon Athena. A third line prices the same reports pulled from the API once a day.
- 24 pulls a day, 20 pages each, at $0.01 a page. Pulled once a day instead, the same reports cost less than the export.
- The export lands in S3 at least once a day, at $0.024 a GB-month; Athena queries it once a day at $7.00 a terabyte scanned, and the pipeline reads the answer.
Two changes make the card's saving: the reports move to an export, and they run once a day. The cadence does most of it. The same reports pulled from the API once a day cost $6.00 a month, less than the export, computed. It follows that, at 20 pages a pull, the export costs less only above 83.25 pulls a month, 2.8 a day: many reports or teams, not one. Most of the export's $16.65 is its storage in Amazon S3, which grows by a month of data every month.
With the levers: $127.35 a month less (88.4% less), computed.
The bills line by line, the assumptions and the sources
A reporting pipeline: hourly API pulls, or a CUR 2.0 export queried daily, before: Hourly GetCostAndUsage pulls Illustrative
24 pulls a day × 20 requests = 480 requests a day, 14,400 a month.
| Line | A month |
|---|---|
| Other | |
| Cost Explorer API pulls: 24 pulls a day × 20 paginated requests, hourly14,400 requests × $0.01 /req | $144.00 |
| A month, computed | $144.00 |
A reporting pipeline: hourly API pulls, or a CUR 2.0 export queried daily, with the levers: CUR 2.0 to S3, queried with Athena Illustrative
A Parquet CUR 2.0 export in S3 (650 GB stored), queried with 30 Athena queries a month scanning 150 GB (0.15 TB) in total.
| Line | A month |
|---|---|
| Compute | |
| Amazon Athena queries: 30 a month × 5 GB scanned each = 150 GB (0.15 TB)0.15 TB × $7.00 /TB | $1.05 |
| Storage | |
| CUR 2.0 export in S3, Parquet, 13 months retained: 650 GB stored650 GB × $0.024 /GB-mo | $15.60 |
| A month, computed | $16.65 |
The same reports pulled from the API once a day: $6.00 a month, 95.8% less than before, computed.
Assumptions
- Illustrative configuration. The Cost Explorer API is priced in US East (N. Virginia), its only Region in the AWS Price List; the CUR 2.0 export in Amazon S3 and its Amazon Athena queries are priced in Paris (eu-west-3).
- 20 paginated requests a pull: no AWS page gives how many results a page of GetCostAndUsage holds, so the page count is an assumption. Before, the pipeline pulls every hour, 24 pulls a day, over a 30-day month.
- With the levers: a Parquet CUR 2.0 export, partitioned by billing period, growing by 50 GB a month with 13 months kept (650 GB stored, in S3 Standard).
- The same reports as 30 Athena queries a month (one a day), each scanning 5 GB on average, Parquet and the billing-period partitions keeping the scans small: illustrative, and each above Athena's 10 MB minimum a query.
Not counted
- The AWS Glue crawler that loads the export's partitions into Athena, billed by AWS Glue, which this article does not price.
- The ad hoc Cost Explorer API calls the team still makes outside the pipeline.
Sources
- Analyzing your costs and usage with AWS Cost Explorer
- GetCostAndUsage
- Migrating from CUR to Data Exports CUR 2.0
- Understanding export delivery
- Processing data exports
- Expenditure and usage awareness
USD before tax, a 30-day month for requests, 730 h for storage. AWS Price List, eu-west-3 and us-east-1, offer files published September 11, 2026 and October 14, 2026, fetched October 16, 2026. Illustrative configuration, not a client case.
Pattern 4 of 4 · Illustrative configuration
A sample Paris bill, before and after the recommendations
A small platform in Paris, with EC2 instances, an RDS database, EBS volumes, three NAT gateways and S3 storage, before and after what Cost Optimization Hub, Compute Optimizer and Cost Explorer surface: Graviton and a Compute Savings Plan on EC2, a Reserved Instance on RDS, an idle EBS volume deleted, and an S3 gateway endpoint for the NAT gateways' S3 traffic.
- EC2 moved to Graviton, then covered by a 1-year Compute Savings Plan, at $0.0722 an hour.
- RDS covered by a 1-year Reserved Instance, at $0.1749 an hour.
- An idle EBS volume deleted, at $0.0928 a GB-month saved.
- S3-bound NAT gateway traffic moved to a gateway endpoint, at $0.05 a GB saved.
- S3 itself: unchanged, since Cost Optimization Hub's documented recommendations do not cover S3 storage.
- Cost Explorer shows the NAT gateways' line: EC2 - Other, grouped by usage type.
Each line follows one documented recommendation, two on EC2 (Graviton, then a Compute Savings Plan), and S3 stays as it is. EC2 costs 38.6% less and RDS 33.7% less, computed, and the EC2 line carries most of the saving; Read the recommendations before you commit gives each line and the tool that surfaces it, and the grouping section shows the same "before" as the invoice and Cost Explorer group it.
With the levers: $461.10 a month less (32.6% less), computed.
The bills line by line, the assumptions and the sources
A sample Paris bill, before and after the recommendations, before: On-Demand, before the recommendations Illustrative
EC2 and RDS On-Demand, the idle EBS volume still there, all the NAT gateways' traffic processed by them.
| Line | A month |
|---|---|
| Compute | $1,051.20 |
| EC2, 10 × m7i.large, On-Demand10 instances × 730 h × $0.1176 /h | $858.48 |
| RDS for PostgreSQL, db.r6g.large Single-AZ, On-Demand1 instance × 730 h × $0.264 /h | $192.72 |
| Storage | $103.68 |
| EBS gp3, 600 GB, including one unattached 50 GB volume600 GB × $0.0928 /GB-mo | $55.68 |
| S3 Standard storage, 2,000 GB2,000 GB × $0.024 /GB-mo | $48.00 |
| Network | $259.50 |
| NAT gateways, 3 (one per Availability Zone)3 NAT gateways × 730 h × $0.05 /h | $109.50 |
| NAT gateway data processed, 3,000 GB a month3,000 GB × $0.05 /GB | $150.00 |
| A month, computed | $1,414.38 |
A sample Paris bill, before and after the recommendations, with the levers: With the recommendations applied Illustrative
EC2 on Graviton with a 1-year Compute Savings Plan, RDS on a 1-year Reserved Instance, the idle EBS volume deleted, and an S3 gateway endpoint for the NAT gateways' S3 traffic.
| Line | A month |
|---|---|
| Compute | $654.74 |
| EC2, 10 × m7g.large (Graviton), 1-year Compute Savings Plan, No Upfront10 instances × 730 h × $0.0722 /h | $527.06 |
| RDS for PostgreSQL, db.r6g.large Single-AZ, 1-year Reserved Instance, No Upfront1 instance × 730 h × $0.1749 /h | $127.68 |
| Storage | $99.04 |
| EBS gp3, 550 GB, after the idle 50 GB volume is deleted550 GB × $0.0928 /GB-mo | $51.04 |
| S3 Standard storage, 2,000 GB2,000 GB × $0.024 /GB-mo | $48.00 |
| Network | $199.50 |
| NAT gateways, 3 (one per Availability Zone)3 NAT gateways × 730 h × $0.05 /h | $109.50 |
| NAT gateway data processed, 1,800 GB a month, after the S3-bound traffic moves to a gateway endpoint1,800 GB × $0.05 /GB | $90.00 |
| A month, computed | $953.28 |
Assumptions
- Illustrative configuration in Paris (eu-west-3), not a client case.
- 10 × EC2 m7i.large On-Demand; 1 × RDS for PostgreSQL db.r6g.large Single-AZ On-Demand; 600 GB of gp3 EBS storage, including one unattached 50 GB volume; 3 NAT gateways (one per Availability Zone) processing 3,000 GB a month, 40% of it bound for S3; 2,000 GB of S3 Standard storage.
- The same work before and after each move; each line takes one documented recommendation, except EC2, which takes two: Graviton, then a 1-year Compute Savings Plan.
- The three NAT gateways stay, for the traffic that does go to the internet: only their data processing falls.
- S3 storage is left as it is: Cost Optimization Hub's documented recommendations do not cover S3 storage.
Not counted
- Data transfer, logs and every other line a real platform carries: the bill holds the five services the recommendations touch, and S3.
Sources
- Identifying opportunities with Cost Optimization Hub
- What is AWS Compute Optimizer?
- Pricing for NAT gateways
- Understanding reservations in Cost Explorer
USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published October 6, 2026, October 12, 2026, October 13, 2026 and October 14, 2026, fetched October 16, 2026. Illustrative configuration, not a client case.
Side by side, the four make the point of this article in numbers:
The four patterns at a glance, a month (computed)
| Pattern | Before | After | Change |
|---|---|---|---|
| 1. API polling | $259.20 | $0.90 | 99.7% less |
| 2. Granular data | $50.40 | $3.02 | 94.0% less |
| 3. Reporting pipeline | $144.00 | $16.65 | 88.4% less |
| 4. Sample Paris bill | $1,414.38 | $953.28 | 32.6% less |
Computed from the AWS Price List, eu-west-3 and us-east-1, offer files published September 11, 2026, October 6, 2026, October 12, 2026, October 13, 2026 and October 14, 2026, fetched October 16, 2026.
Cost Explorer's own lines fall the furthest because the "before" habits buy nothing extra: data refreshed at least daily either way, or detail nobody reads. Its own bill is a matter of cadence and scope; the savings it shows grow with the infrastructure behind it.
In short: Cost Explorer's own charges are small and almost all avoidable; the money is in the bill it helps read.
Want the same levers on your own bill?
Get a free auditHow to reduce AWS costs with Cost Explorer
The levers below come from AWS documentation; their order is this article's. They fall in two families. Levers 1 to 7 use Cost Explorer to cut the rest of the AWS bill, with the Cost Optimization Pillar's practices: give the bill the organization's names, watch it, opt in to the recommendations, read it on the right cost type, commit once the rest is done, and review the drift. Levers 8 to 12 keep Cost Explorer's own lines down: call the API less, on the right view, keep granular data to what is under study, and move heavy reporting to an export. The levers, in that order:
Use Cost Explorer to cut the AWS bill · levers 1 to 7
- Lever 01,SeeTag and categorize firstAlways, and first
- Lever 02,SeeTurn on Cost Anomaly Detection before you need itEvery account, before the surprise
- Lever 03,SeeFilter and group the way the organization is billedBuilding a recurring report
- Lever 04,SeeOpt in to Compute Optimizer and Cost Optimization HubBefore reading any recommendation
- Lever 05,SeeJudge commitments on amortized costBefore and after buying a commitment
- Lever 06,CommitRead the recommendations before you commitOnce sizing and cleanup are done
- Lever 07,ReviewCatch drift with Cost Comparison and the forecastEvery month
Keep Cost Explorer's own lines down · levers 8 to 12
- Lever 08,TrimPoll the API no faster than the data changesA dashboard or script calling the API on a schedule
- Lever 09,TrimKeep API calls on the primary billing viewA script that queries a custom billing view
- Lever 10,TrimScope granular data to the investigationA cost investigation, not everyday reporting
- Lever 11,RouteMove heavy reporting to Data Exports and AthenaMany reports or wide pulls, every day
- Lever 12,ReviewReview on a cadenceQuarterly, with the rest of the cost review
Lever 01 · See
Tag and categorize first
Every later lever reads the bill by owner, and a bill has no owners until it is given them. The Cost Optimization Pillar puts it first (COST03-BP03): "Identify organization categories such as business units, departments or projects that could be used to allocate cost within your organization to the internal consuming entities." Activate the tags the teams already use, both kinds, build Cost Categories on accounts and tags (Cost allocation tags and Cost Categories), and share what no team owns:
Three ways to give a cost its owner
| Tool | Gives an owner to | How |
|---|---|---|
| Cost allocation tags | One resource | A key and a value, activated for billing |
| Cost Categories | Slices of the bill | Rules on accounts, services, tags and more |
| Split charge rules | A cost no single team owns | Shared across the category values |
A shared platform or support is what split charges are for: "You can use split charge rules to allocate your charges between your cost category values. Splitting charges is useful when you have costs that aren't directly attributed to a single owner" (Splitting charges within cost categories). Then check what is left over with "Show only untagged resources" and "Show only uncategorized resources": whatever has no owner after a review is the first cost to question. The EKS article splits a cluster's bill by namespace, a level further down.
Lever 02 · See
Turn on Cost Anomaly Detection before you need it
An anomaly is cheaper the day after than the month after. The Cost Optimization Pillar names the step (COST03-BP05): "Configure AWS Cost Anomaly Detection: Use AWS Cost Anomaly Detection for your accounts, core services or cost categories you created to monitor your cost and usage and detect unusual spends." A monitor can watch every service, or specific member accounts, cost allocation tags or Cost Categories (Detecting unusual spend); a monitor per category maps each alert to a team, which is why lever 1 comes first. Set it up before the surprise, since it needs history to learn from:
AWS says
10 daysof history a service used for the first time needs before Cost Anomaly Detection can flag its anomalies.
AWS · Detecting unusual spend with AWS Cost Anomaly Detection
Send the alerts where someone reads them, by email or to an Amazon SNS topic (Cost Anomaly Detection). No AWS page gives the feature a price.
Lever 03 · See
Filter and group the way the organization is billed
A report is as useful as its cut. Filter by the dimensions the organization is billed by, linked account, Cost Category or tag, and group by what explains the change, service or usage type (the questions and their cuts). Values within one filter widen a report and filters narrow it. Save the reports the teams read. Through the API, every grouping that adds rows may add pages, which bill. Filtering by resource is the exception that costs: it needs granular data turned on, for EC2 instances.
Lever 04 · See
Opt in to Compute Optimizer and Cost Optimization Hub
The recommendations of lever 6 do not exist until someone opts in. AWS Compute Optimizer is plain about it: "You must opt in to have Compute Optimizer analyze your AWS resources." It then needs time, since a resource "must have accumulated sufficient metric data" before it gets a finding. Cost Optimization Hub shows an organization's accounts together only "when you opt in the management account of an organization":
What each opt-in unlocks
| Opt-in, and where | What it unlocks |
|---|---|
| Compute Optimizer, in each account or in the organization's management account | Rightsizing and idle findings for EC2 instances and Auto Scaling groups, EBS volumes, Lambda functions, ECS services on Fargate, RDS and Aurora, NAT gateways and more |
| Cost Optimization Hub, in the management account | One list of rightsizing, idle-resource, Savings Plans and Reserved Instance recommendations, for every account of the organization, across Regions |
Opt in early, so the metrics accrue before the review that needs them; the EC2 article applies the same tools to instances.
Lever 05 · See
Judge commitments on amortized cost
An upfront fee on the unblended chart is a spike on the day of purchase, so a reservation looks expensive for a day and free for a year. Set "Aggregate costs by" to Amortized costs before judging one, or to Net amortized costs when discounts are in play, as AWS's example shows (Cost types). The invoice keeps the spike: "Billing data is always presented on a cash basis." To see how much of a reservation went unused, AWS's advice is to "group by purchase option".
Lever 06 · Commit
Read the recommendations before you commit
Commit last, once the rest is sized: a commitment covers usage, and rightsizing and cleanup change the usage it would cover. Cost Optimization Hub gathers the list: "It makes recommendations on resource rightsizing, idle resource deletion, Savings Plans, and Reserved Instances." On the sample bill, each line has its move:
The sample Paris bill, line by line: each recommendation, the tool that surfaces it, and what it saves (computed)
| Line: the move, what it saves, and the tool | Before | After |
|---|---|---|
| EC2: Graviton and a 1-year Compute Savings Plan, 38.6% less (Compute Optimizer, Cost Optimization Hub) | $858.48 | $527.06 |
| RDS: a 1-year Reserved Instance, 33.7% less (Cost Explorer's reservation recommendations, Cost Optimization Hub) | $192.72 | $127.68 |
| EBS: the idle 50 GB volume deleted, 8.3% less (Cost Optimization Hub, Compute Optimizer) | $55.68 | $51.04 |
| NAT gateways: S3 traffic through a gateway endpoint, 23.1% less (Cost Explorer, by usage type; the VPC guide) | $259.50 | $199.50 |
| S3: unchanged (no documented recommendation) | $48.00 | $48.00 |
Computed from the AWS Price List, eu-west-3, offer files published October 6, 2026, October 12, 2026, October 13, 2026 and October 14, 2026, fetched October 16, 2026.
The NAT gateway line follows the VPC guide's advice, "If most traffic through your NAT gateway is to AWS services that support interface endpoints or gateway endpoints, consider creating an interface endpoint or gateway endpoint for these services", which the NAT gateway article prices in full; the EC2 article weighs Graviton.
Once bought, the reports keep a commitment in view. Cost Explorer "provides you with an overview of your current reservations, shows your utilization and coverage, and calculates reservation recommendations that could save you money if you purchase them" (Understanding reservations in Cost Explorer), and sends expiration alerts 7, 30 or 60 days ahead. For Savings Plans, "You can monitor your usage in the Savings Plans Inventory page or by using utilization and coverage reports. You can also set budgets for your Savings Plans utilization, coverage, and costs" (Monitoring your Savings Plans). The EC2 article and the RDS article price the commitments themselves.
Lever 07 · Review
Catch drift with Cost Comparison and the forecast
A trend line shows that a month grew; Cost Comparison says why, "automatically identifying and unfolding the largest cost drivers driving the cost variations between two selected months" (How a cost comparison works).
AWS says
Top 3 driversof the change between two months, highlighted by Cost Comparison, from usage shifts to Savings Plans coverage and applied credits.
AWS · Performing a cost comparison
Run it each month against the previous one, and against the same month a year back when multi-year data is on, on amortized cost when commitments are in play (Forecasts and Cost Comparison). Then put the forecast next to a budget: AWS Budgets' notifications are free. A driver Cost Comparison cannot name, because it does not go down to the resource, is a reason to turn on granular data for that service, for the time of the inquiry.
Lever 08 · Trim
Poll the API no faster than the data changes
Cost Explorer's data refreshes at least daily (How often Cost Explorer updates), and AWS documents no faster cadence, so a schedule much faster than that mostly re-reads the same numbers and pays for every page again. Set the schedule to the decision it feeds: a daily report, a weekly review, a monthly close. At three pages a poll, in a 30-day month:
What a dashboard's API calls cost a month, by how often it polls, at 3 pages a poll (computed)
| Polling | Requests a month | A month, computed |
|---|---|---|
| Every 5 minutes | 25,920 | $259.20 |
| Every 15 minutes | 8,640 | $86.40 |
| Every hour | 2,160 | $21.60 |
| Every 6 hours | 360 | $3.60 |
| Once a day | 90 | $0.90 |
Computed from the AWS Price List, us-east-1, offer file published September 11, 2026, fetched October 16, 2026.
Fewer pages help as much as fewer polls: a narrower period, fewer groupings and a filter on the accounts that matter each shrink the answer. Cache the answer where several users read it, rather than letting each browser call the API. Pattern 1 prices the move.
Lever 09 · Trim
Keep API calls on the primary billing view
A custom billing view combines several views into one, and each request on it bills once for each source (Cost Explorer API pricing). Use one when the combined total is the question; for one account's or one team's numbers, query the primary billing view, or that team's own view. At a dashboard's pace, the difference is the whole bill:
The 5-minute dashboard on a custom view of 5 sources
$1,296.00 a monthof API requests, five times the primary view's, computed.
Computed from the AWS Price List · us-east-1 · Sep 11, 2026
Pattern 1 prices the primary view and this alternative.
Lever 10 · Trim
Scope granular data to the investigation
Granular data is for a question, not for every day: the Well-Architected Framework keeps daily granularity for "high level insights and trends" and hourly data for deeper analysis (What Cost Explorer is used for). Turn on only the feature the question needs, and for hourly data only the services under study (Granular data). Resource-level data at daily granularity may answer a question about one resource without hourly data at all, though AWS does not say how its records are counted. Scope is the whole bill:
Hourly, resource-level data for 5,000 EC2 instances
$50.40 a monthwith 3 usage types each, all month, computed: 336 usage-record-months for each usage type of each instance.
Computed from the AWS Price List · us-east-1 · Sep 11, 2026
Plan around the lock: a change takes up to 48 hours to show and blocks the next one for 48 hours, so set the scope two days before it is needed. Turn it off when the inquiry ends, since the bill follows the records hosted, day by day. Pattern 2 prices a fleet both ways.
Lever 11 · Route
Move heavy reporting to Data Exports and Athena
On cost alone, the export wins only for many pulls. Pattern 3's reports pulled from the API once a day cost less than the export that replaces them:
The same reports pulled from the API once a day
$6.00 a monthat 20 pages a pull, computed: less than the export's $16.65, which costs less only above 83.25 such pulls a month.
Computed from the AWS Price List · us-east-1 · Sep 11, 2026
The export earns its place when many reports or teams pull every day, or when the questions need what the API does not give. Export CUR 2.0 with AWS Data Exports to Amazon S3 and query it there: Processing data exports has a Glue crawler load "all of the delivered partitions for the specified export to Athena", and notes that "Amazon Redshift offers fast query performance for processing your data from Data Exports." It follows that the data sits in files you keep as long as you choose, beyond Cost Explorer's 13 or 38 months, queried in SQL with no charge per page. The export's pages state no charge for the export itself, so what the pipeline pays is the storage and the queries:
Keeping and querying a CUR 2.0 export in Paris (eu-west-3)
| Item | List price | Unit |
|---|---|---|
| Amazon S3 Standard storageFirst 50 TB a month | $0.024 | per GB-month |
| Amazon Athena, data scannedPer query, 10 MB at least | $7.00 | per terabyte |
USD, before tax. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 14, 2026, fetched October 16, 2026.
Athena is "Charged for total data scanned per query with a minimum 10MB for each successful or cancelled queries", in the price list's words. Exports refresh at least once a day, no faster than Cost Explorer, so the pipeline should run on that pace too, and community queries may not run as they are: "The Well-Architected Labs SQL queries won't work in the data export query field, because Data Exports doesn't support aggregations and some of the other SQL syntax used in these queries." This lever is this article's reading, not AWS's: AWS documents the export as the place for deeper analysis, never in words as a way around the API charge. Pattern 3 prices it; the S3 article prices the storage classes the export can move to.
Lever 12 · Review
Review on a cadence
"The review effort should reflect potential benefit", in AWS's words (COST10-BP01):
How often AWS suggests reviewing a workload
| Workload | Reviewed |
|---|---|
| Core workloads, or workloads over ten percent of the bill | Quarterly or every six months |
| Workloads below ten percent of the bill | Annually |
Cost Explorer's own settings belong in that review: which granular-data features are on and for which services, whether anyone still reads multi-year data (AWS turns it off after three months unread, and it can be turned on again), which billing views the scripts query, and whether each schedule still matches a decision. Then the rest of the bill, through levers 1 to 7, starting from what Cost Comparison and Cost Anomaly Detection flagged since the last review.
In short: Name the bill before reading it, opt in to the recommendations, read the bill on the right cost type, commit after the rest is sized, and keep Cost Explorer's own lines down by calling its API at the pace of its data.
FAQ
Is AWS Cost Explorer free?
The console is. The API costs $0.01 per paginated request and granular data $0.01 per 1,000 records a month, one price in US East (N. Virginia) for every account (Is Cost Explorer free?).
How much does the Cost Explorer API cost?
$0.01 per page of results on the primary billing view, once per source on a custom view: polling every 5 minutes at 3 pages costs $259.20 a month, computed (Cost Explorer API pricing).
What is the difference between unblended and amortized cost?
Unblended cost shows an upfront fee on the day it is charged; amortized cost spreads reservation fees over the days they cover. Blended cost averages rates across an organization (Cost types).
How far back does Cost Explorer go?
13 months by default (one AWS page says 14), up to 38 at monthly granularity with multi-year data, and 14 days for hourly data (History: 13 months or 14).
Does Cost Anomaly Detection cost anything?
AWS gives it no price, on its pages or in the AWS Price List; it runs about three times a day (Cost Anomaly Detection).
Why doesn't Cost Explorer match my bill?
They differ on basis, grouping, refresh, rounding and refunds, and the invoice is what you owe (Cost Explorer and the invoice).