AI Spend Doctor

Supported CSV formats and how we calculate

The free checkup reads usage and cost exports from Claude and OpenAI, plus any CSV with similar columns. This page lists the columns it understands, what each check needs, and how every number is calculated.

Tested so far on synthetic files only. The shapes below follow the official Anthropic Usage and Cost API and the OpenAI Usage and Costs API. Neither provider publishes a column list for the CSV you download from the dashboard, and we have not yet checked a real anonymized dashboard export. If your file is not read correctly, write to hello@aispenddoctor.com with the header row only, never the data.

What the file needs

To seeThe file needs
Total spendA valid cost column, or complete input and output token counts plus a model name and supported tier
Spend per model and price scenariosA model column (or a line item or description that contains the model name)
Daily spikesA date column with at least 7 different days
Cache shareInput and cache-read token counts, or both input and cache cost lines for the same model, day and tier
Batch shareA batch or service tier column

Export the previous full month. A shorter period works, but spikes need at least a week of days.

Shapes we recognize

Claude usage (tokens)

starting_at, model, service_tier, uncached_input_tokens, cache_read_input_tokens, cache_creation.ephemeral_5m_input_tokens, cache_creation.ephemeral_1h_input_tokens, output_tokens

Cost is estimated from tokens and the price list below. Input excludes cache reads and cache writes. If only cache_creation_input_tokens is present, writes are priced at the 5-minute rate and the result says so. If both the total and the 5m/1h split are present, the split is used and the total is not added again.

Claude cost report

starting_at, description, cost_type, model, token_type, service_tier, amount, currency

The Anthropic Cost API returns amount in cents. When a file has exactly this shape we read amount as cents and show a switch in case your file uses dollars.

OpenAI usage (tokens)

start_time, model, batch, service_tier, input_tokens, input_cached_tokens, input_uncached_tokens, output_tokens

In OpenAI data input_tokens includes cached and cache-write tokens, so uncached input is input_tokens minus input_cached_tokens and cache writes, or input_uncached_tokens when present. start_time in Unix seconds is read as a UTC date.

OpenAI costs

start_time, line_item, amount.value, amount.currency

amount.value is in US dollars. The model and token type come from line_item, for example gpt-6-sol, cached input.

Any other CSV

Columns such as date, model and cost_usd work. A column named only amount or cost is read as US dollars and the result says it was assumed, with a switch to cents. Comma, semicolon and tab separators, quoted values, a byte order mark and Windows line endings are handled.

Rows we do not count

The result always shows how many rows were read, used and left out, and why.

How we calculate

Price list

USD per million tokens, standard tier, short context, global routing, checked 27 September 2026. Sources: Anthropic pricing, OpenAI pricing. US-only inference on Claude 4.6 and later is priced 1.1× when the file has an inference_geo column set to us.

Claude

ModelInputCache readCache writeOutputTokenizer
Claude Fable 5.1$10$0.25$12.5 / $20$50newer
Claude Fable 5$10$1$12.5 / $20$50newer
Claude Opus 5.5$4$0.2$5 / $8$20newer
Claude Opus 5$5$0.5$6.25 / $10$25newer
Claude Opus 4.8$5$0.5$6.25 / $10$25newer
Claude Opus 4.7$5$0.5$6.25 / $10$25newer
Claude Opus 4.6$5$0.5$6.25 / $10$25previous
Claude Opus 4.5$5$0.5$6.25 / $10$25previous
Claude Opus 4.1$15$1.5$18.75 / $30$75previous
Claude Opus 4$15$1.5$18.75 / $30$75previous
Claude Sonnet 5$2$0.2$2.5 / $4$10newer
Claude Sonnet 4.6$3$0.3$3.75 / $6$15previous
Claude Sonnet 4.5$3$0.3$3.75 / $6$15previous
Claude Sonnet 4$3$0.3$3.75 / $6$15previous
Claude Haiku 4.5$1$0.1$1.25 / $2$5previous
Claude Haiku 3.5$0.8$0.08$1 / $1.6$4previous

Tokenizer: Anthropic says Claude 4.7 and later models use a newer tokenizer that produces about 30% more tokens for the same text.

OpenAI

ModelInputCache readCache writeOutputTokenizer
GPT-6 Astra$10$1$12.5$50
GPT-6 Sol$2$0.2$2.5$10
GPT-6 Luna$0.1$0.01$0.125$0.5
GPT-5.6 Sol$4$0.4$5$20
GPT-5.6 Terra$2$0.2same as input$12
GPT-5.6 Luna$0.2$0.02same as input$1.2
GPT-5.5$5$0.5same as input$30
GPT-5.4 mini$0.75$0.075same as input$4.5
GPT-5.4 nano$0.2$0.02same as input$1.25
GPT-5.4$2.5$0.25same as input$15
GPT-5.2$1.75$0.175same as input$14
GPT-5.1$1.25$0.125same as input$10
GPT-5 mini$0.25$0.025same as input$2
GPT-5 nano$0.05$0.005same as input$0.4
GPT-5$1.25$0.125same as input$10
GPT-4.1 mini$0.4$0.1same as input$1.6
GPT-4.1$2$0.5same as input$8
GPT-4o mini$0.15$0.075same as input$0.6
GPT-4o$2.5$1.25same as input$10
o4-mini$1.1$0.275same as input$4.4
o3$2$0.5same as input$8

GPT-5.5 and GPT-5.4 prices are for requests under 272K input tokens; longer requests cost more and are not modelled.

Check your CSV for free Try the demo

List prices checked 27 September 2026 on the official Anthropic and OpenAI price pages. Prices change; check the source before making decisions. Not affiliated with Anthropic or OpenAI. © 2026 Valeriy Danilov. AI Spend Doctor by AgentBridge Labs.