toolcall() ← all concepts

// concept · output tokens

The reply costs ~5× the prompt.

Per token, what a model writes back is billed at about five times what you send in — and that ratio holds across every tier of the major APIs. The expensive half of your bill is the half you can steer.

// the mechanism

API pricing has two sides: input tokens (everything you send — system prompt, history, documents) and output tokens (everything the model writes back). They are priced separately, and output is consistently the expensive direction — on the current first-party tiers the ratio is exactly 5:1, top to bottom of the lineup. Elsewhere it varies but stays in the same region.

# per-token price, as a ratio (dollar figures date; the ratio holds) you send it replies ≈5× # every tier we checked

Most prompt-optimisation effort goes into the cheap direction. The levers that actually move a single call's bill are all on the output side.

The echo trap

The costliest habit is making the model retype what you already sent. Send a 10,000-token document and ask for "the document with corrections", and those same 10,000 tokens come back as output — you just bought your own file back at five times the price you paid to send it.

# same job, ~10x cheaper on the reply "return the corrected document" # pays 5x on ALL of it "return only the changed lines" # pays 5x on the diff

The same logic covers extraction and summarisation: ask for the fields, the diff, the verdict — not a restatement. Structured short-form output is a cost lever, not just a convenience.

Thinking bills as output too

Reasoning models spend tokens thinking before they answer, and those tokens are billed at the output rate whether you display the reasoning or not — visibility settings change what you see, not what you pay. On reasoning-heavy calls the thinking can dwarf the visible answer, so "the reply" in your bill includes text you never read.

Two levers, use both. Set max_tokens as the hard cap — it is enforced by the API, but the model doesn't see it, so a tight cap truncates rather than shortens. Then put the length you want in the prompt ("answer in two sentences", "return JSON only") — current models follow length instructions closely, and that is what actually makes the reply shorter.

The rule

cap it max_tokens as the hard ceiling shape it say the length and format you want never echo ask for changes, fields, verdicts — not restatements

One scope note: this is the per-token picture of a single call. In agent loops the input side dominates through sheer volume, because the whole transcript is re-sent every step — that story is in our agent-cost breakdown. Single calls are won on the output side; loops are won on the input side.

Sources: first-party API pricing tables (ratio verified across all current tiers, 2026-08) · provider docs on reasoning-token billing

One concept a week. Free.

The deeper, copy-paste version of each ToolCall short — in your inbox.

// total: 0.00 · spam: void · unsubscribe: one click