Skip to content

Build1 publisher2 min readPublished

Per-property pass bars expose failures that a 92 percent eval average hides

One developer's support-agent eval suite fails two of its five property bars even though its pooled score is 0.919. The author argues checks like these are what OpenAI lacked when a sycophantic GPT-4o update shipped in April 2025 and was pulled in four days.

The Engineer · Build desk

Illustration accompanying Per-property pass bars expose failures that a 92 percent eval average hides

What happened

  • OpenAI shipped a GPT-4o update in April 2025 that made the model noticeably sycophantic, then rolled it back four days later.
  • A developer writing on dev.to swapped pass-fail assertions for named properties, each with a minimum success rate, run over 24 scenarios three times each.
  • The author reports that rolling all five properties into one number gives an overall score of 0.919.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • cost Estimating a rate needs repeats, so this suite pays for 72 model runs to cover 24 scenarios, and each extra repeat adds another 24 runs.
  • decision A 1.00 bar on safety means one bad run in 72 blocks the release, so each team has to decide which properties get zero tolerance.
  • exposure A release gated on the pooled 0.919 would have shipped an agent that left about 9 of 27 answerable questions unanswered.
  • constraint Two more correct intent judgments out of 72 would clear that bar, so a rerun with no code change can flip the property's result.

OpenAI's sentence, as the post quotes it, starts with "also": "We also didn't have specific deployment evaluations tracking sycophancy." [2] The word implies at least one other gap. The post quotes only that line, so it does not show the rest of OpenAI's account. The author's summary, "They weren't checking for it, so it got through," fits the gap the line names. [21]

The remedy the author proposes is old: decide what good looks like before release, check for it continuously, and make failure visible. [3] Kent Beck's Test-Driven Development: By Example came out in 2002, and the post notes Beck has described TDD as something he rediscovered. [5] The part that breaks is the assertion. assertEquals(expected, actual) assumes one input gives one output. A sampled model can answer the same question two ways with nothing changed but the draw. [4] The author replaces the assertion with a named property and a minimum success rate. [6]

The sample run covers 24 scenarios with three repeats each, 72 runs. [6][12] The repeats measure sampling variance on those 24 prompts and add no new cases. For this suite's verdict to transfer to another agent, its scenarios would have to resemble that agent's traffic.

Each property carries its own bar. Safety and gate-outcome sit at 1.00 and scored 1.000. [7] The author's reason is that "mostly safe" isn't a meaningful standard. [9] At that bar, one bad safety run drops the rate to 71 of 72, about 0.986, and fails the suite. [17] Intent accuracy scored 0.875 against 0.90, or 63 correct of 72. [8][16] Passing needs 65.

The author puts the rolled-up score at 0.919. [10] I got the same figure by pooling every judgment, weighted by each property's N: 204 passes out of 222. [13] A plain mean of the five rates gives 0.908. [14] Both clear 0.90, the bar two of the properties missed. The answered rate of 0.667 over 27 works out to about 18 answered and 9 left unanswered. [15]

The N column follows applicability. Groundedness was scored over 18 runs because it only applies when the agent retrieved something. [11] "A denominator should describe reality, not improve the metric," the author wrote. [20] Per-property bars and honest denominators are careful engineering. In this run the suite failed while both averages sat above 0.90. [8][13][14]

In my view, the check OpenAI named would fit this format as one more row, with its own bar and a denominator limited to prompts where agreeing with the user is the risk. The author wrote: "The genuinely difficult part of evals isn't that models are mysterious. It's choosing the right test." [19]

What to watch

  • A rerun of the same 24-scenario suite with no code change: if intent accuracy crosses 0.90 in either direction, that bar is tracking sampling noise at N=72.
  • Whether later OpenAI model releases report a named sycophancy evaluation with a stated pass bar.
  • Whether the author raises repeats above three; the answered property currently rests on 27 judgments.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories