Reasoning tokens are the intermediate text a reasoning model generates before it gives its final answer. They are often not shown, but they are produced all the same and billed as output tokens. That is why a short answer can cost quite a bit more than what you see on screen.
❓The question comes in→📝Writes a draft→💬Gives the answer→💰It all counts as output
Put it to the test
A question from the app. Pick an answer.
It reasons 2000 tokens and shows 300. How many output tokens are billed?
Those are the visible ones. The draft is generated too, and billed as output even if hidden.
Reasoning counts as output even when hidden: 2000 + 300 = 2300.
The visible answer is output too: 2000 + 300 = 2300.
A reasoning model writes intermediate steps and then the answer. Many services hide or summarize those steps, but the work was already done: they are tokens the model generated, and what the model generates is output. How each service counts and shows them varies, so check its documentation.
A worked example
Made up rate: 4 USD per million output tokens. A model reasons 2,000 tokens and shows a 300 token answer. You are billed for 2,300 tokens, not 300: 2,300 × 4 ÷ 1,000,000 = 0.0092 USD. A thousand queries like it would be about 9.20 USD. If only the 300 visible ones counted, it would be 1.20 USD.
The real rate is set by each provider and changes over time; what matters in the example is the proportion. And output usually has a higher rate than input, so the draft weighs on the bill.
How to keep them in check
The draft grows or shrinks with the effort setting and with how hard the task is, but neither fixes an exact amount. Many APIs let you cap total output, and that cap includes reasoning. Set it too low and the model may run out of room before it answers. Measure on your cases and check the real usage the provider reports.