Reasoning tokens cost calculator
The hidden cost of a reasoning model's thinking, billed as output — at the ranges you measured per effort level or budget, or from a real usage object.
What it does
A reasoning model thinks before it answers, and the tokens it thinks with are billed as output — even though the answer you see does not contain them. On a short answer they can be most of the bill.
Choose a reasoning model, describe one request (its input, the visible answer, and how many requests you make), and give the calculator the reasoning figures you have:
- A range per effort level — the fewest and the most reasoning tokens you see at each level in your own usage logs.
- A thinking budget, if you set one, to see a request that spends all of it.
- A real usage object, pasted from one response. The calculator reads its reasoning tokens against its visible output and applies that ratio to your answer size.
For each, it shows the reasoning tokens per request, the cost per request and over all your requests, and how much of that is reasoning.
Everything runs in your browser. Nothing you enter — the usage object included — is sent anywhere.
How it computes
A request with r reasoning tokens is priced as one with visible answer + r output tokens, by the function Salyro prices usage with (calculateCost), from the model's own price list — the same way the provider bills it. Anthropic states it plainly: the tokens Claude uses while thinking are "billed as output tokens", and you are "billed for the full thinking process, not the thinking content visible in the response".
The hidden cost of a level is its cost less the same request without reasoning. A range is priced at both ends.
From a pasted usage object, the calculator reads the reasoning count each provider reports — reasoning_tokens for OpenAI, thoughtsTokenCount for Gemini, output_tokens_details.thinking_tokens for Anthropic — and the visible output is the rest of the output. Anthropic's Messages API reference documents that field as the "number of output tokens the model generated as internal reasoning", "always ≤ output_tokens", inside an output_tokens_details object that may be null; a usage object without it is shown as unknown. The ratio of the two, applied to your visible answer, gives the reasoning tokens per request. It is marked estimate: it comes from one request.
Reasoning also counts toward the most a model may write in one answer. Where the provider states that limit, the calculator flags a request whose answer and reasoning together pass it.
What it does not know
- How many reasoning tokens an effort level uses. No provider publishes a number: it depends on the task. Anthropic's effort page calls effort "a behavioral signal, not a strict token budget". So the calculator has no default. A level you leave empty is unknown, not zero and not a typical figure.
- Whether a budget is spent in full. Anthropic describes a thinking budget as "a target for how many tokens Claude can use", so the calculator prices a request that uses all of it as the far end, and never trims your ranges to the budget.
- Effort names differ between providers, and not every model has every level. The five levels are named as Anthropic's effort page names them (
low,medium,high,xhigh,max). Leave empty the levels your model does not have. - xAI's usage objects are not measured. How xAI counts reasoning tokens inside its output count could not be read from its page, and the two possible readings give different ratios. A usage object priced on an xAI model, or naming a Grok model (
grok-…,xai/grok-…,x-ai/grok-…), is shown as unknown — in the Chat Completions format and the Responses format alike. - A usage object that reports no reasoning count gives no ratio: that is shown as unknown, never as zero reasoning.
- A count the reader refuses — a reasoning count written as text, a negative number or a fraction, or counts that contradict each other — is not treated as a count left out. The calculator shows the reader's reason and the field it is about, and measures no ratio from that usage object.
- The example with figures in it shows the arithmetic. Its numbers are not provider figures; replace them with your own.
FAQ
Why are the effort levels empty when I open the calculator?
Because nobody publishes how many reasoning tokens they produce. Any figure the calculator started with would be one it made up. Measure your own requests — the usage object of any response reports it — or paste one here.
Are reasoning tokens billed at a different rate?
No price list in Salyro's catalogue prices them at a rate of their own: they are output tokens, at the output rate.
Where do I find the reasoning count?
In the response's usage object: completion_tokens_details.reasoning_tokens (OpenAI Chat Completions), output_tokens_details.reasoning_tokens (OpenAI Responses), thoughtsTokenCount (Gemini) and output_tokens_details.thinking_tokens (Anthropic, per its Messages API reference and its thinking cost page). A response that carries no such count gives no ratio: the calculator shows it as unknown. The calculator also reads a Responses stream event (response.completed), from the finished response inside it. The LLM usage explainer explains every field of it.
Sources
Prices come from Salyro's catalogue, with the revision and each provider's pricing page named under the result. Maximum output lengths name the provider page they were read from, and the date. Anthropic's Messages API reference and its pages on thinking steering and cost, effort and extended thinking were read on 2026-09-26. OpenAI's and Google's pages could not be read from this build's network; their usage fields are read as the formats core reads them.
Where the numbers come from
- Model and pricing data is a snapshot of the catalogue Salyro itself uses, taken when this site was built.
- Facts about models and providers that are not in that catalogue carry their own source and the date they were checked, and are shown as unknown where no reliable source exists.
