← All case studies
Fintech OCR Document AI Key-Value Extraction KYC Human-in-the-Loop

From chaos to code: transforming low-resolution financial documents into structured JSON with 99.9% field accuracy

Standard OCR reads text from a page. Financial document intelligence requires understanding what that text means — which number is the total, which is the tax, which is the invoice number, and which is noise. When the document is handwritten, smudged, slanted, or photographed in poor lighting, even the OCR step fails.

Here is how human-in-the-loop annotation solves both problems simultaneously. Across 1,000 real-world Indian financial documents, we found that OCR field accuracy on barely legible documents drops to 41–49% — while the same documents annotated by CA-qualified and banking professionals reach 96–99% field accuracy. The gap between those two numbers is where credit decisions go wrong, KYC pipelines fail, and regulatory filings contain errors.

78.6%
OCR-only weighted field accuracy across 1,000 real-world BFSI documents — reflecting actual quality distribution in Indian lending pipelines
99.1%
Human-in-the-loop field accuracy on the same document set — a +20.5% improvement on the metric that determines pipeline reliability

Why OCR alone fails on real-world financial documents

Enterprise OCR has improved dramatically. Modern engines — Google Document AI, AWS Textract, Azure Form Recognizer — achieve character-level accuracy above 98% on clean, printed, well-scanned documents. Sales decks show perfect extraction from crisp invoices with consistent layouts.

The documents that arrive in a real financial institution look nothing like those demos. A customer photographs a crumpled receipt on a dark restaurant table. A loan applicant scans a handwritten income certificate at a Xerox shop using a machine from 2008. A KYC document is a photograph of a photograph — a PAN card photocopied, then photographed again, with a thumb partially covering the corner.

On these documents — which constitute 30–45% of volume in any Indian BFSI document processing pipeline — OCR character accuracy drops from 98% to 72–85%. But character accuracy is not even the right metric. The real problem is structural.

The three failure modes OCR cannot self-correct

Error type 01

Misaligned key-value pairs

OCR reads a label ("Total") and a number ("1,247.50") but assigns the number to the wrong label because the spatial proximity algorithm is confused by a multi-column layout. The total amount gets mapped to the tax field or vice versa.

In a loan processing pipeline, this means the wrong income figure enters the credit model. 312 occurrences in 1,000 documents — 0% caught by automated validation because the value itself is correctly read; only its assignment is wrong.
Error type 02

Merged or split fields

A handwritten amount "₹12,500" is read as two separate tokens: "₹12" and "500" because of spacing between the comma and digits. Or "IFSC: SBIN0001234" and "Account: 12345678" are merged into one field because they share a line. The resulting JSON is structurally broken.

Merged fields produce invalid account references that fail downstream validation. Split fields produce two phantom keys and one missing key. Format-check automation catches only 23–41% of these — the rest require human structural reasoning.
Error type 03

Missing confidence signals

The OCR engine reads a smudged character as "8" with 62% confidence. It outputs "8" without indicating the uncertainty. Downstream systems treat this as a definitive "8" and the wrong amount enters the financial pipeline.

A human annotator looking at the same smudge considers context — surrounding digits, the expected range, the line item description — and either confirms "8" or flags it as uncertain. This contextual verification is impossible to replicate with automated confidence thresholds alone.

The Indian financial document landscape

India's BFSI document processing challenge is unique for three compounding reasons that collectively explain why Western document AI benchmarks are meaningless for Indian pipelines.

1

Document diversity at scale

Indian KYC alone involves PAN cards, Aadhaar cards, voter ID, passport, driving licence, utility bills, and bank statements — each with different layouts, languages, and quality levels. A single loan application file can contain 15–20 documents across 4–5 formats. No single OCR model is trained on this full distribution.

2

Language diversity within a single document

Financial documents in India appear in English, Hindi, and regional languages — often on the same page. A bank statement might have column headers in English, transaction descriptions in Hindi, and merchant names in transliterated Hinglish. OCR engines trained primarily on English text degrade significantly on mixed-script documents: 86.5% char accuracy drops to 54.3% field accuracy.

3

Generational quality degradation

A large portion of Indian financial documents are not born-digital. They are printed, stamped, photocopied, photographed, and re-photographed. A salary slip that started as a clear printout becomes a barely legible photograph by the time it reaches a lending app's document upload. The OCR engine that works perfectly on the original produces garbage on the fourth-generation copy.

Dataset construction

We assembled a dataset of 1,000 financial documents representing the realistic quality spectrum that an Indian BFSI document processing pipeline encounters. Each document was tagged with a quality score from 1 (pristine digital PDF) to 5 (barely legible fourth-generation photocopy).

