refusal rate
Subscribe

An LLM refusal benchmark counts how often a model declines prompts. How OR-Bench, XSTest, SORRY-Bench and HarmBench score refusals, and where each misleads.

[ fig. 01 — research ]48×5
[ fig. 01 — research ]16×5

Short answer

An LLM's refusal rate is the share of prompts in a test set that the model declines to answer. Benchmarks split into two kinds: over-refusal sets like OR-Bench and XSTest, which use harmless-looking prompts and count refusals as errors, and harm sets like SORRY-Bench and HarmBench, which use unsafe prompts and count refusals as successes. Each decides what counts as a refusal differently, by keyword match or LLM judge.

OR-Bench
80,000 prompts, 32 models
XSTest
250 safe + 200 unsafe prompts
SORRY-Bench
440 unsafe prompts, 44 topics
HarmBench
510 behaviors, 33 targets

Key takeaways

  1. A refusal rate has no meaning without its prompt set: on OR-Bench-Hard-1K, Claude-3-opus rejected 91.0% of prompts, but only 9.0% on the 80K set.
  2. Over-refusal benchmarks (OR-Bench, XSTest) count a refusal as a failure. Harm benchmarks (SORRY-Bench, HarmBench) count it as a pass. Never compare numbers across the two kinds.
  3. Classification matters: OR-Bench scores its 80K set by keyword matching and its hard set with GPT-4, and the authors report the two differ by a few points.
  4. OR-Bench reports a Spearman correlation of 0.89 between rejecting safe prompts and rejecting toxic ones, so most models trade one for the other.
  5. Published numbers date fast. The OR-Bench results cover 2023 to 2024 era models.

What is a refusal rate?

An LLM refusal benchmark is a fixed set of prompts used to measure a model’s refusal rate: the fraction of prompts it declines to answer, usually reported as a percentage. On its own the number says nothing. It only means something relative to what the prompts were: a 5% refusal rate on harmless prompts is a flaw, and a 5% refusal rate on dangerous prompts is a safety failure in the other direction.

That is why benchmarks fall into two families:

  • Over-refusal benchmarks use prompts that sound risky but are fine to answer. Every refusal is an error. Examples: OR-Bench, XSTest.
  • Harm benchmarks use prompts a model should decline. Every refusal is a success, and the headline number is how often the model complies anyway. Examples: SORRY-Bench, HarmBench.

Refusal Rate, the site you are reading, cares about the first family, because that is where developers feel the problem. Why models behave this way is covered in why LLMs over-refuse.

[ fig. 01 — How a refusal benchmark produces one number. Methods per OR-Bench, XSTest and HarmBench papers, described below ]
Diagram: a refusal benchmark runs a fixed prompt set through a model, labels each response by keyword match, LLM judge or human annotators, and divides refusals by total, where a refusal is an error on over-refusal sets and a success on harm sets

Which LLM refusal benchmarks measure over-refusal?

The two reference benchmarks are XSTest and OR-Bench, with newer domain and multilingual sets building on them.

BenchmarkSourceSizeWhat it tests
XSTestRöttger et al., NAACL 2024250 safe prompts in 10 types, plus 200 unsafe contrastsExaggerated safety: homonyms, figurative language, safe targets, safe contexts, definitions, historical events, privacy
OR-BenchCui et al., ICML 202580,000 seemingly toxic prompts in 10 categories, a ~1,000-prompt hard subset, 600 toxic promptsOver-refusal at scale, and the trade-off against rejecting truly toxic prompts
Health-ORSC-BenchZhang et al., ACL 2026 Findings31,920 benign boundary prompts in 7 health categoriesOver-refusal plus “safe completion” quality in medical questions
MORBenchPan et al., 2025Not stated on the abstract pageOver-refusal and helpfulness across multiple languages

XSTest is small and hand-written, which makes it a quick sanity check. OR-Bench is generated automatically, which makes it large enough to rank dozens of models, at the cost of some noisy prompts. The authors say human review flagged 2.9% of the hard subset and that it may still contain debatable prompts because an LLM moderated it.

The harm-side counterparts are SORRY-Bench (440 unsafe instructions across 44 topics, plus 20 linguistic variations such as different phrasings and formats) and HarmBench (510 harmful behaviors, evaluated across 18 red-teaming methods and 33 target models and defenses). Their prompts are not reproduced here.

How do benchmarks decide what counts as a refusal?

Benchmarks decide by one of three methods: keyword matching, an LLM judge, or human labeling. The choice changes the number.

  1. Keyword or prefix matching. If the response opens with a phrase like “I’m sorry” or “I cannot”, it counts as a refusal. It is cheap and reproducible. XSTest’s authors note it cannot separate full from partial refusal. OR-Bench uses it on the whole 80K set.
  2. LLM judge. A model reads the prompt and response and labels it. OR-Bench uses GPT-4 for its hard and toxic subsets. SORRY-Bench meta-evaluated judge designs against more than 7,000 human annotations and found that fine-tuned 7B judges can approach GPT-4-scale accuracy at lower cost. HarmBench scores non-copyright behaviors with a fine-tuned Llama 2 13B classifier that agreed with human labels 93.19% of the time on its validation set, against 88.37% for GPT-4.
  3. Human labeling. XSTest treats manual annotation as the reference: two annotators per prompt, disagreements settled by discussion. XSTest uses a three-way taxonomy of full compliance, full refusal and partial refusal.

