Ground Truth

A Confidence Score That Never Changes Cannot Route Your Review Queue

Mostafa DhouibMostafa Dhouib·10 min read
The short answer

Calibration in aggregate and the ability to rank individual items are two different properties, and a score can have the first without the second. In a lab reproduction, a calibrated but nearly constant confidence score caught 4 percent of errors at a 5 percent review budget, against 95 percent for an informative score on the same data. Threshold tuning cannot repair a score that does not rank, because there is no threshold at which a flat score separates anything.

A Confidence Score That Never Changes Cannot Route Your Review Queue

The short answer. If your extraction or classification system attaches a confidence score to every output, and that score sits in a narrow band almost all the time, it cannot route a review queue no matter how well calibrated it is. Calibration is a property of the average. Ranking is a property of the ordering. A score can match the true error rate in aggregate and still carry no information about which specific item is wrong. In a lab reproduction I ran, a calibrated but nearly constant score captured 4 percent of the known errors at a 5 percent review budget, while an informative score on the same data captured 95 percent. Tuning the threshold does not help, because a flat score has no threshold that separates anything.

Most systems that output structured data for human review ship with a confidence number, and almost nobody tests the one property that number needs to have.

The question people ask is whether the score is accurate. The question that determines whether the score is useful is whether it orders items by how likely they are to be wrong. Those sound like the same question. They are not, and the gap between them is where review budgets go to die.

Calibration and ranking are different properties

Calibration is an aggregate claim. If the system reports a given confidence level across a set of items, the share of those items that turn out correct should match that level. It is a statement about buckets of predictions matching observed frequencies.

Ranking is a per-item claim. If you sort every output by its confidence, the wrong ones should cluster at the bottom. It is a statement about ordering.

You can have the first without the second, and the way to see it is to imagine the degenerate case. Suppose the system has a true error rate of one in ten, and suppose it assigns the identical confidence value to every single output, a value that happens to match that rate exactly. That score is perfectly calibrated. Every prediction sits in one bucket, and the share of that bucket which is correct is precisely what the score claims.

It is also completely useless for review. Sorted by confidence, the list is in arbitrary order, because every item has the same score. The errors are scattered uniformly through it. Taking the bottom slice of that list gets you a random sample, and a random sample of a list catches errors in proportion to how much of the list you read.

Real systems are rarely that degenerate. They are frequently close to it. A score that lives almost entirely inside a narrow band near the top of its range behaves, for queue-routing purposes, like a constant with noise on top, and the noise is usually not correlated with correctness.

What the reproduction measured, and what it does not show

I wanted a number for how bad this gets, so I built it in a lab rather than reasoning about it.

The method. I took a labelled dataset where every item has a known correct answer, so error is ground truth rather than an estimate. I generated two confidence scores over the same set of predictions, with the same overall error rate and both calibrated in aggregate. The first was drawn to sit in a narrow band, mimicking the near-constant scores I keep encountering in production systems. The second was informative, meaning low values were genuinely concentrated on the wrong items. Then I applied the same review policy to both: sort ascending by confidence, take the lowest-scoring 5 percent, and measure what share of all known errors appeared in that slice.

The near-constant score captured 4 percent of the errors. The informative score captured 95 percent.

Both scores were calibrated. Both reported the same overall error rate. One made a review budget worth spending and the other did not.

Near constant score
Calibrated in aggregate
yes
Review budget read
5 percent
lowest scoring slice, the same policy applied to both
Known errors captured
4 percent
a random sample of the same size would have done about as well
Informative score
Calibrated in aggregate
yes
Review budget read
5 percent
same data, same slice size
Known errors captured
95 percent
low values were genuinely concentrated on the wrong items
same error rate, same calibration
A lab reproduction on synthetic score distributions over real labels. The figures size a gap under chosen conditions rather than forecasting any particular system.
FigureBoth scores were calibrated and both reported the same overall error rate. Sorted ascending and read at the same review budget, one of them found almost every error and the other found almost none. Calibration is a property of the average and ranking is a property of the ordering, and only the second one routes a queue.

What this is: a controlled demonstration that calibration does not imply ranking, with the gap sized on synthetic score distributions over real labels. What it is not: a client result, a measurement of any particular commercial system, or a prediction of what your score will do. Your number depends entirely on how your score is distributed and how that distribution correlates with error. The point of the two figures is the size of the gap between the two regimes, not the figures themselves.

Test whether your score ranks, in an afternoon

This is a short, concrete procedure and it needs no new infrastructure.

Get a set of items with known correctness. This is the part that costs something. You need outputs where you know whether each one is right, determined independently of the system that produced them. If you do not have that, you cannot evaluate a confidence score at all, and no amount of distributional analysis substitutes.

Sort every item ascending by its confidence score.

Take the bottom slice at your actual review budget. If your reviewers can look at 5 percent of volume, take the lowest-scoring 5 percent. Use the real budget, not a round number, because the answer changes with the slice size and the real budget is the decision you are actually making.

Count what share of all known errors fell in that slice. That single number is the only thing that matters about your confidence score for routing purposes.

Compare it against reading the same proportion at random. Reading 5 percent at random catches roughly 5 percent of errors. If your score's capture rate is close to that, your score is not ranking, and the review queue it feeds is a random sample with a progress bar.

Two things worth doing alongside it.

Plot the score distribution before anything else. If it is a narrow spike, you can predict the outcome of the whole test, and the spike itself is the finding. A histogram takes a minute and often ends the investigation.

