Tasdeeq — verified Urdu (Nastaliq) invoice extraction

Two OCR engines read the invoice; a verification layer (arithmetic, cross-engine agreement, format validity) decides green / amber / red per field. Nothing is ever auto-corrected.

This is the static fallback showcase with saved example results. The live app (login demo / tasdeeq123) runs at huggingface.co/spaces/dayyan003/Tasdeeq — source code at github.com/Dayyan-Saeed/Tasdeeq.

1.0green precision
1.0flag rate on wrong
1.0corrupted recall
78%verifier accuracy

Held-out evaluation, pipeline (Qaari + EasyOCR), 20 synthetic invoices (the main set is synthetic; see the README for limits).

GREEN 0091 · mild invoice · saved eval run
invoice 0091
fieldstatusvalue
invoice_number● greenINV-2025-8130
date● green2025-10-08
subtotal● green35,434.75
tax● green—
total● green35,434.75

All checks pass: arithmetic, format and both engines agree — safe to auto-accept.

AMBER 0087 · heavy invoice · saved eval run
invoice 0087
fieldstatusvalue
invoice_number● greenINV-2025-9403
date● green2025-02-02
subtotal● amber71,786.00
tax● amber71,786.00
total● amber81,118.18

Arithmetic passes but engines disagree on a field — amber: a human must review before anything is accepted.

RED 0099 · corrupted invoice · saved eval run
invoice 0099
fieldstatusvalue
invoice_number● amberINV-نمب
date● amber2020-05-17
subtotal● amber66,292,050.00
tax● amber—
total● red—

Corrupted invoice: the printed total (74,410.52) is wrong — red blocks auto-accept. Ground-truth total: 74,910.52.