Target vs maximum

The estimate and the enforced ceiling.

targetOutputTokens is the engine's estimate of the output tokens the answer needs. Nothing is enforced against it. Estimated sufficient output in a meted eval report is the sum of targets.

maxOutputTokens is the ceiling. When a mode applies an allocation, this value becomes max_tokens or max_completion_tokens on the upstream request.

Target       38
Maximum      64

Why they differ

The target is an estimate, and an estimate can be low. If the ceiling equalled the target, any request the engine underestimated would stop mid-answer with finish_reason: "length", returning a partial response that has already been paid for.

The ceiling is the target multiplied by a headroom factor keyed to complexity:

ComplexityHeadroom
trivial×2.0
simple×1.7
moderate×1.55
complex×1.4
open_ended×1.3

Simpler tasks get a larger multiplier because their targets are small, and the engine's absolute error does not shrink in proportion. A 20-token error against a 3,000-token target is under one percent; the same error against a 30-token target is two thirds of the answer. Multiplying by 1.7 rather than 1.3 keeps the headroom large enough to absorb it.

For the example above: 38 × 1.7 = 64.6, rounded to 64.

Reasoning models

Models like o3 and gpt-5 bill hidden reasoning tokens against the same completion ceiling. A ceiling sized only for the visible answer would truncate every reply before it started.

Meted reserves for it, scaled by complexity:

$ meted inspect "Explain the CAP theorem" --model o3-mini --verbose

explanation · moderate

Target       320
Maximum     1216

Rationale
  reasoning_reserve:717    Extra ceiling reserved for hidden reasoning tokens

Caps

The ceiling is then clamped, in order:

  1. To the model's maximum output tokens, if Meted knows the model
  2. To your own max_tokens, if you set one

Unknown models get a conservative ceiling and a model_unknown rationale code.

What gets applied

The mode decides. balanced applies maximum as-is; conservative applies maximum × 1.5; aggressive applies maximum × 0.8, never below target.

$ meted inspect "What is a semaphore?" --mode balanced

definition · simple

Target       38
Maximum      64

Applied      96 (balanced)

The applied value is 96 rather than 64 because balanced has a floor of 96 tokens. The floor is the lowest ceiling a mode will send upstream, whatever the engine returned.

Was this page helpful?