Confidence Is a Property of Each Field, Not the Whole Record
When an extraction system attaches one confidence number to a record, it is reporting an average, and an average exists to hide variance. A record can post a strong overall score while one field inside it sits far below the line, and the aggregate erases exactly the fact anyone downstream needs: which value not to trust. The score worth acting on is not the one bound to the record. It is the one bound to each extracted field. Moving confidence from the record to the field is not a reporting nicety. It changes what a review system is allowed to reason about, and therefore what it is capable of doing.
The reason this matters is that confidence is only useful to the degree that it can drive a decision, and the decisions a production system makes about extracted data are made one field at a time. A downstream service consumes a specific value: the amount it will post, the identifier it will match against, the date it will index on. Its exposure to error is per field. A confidence signal reported at the record level cannot line up with that exposure, because it has already blended the field the system depends on together with every field it does not. The mismatch between where uncertainty is measured and where it does damage is the whole problem, and per-field scoring is the fix.
The aggregate hides the field you were supposed to check
A record-level confidence score summarizes an extraction the way a single grade summarizes an exam. It tells you the overall result and nothing about which questions were missed. For an exam that is often enough. For an extracted record that feeds automated decisions, it is close to useless, because the system does not act on the record as a whole. It acts on the fields, and the aggregate has thrown away the one distinction that would tell it which field to hold back.
Consider what a reviewer actually receives when routing is driven by a record-level score. A record dips below the threshold, so the entire thing lands in the queue. The reviewer now has to inspect every field to locate the one that pulled the score down, confirming a run of values that were fine before reaching the value that was not. Most of that effort is spent re-verifying work the model got right. At low volume the waste is tolerable. In a pipeline processing large document volumes it is the dominant cost, and it scales in exactly the wrong direction: the more the model gets right, the larger the fraction of review time spent confirming correct fields to find the occasional wrong one. The aggregate score turns a targeted check into a full re-read.
The masking runs the other way too. A record can clear the threshold on the strength of its easy fields while quietly carrying a weak one. Several high-confidence values average against one shaky value, the composite lands comfortably above the cutoff, and the record auto-accepts with a bad field inside it. The single number did not just waste reviewer effort on correct records. It let an error through on an accepted one. An aggregate cannot flag a field it has already averaged away.
Field-level scores change what routing can decide
The remedy is to change the unit of confidence. Instead of one score for the record, the model emits a score for each field, describing the value it sits beside. With that change, routing stops judging the record as one object and starts judging each value on its own, and everything useful follows.
Routing now acts on each field independently. A customer identifier the model is sure of passes straight through. A date it is unsure of goes to review. The rest of the record continues downstream without waiting on that one field. This is the shape real extractions take. A record is almost never uniformly confident or uniformly doubtful. The ordinary case is mixed: a few fields the model nailed, most of them solid, one or two it is guessing at. Record-level routing has to make a single decision about that whole mixed object and will always be wrong at the margin, either sending correct fields to review because one field was weak, or accepting a weak field because the rest were strong. Field-level routing dissolves the dilemma by refusing to make one decision where the data supports many.
What this buys is selective review. A human sees only the values a model flagged as shaky, and everything it was sure of proceeds without a second look. Reviewers stop re-reading largely-correct records end to end and start seeing only the specific values that need a judgment. The throughput of the pipeline and the quality of the review both improve, and they improve for the same reason: attention is now aimed at the field where it is warranted instead of spread across the record where most of it is wasted.
Getting a score for each field is a schema decision
Per-field confidence is elicited, not computed after the fact. The mechanism is the output structure itself. Rather than defining a field as a bare value, you define it as a small object carrying two things: the extracted value, and a confidence score for that value. Both come back together, filled in during the one pass that produces the extraction. Nothing about it requires a follow-up call or a dedicated scoring model. The structure of the requested output is what makes the model report its certainty per field, because the structure asks it to.
This means per-field confidence costs almost nothing to obtain and is governed entirely by how the output schema is shaped. It also means the decision of which fields carry a confidence score is a design decision, not a default. Not every field needs one. Attaching a confidence sibling to every value adds noise to the output and review load with no corresponding benefit, because most fields never sit near a decision boundary. The fields that earn a confidence score are the ones where an error is expensive downstream: dates that drive scheduling or eligibility, monetary amounts that post to an account, identifiers that key a record to an entity. Uncertainty on those propagates into consequential actions. Uncertainty on a low-stakes descriptive field usually does not. Spend the mechanism where a wrong value does real damage, and leave it off where it would only generate work.
There is one thing a per-field score is not, and the distinction governs everything built on top of it. A confidence value the model emits is the model’s own report of its certainty. It is a claim, not a measurement. The number arrives looking like a probability, which invites the assumption that a 0.90 corresponds to being right nine times in ten. Nothing about how the score is produced guarantees that correspondence. The score becomes trustworthy only after it has been checked against labeled outcomes and shown to track real accuracy, which is a separate discipline with its own machinery. What matters here is the boundary: per-field scoring gives you a signal at the right granularity, and that signal is real but not yet load-bearing. Treating the raw number as if it were already calibrated is the failure this pattern most reliably invites, and the one worth naming before any threshold is set on it.
Per-field and per-record routing solve different problems
Having a score for each field does not force you to route on each field. There are two routing policies, and the choice between them has consequences that reach well past the scoring layer.
Per-field routing scores each value on its own, holds back the ones that fall short, and lets the rest go. It extracts the full efficiency of field-level scoring. It also carries a requirement that is easy to miss until integration: every consumer downstream of the pipeline has to tolerate a record that was only partly checked. Some fields arrive human-confirmed, others arrive auto-accepted, and the record moves forward as a mixture. If a downstream consumer assumes a record is atomic, that a record is either fully reviewed or fully trusted, per-field routing breaks its assumptions. The efficiency lives or dies on whether the rest of the system can handle a record whose fields have different provenance.
Per-record routing draws the boundary at the record: let a single scored field drop under the threshold and the whole record goes to a reviewer, however many of its other fields were never in question. It gives up the efficiency, since a reviewer again handles fields that did not need handling. In exchange it keeps the record atomic and the audit trail simple: a record is reviewed or it is not, with no per-field bookkeeping about which values a human saw. In compliance-heavy settings that simplicity is worth paying for. When an auditor needs to establish that a human examined a record before it drove a decision, a clean record-level boundary is far easier to defend than a field-by-field map of what was checked and what was trusted. Some environments accept the higher reviewer load precisely to keep that boundary clean.
The decision, then, is not simply which policy is more efficient, because per-field routing plainly is. It is whether the surrounding system can absorb records whose fields were checked unevenly and whether the auditability regime can tolerate a per-field trust boundary. The scoring gives you the option to route per field. Whether you should is determined downstream, by the consumers and the auditors, not by the extraction layer that produces the scores.
A threshold is only as honest as the scores beneath it
Every routing policy above rests on comparing a score to a threshold, and the whole apparatus is only as sound as the relationship between the score and reality. This is where teams deploying per-field confidence most often go wrong. The scores get treated as ground truth. A threshold that feels conservative is chosen, routing goes live, and no one ever confirms that the model’s reported certainty tracks how often it is actually right.
An overconfident model is the dangerous case, and it is a common one. A model can report high certainty on a field type it actually gets wrong a large fraction of the time. Set the auto-accept threshold below that inflated number and the routing layer waves those errors straight through, confident it is only accepting reliable fields. The pipeline looks efficient. Its review queue is short, its throughput is high, and it is silently degrading the quality of everything it accepts, because the scores driving the accept decision do not correspond to accuracy. No amount of per-field granularity protects against this. Granularity aims attention at the right unit. It does not make the unit’s self-report true.
Which is why per-field scoring is the first half of a system and never the whole of one. The scores locate uncertainty at the field level, and calibration against labeled data is what earns the right to trust a specific number as a threshold. The two are separate steps, and the granularity is the one that comes first: you cannot calibrate, route, or reason about confidence per field until the model is reporting it per field. But a threshold set on uncalibrated scores is a decision made on a measurement no one has checked, and it will hold exactly until the model’s confidence and its accuracy diverge on some field type, which they eventually will.
Confidence should be as granular as the decisions it drives
The principle underneath all of this is simple and general. A confidence signal is worth having only when it can be matched to a decision, and it can be matched only when it is reported at the same granularity the decision is made. Extraction systems make their decisions per field, so confidence measured per record is measured at the wrong altitude. It answers a question, how sure are we about this record overall, that no part of the system is actually asking, while leaving unanswered the question every downstream consumer is asking, which is whether to trust the specific value it is about to use.
Reframing confidence as a per-field property is what closes that gap. It turns a review system from something that inspects whole records into something that inspects the values that need inspecting, and it turns routing from a blunt accept-or-reject on the record into a precise decision on each field. The mechanism costs almost nothing, since it lives in the shape of the output schema. The judgment it demands is where to spend it, which fields carry consequences worth a score, and the discipline it demands is to remember that a self-reported score is a claim awaiting proof, not a measurement you can route on the moment it arrives. Get the granularity right first. A single number over a whole record was never going to tell you the one thing you needed to know.
