AWS Cost Explorer latency
Why AWS Cost Explorer doesn't show today's spend
AWS Cost Explorer never shows your spend from today because all displayed costs reflect usage only up to the previous day. If today is December 2, the data in your console stops at December 1.
Cost Explorer refreshes cost data at least once every 24 hours, though upstream billing applications can delay updates even longer. If you need to know what a test script or a bad loop broke twenty minutes ago, Cost Explorer won't tell you. Here is how AWS updates this data, how its hourly granularity and API billing work, and how to get numbers earlier.
The 24-hour delay and the Cost Explorer dashboard
When you open the AWS Cost Explorer dashboard, you see estimated month-to-date costs, forecasted month-end costs, a daily costs graph, your five top cost trends, and recently viewed reports. None of those numbers include today. Costs are displayed only in US dollars, and they pull from the same underlying dataset that generates AWS Cost and Usage Reports (CUR) and detailed billing reports. You can download this data into a comma-separated value (CSV) file whenever you need to look through raw rows.
When you first sign up for AWS Cost Explorer, AWS prepares your current month of data in about 24 hours. The rest of your history - up to 13 months - takes a few days longer to show up.
Once you enable Cost Explorer, you cannot disable it. That is permanent. The service then recalculates your data on its daily schedule, forecasting spending for the next 18 months based on past patterns. But because the pipeline relies on processing records from different service billing applications, some line items take longer than 24 hours to post. A spike happening right now is invisible on that dashboard.
Hourly granularity: limits, lookbacks, and pricing
By default, Cost Explorer shows daily and monthly views. It does offer hourly granularity, but it comes with a strict lookback limit and a direct charge on your bill.
Hourly data looks back over 14 days, and AWS limits it to two specific features: cost and usage data for all services without resource-level details, and EC2 resource-level data. If you try to inspect hourly trends from three weeks ago, you won't find them.
Cost Explorer provides granular data through three configurable features in your settings:
- Resource-level data at daily granularity
- Cost and usage data for all AWS services at hourly granularity (without resource-level data)
- EC2-Instances resource-level data at hourly granularity
Viewing costs in the Cost Explorer user interface is free of charge, but enabling hourly granularity is not. AWS charges $0.00000033 per usage record per day for hourly tracking. That equals $0.01 per 1,000 usage records monthly. A usage record is a single line item with a specific resource and usage type. One EC2 instance running for 24 hours produces 24 separate usage records every day.
AWS bills you daily for hourly granularity based on the total hourly usage records hosted in Cost Explorer for the past 14 days. If you keep one EC2 instance running all day every day for a month, Cost Explorer hosts 336 records per day (24 hours multiplied by 14 days). At $0.00000033 per record, that costs $0.0001 daily, which works out to $0.003 for a 30-day month.
Once enabled, you can view hourly data in three reports: Cost Explorer, Savings Plans Utilization, and Savings Plans Coverage reports. AWS does not charge extra for viewing the data across multiple reports.
Keep in mind that granular data visibility is only available for billing views that show chargeable data. If you use AWS Billing Conductor as an account in a standard billing group or a billing transfer billing group, you cannot view granular data in Cost Explorer.
| Feature | Lookback window | Pricing | Notes |
|---|---|---|---|
| Default Cost Explorer UI | Up to 13 months | Free | Daily and monthly granularity |
| Hourly Cost & Usage (All Services) | Past 14 days | $0.00000033 per record / day | No resource-level details |
| Hourly EC2 Resource-Level Data | Past 14 days | $0.00000033 per record / day | Line item per instance per hour |
| Cost Explorer API (Primary View) | Up to 13 months | $0.01 per paginated request | Query data programmatically |
| Cost Explorer API (Custom View) | Up to 13 months | $0.01 per source / request | 5 sources equal $0.05 per call |
Cost Explorer API pricing
Indie developers often try to solve the latency problem by writing a script to poll the Cost Explorer API. That doesn't make the underlying data update any faster, and it adds new charges.
Each paginated request to the AWS Cost Explorer API costs $0.01. If you run queries against your primary billing view, which holds the cost data associated with your account, every request incurs that penny.
Custom billing views cost more. AWS charges $0.01 per source for each API request. If you set up a custom billing view that combines 5 separate billing views into a single view, that view has 5 sources, so each API request costs $0.05. Polling an automated script every five minutes against a multi-source view will run up an invoice quickly without giving you fresher numbers.
Why your bill does not match Cost Explorer
You might check Cost Explorer at the end of the month and notice that its totals do not match your final invoice. Several specific rules govern how Cost Explorer calculates numbers:
Refunds and discounts
Neither the Month-to-date costs nor the Forecasted month end costs on the dashboard include refunds. Daily unblended costs also exclude refunds. If AWS credited you for a service disruption, daily charts won't reflect it.
Discounts complicate things further. When you view unblended costs at a monthly granularity, discounts are included by default when forecasting costs. In that monthly chart, discounts show up under the label RI Volume Discount. That amount aligns with the discount shown in your Billing and Cost Management console.
To see your discounts in the console, navigate to Bills and select the arrow next to Total Discounts under Credits, Total Discounts and Tax Invoices.
If you want to view your gross monthly charges in Cost Explorer by excluding those RI Volume Discounts, use these exact filter steps:
- In the left pane, choose Cost Explorer.
- Choose Cost & Usage.
- On the Filters pane, choose Charge Type.
- Select RI Volume Discount.
- In the dropdown, change Include only to Exclude only.
- Select Apply filters.
Unblended, net, and amortized metrics
Net unblended costs show your net spend after all applicable discounts are calculated. Even when looking at net unblended costs, AWS recommends manually excluding adjustments like refunds and credits.
Amortized costs work differently. AWS estimates amortized costs by combining unblended upfront and recurring reservation fees for Amazon EC2 Reserved Instances or Savings Plans, calculating the effective rate over the period that fee applies. In the daily view, Cost Explorer shows the unused portion of commitment fees on the first of the month or on the date of purchase.
Net amortized costs show the cost of those commitments after discounts are applied, amortized over the commitment period. If you look at unblended costs on the first of the month, a recurring commitment fee makes spend look like an enormous spike, while the amortized view smooths it out. For broader guidance on month-end tracking, read how do I forecast my cloud bill before the month ends?.
Catching runaway costs before tomorrow
Since Cost Explorer is always looking backward, relying on it for alerting leaves a 24-hour blind spot. You can track early warning signs through CloudWatch metrics, or look into how do I set up AWS billing alerts that warn me before the bill gets out of hand? as well as will AWS Cost Anomaly Detection catch a runaway bill in time?.
Costbrake watches what you spend across cloud, AI and SaaS providers and alerts you on spikes, budget thresholds, month-end forecasts and new charges. It monitors 23 providers, including AWS, Google Cloud, Azure, Cloudflare, OpenAI, Anthropic, RunPod, and Supabase.
For AWS, Costbrake reads Cost Explorer for settled bills alongside live CloudWatch metrics to catch surges early. Its CloudWatch estimates for Lambda, Bedrock, NAT gateway and GPU instance spend run hourly on the Free plan and every 5 minutes on Pro ($12 a month) and Team ($39 a month), scaling up to every minute during a spike; Cost Explorer itself is re-read every 4 hours.
To pull live estimates without running up API charges, Costbrake uses a read-only IAM policy with just three permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CostbrakeReadCosts",
"Effect": "Allow",
"Action": [
"ce:GetCostAndUsage"
],
"Resource": "*"
},
{
"Sid": "CostbrakeLiveEstimates",
"Effect": "Allow",
"Action": [
"cloudwatch:GetMetricData",
"cloudwatch:ListMetrics"
],
"Resource": "*"
}
]
}Costbrake limits Cost Explorer API calls to at most once every 4 hours and syncs the ledger daily, keeping API usage around 210 requests (about $2 a month on your AWS bill). It reads CloudWatch metrics for Lambda requests and duration, Bedrock tokens per model, NAT gateway data processed, and running G, P, and Inf instance vCPUs at us-east-1 list prices across up to 8 regions with spend.
If something runs wild, Costbrake offers optional brakes on Pro and Team for 18 providers. An admin must manually confirm any action; Costbrake never brakes on its own. For AWS, those actions let you throttle a Lambda function to zero concurrency, stop an EC2 instance, turn off an IAM access key, or attach a deny policy to block Bedrock inference. To connect an AWS account, hand the instructions to your coding agent via agent setup.
Questions and answers
How often does AWS Cost Explorer update its data?
AWS Cost Explorer refreshes cost data at least once every 24 hours. Because updates depend on upstream billing applications pushing their numbers, some service records can take longer than 24 hours to show up.
Can I see today's costs in AWS Cost Explorer?
No. All costs displayed in Cost Explorer reflect usage only up to the previous day. If today is December 2, the data in your reports includes usage through December 1.
How much does the AWS Cost Explorer API cost?
Each paginated request to the Cost Explorer API using your primary billing view costs $0.01. If you use custom billing views, requests cost $0.01 per source, meaning a view combining 5 sources costs $0.05 per API call.
Does AWS Cost Explorer show hourly spend?
Yes, but only for the past 14 days and only for cost and usage data without resource details, or for EC2 resource-level data. Hourly granularity costs $0.00000033 per usage record per day, billed daily.
Why doesn't Cost Explorer match my monthly invoice?
Cost Explorer unblended daily, month-to-date, and forecasted month-end views do not include refunds. Additionally, upfront reservation fees appear as large one-day charges unless you switch to an amortized cost view.
Sources
Updated