Then check the shape of the capture curve by varying the budget. A good score shows steeply diminishing returns, because the errors are concentrated at the bottom and you exhaust them quickly. A flat score shows a straight line, because every additional percentage point of reading catches the same proportional share. The straight line is the signature of a score that does not rank, and it is unmistakable once you have seen it.

Why threshold tuning cannot fix it

The reflex when a confidence-based review queue underperforms is to move the threshold. It is the only knob visible, so it gets turned.

It cannot work, and the reason is worth holding onto, because it saves a lot of wasted iteration.

A threshold is a cut point on an ordering. All it can do is decide how far down the sorted list you read. If the ordering carries information about correctness, moving the cut point trades volume against capture, and there is a sensible place to put it. If the ordering carries no information, every cut point gives you the same thing: a slice whose error rate equals the population error rate. Lowering the threshold reviews more items and catches proportionally more errors for proportionally more cost, which is exactly what reading a random sample does.

So the capture rate at a given budget is a property of the score's ordering, and the threshold only selects a point along that fixed trade-off. Tuning picks a point on the curve. It does not change the curve.

Which means the work is upstream. Options, roughly in order of how often they help:

Find a score that varies. Many systems have a richer internal signal than the one they expose. Per-field agreement between two passes, margin between the top two candidates, retrieval score of the supporting evidence, whether a value was found in more than one place in the document. Any of these will often rank better than the headline confidence number.

Score agreement rather than certainty. Run the extraction twice under different conditions and flag disagreement. Disagreement is a genuinely informative signal and it does not depend on the model having any insight into its own reliability.

Route on content rules, not on confidence. Unusual value, out-of-range amount, missing cross-reference, a total that does not reconcile with its components. These are deterministic, explainable to a reviewer, and they rank by construction.

Stop routing and sample properly. If no signal ranks, accept it. A stratified random sample with a measured error rate is honest, and it is strictly better than a queue that claims to be risk-based and is not, because the false claim causes people to under-provision review.

Move the thresholdcannot helpit picks a point on the curve, it does not change the curve
Find a score that variesoften availablemargin between the top two candidates, retrieval score of the supporting evidence, a value found in more than one place
Score agreement, not certaintyinformativetwo passes under different conditions, flag the disagreement, no self insight required
Route on content rulesranks by constructionout of range amount, missing cross reference, a total that does not reconcile
Stop routing, sample properlyhonesta stratified sample with a measured error rate beats a queue that claims to be risk based and is not
A flat calibrated score still supports capacity planning. It just cannot say which items to look at.
FigureA threshold only chooses how far down a fixed ordering you read, so the capture rate is already decided before anybody touches the knob. That puts the work upstream, on finding a signal that varies with correctness, or on admitting that none does and sampling honestly instead.

The honest limit

The two figures in this piece come from a lab reproduction on synthetic score distributions over real labels. They demonstrate a mechanism and size a gap under conditions I chose. They are not a client result and they are not a forecast for your system.

The bottom-slice test also depends entirely on having independently known correctness, and that is the expensive input. If your correctness labels come from the same system whose confidence you are evaluating, or from a reviewer who saw the system's output and its confidence before deciding, the test is contaminated and will flatter the score.

And a score that fails this test is not necessarily worthless. A flat, calibrated score still carries aggregate information, which is genuinely useful for capacity planning and for reporting an expected error rate. It just cannot tell you which items to look at, and those are separate jobs that happen to share a number.

FAQ

Can a confidence score be well calibrated and still useless? Yes, and this is the central trap. A score that assigns the same value to every output is perfectly calibrated if that value matches the true accuracy rate, and it is useless for review because sorting by it produces an arbitrary order. Calibration is a property of the aggregate, ranking is a property of the ordering, and a review queue needs the second one.

How do I test whether my confidence score ranks? Take items with independently known correctness, sort ascending by confidence, take the bottom slice at your real review budget, and count what share of all known errors landed in that slice. Compare against reading the same proportion at random. If the two are close, the score does not rank.

What was the measured gap between a flat score and an informative one? In a lab reproduction on synthetic score distributions over real labels, a calibrated but nearly constant score captured 4 percent of known errors at a 5 percent review budget, while an informative score on the same data captured 95 percent. Both were calibrated and both reported the same overall error rate. Those figures size a mechanism under chosen conditions and are not a client result.

Why won't moving the threshold fix a poor review queue? Because a threshold only selects how far down a fixed ordering you read. If the ordering carries no information about correctness, every cut point yields a slice whose error rate equals the population error rate, so lowering it costs more review for proportionally more catches, which is what random sampling already does. The trade-off curve is set by the ordering, and tuning only moves along it.

What should I use instead of a model's own confidence? Signals that vary and are tied to the content. The margin between the top two candidates, agreement between two extraction passes under different conditions, the retrieval score of the supporting evidence, whether a value appears in more than one place, or deterministic content rules such as a total that fails to reconcile. These rank by construction and are explainable to the reviewer.

Is it ever acceptable to review a random sample instead? Yes, and it is the right answer when nothing ranks. A stratified random sample with a measured error rate is honest about what it is. A queue that advertises itself as risk-based while behaving like a random sample is worse, because it leads people to under-provision review on the assumption that the dangerous items are being caught.

Carrying a program like this one?

Tell us the system, the stakes, and the date that matters. You get a straight technical reply from the person who would lead the work, within 24 hours.

Bring us the program