Calculator
The AI Spend Analyzer
Drop in a Claude or OpenAI usage export. It never leaves this browser. See where the money goes, what changed, whether it's concentrated on a frontier-tier model, and what the run-rate projects to, each finding linked to the matching lever on Reduce AI Costs.
Last updated
This is a static site with no backend to upload to. Parsing, classification, and analysis all happen in your browser's JavaScript. Check the Network tab while you drop a file in and you'll see nothing sent anywhere.
This result is not saved. It disappears when you reload the page. Copy it as Markdown or download it before you leave.
Free tool
Drop your AI usage export in and see it for yourself
Works with an Anthropic Console cost/usage export or an OpenAI Usage Dashboard export — the parser auto-detects a few other shapes too. Everything below computes in your browser; nothing you drop in is sent anywhere.
.csv files only — parsed entirely in your browser
Reading your file…
Where the money goes
What changed
Upload at least two periods to see what changed.
What to look at
Run-rate & projection
For the full five-lever breakdown, see reducing your LLM bill.
This is a static site with no backend to upload to — parsing and analysis run entirely in your browser's JavaScript. Check the Network tab while you use this tool and you'll see nothing sent anywhere.
How to get your CSV
The exact columns in your file depend on the grouping you pick when you export, so the Analyzer sniffs the header row rather than assuming one fixed layout. Here's exactly how to get a file from each provider.
Anthropic
- Open Cost reporting. In the Claude Console, open Usage & billing → Cost. Set the date range you want analyzed; a period-over-period comparison needs at least two periods.
- Pick a grouping. Group by Workspace, API key, or Model, whichever level of detail you want to see. The Analyzer sniffs the header row rather than assuming one fixed layout, so any of these works; it just changes what shows up as a line item.
- Export the CSV. Use the export button above the cost table to download a CSV of the data currently displayed.
- Drop the file in below. Drag the downloaded CSV onto the drop zone below, or click it to browse. Nothing is uploaded anywhere; open your browser's Network tab and watch for yourself.
Source: Cost and Usage Reporting in the Claude Console — Anthropic
OpenAI
- Open the Usage dashboard. In the OpenAI platform, open Usage. Switch to the Costs view for a dollar export, or Activity for a token-level one.
- Export the CSV. Use the export option to download usage details as a CSV. OpenAI's dashboard reports timestamps in UTC, and requesting a long date range can come back split across more than one file; the Analyzer reads each file on its own.
- Drop the file in below. Drag the downloaded CSV onto the drop zone below, or click it to browse. Nothing is uploaded anywhere; open your browser's Network tab and watch for yourself.
Source: How do I export monthly usage details from the API Usage Dashboard? — OpenAI
Already have an Admin/Cost API dump, or a hand-rolled CSV? Any file with a date column, a model or description column, and a cost column works — the parser doesn't require one specific vendor's export.
What we look for
Nine finding rules, each computed from your own numbers. Nothing here is a guaranteed saving; it's what to check next, and each one links to the matching lever on Reduce AI Costs where one applies.
- Most of this spend sits on a frontier-tier model. That isn't automatically a problem; a genuinely hard task needs a frontier model. It's the single highest-leverage place to check whether every one of these requests needs that tier, since a routing change here moves more dollars than anywhere else in this file.
- Spend jumped hard from one day to the next. A sudden, large jump usually traces to a specific, findable cause: an agent loop that stopped terminating, a retry storm, or a feature that shipped without a rate limit. That's the runaway-agent signature CostMon's alerting is built to catch before it repeats.
- Spend has been climbing for several periods straight. A single spike gets noticed. A quiet, steady ramp usually doesn't, until it's a much bigger number than the last time anyone checked. Worth confirming this tracks a known driver, such as more users or a new feature, rather than a slow leak nobody flagged.
- A new line item started partway through this file. A brand-new charge is worth a quick check even when it's expected, such as a new model version or a feature that just shipped. It's the easiest place to catch a silent model upgrade, or a misconfigured deployment, before it compounds over a few more billing periods.
- Spend barely drops on weekends. A workload driven by people using a product usually falls off on Saturday and Sunday. Spend that keeps running at close to the weekday rate is the signature of a scheduled job, an agent loop, or automation nobody remembered was still on a timer.
- Some of this spend isn't plain token usage. Web search, code execution, and session-based line items bill differently from ordinary input/output tokens, and neither prompt caching nor model routing touches them. Check these against the provider's own pricing docs rather than the token-focused levers on this site.
- Many small, one-off lines add up. No single one of these is worth chasing alone, but a long tail of small, unrecognized experiments or one-off runs can add up to a real, recoverable amount that a glance at only the top line items would miss.
- Nothing in this file is broken out as cached or batch. That doesn't mean caching or the batch API aren't in use. A cost export grouped by model can't show cache hit rate at all, since a cache read still bills and labels as that same model's tokens. If you haven't checked whether prompt caching or batch processing fit this workload, it's worth a look regardless of what this file shows.
- Some labels didn't match a known model. Rather than drop these silently or guess at what they are, CostMon names them. They're still counted in the totals above; they just didn't match a pattern this tool recognizes as a specific model or provider.
Sources
Where the export steps and model prices on this page come from
The export walkthroughs above are attributed to each provider's own support docs, current as of 2026-08-12. The frontier-model illustration in the findings uses the same pricing table behind the LLM Cost Calculator, not a forked copy.
- Anthropic — Cost and Usage Reporting in the Claude Console
Documents the Console's Usage and Cost pages, their export buttons, and the Workspace/API key/Model grouping options this tool's parser is built to read.
- OpenAI — How do I export monthly usage details from the API Usage Dashboard?
Documents the Usage Dashboard's Costs/Activity export, that timestamps are in UTC, and that a long date range can be split across multiple files.
FAQ
Common questions about the AI Spend Analyzer
Is my usage file uploaded anywhere?
No. CostMon's marketing site is a static build with no backend to upload to. The CSV you drop in is parsed, classified, and analyzed entirely in your browser's JavaScript. Open your browser's Network tab while you use the tool and you'll see no request carrying your data, because there isn't one.
What file formats does the Analyzer support?
An Anthropic Console cost or usage export, an OpenAI Usage Dashboard Cost or Activity export, an Admin/Cost API dump saved as CSV, or any hand-rolled CSV with a date column, a model or description column, and a cost column. The exact column set depends on the grouping you chose when you exported, and the parser sniffs the header row rather than assuming one fixed layout.
Why does the Analyzer's total differ from my actual invoice?
This tool reads whatever numbers are in the file you exported. It doesn't separately model credits, committed spend, tax, or currency conversion, and if your export is scoped to one workspace, one API key, or one project, it only sees that slice. Treat the total as a read of the file you gave it, not a substitute for the invoice.
Can this tool show me my cache hit rate?
No, and this is a real limitation worth stating plainly rather than glossing over: a cost export grouped by model bills a cache read as that same model's tokens, with no separate line for it. If nothing in your file names caching or batch explicitly, the no-cache-or-batch-lines finding says so; it isn't proof caching is off, only that this export can't show it.
Does the frontier-model comparison mean I'd save money by switching?
No, and this tool is built not to claim that. The comparison is list-price arithmetic straight from CostMon's own pricing table (data/llmPricing.ts): what the cheaper model's list rate is relative to the frontier model's, per input and output token. It says nothing about whether the cheaper model would actually finish the same task, which is the real question a routing decision has to answer.
Does this cover Amazon Bedrock or Google Vertex-hosted models?
Only if your export already shows them as line items, the way an Anthropic Console or OpenAI Usage Dashboard export would for direct API usage. A model billed through Bedrock or Vertex shows up on that cloud provider's own bill instead, which this tool doesn't read. CostMon's own product normalizes AWS, Anthropic, and SaaS spend into one view specifically because no single export can.
What if nothing on my file trips a rule?
The Analyzer says so plainly and lists what it checked, instead of manufacturing a finding to look useful. A clean result is still a useful result: it means nothing in this file matched a known pattern at the current thresholds.
What does CostMon do that this tool doesn't?
This tool reads one export, once, when you remember to download it. CostMon connects to Anthropic's Admin API with a read-only key and does this same kind of analysis continuously, alongside AWS and your other providers, so a spike like the ones this tool flags gets caught the day it starts, not the next time you happen to export a CSV.
A bill read by hand goes stale tomorrow.
Reading one export line by line takes real work. CostMon reads the next one for you, every day, for every provider you connect.