Document type composition — 1,000 document dataset
Document type
Count
Quality spectrum represented
Printed invoices & bills
200
Clean scan to phone photo
Handwritten receipts
150
Clear to heavily smudged
Bank statements
150
PDF to photographed printout
KYC documents (PAN, Aadhaar, voter ID)
200
Original scan to photocopy of photocopy
Salary slips
100
Digital PDF to faded printout
GST invoices
100
Standard format to custom layout
Tax documents (ITR, Form 16, 26AS)
100
E-filed PDF to handwritten with stamps

Step 1 — Baseline OCR extraction

We processed all 1,000 documents through three OCR engines to establish baseline performance: Google Document AI (enterprise extraction with pre-trained financial models), AWS Textract (structured form key-value extraction), and Tesseract 5.0 with custom Indian financial document fine-tuning. We measured both character-level accuracy and field-level accuracy — the metric that actually determines pipeline reliability.

Baseline OCR accuracy by document quality
Quality level
Char accuracy (avg 3 engines)
Field accuracy (avg 3 engines)
Field accuracy (best engine)
1 — Pristine PDF
99.2%
96.8%
98.1%
2 — Clean scan
97.4%
91.3%
94.2%
3 — Phone photo
91.8%
78.6%
83.7%
4 — Low quality
84.3%
62.1%
68.4%
5 — Barely legible
72.1%
41.7%
49.2%
Mixed-script (Hindi + English)
86.5%
54.3%
61.8%
Handwritten fields
68.4%
38.2%
44.1%

The pattern is clear: character accuracy degrades gradually with quality, but field accuracy degrades dramatically. A document where OCR reads 84% of characters correctly (quality level 4) achieves only 62% field accuracy — because the 16% of errors are disproportionately concentrated in the labels that determine which field a value belongs to. When OCR misreads "Total" as "Tctal," the number next to it has no label and the key-value pair breaks entirely.

Handwritten fields reach 38% field accuracy — meaning more than half of handwritten values are either unextracted or assigned to the wrong field. These are the most common document type in Indian lending applications.

Step 2 — Human-in-the-loop correction protocol

We designed a structured four-phase human correction protocol optimised for financial document extraction. The core design principle: annotators do not re-type documents from scratch. They correct the OCR output — fixing misread characters, reassigning values to correct fields, splitting merged fields, and joining split fields. This hybrid approach is 3–4x faster than manual transcription while achieving production-grade accuracy.

Phase 1

OCR pre-extraction as starting point

Every document was first processed through the best-performing OCR engine for its document type — Google Document AI for printed documents, Textract for structured forms, Tesseract for mixed-script. The OCR output (both raw text and extracted key-value pairs) served as the annotator's starting point, not a blank canvas.

Phase 2

Financial domain annotation guidelines

Standard OCR correction says "fix any incorrect characters." Our guidelines went further: amount normalisation rules (Indian numbering, handwritten decimal ambiguity), tax computation cross-validation (GST + CGST + SGST must reconcile with subtotal and total), KYC field format validation (PAN: 5 letters + 4 digits + 1 letter; Aadhaar: 12 digits; IFSC: 4 letters + 7 chars), and date format standardisation (all dates normalised to ISO 8601).

Phase 3

Domain-expert annotator selection

Our annotator team included CA articleship trainees (who process financial documents daily as part of audit and tax work), banking operations professionals (current/former bank employees from KYC, loan processing, and statement teams), and experienced financial data entry operators with 3+ years of specialised experience. Generic data entry operators were explicitly excluded.

Phase 4

Three-tier QA with financial validation

Tier 1 automated: format validation (PAN/Aadhaar/IFSC regex), mathematical reconciliation (subtotal + GST = total), duplicate detection, and range validation (₹50,00,000/month salary flagged for review). Tier 2 peer review: blind second extraction on 15% of documents, Cohen's kappa on field-level agreement. Tier 3 expert review: CA-qualified senior reviewer for all Tier 1 flags, all quality 4–5 documents, and 5% random sample.

Quality metrics — Inter-annotator agreement (Tier 2 peer review)
Cohen's kappa (field extraction):     0.94
Cohen's kappa (amount fields):        0.96
Cohen's kappa (date fields):          0.88
Cohen's kappa (name/address fields):  0.91
Gold standard accuracy:               97.8%
Math reconciliation pass rate:        99.6%
Format validation pass rate:          99.9%

Kappa on amount fields (0.96) is highest because financial amounts have clear right/wrong answers once characters are correctly read. Date fields show lower kappa (0.88) due to DD/MM vs MM/DD ambiguity — resolved by contextual judgment rather than algorithmic rules, which is precisely why human annotators are necessary.

Results — field accuracy after human-in-the-loop correction

Field accuracy improvement across all quality levels
Quality level
OCR only (best engine)
Human-in-the-loop
Improvement
1 — Pristine PDF
98.1%
99.9%
+1.8%
2 — Clean scan
94.2%
99.8%
+5.6%
3 — Phone photo
83.7%
99.4%
+15.7%
4 — Low quality
68.4%
98.7%
+30.3%
5 — Barely legible
49.2%
96.1%
+46.9%
Mixed-script
61.8%
99.2%
+37.4%
Handwritten fields
44.1%
97.3%
+53.2%

