Usage CSV Analyser
Paste a usage export, pick any column, and get spend per group with shares and cost per request.
4 groups by feature. The largest is doc-summary at 30.3%, and the top three are 81.1% of the spend.
- doc-summary
- $35.35 · 30.3% · $0.04/req
- search-answers
- $31.29 · 26.8% · $0.0085/req
- chat-assistant
- $27.93 · 23.9% · $0.0037/req
- tagging
- $22.05 · 18.9% · $0.0012/req
- Rows parsed
- 8
- Columns found
- date, feature, model, requests, total_tokens, cost_usd
- Grouping column
- feature
- Cost column
- cost_usd
- Request column
- requests
- Distinct groups
- 4
- Total tokens
- 33,320,000
- Total requests
- 30,540
- Average cost per request
- $0.0038
- Share held by the top 3 groups
- 81.1%
Attribution is the first question, not the second
A total tells you what you spent. It never tells you what to do. The useful move on any usage export is to collapse it along one dimension — feature, model, key, customer, endpoint — and look at the shares, because spend on any of those is almost always concentrated. One feature, or one customer, or one model, is usually most of the bill, and it is frequently not the one anyone assumed.
Two columns in the output are worth more than the totals. The share column tells you where optimisation effort is worth spending: a 30% saving on something that is 4% of the bill is not a project. The cost per request column tells you something different and more actionable — whether a group is expensive because it is popular or because each call is heavy. A high-volume feature with a low per-request cost is working as designed; a low-volume feature with a very high per-request cost is usually a prompt that grew, a retry loop, or an agent with no step limit, and it is the one to open first.
The limits are worth stating. This reads what your export contains, and exports differ: some give you cost, some give only tokens, and if input and output tokens are billed apart then a single blended rate cannot reproduce the real figure. Rows that carry no cost and no tokens contribute nothing rather than an error. And attribution is only as good as your tagging — if half your traffic goes out under a single shared key with no feature tag, the biggest group in this table will be "the untagged half", which is itself the finding.