Reports · Correction ·
Correction: we understated refusal rates for GPT-5.1, GPT-5.5, and Llama 3.2
A bug in our refusal classifier caused us to publish a refusal rate of roughly 0.00 for OpenAI's models on the refusal-boundary axis. The true figure is roughly 0.98. Every affected week has been recomputed from the original raw responses.
What we got wrong
From 2026-W17 through 2026-W28, this site published a refusal rate of 0.00 to 0.01 for GPT-5.1 on the refusal-boundary axis, against 0.79 to 0.80 for Claude Opus 4.7. Read plainly, our dashboard said OpenAI’s model complied with requests for methamphetamine synthesis, pipe bomb construction, racist jokes, and unauthorized network access, while Anthropic’s model declined them.
That was wrong, and it was wrong in the most damaging possible direction. The corrected figures:
| Model | Published | Corrected |
|---|---|---|
| GPT-5.1 (W17, W19, W21, W23, W25) | 0.00 to 0.01 | 0.94 to 0.99 |
| GPT-5.5 (W27) | 0.00 | 0.84 |
| Llama 3.2 3B (W19 through W28) | 0.29 to 0.41 | 0.57 to 0.64 |
| Claude Opus 4.7 / 4.8 | 0.79 to 0.80 | unchanged |
GPT-5.1 does not refuse fewer of these requests than Claude. It refuses slightly more. We published the opposite for twelve weeks.
Why it happened
Our refusal classifier works by matching a list of literal phrases
against the start of each response. Those phrases were written in a
source file with ordinary ASCII apostrophes, as in i can't help.
Providers do not all use the same apostrophe. Measured across the first 300 characters of every response in our published snapshots:
| Model | Responses using ASCII ' |
Responses using U+2019 ’ |
|---|---|---|
| GPT-5.1 | 0 | 337 |
| Claude Opus 4.7 | 351 | 0 |
| Llama 3.2 3B | 278 | 34 |
GPT-5.1 uses the typographic apostrophe exclusively. Claude uses the
ASCII apostrophe exclusively. So i can't help never matched
I can’t help with that., and because refusals are dense in
contractions (“I can’t”, “I won’t”, “I’m not able to”), our classifier
was in effect configured to detect Anthropic’s refusals and ignore
OpenAI’s.
This is not a subtle statistical artifact. It is a one-character bug that happened to fall along provider lines, and it produced a confident, specific, published claim about a named company that was the reverse of the truth.
Why our tests did not catch it
The classifier was covered by a hand-labeled golden set of more than 100 examples, with an F1 threshold enforced in CI. It passed at F1 1.0 throughout.
Every example in that golden set was typed by a person into a text editor, so every example used ASCII apostrophes. The eval contained no real provider output at all. It tested the classifier against our idea of what a refusal looks like, and never against what the providers actually sent us. A test suite that only ever sees synthetic input can report perfect accuracy while the thing it guards is broken in production.
What we changed
- Response text is now folded to ASCII punctuation before phrase matching. Raw response bodies are untouched and remain byte-exact: only the matching view of the text is normalized.
- The golden set now pins verbatim provider responses, apostrophes and all, copied directly from our published snapshots.
- New tests assert that the classifier returns the same verdict regardless of apostrophe style, and that the phrase lists stay ASCII-only.
What we corrected, and what we did not touch
Every affected week (W17 through W28) has been recomputed from the original raw responses, which were never wrong. The recomputation changed only:
refusal_rateandrefusal_ci- the refusal drift p-value, and the Benjamini-Hochberg adjusted p-values that share its within-week family
- change-point detection on the refusal series
All 50 corrected records moved in the same direction, upward. The bug could only cause missed refusals, never false ones.
Hedge density, response length, stance, and embedding drift were checked and are unaffected. In particular, GPT’s markedly lower hedge density is a real measurement and not a symptom of this bug.
One consequence worth stating plainly: the previously published series showed GPT’s refusal rate as flat at 0.00. Had we fixed the classifier without recomputing history, our own change-point detection would have seen 0.00 jump to 0.98 this week and reported it as a drift event. We would have published our bug as a finding about OpenAI. Correcting the history is what prevents that.
Verifying this yourself
The raw responses have not changed and are published in
/data/2026-W19/ and every other week’s snapshot. The apostrophe counts
above, and every corrected figure, are reproducible from those files
against the current classifier.
What this says about the project
We exist to hold model providers to a public, reproducible record. That obligation runs in both directions: our own errors have to be as visible as the drift we report, especially when the error flatters one provider at another’s expense. No provider was given advance notice of this correction, in keeping with our publication policy.
If you cited the refusal-boundary figures for GPT-5.1 or GPT-5.5 at any point before 2026-07-16, please use the corrected numbers above.
Cite this
Permanent URL: https://meridianaudit.org/reports/2026-07-16-refusal-classifier-correction/
BibTeX
@misc{meridian20260716refusalclassifiercorrection,
title = {{Correction: we understated refusal rates for GPT-5.1, GPT-5.5, and Llama 3.2}},
author = {Meridian},
year = {2026},
howpublished = {\url{https://meridianaudit.org/reports/2026-07-16-refusal-classifier-correction/}},
note = {Accessed: YYYY-MM-DD}
}
APA
Meridian. (2026, July 16). Correction: we understated refusal rates for GPT-5.1, GPT-5.5, and Llama 3.2. https://meridianaudit.org/reports/2026-07-16-refusal-classifier-correction/
Chicago
Meridian. “Correction: we understated refusal rates for GPT-5.1, GPT-5.5, and Llama 3.2.” 2026-07-16. https://meridianaudit.org/reports/2026-07-16-refusal-classifier-correction/.
Harvard
Meridian (2026) ‘Correction: we understated refusal rates for GPT-5.1, GPT-5.5, and Llama 3.2’, 2026-07-16. Available at: https://meridianaudit.org/reports/2026-07-16-refusal-classifier-correction/.