| What it reads |
Characters and their coordinates |
Characters, plus a learned layout for trained document families |
The page as a page. Text, table structure, checkbox state, stamps, signatures, handwriting, and how they relate |
| How you specify fields |
You draw zones on a sample and hope the next document lines up |
You label a training set per family, then write rules for what it misses |
A JSON schema. Field name, type, one line of description |
| A layout it has never seen |
Zones miss. The output is wrong and nothing flags it |
Accuracy drops until someone labels more samples or adds a rule |
Processed on the first document. No training run, no waiting |
| Table across a page break |
Two unrelated blobs of text |
Usually two separate tables. Carried forward headers confuse it |
Stitched into one table. Continuation rows detected, header carried forward |
| Handwriting, stamps, checkboxes |
Handwriting mostly fails. A stamp becomes noise on top of the text underneath |
Handled if a model was trained for it, which usually it was not |
Read as their own signals. A stamp covering a field is flagged rather than guessed through |
| Does it check its own answer |
No |
Only what you coded into the rules engine afterwards |
Yes, before returning. Line items summed, tax recomputed, GSTIN checksum, dates parsed, IFSC looked up |
| What you get per field |
A string and a bounding box |
A string and a confidence number with nothing behind it |
Value, type, page, bounding box, confidence, and every check that ran with its result |
| When it is wrong |
You find out in the ledger, weeks later |
Confidence is often high on the wrong value, because the pattern matched |
The failing check names itself. The field goes to review with its crop attached |
| Setup before first useful output |
Hours per template, repeated per vendor |
Weeks. Sample collection, labelling, tuning, then rules |
Under a day for a first schema. Refinement means editing field descriptions |
| Ongoing maintenance |
Every vendor layout change breaks something |
Retraining cycles and a rules file nobody wants to touch |
Corrections in the review queue become examples for that vendor. No retraining cycle |
| Cost shape |
Cheap per page, expensive in human correction |
Licence, plus a labelling effort, plus an integrator |
Higher per page than raw OCR. Lower once you count the review hours it removes |
| Where it is still the right tool |
Search and archival indexing across a document store |
A single fixed form at very high volume, where a trained model is cheaper per page |
Long tail vendor mixes, mixed quality scans, and anything that needs an audit trail |