Ground Truth

Model Confidence or Independent Verification

Mostafa DhouibMostafa Dhouib··7 min read
The short answer

A confidence threshold is the cheapest thing that looks like a safety control, and it fails in the one place you need it: models are most confident on inputs they have never seen. The decision is not what threshold to set, it is whether your task has a cheap grounded check, because that determines whether verification is available at all.

Model Confidence or Independent Verification

The short answer. Confidence is a number the model produces about its own output, which means it shares every blind spot that produced the output. It is uncalibrated by default, and it is systematically high on out-of-distribution inputs, which are exactly the ones you wanted it to catch. Independent verification compares against something the system did not generate. Whether that is available depends on whether checking your answer is cheaper than producing it, and that asymmetry is the real decision.

Why a threshold is not a control

A confidence value is a softmax output, or a token probability, or a number the model was asked to state. In every case it is produced by the same weights that produced the answer.

Not calibrated by default
a 0.9 does not mean nine out of ten unless you measured and corrected it on your own data
Highest where it should be lowest
models are frequently confident on inputs unlike anything in training, because nothing penalised misplaced certainty there
Asking the model to state it makes it worse
a stated confidence is generated text, and it tracks fluency rather than correctness
The failure point
A threshold removes cases where the model was usefully uncertain and keeps cases where it was wrongly certain.
That is the opposite of the intended filter. Confidence is for ordering things, not for deciding whether an action is safe.
FigureA confidence value is produced by the same weights that produced the answer. Three properties follow, and each defeats the usual use.

Three properties follow, and each defeats the usual use.

It is not calibrated by default. A 0.9 does not mean nine out of ten. Calibration is something you measure and correct for on your own data, and almost nobody does.

It is highest where it should be lowest. Models are frequently confident on inputs unlike anything in training, because nothing in the objective penalised misplaced certainty on inputs never seen. The threshold filters out the ambiguous cases the model already handles reasonably and passes the novel ones.

Asking the model to state its confidence makes it worse, not better. A stated confidence is generated text, subject to the same distribution as the answer, and it correlates with fluency rather than correctness.

The net effect: a confidence threshold removes cases where the model was usefully uncertain and keeps cases where it was wrongly certain. That is the opposite of the intended filter.

The decision table

Model confidenceIndependent verification
Produced byThe same model, from the same weightsSomething outside the generation path
DeterministicNoYes, if it is a real check
Errors correlated with the generatorCompletelyThe point is that they are not
Behaviour on novel inputOften high confidenceUnaffected, if grounded in a fact
CalibratedNot unless you did itNot applicable
CostFree, already in the responseRequires a checkable artifact
Available whenAlwaysOnly when checking is cheaper than producing
CatchesAmbiguity the model recognisesBeing wrong, whether or not the model recognised it
Good forRouting, ranking, prioritising reviewGating an action

The last row is the practical resolution. Confidence is useful for ordering things: which outputs a reviewer should look at first, which to route to a larger model. It is not useful for deciding whether an action is safe.

The question that decides availability

Checking is clearly cheaper
Does the code compile, do the tests pass
Does the JSON validate, does the total reconcile
Does the cited passage contain the claim
Build it and stop discussing thresholds
Checking is about as hard
Is this summary faithful
Is this analysis sound
Is this the right recommendation
A model-based check here produces an opinion with a verification-shaped name
For the right column the honest design is a human review gate on the subset where being wrong is expensive, with the engineering spent on making that subset small. Confidence can order that queue, which is a legitimate use of it.
FigureWhether a real verifier is available at all depends on this asymmetry. The two cases need different architectures, and only one of them needs a verifier.

Is checking the answer cheaper than producing it?

Yes, clearly. Does the code compile, do the tests pass, does the JSON validate against the schema, does the total reconcile with the ledger, does the cited passage contain the claim, does the referenced record exist. Here a real verifier is available, cheap, and the highest-leverage thing you can add. Build it and stop discussing thresholds.

No, it is about as hard. Is this summary faithful, is this analysis sound, is this the right recommendation. There is no cheap grounded check, and adding a model-based one creates a component that produces an opinion with a verification-shaped name.

The honest architecture for the second case is not a better threshold. It is a human review gate on the subset where being wrong is expensive, with the engineering spent on making that subset small and well chosen. Confidence can help order that queue, which is a legitimate use of it.

The ladder, since it is not binary

Rung one: the same model, asked whether the output is right. Correlated with the generator on precisely the cases you care about. Adds latency, cost, and a box on the diagram.

Rung two: a different model, asked the same thing. Less correlated, still nondeterministic and ungrounded, and models with overlapping training data share more priors than their vendor names suggest.

Rung three: a deterministic check on form. Schema, types, required fields, ranges. Cheap, honest about its limit, and it says nothing about whether the content is right.

Rung four: a deterministic check against outside ground truth. The invoice exists and the total matches. The cited passage appears in the retrieved document. This is where verification starts being worth the name.

Rung five: execution against reality. Run the code. Apply it to a copy and diff. Reality has no shared priors.

Most production systems sit on rung one while believing they are near the top, because rung one requires no domain modelling and looks identical on an architecture diagram.

Where confidence is genuinely useful

To be fair to it, since the argument above is one-sided by design.

Ordering a human review queue. If a reviewer can look at fifty of five hundred outputs, low confidence is a defensible ordering even uncalibrated. You are not trusting it, you are using it to allocate attention.

Routing to a larger model. A cheap model with a threshold escalating to an expensive one is a reasonable cost architecture, because the consequence of a bad routing decision is spend rather than a wrong action.

Detecting distribution shift in aggregate. The confidence distribution moving over time is a signal that your inputs have changed, even though any individual value is unreliable. This is one of the cheaper drift instruments available.

In all three, confidence informs a reversible decision. None of them lets a wrong answer through a gate.

What to do this week

Find every threshold that gates an action and write down what it is protecting against. If the answer is "the model being wrong," it is not doing that.

For each, ask whether a grounded check exists. Compiles, parses, reconciles, matches a record, appears in a source. If one exists and is not being used, that is the highest-return change available.

Where no grounded check exists, say so and put a human on the expensive subset rather than a threshold on everything.

Calibrate what you keep. If confidence continues to route or order, measure what a 0.9 actually means on your data. It takes a day and it usually surprises people.

FAQ

Can I use a confidence threshold to decide when an AI output is safe? No. Confidence is produced by the same weights that produced the answer, so it shares the blind spots, and models are frequently most confident on inputs unlike anything in training. A threshold filters out useful uncertainty and passes confident errors.

Is asking the model to state its confidence better than using token probabilities? No, it is worse. A stated confidence is generated text drawn from the same distribution as the answer, and it tracks fluency rather than correctness.

What makes verification independent? That its errors are uncorrelated with the generator's, which requires it to be deterministic and grounded in a fact the system did not itself produce: the code compiles, the total reconciles, the cited passage contains the claim, the record exists.

What if my task has no cheap way to check the answer? Then say so rather than adding a component that pretends otherwise. Put a human review gate on the subset where being wrong is expensive and spend the engineering on making that subset small. Confidence can order that queue, which is a legitimate use.

Is model confidence ever useful? Yes, for reversible decisions: ordering a human review queue, routing to a larger model, and detecting distribution shift in aggregate. In each you are allocating attention or spend rather than letting an answer through a gate.

Free scorecard
The Agent Production-Readiness Scorecard

The five design-review questions as a worksheet with pass conditions you can check: the residual, the three outcomes, the task-level budget, where each check sits on the verifier ladder, and the irreversible-action inventory. Built to be filled in with the team that built the system.

One email, the resource, and nothing else unless you reply.
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