Output Discipline
Output costs five to six times input, and it is the part you control most directly
The asymmetry
Look down any provider's price list and the same ratio appears:
| Model | Input $/M | Output $/M | Ratio |
|---|---|---|---|
| Claude Opus 5 | $5 | $25 | 5× |
| Claude Sonnet 5 | $2 | $10 | 5× |
| Claude Haiku 4.5 | $1 | $5 | 5× |
| GPT-5.6 Sol | $5 | $30 | 6× |
| Gemini 3.6 Flash | $1.50 | $7.50 | 5× |
Output is where the money goes. And unlike input, which is largely determined by your codebase and history, output is set by how you ask.
The single highest-value habit
Ask for the diff, not the file.
Bad: "Update the config and show me the file." Good: "Update the config. Show only the changed lines."
On a 400-line config that is the difference between ~5,000 output tokens and ~40.
Patterns that cut output
Bound the format explicitly.
Answer in at most 3 bullet points. No preamble, no summary.
Ask for a decision, not an essay.
Bad: "What are the trade-offs between these three approaches?" Good: "Which of these three should I use? One sentence of reasoning."
You can always ask for the long version. You cannot un-pay for it.
Suppress restatement. Models often echo your question back before answering. A line in your system prompt stops it:
Do not restate the question or summarise what you are about to do. Answer directly.
Use max_tokens as a real budget, not as a safety limit set to the maximum. If a classification answer should be one word, max_tokens: 8 both saves money and catches prompt bugs loudly.
The counter-case
Reasoning output is not waste. When a model thinks through a hard problem, those tokens are what buys the correct answer, clamping them produces a cheap wrong answer, which is the most expensive kind.
The discipline is: short output for mechanical work, room to think for hard work. Not "short output always".
Measuring it
Pull the ratio from your own usage before you decide anything:
# Claude Code session costs, if you use it curl -O https://releve.neorgon.com/scripts/releve-mini.py python3 releve-mini.py --days 30
If output tokens are under 10% of input, you are already disciplined and caching is your lever. If output is 30%+ of input, start here.
See also: Session Cost Report Script · The Codex