What humans catch that automated rules cannot

The most common error — misaligned key-value pairs (312 occurrences) — is undetectable by automated validation because the value itself is correctly read; it is just assigned to the wrong field. Only a human who understands the document layout can identify that "1,247.50" belongs to the total field, not the subtotal field. This single error type, uncorrected, would produce 312 incorrect records in a financial pipeline.

Error type breakdown — 1,000 document dataset
Error type
Occurrences
% caught by Tier 1 auto-check
Requires human
Misaligned key-value pairs
312
0%
Yes — all
Misread digits in amounts
287
68% (math check)
32% require human
Merged fields
198
41% (format check)
59% require human
Split fields
156
23%
77% require human
Missing fields (OCR did not extract)
134
0%
Yes — all
Format errors (PAN/Aadhaar/IFSC)
89
92% (regex check)
8% require human
Date ambiguity (DD/MM vs MM/DD)
76
34%
66% require human
Script confusion (Hindi ↔ English)
143
0%
Yes — all

Downstream pipeline impact

We measured the impact on a mock loan processing pipeline that uses extracted document data for credit decisioning. The most commercially significant metric: false rejection rate drops from 8.2% to 0.9%. Each false rejection is a lost customer — a qualified borrower rejected because OCR misread their income figure, employer name, or KYC document number.

At a lending platform processing 10,000 applications per month, reducing false rejections by 7.3% recovers 730 additional approved loans per month. At an average ticket size of ₹2 lakhs and a 2% origination fee, that is ₹29 lakhs per month in recovered revenue from annotation quality improvement alone.

Downstream pipeline impact — loan processing
Income field accuracy
76.4% → 99.7%
Applications requiring manual re-verification
34% → 3.2%
Average processing time per application
12 min → 4 min
False rejection rate (good applicant rejected due to data error)
8.2% → 0.9%

Time and cost analysis

Total pipeline cost — extraction plus re-verification
Cost metric
OCR only
Human-in-the-loop
Cost per document (extraction)
₹3–8
₹25–45
Total for 1,000 documents (extraction only)
₹3,000–8,000
₹25,000–45,000
Applications needing re-check
34%
3.2%
Cost of re-check per application
₹150–300
Total cost incl. re-verification (1,000 apps)
₹54,000–1,08,000
₹25,000–45,000
Net cost comparison (extraction + re-verification)
Higher
Lower
Human-in-the-loop extraction is actually cheaper than OCR-only extraction when you include the cost of downstream re-verification. The higher per-document extraction cost is more than offset by the eliminated re-verification step.
Key learnings
Character accuracy and field accuracy are different metrics — and field accuracy is what matters. OCR can read 84% of characters correctly and still extract only 62% of key-value pairs correctly, because errors concentrate in the labels that determine field assignment. Financial pipeline reliability depends on field accuracy, not character accuracy.
Human-in-the-loop is not "manual data entry" — it is OCR correction. By using the best available OCR engine as a pre-extraction step and having humans correct the output rather than transcribe from scratch, the hybrid approach is 3–4x faster than manual entry while achieving 99%+ field accuracy. Human effort concentrates on the 15–30% where OCR fails.
Financial domain knowledge in annotators catches errors that character-level correction misses. A CA who notices GST doesn't reconcile with the subtotal finds a misread digit that a generic data entry operator would pass through unchanged. Domain knowledge is a quality control mechanism, not a nice-to-have.
The cost math favours human-in-the-loop when you include downstream costs. The per-document cost of human correction is 5–8x higher than OCR alone. But the total pipeline cost is lower because the re-verification step — which consumes 34% of applications in an OCR-only pipeline — is almost entirely eliminated.
Indian financial documents require India-specific annotation expertise. Mixed-script documents, Indian numbering conventions (lakhs, crores), Indian KYC formats (PAN, Aadhaar), and Indian tax structures (CGST + SGST + IGST) require annotators who handle these formats routinely. Western document AI benchmarks and Western annotation teams do not cover this distribution.
Handwritten fields remain the hardest problem — and the most valuable to solve. At 44% OCR accuracy, handwritten financial fields require human annotation for any reliable downstream use. As Indian banking continues its push toward digital lending with physical document upload, handwritten document volume will remain high for years. This is a sustained annotation demand.

Processing financial documents with OCR alone?

We specialise in financial document annotation for Indian BFSI pipelines — KYC, invoices, loan documents, and bank statements. Free pilot: 50 documents annotated, accuracy report in 5 working days.

Request Free Pilot →
C
The Concave AI Team
ML-Engineer-Led Data Annotation & GenAI Evaluation · Bengaluru, India