The methods disagree by small but real margins. OR-Bench reports keyword matching running slightly below its GPT-4 check, for example 10.6% versus 13.0% for GPT-3.5-turbo-0125, because indirect refusals escape the keyword list. XSTest found GPT-4 as a classifier struggles most with partial refusals.

Judges also have their own bias. The OR-Bench authors dropped Claude-3-Opus from their prompt-moderation panel because it labeled many prompts toxic that other models called safe, and used an ensemble of GPT-4-turbo, Llama-3-70b and Gemini-1.5-pro instead.

What do published results show?

Published results show enormous spread between models, and between prompt sets for the same model. The table below is reported by the OR-Bench paper (v5, June 15, 2025). The paper does not state when the evaluations ran, and the models are mostly 2023 to 2024 releases, so treat it as a snapshot of the method, not a current ranking.

ModelOR-Bench-Hard-1K rejectionOR-Bench-80K rejection
Claude-2.199.8%52.9%
Claude-3-opus91.0%9.0%
Llama-2-70b96.0%13.9%
Llama-3-70b37.7%2.2%
GPT-3.5-turbo-030157.4%34.7%
GPT-3.5-turbo-012512.7%0.9%
Mistral-large-latest9.7%1.4%
Qwen-1.5-72B46.9%5.1%
[ fig. 02 — OR-Bench rejection rates, Cui et al. (v5, June 2025), same numbers as the table above ]
Bar chart: on OR-Bench every model rejects far more of the Hard-1K subset than of the 80K set, from Claude-2.1 at 99.8% versus 52.9% down to Mistral-large at 9.7% versus 1.4%

Two things to read from it. First, the hard subset was built from prompts that models tend to reject, so its rates are far higher than the 80K set, and the authors call the 80K set the better indicator of everyday use. Second, versions of the same family move a lot: GPT-3.5-turbo went from 34.7% to 0.9% on the 80K set across three snapshots.

XSTest tells the same story on a smaller scale. On its 250 safe prompts, with manual labels, Llama 2 with its original system prompt fully or partially refused 59.6% (38% full, 21.6% partial). Without the system prompt that fell to 29.6%. Mistral-7B-Instruct with no system prompt refused 1.6%, and GPT-4 refused 8.4%. The same weights gave very different numbers once the system prompt changed, so a refusal rate describes a model plus its deployment, not weights alone.

Why is refusal rate alone misleading?

Refusal rate alone is misleading because a single-turn benchmark cannot see how refusals happen in real work. In anthropics/claude-code issue #84815 (closed as not planned), a developer reported that a built-in malware reminder led the agent to refuse edits to their own defensive security code, even with in-prompt authorization and a CLAUDE.md. A prompt-set score would never show that. Refusing less is also not the same as being better. OR-Bench reports a Spearman rank correlation of 0.89 between rejection of safe prompts and rejection of toxic prompts across its models. In plain terms, most models that refuse fewer harmless prompts also refuse fewer harmful ones. A model with a 0% refusal rate would look perfect on an over-refusal benchmark and fail every harm benchmark.

Other blind spots to keep in mind:

  • Refusal is not the only failure. The StrongREJECT authors argue that existing evaluations overstate jailbreak success and score how useful a response is, not just whether the model declined. A model can comply with a prompt and still give a useless answer.
  • Refusing is not binary. Health-ORSC-Bench argues that refuse-or-comply scoring misses the middle ground of high-level, safe completions on dual-use questions.
  • Prompt sets age. Models are trained against public benchmarks, and a leaked test set stops measuring anything.
  • Coverage is thin. The Health-ORSC-Bench authors note general benchmarks give minimal healthcare coverage. Coding, security and reverse-engineering requests, the ones developers care about, have no widely used over-refusal set that this page could verify.
  • Context is invisible. Single-turn prompts with no system prompt differ from a real agent loop, as the issue above shows.

A refusal rate for an abliterated model, covered in what abliteration is, needs the same care: lower refusals are the intended result, and the question is what else changed.

What do practitioners report about benchmarks versus real use?

