OpenAI: your favorite coding benchmark is mostly noise

5 min read 1 source explainer
├── "Current SWE-bench leaderboard gaps are largely statistical noise, not real capability differences"
│  └── OpenAI (OpenAI Research) → read

OpenAI argues that single-seed runs and cherry-picked grader configs make two-to-three-point gaps on SWE-bench Verified indistinguishable from zero without dozens of repeated trials. They show that when the same model is run repeatedly on the same benchmark, the pass-rate variance is wide enough to swallow most of the differentials being cited in launch posts.

├── "Evaluation harnesses and graders themselves are buggy in ways that silently inflate scores"
│  └── OpenAI (OpenAI Research) → read

OpenAI flags a class of failures that never appears on a scoreboard: graders passing on truncated diffs, harnesses applying patches to the wrong file yet registering success, and flaky test suites where even the ground-truth human patch only passes 96% of the time. Because the effective ceiling is well below 100%, reported deltas between top models are even smaller than they look.

├── "The industry should adopt pass^k, confidence intervals, and disclosed harness configs as the reporting standard"
│  └── OpenAI (OpenAI Research) → read

OpenAI's prescriptive recommendation is that labs report pass^k (probability of solving a task in every one of k attempts) alongside pass@k, publish confidence intervals, and disclose grader version, container image, and retry policy. This would replace the current practice of cherry-picking a favorable seed and grader combination for the launch-post number.

└── "OpenAI publishing this critique undercuts the very benchmark marketing frontier labs (including itself) have relied on"
  └── top10.dev editorial (top10.dev) → read below

The editorial reads this as unusual coming from OpenAI — a methodology paper that plainly undermines the marketing value of SWE-bench, the very leaderboard every lab has used to sell coding models for the past eighteen months. The subtext is that the benchmark arms race has hit a point of diminishing signal, and OpenAI is the one calling it out.

What happened

OpenAI published a research note titled *Separating signal from noise in coding evaluations* arguing that the way the industry currently reports SWE-bench-style scores routinely overstates the gap between frontier models. The piece lays out a small handful of statistical failures — single-seed runs, cherry-picked grader configs, brittle patch-application harnesses — and shows what happens to the leaderboard when you actually control for them.

The core empirical claim: when you run the same model on the same benchmark many times, the spread in pass rate is large enough that most of the top-of-leaderboard gaps you see quoted in launch posts are inside the noise band. Their headline number is that a two-to-three-point gap on SWE-bench Verified is, in practice, indistinguishable from zero without dozens of repeated trials per task. OpenAI's recommended methodology is to report pass^k (the probability of solving a task in every one of k independent attempts) alongside pass@k, publish confidence intervals, and disclose the grader version, container image, and retry policy used at eval time.

The post also flags a category of bugs that never shows up in a scoreboard: graders that silently pass on truncated diffs, harnesses that apply patches to the wrong file and still register success, and test suites whose flakiness rate on the *ground truth* human patch is already several percent. If a model's headline score is 62% and the ground-truth patch itself only passes 96% of the time on repeated runs, the effective ceiling isn't 100 and the reported delta between two models near the top is even smaller than it looks.

Why it matters

This is OpenAI writing a methodology paper that, read plainly, undermines the marketing value of the exact benchmark every lab (including OpenAI) has been using to sell coding models for the last eighteen months. That is unusual enough to be worth noting. The subtext is that the current benchmark arms race has hit the point where labs can no longer credibly claim wins on SWE-bench without also disclosing seeds, trial counts, and grader hashes — and OpenAI would rather set that norm than keep losing half-point skirmishes in press cycles.

The technical argument is stronger than the political framing suggests. SWE-bench Verified is 500 tasks. If your model's true pass rate is 60% and you run each task once, the standard error on the aggregate is somewhere around two percentage points before you account for grader flakiness, patch-apply failures, or the roughly 3-5% of tasks where the reference solution itself is non-deterministic. Two labs reporting 61.4% and 63.1% on a single run each are, statistically, reporting the same number. Anyone who has actually sat down with the harness knows this; it's just rarely said out loud in a launch post.

