On July 9, OpenAI shipped the GPT-5.6 family — Luna, Terra, Sol — claiming to beat Claude Fable 5 “by 13.1 points”. On July 24, Anthropic answered with Claude Opus 5 and its 96% on SWE-bench Verified. Two weeks, two press releases, an avalanche of percentages… and one legitimate question: what are we supposed to do with these numbers? That’s where you need to understand what a benchmark is — and above all, how to read one. You’ll see: it’s not rocket science.

The crash test for models

A benchmark is the Euro NCAP crash test of LLMs: a standardized trial, identical for every candidate, producing a comparable score. Like for cars, it rests on three ingredients:

  1. A frozen set of tasks: hundreds or thousands of problems, always the same — the concrete wall is in the same place for everyone.
  2. An automatic metric: a binary or numeric criterion that requires no human opinion — the crash dummy has sensors, not feelings.
  3. An execution harness: the protocol that presents the task to the model and collects its answer — the launch rail of the crash test.

The final score is a success percentage. “Fable 5: 95% on SWE-bench Verified” means: out of the 500 tasks in the set, the model solved 95%.

How it works in practice

Take SWE-bench, the flagship coding benchmark. Its tasks are real GitHub issues pulled from open-source projects: “fix this bug in Django”, with the full repository available. The flow:

  1. The model receives the issue and the repo’s code.
  2. It produces a patch.
  3. The harness applies the patch and runs the project’s own test suite — the tests that failed before and must pass after.
  4. Green tests = task solved. The score is the percentage of issues resolved.

The beauty of the system: grading is objective and automatable. No judge, no subjectivity — tests pass or they don’t. The same principle drives agentic benchmarks (OSWorld has the model drive a real Linux desktop, Terminal-Bench a real terminal): you measure a verifiable outcome, not an impression.

One detail that matters: most published scores are pass@1 — a single attempt per task. A “pass@8” (eight tries, keep the best) mechanically inflates the number; always check the fine print under the table.

The numbers of the moment

Two freshly released families, and what the announcements highlight:

Model Price (in/out per MTok) SWE-bench Verified SWE-bench Pro
Claude Fable 5 $10 / $50 95.0% 80.3%
Claude Opus 5 $5 / $25 96.0% 79.2%
GPT-5.6 Sol $5 / $30 64.6%
GPT-5.6 Terra $2.50 / $15
GPT-5.6 Luna $1 / $6

On OpenAI’s side, the messaging plays on different ground: Sol claims state of the art on BrowseComp (92.2%) and OSWorld 2.0 (62.6%), the top of Artificial Analysis’s Coding Agent Index (80, or 2.8 points ahead of Fable 5), and 53.6 on “Agents’ Last Exam” — the famous “13.1 points ahead of Fable 5” from the press release.

See the pattern? Every vendor waves the benchmark it wins. Anthropic leads with SWE-bench; OpenAI with web agentics and value for money — Luna reportedly delivers about 24 benchmark points per API dollar versus 3.2 for Fable 5. Both are right… on their own turf.

The honesty section: four traps to know

1. The in-house score is not the independent score. Fable 5’s 80.3% on SWE-bench Pro was produced with Anthropic’s own harness — optimized prompts, custom tooling. The harness alone can be worth several points. The 95% on SWE-bench Verified, however, is confirmed by vals.ai, a third-party leaderboard. The reflex to build: look for the number replicated by a third party before quoting the press release.

2. Contamination. Models train on the web… where benchmarks are published. A model that “saw” the answers during training takes the exam with the answer key in its pocket. That’s why benchmarks constantly renew themselves (Verified → Pro → private test sets): once a task set lingers online too long, its predictive value erodes.

3. Saturation. When everyone hovers around 95%, the benchmark stops discriminating — the gap between 95 and 96% is measurement noise, not a ranking. MMLU met that fate; SWE-bench Verified is getting there. A saturated benchmark is a crash test every car passes: time to build a harder one.

4. The benchmark war. July’s juiciest episode: after Fable 5’s 80.3% on SWE-bench Pro was published (versus 64.6% for Sol), OpenAI released research estimating that “about 30% of SWE-bench Pro tasks are broken”. Maybe true! But a methodology critique that only shows up after a loss on that exact benchmark deserves your skepticism — in both directions.

How to read them intelligently

  • Find the benchmark that looks like your workload. Doing .NET refactoring? SWE-bench multilingual says more than BrowseComp. Browser automation? The other way around.
  • Divide by the price. A model 2 points behind at 5× cheaper often wins in production — that’s Luna and Terra’s whole argument, and it’s a fair one.
  • Prefer independent leaderboards over press-release numbers, and check the harness and the pass@k.
  • Benchmarks tell you which model to pick at the start — we covered that angle in choosing your model in Copilot. But to know whether your feature works, nothing replaces your own evals: a benchmark is a generic exam, your evals are the exam of your business.

In summary

Concept Takeaway
Benchmark Frozen tasks + automatic metric + harness
pass@1 / pass@k 1 attempt vs k attempts — compare like for like
In-house score Vendor-optimized harness — needs replication
Contamination The model may have seen the answer key
Saturation At 95%+, gaps are noise
  • A benchmark is a standardized crash test: great for comparing, insufficient to guarantee your use case.
  • Every vendor communicates on the ground where it wins — cross-check several benchmarks and third-party leaderboards.
  • Score per dollar matters as much as the raw score.
  • Benchmarks to choose the model, evals to validate your application.

Sources: Simon Willison on GPT-5.6, Vellum — Fable 5 benchmarks, vals.ai SWE-bench, MarkTechPost — Opus 5.