CostPulse Bill X-Ray · free bill check for AWS
Was it AWS or was it you?
Drop an AWS billing export. First, the AWS side: the list-price changes to the usage types you actually pay for, with your cost on each, the date AWS published the change and the month it took effect. Then your side: the spikes CostPulse would have alerted on, found with the same rule it runs every night, each with a verdict: your usage, your rate, AWS's list price, new spend, or unknown when the file can't tell.
Your file stays on your computer. It is read by this page, in your browser, and is not uploaded or sent anywhere. The page downloads its own code, fonts and price-change data files, and none of those requests carries anything from your file. You can watch the network tab in your browser's developer tools to check.
This tool needs JavaScript: the file is read by code running in your browser.
Works with: AWS Cost and Usage Report CSV (CUR 2.0 or legacy), plain or gzip; FOCUS 1.x CSV from AWS; Cost Explorer CSV with Daily granularity, grouped by Usage type (prices and spikes) or by Service (spikes only). A CUR or FOCUS file gives the sharpest answer: it has regions, operations and usage quantities. Spikes need at least 8 days; 5 weeks or more lets every rule act. Not supported: Parquet (export CSV instead), ZIP archives (unzip first), Excel files. Big files are fine: the file is read in a stream, not loaded whole.
Was it AWS or was it you?
1 AWS list-price changes to your usage types
2 Spikes CostPulse would have alerted on
Get these spikes the night they happen. CostPulse runs the rule in section 2 on your AWS bill every day, per service and region, and alerts you in Slack, Teams or email. 14 days free, no card. Price-aware alerts, which say in the alert itself when a spike lines up with an AWS list-price change, are in development. No date yet.
How this works
- Matching. A price change counts when its AWS service code and usage type are exactly the ones on your bill (CUR
line_item_product_codeandline_item_usage_type), and its operation matches too when both sides have one. EC2 and RDS use one usage type for several operating systems or engines (BoxUsage:m5.largeis Linux, RHEL and Windows alike), and the operation code is what tells them apart. - Your cost is the sum of the file's usage line items:
line_item_unblended_costfor CUR (line item types Usage, DiscountedUsage and SavingsPlanCoveredUsage), EffectiveCost for FOCUS (ChargeCategory Usage), the cost columns for Cost Explorer. Tax, credits, refunds, fees and commitment purchases are listed but not counted. - List prices only. These are AWS On-Demand list prices. Discounts, Savings Plans, Reserved Instances, private pricing and the free tier are not reflected, and usage covered by a reservation or Savings Plan doesn't pay the On-Demand rate. Reserved Instance price changes are not included.
- Published and effective. The published date is when AWS released the price list version with the change. The effective month is when that version says it took effect, often weeks earlier. AWS records it month by month, so the page shows a month, not a day.
- Which changes. Like-for-like changes only: the rate kept its unit, and the new price is within 11 times the old one either way (larger moves are mostly corrections of placeholder prices). Changes smaller than 1% are left out, since the price list has small rounding moves. Where a usage type has tiered prices that changed together, they are shown as one line with the range of changes.
- EC2 and Red Hat. AWS published a repricing of EC2 rates for Red Hat Enterprise Linux on 2024-08-02, effective July 2024: 287,052 like-for-like On-Demand rate changes across regions, instance types and RHEL variants, 231,129 up and 55,923 down (counted before the 1% filter). They apply only to RHEL rates (operation codes such as
RunInstances:0010), so they show up only if your file has RHEL usage. A version published on 2024-07-03 changed 659,005 Reserved Instance prices and 0 On-Demand prices, so it does not appear here. The RHEL rates are kept in 7 separate data files (2.7 MB compressed in total), downloaded only when your file shows those operations. - Cost Explorer files have no service or operation columns, so matches are on usage type alone, and changes to one operating system's or engine's rate are marked as unconfirmed.
- Spikes are found with CostPulse's own rule, ported line by line from its detector and tested against it on the same files (identical alerts, to the cent and the decimal). Per account, service and region, a day fires when its cost is at least the threshold (20% by default) over the average of the 7 days before it, and also over the average of the same weekday in the 4 weeks before, once there are 2 such days. On the 1st and 2nd of the month the bar is doubled. A line with no spend in the 7 days before is judged as new spend instead: it fires at $25 or more if the line had no spend in the 35 days before and the file reaches back that far. 50% or more over the average, or new spend of $100 or more, is critical. Cost is the same as above: unblended for CUR, EffectiveCost for FOCUS, usage line items only. The file's first 7 days are history only.
- Verdicts split each spike's rise over its 7-day baseline, per usage type, into usage (quantity change at the unit rate paid that week) and rate (unit rate change at the day's quantity). Two thirds or more on one side decides it; otherwise it's unknown. A rate rise counts as AWS list price only when the price data has an On-Demand list-price increase to that usage type taking effect in that week. Cost Explorer files have no quantities, so their spikes are always unknown.
- The data holds 281,109 On-Demand rate changes (one per usage type, operation and price list version) in 52 services and 124 price list versions, effective from October 2023 (36 months), from versions published through 2026-10-09. Check the AWS pricing pages before acting on a number.
- The sample file is synthetic: "Acme Corp" (123456789012) is CostPulse's made-up demo account, and its amounts, rates and incidents are invented to show each verdict. Its usage types are real AWS ones. One incident is planted to mirror a real change in the price data: a LoRaWAN message rate rise on October 1, 2026, the size of AWS's +160.87% list-price change effective that month. The page finds and matches that change on its own, as it would for your file.
- Privacy. The page's code reads the file with your browser's own file and gzip APIs, and works out the price matches, spikes and verdicts in the page. Nothing from the file is stored or sent. The page's Content Security Policy only lets its code connect to costpulse.io and Cloudflare Web Analytics, and an automated test checks that no request the page makes carries anything from the file. Like the rest of costpulse.io, the page counts visits with Cloudflare Web Analytics, which does not see the file.
Source: AWS Price List API, all historical versions since 2015, normalized by CostPulse. Data built 2026-10-12. CostPulse Bill X-Ray is a CostPulse tool. Not affiliated with or endorsed by Amazon Web Services.