Skip to content
HN On Hacker News ↗

Introducing SOB: A Multi-Source Structured Output Benchmark for LLMs

▲ 60 points 30 comments by khurdula 4w ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is a mix of AI-generated, and human-written content

58 %

AI likelihood · overall

Mixed
47% human-written 53% AI-generated
SEGMENTS · HUMAN 3 of 9
SEGMENTS · AI 3 of 9
WORD COUNT 1,300
PEAK AI % 100% · §1
Analyzed
Apr 29
backend: pangram/v3.3
Segments scanned
9 windows
avg 144 words each
Distribution
47 / 53%
human / AI fraction
Verdict
Mixed
Pangram v3.3

Article text · 1,300 words · 9 segments analyzed

Human AI-generated
§1 AI · 100%

copy markdownLLMs are increasingly deployed to produce structured data from unstructured and semi-structured sources, parsing invoices, medical records, meeting transcripts, and converting PDFs to database rows.For deterministic output, the next step in a workflow reads a specific key and expects a specific type. A hallucinated invoice_total or an array ordered incorrectly because of inaccurate date values silently breaks downstream systems. Yet existing benchmarks either check schema compliance alone or evaluate value correctness within a single source domain.Top 5 at a glanceA side-by-side look at the top 5 models across all seven metrics. The structural metrics (JSON Pass, Path Recall, Structure Coverage, Type Safety) cluster near the ceiling for every model, while Value Accuracy and Perfect Response separate them.The problem with current structured output benchmarksMost benchmarks collapse "structured output quality" into a single number: does the response parse, and does it validate against the schema? That's necessary, not sufficient.Problem in current benchmarksWhat it missesSchema compliance as the only metricA model can emit perfectly valid JSON with wrong values and score 100%Single-source inputs (text only)Real systems extract from OCR, screenshots, meeting audio, and PDFs, not just clean textNo difficulty weightingMedium and hard schemas are scored identically, hiding which models actually handle nested structureNo separation of parse / structure / value errorsYou can't tell if a model failed at JSON, at the schema, or at the factsReasoning / chain-of-thought blended inResults measure reasoning + extraction together, not the extraction capability itselfReferences to existing benchmarks: JSONSchemaBench | StructEval | DeepJSONEval | LLMStructBenchHow SOB worksSOB evaluates structured output across three modalities using the same scoring harness. The goal is to isolate the extraction capability from every other ability a model has.Three sources, one scoring pipelineModalitySource datasetEval recordsTextHotpotQA context passages5,000ImageolmOCR-bench documents209AudioAMI Meeting Corpus conversations115Every record is paired with a JSON Schema and a ground-truth answer that was verified against the source context through human authoring with an LLM cross-check, so a missing or hallucinated value is unambiguously wrong.To isolate the structured-output capability from vision and ASR quality, image and audio records are converted to text-normalized context before scoring.

§2 AI · 100%

Models see the same modality-stripped context, and the differences that remain are attributable to how they handle schemas, nesting, and value grounding under different content distributions.Seven metrics, not oneSOB reports seven metrics per record so you can see exactly where a model fails:MetricWhat it measuresValue AccuracyExact leaf-value match against the verified ground truth (primary)JSON Pass RateThe response is parseable JSONType SafetyAll leaf values match the declared JSON Schema typesStructure CoverageThe response includes the required object/array structurePath RecallAll required JSON paths (keys) are presentFaithfulnessValues are grounded in the source context, not hallucinatedPerfect ResponseEvery leaf value is exactly correct for the full recordValue Accuracy is the metric that matters for production. It's the share of fields a downstream system can trust without a human review step.Scoring gatesTwo gates prevent inflated scores from schema-only wins: Hardening gate: If JSON parse fails, downstream semantic metrics are zeroed for that record. Coverage gate: Value Accuracy is only credited on fields the model actually returned, with missing paths counting as wrong. Schemas are tagged between easy, medium or hard. The final leaderboard is schema-complexity-weighted (easy = 1.0, medium = 2.0, hard = 3.0) so hard schemas contribute more to the ranking than medium ones.

§3 Human · 21%

The resultsWe ran SOB on all models at temperature 0.0, max output 2048 tokens and no reasoning/thinking wherever the provider allows it, so the score reflects pure structured output and extraction capability.Unified leaderboardRankModelOverallValue AccFaithfulnessJSON PassPath RecallStructure CovType SafetyPerfect1GPT-5.40.8700.7980.8690.9930.9880.9810.9930.4692GLM-4.70.8610.8040.8680.9650.9590.9570.9650.5083Qwen3.5-35B0.8610.8010.8630.9690.9620.9600.9690.5004Gemini-2.5-Flash0.8600.7960.8560.9720.9670.9610.9720.4985Qwen3-235B0.8570.7860.8540.9780.9700.9680.9780.4636Interfaze-Beta0.8550.7950.8580.9670.9620.9570.9670.4807Claude-Sonnet-4.60.8540.7790.8580.9790.9750.9690.9790.4428GPT-4.10.8500.7830.8530.9690.9630.9590.9690.

§4 Human · 9%

4549GPT-50.8490.7690.8590.9830.9780.9720.9830.39810Gemma-3-27B0.8470.7770.8420.9690.9610.9580.9690.45411Qwen3-30B0.8420.7530.8320.9830.9740.9700.9830.40112Nemotron-3-Nano-30B0.8410.7470.8170.9870.9750.9710.9870.40013GPT-5-Mini0.8350.7510.8370.9720.9660.9600.9720.38814Gemma-4-31B0.8330.7780.8430.9430.9340.9340.9430.46115Gemini-3-Flash-Preview0.8330.7730.8310.9390.9350.9290.9390.48416Schematron-8B0.8320.7310.8070.9870.9760.9690

