Skip to main content

Why we rank detectors at a matched 1% false-positive budget

A fixed score cut flatters whichever calibration it suits. Ranking each detector from its own benign scores gives a comparison that survives a retrain.

A fixed cut measures the calibration as well as the detector

Most published comparisons score every detector at a fixed threshold, usually 0.50. That number is a point on a scale the vendor chose. Calibrate the scale differently and the same detector, reading the same rows, produces a different F1.

The comparison then says as much about the calibration curve as about detection quality. A refit that shifts the curve moves every fixed-cut figure, even when the detector still ranks the same attacks above the same benign inputs.

Matching on false positives instead

For each dataset and each detector, we take the benign rows and sort them by score. We set the threshold at the lowest value that flags no more than 1% of them. Then we count the attacks that score above it.

Every detector now pays the same false-positive cost, so the recall that remains is directly comparable. The threshold comes from the score ordering alone, which means no rescaling of the scores can move the result.

Two overlapping score distributions. Benign rows cluster on the left and attack rows on the right. A dashed threshold line sits where 1% of benign rows score above it, and the attack rows to its right are the recall.
Illustration of the method, not measured data. Each detector gets its own threshold, found from its own benign scores.

We average across the six datasets that contain both attacks and benign rows. A dataset with a single class has no operating point to derive, so we report those separately and leave them out of the average.

How the two bases differ

Fixed cutMatched 1% false positives
Where the threshold comes fromA constant chosen in advanceEach detector's own benign scores
Moves when scores are rescaledYesNo
Comparable between releasesNoYes
What it measuresDetector and calibration togetherRanking quality

Why one percent

An inline guard has to run at a strict false-positive budget, because every false flag lands on a legitimate request that someone then has to review. One percent is a demanding setting for a test, and it is the one we hold ourselves to.

Reading our figures

On benchmark v13 the default engine catches 72% of attacks at this budget, averaged over six datasets. We still publish fixed-cut figures where they answer a different question, such as how often a benign prompt containing trigger words is flagged. We label each one as fixed-cut, so you can tell which basis you are reading.

More research

All research
Method · October 2026

Equal constraints: every detector on the same box

Read the note
Product · October 2026

Why detection quality is never gated by plan

Read the post
Guides · October 2026

Getting the most out of Tawa Guard

Read the guide

Run it on your own traffic.

5 million Tawa Units free every month on every available engine, no card. Send your first scan today and compare the decisions against what you see in production.