The withheld column, and why a blank is not a blank
The most useful column in our document-capture export is one that mostly contains nothing. Here is why separating "blank" from "could not read" from "failed a check" is what lets a registry load the data directly.
The Docovly team
Product
“A blank should mean the document was blank.”
Anything else deserves its own column
When a restored document is read back as data, three quite different things can produce an empty cell. The field was blank on the original. The field was there but could not be read. Or the field was read and then failed a check - a check digit that did not recompute, a total that did not reconcile, two independent readers that disagreed. Three different facts, one empty cell.
Most extraction and OCR tools flatten all three into that single empty cell. And that is precisely where bad data enters a system, because a registry loading the export cannot tell "this person has no middle name" from "we could not read the middle name" from "we read two different middle names and do not trust either." All three arrive looking identical, and identical is the one thing they are not.
Three empties, three actions
A genuine blank needs nothing. An unread field needs a person to look at the original. A failed-check field needs someone to resolve a specific conflict. Collapse them into one empty cell and you have destroyed the information a human would need to know which of the three to do.
So we separated them
Every export carries a withheld column alongside the values. A genuinely blank field is simply blank. A field that was read but did not clear its check appears in the withheld column, with the reason attached - failed check digit, out-of-range value, reader disagreement. Nothing that failed verification is ever presented as a value, because a value is a claim of confidence and a failed check is the absence of exactly that.
| What happened | Value column | Withheld column |
|---|---|---|
| Field was blank on the page | empty | empty |
| Field could not be read | empty | unread - low confidence |
| Check digit failed | empty | reference no. failed checksum |
| Two reads disagreed | empty | grade: A vs A- (unresolved) |
| Field read and verified | the value | empty |
Every value carries its evidence
Alongside the withheld column, every captured field carries its confidence and a crop of the exact pixels it was read from. Reviewing a questionable value then means glancing at the original beside it, not re-reading the whole page to find the one cell in doubt. The review that would have taken a morning takes a few minutes, because the tool has already pointed at the thing worth looking at and shown its working.
A blank should mean the document was blank. Anything else is a different fact, and it deserves a different column.
Why this is what lets a registry load the data directly
A records manager will not, and should not, load an extraction export straight into a live register if a blank might mean "we guessed and gave up." The withheld column removes that fear: the uncertain values are not in the data at all - they are sitting in a separate column, in a queue for a person, with the reason and the source crop attached. What lands in the register is only what verified. What did not verify is visible, explained, and someone's explicit job.
That is the whole point of the empty column. It is not there to look rigorous. It is there so that the presence of a value means something - it means this was read and it passed - and the absence of one is never silently doing the work of a failure nobody was told about.
This is why a registry can load a Docovly export directly: the uncertain values are not mixed into the data, they are in the withheld queue for review, each with its reason and a crop of the original pixels it came from.
Keep reading
Read back & checked
Why we refuse to fill in missing text
2-3 years - From printed to blank, faster than ink ever fades
Thermal receipts are a time bomb, and most of them have already gone off
Structured condition, not a paragraph
What a conservator taught us about condition surveys