The grader-audit part is the more uncomfortable finding. OpenAI reports cases where switching from one commonly-used SWE-bench harness fork to another moves a fixed model's score by three to four points, purely on infrastructure differences — timeout budgets, whether stderr counts as failure, whether a patch that touches an unrelated file gets rejected up front or graded on the tests it happens to break. If choosing a Docker image is worth more points than a generation of model progress, the benchmark isn't measuring what people think it's measuring. That's the kind of finding that, if it held up in other labs' replications, would force a rewrite of how coding evals are reported the way ImageNet forced a rewrite of top-5 accuracy claims a decade ago.

Community reaction on Hacker News (188 points, top of front page) split about where you'd expect. One camp treated it as long-overdue rigor and pointed out that the ML-eval community has been shouting about pass^k and confidence intervals for years without much uptake from the frontier labs. Another camp read it as OpenAI moving the goalposts after Anthropic and others started catching up on SWE-bench numbers — which is a fair read of the timing even if the underlying statistics are correct.

What this means for your stack

If you are picking a coding assistant based on a leaderboard delta under five points, stop. The right question is not "which model scored higher on SWE-bench last month" but "which model, on my repo, with my harness, over fifty trials on twenty representative tickets, has the higher pass^3." That's not a comfortable answer because it requires you to actually build an internal eval harness, but the alternative is picking on noise and rationalizing it as due diligence.

For teams already running internal evals, the concrete asks are small and cheap. Log the seed. Run every task at least five times. Record the grader version and the exact container digest. When you compare two models, bootstrap the confidence interval on the difference rather than eyeballing the point estimate. If your internal number for Model A beats Model B by 1.8 points across 30 tickets run once each, you have not shown that A is better; you have shown that you need more trials. This is not exotic advice — it is the same discipline any A/B testing framework enforces by default — but coding-model evaluation has been running without it because the harnesses are painful and single-shot runs are cheaper.

The practical upside of taking this seriously is that once your internal eval reports confidence intervals, you stop chasing marketing announcements. A launch post claiming a three-point gain becomes trivially answerable: does it beat the incumbent on my tickets, at my trial count, with error bars that don't overlap? Most of the time the answer will be no, and you save a migration.

Looking ahead

The interesting question is whether the next round of model launches — from any lab, OpenAI included — actually ship with pass^k numbers, seed disclosures, and grader hashes, or whether this note becomes another piece of good methodology that everyone cites and nobody adopts. The honest bet is that headline pass@1 numbers stick around in launch tweets because they are simpler to fit in a chart, but that serious buyers — the enterprise coding-agent contracts where the money actually is — start demanding the fuller reporting in RFPs. If that happens, the eval-hygiene shift will be dragged into the industry through procurement rather than through peer pressure, which is a fine outcome as long as it happens.

Hacker News 233 pts 84 comments

Separating signal from noise in coding evaluations

→ read on Hacker News
jjcm · Hacker News

I want a new bench - given $100 of api spend, how much can a model accomplish for a suite of benchmark tests?Give us something that measures a combination of efficiency and intelligence.I think this would allow for some interesting tactics for smaller models - eg they could do things like computer u

GodelNumbering · Hacker News

There are also a lot of fake results out there on Terminal Bench 2 for different reasons (although the great team behind it Ryan/Alex et al, recently cleaned up a lot of dodgy submissions). A lot of labs publish the results by modifying timeouts or hardware config which effectively bypasses wha

jimberlage · Hacker News

I can understand why this might make for a bad benchmark, butOverly strict tests enforce specific implementation details not specified in the prompt, invalidating many functionally correct submissions.Underspecified prompts omit requirements that hidden tests enforce and that are not reasonably infe

mlhpdx · Hacker News

Fundamentally aren’t they concluding that tasks assigned to software developers (human or otherwise) are often incomplete, self contradictory or worse? This is the world in which their tool must play. I’m unsympathetic.

janalsncm · Hacker News

Based on the numbers here it seems there’s less than 800 tasks in the entire benchmark. That is enough for a handful of engineers to comb through in a week (which is what OpenAI eventually did here).On the one hand, kudos to them for actually doing that work.On the other hand, garbage in, garbage ou

// share this

// get daily digest

Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.