Your last bill, rewritten. Drop a usage export from OpenAI or Anthropic. It never leaves this browser.

How the numbers are worked out

The tool looks for these columns by name: model, input tokens, cached input tokens, cache writes, output tokens, cost and request count. You can change any choice in the row of menus above the results. Rows are added up per model.

Each model name is matched to the UplinkSwitch catalog, first exactly, then without a provider prefix such as openai/, a date suffix or -latest. So gpt-4o-2024-08-06 is priced as gpt-4o.

OpenAI counts cached tokens inside its input tokens. The tool subtracts them, so they are not counted twice. Anthropic's export keeps them apart, and the tool leaves them apart.

Each line costs uncached input at the input rate, plus cached input at the cached rate, plus cache writes at the input rate, plus output at the output rate, all per million tokens. A model with no cached rate charges cached tokens at the input rate.

The first total is what you paid, when the export has a cost column. Without one, the tool prices the same tokens at the developer's list price and labels the total "At list price". The second total uses our price for the same tokens.

A worked example · GPT-5.5, at today's prices

Say an OpenAI export shows 10 million input tokens for gpt-5.5, 2 million of them cached, and 1 million output tokens. The tool counts 8 million uncached input tokens, 2 million cached and 1 million out.

At OpenAI's list price that comes to $71.00. On UplinkSwitch the same tokens cost $21.30, 70% less. The rates come from the GPT-5.5 page.

What the estimate leaves out

  • Prices are the live catalog at the moment this page loaded. They already include any co-op discount on a model this month.
  • Balance is prepaid from $10, with no subscription. Each top-up locks your prices for 30 days.
  • Cache writes are priced at the input rate here. Your provider may have charged them differently; a cost column, when present, shows what you were actually charged.
  • Only models priced per token are compared. Models served on your own provider key are billed per request and are not in this tool.
  • "List price" is the developer's own published price, when we have it on record.

Questions

Which files does it read?
A CSV usage export. Columns are found by name, so exports from OpenAI and Anthropic both work, and so does any CSV with a model column and token counts. Files over 25 MB are refused; export a single month.
Is my file uploaded?
No. The file is read and priced in this browser. The rates arrive with the page, so nothing about your usage is sent anywhere.
Why is a model listed as "Not priced here"?
Either it is not in the UplinkSwitch catalog, or the export has no cost column and the developer has no list price on record, so there is nothing to compare. Those rows are left out of both totals.
Will my real bill match?
It is an estimate at the prices on this page today. Your real charge is worked out per request. The console lists every request with its charge, and every month has a signed statement.