Test-Time Compute: Paying for Thinking Instead of Parameters
5 min read · updated August 3, 2026
For a decade, better meant bigger: more parameters, more data, more pre-training compute, all paid once and amortised over every request. Test-time compute is the other dial. The weights stop moving and the work per question starts.
Two dials, one quality number
Think of the quality of an answer as a function of two budgets. The training budget is spent once by the vendor and shows up in your bill as a per-token price. The inference budget is spent per request, by you, and shows up as token count. Until roughly 2024 essentially all the public effort went into the first dial, and the second was fixed at “one forward pass per token, one sample per question”.
The reason this matters commercially rather than academically: those two budgets are paid by different people at different times. A training-scaled improvement is uniform — every request gets it, every request pays the same amortised share, including the trivial ones. A test-time-scaled improvement is per question, which means you can decline to buy it for the easy ninety per cent of your traffic. That option did not previously exist, and it is what makes routing between a reasoning model and a fast one a real lever rather than a micro-optimisation.
What the published scaling work shows
Two public results anchor the claim, and they are worth naming because a great deal of secondary writing repeats their conclusions without them.
OpenAI’s September 2024 introduction of the o1 model presented accuracy against both train-time and test-time compute on logarithmic axes, and the test-time curve rose smoothly across orders of magnitude — the first widely circulated evidence that inference compute scales like a resource rather than saturating immediately. Separately, Snell, Lee, Xu and Kumar’s 2024 paper Scaling LLM Test-Time Compute Optimally Can Be More Effective Than Scaling Model Parameters (arXiv 2408.03314) reported that on some FLOPs-matched comparisons, a smaller model given a compute-optimal test-time strategy beat a very much larger model given a single pass — with the important qualification, stated in the paper, that this holds on easier and intermediate problems and reverses on the hardest ones, where capacity the model does not have cannot be bought with retries.
That qualification is the practically useful half. Test-time compute converts latent capability into realised answers. It does not create capability that is not in the weights.
Four ways to spend it
| Strategy | Description |
|---|---|
| longer trace | One sample, more thinking tokens before the answer. What a reasoning model does natively. Cheapest to adopt: no orchestration, one API call. |
| best-of-N | N independent samples, pick one. Needs a picker — a verifier, a majority vote, or a test suite. Trivially parallel, so it costs tokens without costing wall-clock time. |
| self-consistency | Best-of-N where the picker is a majority vote over final answers. Works only where answers are comparable for equality, which is why it is a maths technique. |
| search | Expand, evaluate and prune partial solutions rather than whole ones. Highest ceiling, most machinery, needs a value estimate for a half-finished attempt. |
The order above is roughly the order of increasing engineering cost, and it is not the order of increasing benefit — which depends entirely on whether you have a cheap way to tell a good answer from a bad one. That single question determines more about your outcome than the choice of strategy does.
The Snell paper draws a further distinction that is easy to miss and useful to hold: sequential scaling, where the model revises its own previous attempt, behaves differently from parallel scaling, where independent attempts are drawn and one is selected. Their finding was that the better allocation depends on the difficulty of the question — easier questions benefit more from sequential revision, harder ones from parallel search — and that a strategy which picks between them per question beats either used alone. That is the same per-request principle as routing, applied one level down, and it is why “how much test-time compute” is a less useful question than “spent how”.
Who pays, and when
Run the arithmetic on a support-triage workload to see the shape. Suppose 100,000 requests a month, and suppose a non-reasoning call averages 900 input and 200 output tokens. Now suppose the reasoning version of the same task averages 3,000 hidden thinking tokens on top of the same 200 visible ones. Output tokens have gone from 200 to 3,200: sixteen times, on the dearer of the two rates. Input is unchanged, so the total multiplier depends on your input/output mix, but for most chat-shaped traffic the bill roughly quintuples.
Those multipliers are the ones to carry around, because they are structural rather than promotional. The per-token prices move; the fact that a hidden trace can be an order of magnitude longer than the answer it produces does not. If reasoning lifts resolution on the fifteen per cent of tickets that were previously escalating to a human, a five-fold token bill is obviously worth it. If it lifts nothing because the task was classification into six buckets, it is five times nothing.
There is a second-order effect worth noticing while you are here. The amortised training cost is baked into a price you cannot negotiate, whereas the test-time cost is a decision you make on every request. That is a genuine transfer of control rather than merely a transfer of expense: for the first time, the quality-versus-cost dial sits on your side of the API. Most teams still leave it fixed, which is the same mistake as running every query against the largest available model because it was easier to configure once.
The ceiling nobody removed
Test-time compute has an upper bound that is easy to forget while the curves look log-linear. Every strategy above is ultimately re-sampling from a distribution the weights define. If the correct answer has probability approximately zero under those weights, no number of samples finds it, and no length of trace reaches it. This is why the published gains cluster on problems the model can nearly do and collapse on ones it cannot do at all — a pattern documented from several directions, including the reasoning-model failure regimes discussed in whether these models actually reason.
The practical reading: treat test-time compute as a way to stop losing answers you were entitled to, not as a way to buy answers you were not.