Map

JSON-Pass vs Value-Accuracy Gap

Wiki conceptllmstructured-outputevaluationproduction-ai โ†ณ show in map Markdown
title
JSON-Pass vs Value-Accuracy Gap
type
concept
summary
For LLM structured output, JSON parse rate clears 95%+ on every frontier model, but exact leaf-value accuracy sits 15-30 points lower โ€” schema-compliance benchmarks have been hiding a third of the actual error rate
tags
llm, structured-output, evaluation, production-ai
created
2026-04-30
updated
2026-04-30

The single most consequential finding from the Structured Output Benchmark is the gap between JSON Pass Rate (the response is valid JSON) and Value Accuracy (the leaf values are exactly correct). Every frontier model clears 95%+ on JSON Pass; Value Accuracy sits 15-30 percentage points below.

The numbers

Model JSON Pass Value Accuracy Gap
GPT-5.4 99.3% 79.8% 19.5 pp
Qwen3.5-35B 96.9% 80.1% 16.8 pp
GLM-4.7 96.5% 80.4% 16.1 pp
Gemini-2.5-Flash 97.2% 79.6% 17.6 pp
Claude-Sonnet-4.6 97.9% 77.9% 20.0 pp
GPT-5 98.3% 76.9% 21.4 pp
Schematron-8B 98.7% 73.1% 25.6 pp
Nemotron-3-Nano-30B 98.7% 74.7% 24.0 pp
Qwen3-30B 98.3% 75.3% 23.0 pp

The tightest gap โ€” Qwen3.5-35B at 16.8 pp โ€” still means roughly 1 in 6 fields is wrong despite the JSON parsing cleanly. The widest gap, Schematron-8B at 25.6 pp, means a quarter of fields are wrong on schema-clean output.

Why JSON Pass stopped being a useful metric

Around 2023, frontier models routinely failed JSON parsing. Constrained-decoding tools (Outlines, JSON Mode, Structured Outputs) closed that gap. By 2026 it's a solved problem at the parse level โ€” every API offers a "this WILL be valid JSON" mode, and the underlying models have learned schema syntax well enough that the pass rate clears 95%+ even without the constraint.

What constrained decoding can't fix is value correctness. A schema enforcer can guarantee the response has a total: number field. It cannot guarantee that total matches what the source document said.

Why the gap hides

Production teams reviewing structured-output performance often look at three signals:

  1. Schema-validation rate โ€” does the JSON parse and validate?
  2. Field-presence rate โ€” are all required keys there?
  3. Type-correctness โ€” are values the right primitive type?

All three can read 99%+ while value accuracy sits at 75%. Type Safety / Path Recall / Structure Coverage all cluster near the ceiling on SOB even when 20-30% of leaf values are wrong.

This produces the worst kind of false signal: the dashboard says "structured output is excellent," the production logs report no parse errors, and downstream systems silently accept hallucinated values until somebody notices an invoice_total is wrong by an order of magnitude.

What "structured hallucination" looks like

The hardest failure mode the SOB report calls out is the structured hallucination โ€” a type-correct, schema-valid, plausible-looking value that's just wrong. SOB's example: ground truth "target_market_age": "15 to 35 years", the model returns "25 to 35". The output passes schema validation, the type is right, the format is right. Only an exact leaf-value comparison against verified ground truth catches it.

Structured hallucinations are particularly bad because the usual guardrails โ€” schema enforcement, type checking, regex validators โ€” are useless against them. They require either field-level human review, ensemble-and-disagree, or grounding-faithfulness checks against the source context.

Practical implications

If you're shipping LLM structured output to production and the SLA is "downstream systems trust the values without review":

  • Don't treat schema validation as quality. Track exact-value accuracy against a held-out gold set.
  • Don't extrapolate text benchmarks to image/audio. SOB's audio Value Accuracy peaks at 23.7% โ€” meeting transcripts are out of reach for any current model without a different pipeline.
  • The model with the highest JSON Pass isn't necessarily the best. Schematron-8B has the highest Path Recall but the lowest Value Accuracy. Picking by parse rate flips you to a worse model.
  • Constrained decoding closes parse, not value. It's necessary but not sufficient.