Skip to content

Designing for Rejection

A Choice can only pick from its options. How rejection options, candidate coverage, and escalation bands keep a narrow taxonomy honest under inputs it never anticipated.

Published
Category
Jev Practices & Patterns
Resources cited
6
Reading time
3 min
Tags#rejection#confidence#patterns#evaluation

A Choice can only return one of the options it was given. That single constraint means every typed question needs an answer for "none of these" — and the research of the past month says that answer is the hardest one to get right. This is how to design for it: rejection options, candidate coverage, and what code should do when the probability lands in the middle.

Give the question a way out

The docs recommend an explicit other or none_of_the_above option whenever the list may not cover the input, and the probability on that option becomes your abstention signal. Without it, a state the taxonomy never anticipated still gets a confident pick from the least-wrong option, which is exactly the failure the arithmetic study measured.

Rejection is weaker than it looks

On paired arithmetic problems with an explicit rejection option, answer-present accuracy reached 99% while correct rejection fell to 7% — across magnitudes, operation depths, and rejection labels. The same model answered a direct Noul verification of candidate correctness at 99%. The gap is between verifying an option and choosing the rejection option, and the fix is unglamorous: a decision threshold selected on separate development problems raised rejection to 79% while keeping 97% answer-present accuracy.

Coverage is a separate number

Accuracy hides two failure sources: picking wrong from the list, and the list not containing the answer. The coverage benchmark separates them with artificial omissions, retrieval misses, and out-of-scope queries — and finds rejection policies do not transfer across tasks. A Jev policy calibrated on DBpedia rejected 69.3% of covered Emotion inputs; an Emotion policy lost detection entirely. Measure coverage per candidate set, not per model.

Decide what code does with a low probability

Three outcomes, three policies:

SignalPolicyWhen it fits
Rejection option winsRoute to fallback or re-ask with a wider listTaxonomies that drift
Confidence below thresholdEscalate to a stronger model or humanExpensive errors
Confident but wrongShadow mode firstNew question shapes

The confidence-gated routing pattern is the documented version of the middle row, and the confidence gates article covers threshold selection. The key discipline is that the gate is code: the model returns the probability, and your threshold decides.

Escalation is the other side of rejection

The Laya reproduction study pre-registered a gate and found the frozen rule beat random escalation but missed its 10% accepted-set error target on both tracks — a useful reminder that a gate is only as good as its held-out evaluation. A System One transfer study found a 10–30% escalation band routed to a local classifier matched or beat the better of the two systems, and routing to an LLM instead matched that LLM at 24–77% lower API cost.

Test rejection before you trust it

  • Include a rejection option in every list that can be incomplete, and gate on its probability.
  • Build an out-of-scope test set — inputs you know are not in the taxonomy — and measure rejection on it, not only accuracy on covered inputs.
  • Tune the threshold on one split and check it on another; the arithmetic study's 7%→79% swing came from exactly that discipline.
  • Re-measure when the candidate set changes: option-set effects are real even for hosted models.

Rejection is not a fallback for a bad question. It is the mechanism that lets the rest of your taxonomy stay narrow and honest.

From the Jev directory

The resources behind this article.

A report identifying an arithmetic-dependent rejection bottleneck in Jev: on paired arithmetic problems answer-present accuracy reaches 99% while correct rejection falls to 7%. A development-selected decision threshold lifts rejection from 7% to 79% while retaining 97% answer-present accuracy.
Jev Practices & PatternsArticle#community#research#arxiv
Community
A benchmark of rejection-policy transfer across Laya, Jev, and Qwen2.5-7B-Instruct at equal calibration budgets, covering artificial omission, natural retrieval misses, and public out-of-scope queries. Source calibration often fails to preserve the target operating point.
Jev Benchmarks & EvaluationsArticle#community#research#arxiv
An independent reproduction of the shipped Laya Typed-Decisions checkpoint, a 421M-parameter ModernBERT-large assessor, finding it uniformly under-confident rather than over-confident. A single fitted temperature removes most miscalibration, while the preregistered isotonic selection failed its held-out contrast.
Jev Benchmarks & EvaluationsArticle#community#research#arxiv
Community
A pre-registered evaluation of the commercial Jev model and open Laya-multilingual on Indonesian regional languages, using the parallel NusaX and NusaTranslation test sets. Jev is more accurate on sentences lexically closer to Indonesian, and the human Indonesian translation raises accuracy by up to 37.2 points.
Jev Benchmarks & EvaluationsArticle#community#research#arxiv
Use the answer to decide what to do and confidence to decide whether to act: the voice-banking example routes below 0.6 to a human and needs 0.85 or more to auto-approve a transfer.
Jev Practices & PatternsDocs#official#patterns#confidence
Official
A pre-registered study of whether jev-1.13.0 satisfies independence of irrelevant alternatives, using 299,463 calls on intent and topic classification. Every added option shifts the log-odds between the gold and strongest wrong label by 0.20–0.52 nats RMS, 1.2 to 3 times run-to-run variation.
Jev Benchmarks & EvaluationsArticle#community#research#arxiv
Community
Back to all articles

More Jev articles

More than eighty preprints now evaluate, attack, and reproduce the typed-decision class. The broadest board, the coherence gap, the rejection bottleneck, and the attacks that still work.
Jev Practices & Patterns#research#evaluation#calibration
Read article
Training recipes, looped architectures, and language ports: what the open side of the typed-decision class shipped this month, and how to pick by runtime and calibration instead of the leaderboard.
Jev Models & Reimplementations#open-models#training#local
Read article

From the Jev community

Posts from builders shipping with Jev right now.

Follow @typesafeai