Reasoning tokens: the part of the answer you never see.
Every major AI provider now ships models that think before they answer — privately drafting reasoning in tokens you're billed for but mostly never read. Here's where those tokens come from, why they land in the most expensive column of your bill, and the two settings that keep them from silently eating your output budget.
Your answer now has a first draft
Ask a current-generation model a hard question and the first thing it produces isn't your answer. It's a private working draft: the model reasons through the problem step by step, tries an approach, discards it, checks itself — and only then writes the response you actually see. OpenAI calls these reasoning tokens; Google and Anthropic call it thinking. The visibility rules differ — OpenAI never shows you the raw reasoning at all, while Anthropic and Google return a summary at most — but the meter runs the same way everywhere: every token of that invisible draft is counted, and it shows up on your bill.
Billed at the most expensive rate on the sheet
Every provider prices input and output tokens separately, and output is always the expensive meter. On Gemini's current Flash-Lite — the model family ShotCanvas uses for listing copy — input runs $0.30 per million tokens and output runs $2.50, an eight-fold difference. The other providers' price sheets have the same shape, typically four to five times.
Reasoning tokens bill as output on all three platforms. OpenAI itemizes them in the
usage object under reasoning_tokens, Gemini reports a thoughts token count, and
Anthropic bills thinking as output whether or not you display it. So a model that deliberates
for 1,500 tokens before producing a 50-token answer just charged you thirty times the visible
response, at the top rate. That's not a scam — sometimes those 1,500 tokens are the
difference between a right answer and a confident wrong one. But it should be a decision you
made, not a default you never noticed. And the cost isn't only money: reasoning happens
before the first visible token arrives, so it's also the long pause your user spends staring
at a spinner.
The truncation trap
Here's the part that actually breaks apps. The maximum-output-tokens setting on your API call caps the thinking and the answer combined. If the model decides a request deserves heavy deliberation, the thinking can consume the entire allowance before a single visible token is written — and you get back an empty or half-finished response, with a usage report insisting you paid for thousands of output tokens.
We hit exactly this in ShotCanvas. When thinking-capable Gemini models entered our fallback chain, the headline generator — which asks for strict JSON — started returning truncated fragments. The dashboard said the calls were consuming their full output budgets. They were: on thoughts. The model spent everything we'd allotted reasoning about screenshot headlines and got cut off mid-sentence writing them. Nothing errored; the responses just quietly came back broken. OpenAI's own documentation now recommends reserving at least 25,000 tokens for reasoning plus output when you start experimenting with these models — advice worth taking literally, and a hint at how large the invisible draft can get.
Every provider ships a different default
Whether you're paying for reasoning right now depends entirely on which model you call. Gemini 2.5 Pro and Flash think by default, with a dynamic budget the model chooses per request; Flash-Lite ships with thinking off. Setting a thinking budget of zero disables it on the Flash tiers, but Pro won't let you turn it off entirely. OpenAI's reasoning models always reason — you get an effort dial rather than an off switch. Anthropic's Claude made thinking opt-in on older models and decides adaptively on newer ones. The practical upshot: before shipping an AI feature, read your specific model's default, then check one real response's usage object for a reasoning or thoughts line. If it's non-zero and you never opted in, you're already spending on it.
When thinking is worth paying for
Reasoning earns its cost where the task is genuinely multi-step and being wrong is expensive: planning a chain of tool calls, debugging, math, extraction where the constraints interact and a greedy first pass gets trapped. It's mostly waste on what you might call first-draft tasks — classification, translation, short marketing copy, reformatting — where the model's immediate answer is as good as its considered one, and the deliberation you're paying output rates for changes nothing.
Don't guess which bucket your feature is in — measure it. Run the same prompts with thinking off, then with a small fixed budget, and diff the quality, the latency, and the actual cost per call. It's an afternoon of work, and it converts "the new models feel smarter" into a number you can defend.
Where we landed
ShotCanvas generates headlines, store descriptions, and translations with Gemini Flash-Lite. Our first response to the truncation bug was a blanket thinking budget of zero on every call — cheap, fast, and safe. Later we built a small model lab into the app that runs the same generation across budgets of 0, 256, 512, and 1,024 tokens and compares quality, latency, and real cost side by side. Production now runs a fixed 512-token budget: at Flash-Lite rates that's about an eighth of a cent per call, and — the actual lesson — every call adds those 512 tokens on top of its output cap, so thoughts can never starve the answer again. Two settings, both explicit: cap the thinking, and budget for it.
Every AI feature in ShotCanvas — the headline writer, the auto-designer, the metadata generator — runs on exactly this discipline, which is part of why the free tier can exist at all. If you'd rather see the output than the token accounting, it's a click away.