§5 Mixed · 43%

.9870.37017IBM-Granite-4.00.8320.7360.8120.9830.9650.9670.9830.38118Phi-40.8310.7870.8490.9690.9610.9610.9690.45219DS-R1-Distill-32B0.8270.7470.8190.9600.9450.9470.9600.41120Ministral-3-14B0.7780.7000.7730.9060.8980.8960.9060.36821GPT-OSS-20B0.7320.6670.7300.8450.8380.8360.8450.362View the full leaderboardThe top four are within 1 point of each other on overall score, but swap freely across individual metrics. Rank order is metric-specific, not absolute.Per-metric chartsEach chart re-sorts all 21 models on that single metric, so you can see which models win each category (not just the overall average).To expose the gaps, each chart's x-axis starts from a floor appropriate to that metric (e.g. 60% for Value Accuracy, 80% for JSON Pass).

§6 AI · 100%

Without that, the top cluster looks identical.Value AccuracyThe metric production systems care about. Note how tightly the top cluster sits compared to the overall leaderboard spread.FaithfulnessHow often values are grounded in context instead of hallucinated.JSON Pass RateAlmost every modern model clears 95%+ in the unified leaderboard. This is why a pass-rate-only benchmark can't separate them anymore.Path RecallWhether all required keys appear in the output.Structure CoverageWhether nested objects and arrays are present with the correct shape.Type SafetyWhether leaf values respect the declared JSON Schema types (no strings where numbers are expected).Perfect Response RateThe fraction of records where every single leaf value is exactly right. This is the hardest metric and collapses to roughly half even for the best models.The JSON-pass vs Value-Accuracy gapThe single most important view: most models clear 95%+ on JSON Pass, but Value Accuracy sits 15 to 30 points lower. That gap is the space where structured output benchmarks have been lying to us.The gap column is the headline. Every model on this list passes JSON parsing 97%+ of the time, but actual leaf-value extraction drops by 17 to 26 points. Qwen3.5-35B has the tightest gap (16.8) and the highest Value Accuracy on the list, while Schematron-8B passes JSON 98.7% of the time but lands the lowest Value Accuracy at 73.1% — a 25.6 point fall.ModelJSON PassValue AccuracyGapGPT-5.499.3%79.8%19.5 ppNemotron-3-Nano-30B98.7%74.7%24.0 ppSchematron-8B98.7%73.1%25.6

§7 Mixed · 40%

ppGPT-598.3%76.9%21.4 ppQwen3-30B98.3%75.3%23.0 ppIBM-Granite-4.098.3%73.6%24.7 ppClaude-Sonnet-4.697.9%77.9%20.0 ppQwen3-235B97.8%78.6%19.2 ppGemini-2.5-Flash97.2%79.6%17.6 ppGPT-5-Mini97.2%75.1%22.1 ppQwen3.5-35B96.9%80.1%16.8 ppGemma-3-27B96.9%77.7%19.2 ppModalities diverge more than we expectedThe same model scores very differently across text, image, and audio, even when every model gets the same text-normalized context. Audio is the hardest by far. The transcripts are long (~7,300 tokens on average) and full of overlapping speakers, so models struggle to pull out the right values.Best Value Accuracy by modality across all valid models:ModalityBest Value AccuracyLeaderText83.0%GLM-4.7Image67.2%Gemma-4-31BAudio23.7%Gemini-2.5-FlashNo single model wins all three. GPT-5.4 ranks 3rd on text but 9th on images. Schematron-8B ranks 19th on text but 10th on images. Gemma-4-31B ranks 11th on text but 1st on images.Seven patterns worth internalizing Valid JSON ≠ correct JSON. JSON Pass and Value Accuracy diverge by 15 to 30 points on every frontier model. Structural metrics mask value errors. Path Recall / Structure Coverage / Type Safety can all read ~99% while 20 to 30% of leaf values are still wrong, and Perfect Response collapses to about half even for the top models.

§8 Mixed · 36%

Model size is not a predictor. Qwen3.5-35B and GLM-4.7 beat GPT-5 and Claude-Sonnet-4.6 on Value Accuracy. Phi-4 (14B) edges out GPT-5 and GPT-5-Mini on text. Structured hallucinations are the hardest bug. The value is type-correct, schema-valid, and plausible, so it slips through most guardrails. On one audio record the ground truth is "target_market_age": "15 to 35 years" and a model returns "25 to 35" — invisible without field-level checks. Modalities don't transfer. Text-trained structured output behavior degrades sharply when the source is a transcribed conversation. Best Value Accuracy drops from 83.0% on text to 67.2% on images to 23.7% on audio. Rankings shift across modalities. GLM-4.7 leads text, Gemma-4-31B leads images, Gemini-2.5-Flash leads audio. No single model dominates all three, so a text-only leaderboard would mask the gaps. What's nextSOB is a first step, not a finish line. We'll keep growing the benchmark along several axes: More datasets, including newer datasets with increasing complexity and difficulty. More schemas and difficulty tiers, including recursive types, unions, and large enum spaces.

§9 Human · 2%

Continuous re-evaluation as new models ship, and ongoing transparent tracking of our own models against the same scoring harness so we can measure ourselves honestly. Why we released SOB?Our goal is to be the best general model for deterministic tasks and a key aspect of determinism is controllable and consistent output structure. The first step to making structured output better is to measure it and hold ourselves against the best. Docs: Structured Output in Interfaze Playground: Try structured output on Interfaze Paper: arXiv Dataset: Hugging Face SOB launch video