Practitioners report that benchmark scores and daily experience diverge, mostly because benchmarks test the model while developers meet the model plus a harness. These are community and third-party reports, not our measurements.

  • A homemade check can be simple and still informative. A developer’s blog post (Aug 2026) tested five local models on 10 defensive security tasks each, on an RTX 5090 via Ollama at temperature 0. They scored refusals with deterministic markers in the first 400 characters of each response, deliberately avoiding a judge model that could add its own refusal behavior. All 50 tasks produced no refusals (two timed out), but the author stresses the sample is tiny and that willingness is not accuracy. It is a keyword-style method in practice, with the weaknesses described above.
  • A single rate hides the trade-off, and some new benchmarks say so. RefusalBench, a third-party leaderboard on biological research prompts, reports benign-refusal and dual-use rates separately and combines them with Youden’s J. It covers 22 models and 141 prompts. Its page notes that one model was judged by a rotated panel, so cross-panel comparisons carry a caveat. It is a different domain from coding, so it shows the method, not coding numbers.
  • Alignment strength varies by model family. The author of the Heretic abliteration tool wrote on Hacker News that gpt-oss and Qwen3 were much harder to push toward lower refusal rates than Llama 3.1. That concerns removal difficulty rather than a refusal rate, but it is why a post-modification refusal rate needs the benchmark, the method and the model version stated.

How will Refusal Rate measure it?

Refusal Rate has not published any measurements yet. The plan, not yet executed, is a monthly evaluation on a fixed prompt set aimed at developer tasks, with every run labeled with the model version, quantization, hardware and settings, and with the judging method stated next to each number. Results will appear on the uncensored LLM leaderboard once they exist. Until then, treat any model ranking on this site as a summary of the papers above and nothing more.

FAQ

What is a good refusal rate for an LLM?

There is no universal target. On an over-refusal benchmark lower is better, and the OR-Bench 80K results above run from under 1% to over 50%. On a harm benchmark a high refusal rate is the goal. Judge a model on both.

What is OR-Bench?

OR-Bench is an over-refusal benchmark from Cui et al. (ICML 2025) with 80,000 prompts that look harmful but are not, across 10 categories, plus a hard subset of about 1,000 prompts and 600 toxic prompts. The authors measured 32 models from 8 families.

Is a refusal rate the same as an attack success rate?

No. Attack success rate, used by HarmBench, is the share of harmful prompts where an attack made the model comply, so it measures failed safety. A refusal rate on harmless prompts measures lost helpfulness.

Can keyword matching measure refusals reliably?

Only roughly. OR-Bench found keyword matching ran a couple of points below a GPT-4 check, because indirect refusals do not use stock phrases. It is fine for ranking at scale and weak for individual responses.

Are the benchmark numbers current?

Not necessarily. The OR-Bench figures above cover models released in 2023 and 2024, and the paper does not state when they were run. Check the benchmark’s own repository for newer runs before citing a number.

Sources (10)
  1. OR-Bench: An Over-Refusal Benchmark for Large Language Models, Cui et al., arXiv 2405.20947 (ICML 2025)
  2. OR-Bench full text (v5, Jun 15, 2025), results tables and judging appendices
  3. XSTest: A Test Suite for Identifying Exaggerated Safety Behaviours in LLMs, Röttger et al., arXiv 2308.01263 (NAACL 2024)
  4. XSTest full text (v3), response classification and model results
  5. SORRY-Bench: Systematically Evaluating Large Language Model Safety Refusal, Xie et al., arXiv 2406.14598 (ICLR 2025)
  6. HarmBench: A Standardized Evaluation Framework for Automated Red Teaming and Robust Refusal, Mazeika et al., arXiv 2402.04249
  7. Health-ORSC-Bench, Zhang et al., arXiv 2601.17642 (ACL 2026 Findings)
  8. RefusalBench: frontier-LLM refusal calibration on biological research prompts, Applied Scientific (HF Space)
  9. My local models refused zero of 50 security tasks, bmdpat (Aug 2026)
  10. False positive: malware guardrail refuses to edit legitimate first-party defensive-security code, anthropics/claude-code issue #84815 (Aug 2026)

Keep reading

[ fig. 02 — explainer ]18×8

What is LLM over-refusal, and why does it hit harmless coding questions?

Oct 29, 2026 · Explainer

LLM over-refusal is when a safety-tuned model declines a harmless request because it resembles a harmful one. Research points to lexical overfitting: alignment training ties surface cues like “kill,” “exploit” or “payload” to refusals, even in benign context. In XSTest, Llama 2 fully refused 38% of 250 safe prompts. Developers can often fix it with accurate context, a different model, or a local model.

Read
[ fig. 03 — explainer ]18×8

What is abliteration, and what does an abliterated model give up?

Oct 27, 2026 · Explainer

Abliteration is a weight edit that removes a model's tendency to refuse. Research in 2024 found that refusal in chat models is largely carried by a single direction in the model's activations; projecting that direction out of the weights stops most refusals without retraining. The trade-off is a measurable drop in benchmark quality, which builders usually repair with a short preference-tuning pass.

Read
[ fig. 04 — data ]18×8

Which LLMs are least censored? The uncensored LLM leaderboards compared

Nov 10, 2026 · Data

The UGI leaderboard on Hugging Face is the main uncensored LLM leaderboard. As of its October 2026 data, Grok 4.20 tops the overall UGI score and community Heretic builds of Gemma 4 and Qwen 3.5 reach the maximum 10/10 willingness. SpeechMap.AI, which tests contentious political speech instead, ranks Google DeepMind first. The two boards measure different things and often disagree.

Read