Abstention

An abstention is a declined verdict: A8 returns no answer for a criterion whose evidence cannot support the accuracy the request asked for. It is the mechanism that gives an answer its meaning — the rate attached to answered requests holds because the cases the evidence does not cover leave the answered set rather than entering it as guesses.

One number, min_accuracy, sets the terms of that trade.

§1What an abstention is

The verdict field comes back null — or empty, where the request carried no schema — and a top-level abstention says why. The request succeeded: the status is 200 (reference).

{ "choices": [{ "message": {"content": "{\"meets\": null}"}, ... }], "abstention": {"reason": "margin 0.31 below the 90% cut 0.44"} }

Where a schema asks for several fields, each is judged on its own criterion (reference), so some can answer while others decline. The reasons then arrive keyed by field:

{ "abstention": {"fields": {"tone": "margin 0.12 below the 90% cut 0.30"}} }
Treat the reason as prose It is written for a human reading a log. The wording and the numbers in it are not part of the contract — group abstentions by kind, but do not parse values out of the string.

§2Setting and earning an accuracy level

min_accuracy is one integer from 0 to 99, default 90 (reference). It is the accuracy a criterion's evidence must demonstrate before A8 returns a verdict.

ValueMeaning
199Answer only where at least that share of answers is correct. Higher values abstain more often.
0No promise: answer wherever a reading exists, with nothing promised and no interval.

Table 1. The parameter takes one integer from 0 to 99, and the two ranges mean different things.

0 is the same scale read at its bottom: requiring 0% accuracy requires nothing, so nothing is withheld.

§2.1The earned set is uneven

Each accuracy level is earned separately, per criterion, on data held out of fine-tuning — which is why a brand-new criterion declines at every level, and why the levels a criterion has earned form an uneven set. Evidence accumulates in whole samples, so achievable rates move in steps: a criterion can support 90 and genuinely not 91.

An ask therefore lands on the nearest earned level at or above it; where the criterion has earned no such level, it declines. Every answer reports the level it was served at, in min_accuracy on the response body, so a request for 91 may be answered at 95:

{ "min_accuracy": 95, // what this answer is promised at "choices": [{ "message": {"content": "{\"meets\": true}"}, ... }] }

Asking for more than a criterion has earned is a useful probe: the abstentions that appear at 95 but not at 90 measure how much evidence that criterion still needs.

§2.2Why a criterion declined

Four reasons, each with a different remedy. The left column quotes fragments of the reason string so the kind is recognisable in a log; the wording is not stable.

What reason saysWhat happenedWhat clears it
no instance-borne standardNothing to judge against yet — a new criterion with no evidence, and no standard supplied in the request.Fine-tune it, or supply a reference or context in the request.
the calibration evidence cannot support that promise yetThe criterion has evidence, but not enough to back the level asked for.Fine-tune it, or ask for a lower level.
does not extend to a subject this novelThis subject sits outside the material the criterion has seen, so the promise does not cover it.Fine-tune on material like it.
margin … below the … cutThe criterion is calibrated and the subject is familiar; this case sat too close to the line.Nothing, usually. A lower level answers it.

Table 2. Four things produce an abstention, and each points at a different remedy.

The first three concern the model's evidence and shrink with fine-tuning. The fourth concerns the subject and persists at some rate at every level above 0.

§3What the promise means

At min_accuracy: N, of the requests A8 answers, at least N% are correct. The quantifier ranges over the answered set — not over every request submitted, and not over any single verdict.

What it saysWhat it does not say
Across the verdicts returned at accuracy level 90, at least 90% are right.That any particular verdict is 90% likely to be right.
The rate holds on what was answered.Anything about how much gets answered. Coverage is the cost of the level, not part of the promise.

Table 3. The promise ranges over answered requests only; these are the two readings it does not license.

A verdict carries no probability. It is a determination A8 returned because the evidence behind that criterion meets the requested accuracy. "Correct" reads two ways, depending on the verdict's shape:

VerdictCorrect means
A label — a category or a yes/noThe label matches. At level 90, at least 90% of returned labels are the right one.
A score — a number on the schema's declared scaleThe returned interval contains the true value. At level 90, at least 90% of intervals do.

Table 4. "Correct" is defined by the verdict's shape: a label matches, or an interval contains the true value.

The trade is coverage for accuracy: min_accuracy raises the share of answers that are correct by lowering the share of requests that are answered. What that buys is separation. Every eval model meets material it cannot judge well, and one that must always answer resolves those cases by producing something anyway — output indistinguishable from the confident cases. No component generates a fallback verdict here when the evidence runs out; no language model runs on the response path to improvise one (see determinism). The hard cases therefore arrive as abstentions, and the answers that do arrive carry a rate that can be measured against the promise.

§3.1Auditing the promise

The served level is on every answer so the promise can be audited. Run samples whose right answer is already known, and group the answers by the level they were served at; within each group, the share that came out right should clear that group's number.

  • Abstentions leave the denominator. Scoring them as errors measures a different quantity: the accuracy rate is defined over the answered set only.
  • Track coverage separately. The share of requests answered is what a level costs, and it is the number to watch when raising one.
  • Group by the served level, not the asked one. They differ whenever an ask resolved upward.
  • Small counts move. A 90% promise can show 87% on thirty answers without having been broken. Compare against an interval, not a point.

A group that misses its number over enough answers to mean something is a defect in the promise, and worth reporting.

§4Edge cases

CaseBehaviour
min_accuracy: 0Every verdict answers where a reading exists, with nothing promised and no interval. None of §3 applies.
A brand-new criterionDeclines at every level above 0 until fine-tuning earns one.
A scored verdict near the boundaryAnswers rather than declining: a score honours the level by interval width. The width states how far the evidence constrains the value, so there is no width threshold to configure.
A criterion whose traffic has shiftedLevels earned on the old material can be withdrawn, and every level above 0 declines until fine-tuning on the new material re-earns them.

Table 5. Four situations produce behaviour that the general rule does not describe.

The last is the promise's one standing condition: incoming requests must resemble the material the level was earned on. Pointed at a genuinely different population — a new domain, another language, output from a different system — a criterion's evidence no longer describes the subjects under judgment.

§5Related concepts

  • Overview — the shape of a call, and where min_accuracy sits in it.
  • Fine-tuning — how a criterion earns its levels.
  • Reference — the wire contract and status codes.
  • Metrics API confidence — how well a trait discriminates at a score's region, reported alongside every trait score.