Accuracy

What our scan tests show

We tested thirteen degraded versions of one fixture invoice. Each matched the fourteen fields we scored. Below is that dated result and the gaps we still need to close.

13/13

degraded variants matched all 14 scored fields in the 2026-09-01 sweep. One fixture invoice, with blur, skew, faded toner and low resolution.

0

wrong scored fields in this 13-variant sweep. A small test result, not a zero-error guarantee. Passing checks cannot prove that every read matches the paper.

Clean scan, 300dpi14/14
Low resolution, 150dpi14/14
Low resolution, 100dpi14/14
Low resolution, 72dpi14/14
Skewed 1.5°14/14
Skewed 3°14/14
Skewed 5°14/14
Gaussian noise (σ28)14/14
Salt-and-pepper noise14/14
Faded toner (0.42×)14/14
Uneven lighting14/14
Heavy blur14/14
Worst combo (100dpi + skew + noise + fade)14/14

Fields exact out of 14 ground-truth fields, per variant.

Accuracy across scan conditions
Scan conditionFields exactVerdict
Clean scan, 300dpi14/14AUTO-EXPORT
Low resolution, 150dpi14/14AUTO-EXPORT
Low resolution, 100dpi14/14AUTO-EXPORT
Low resolution, 72dpi14/14AUTO-EXPORT
Skewed 1.5° / 3° / 5°14/14 ×3AUTO-EXPORT
Gaussian noise (σ28)14/14AUTO-EXPORT
Salt-and-pepper noise14/14AUTO-EXPORT
Faded toner (0.42×)14/14AUTO-EXPORT
Uneven lighting14/14AUTO-EXPORT
Heavy blur14/14AUTO-EXPORT
Worst combo (100dpi + skew + noise + fade)14/14AUTO-EXPORT

13 of 13 variants scored 14/14 against ground truth, all AUTO-EXPORTED. Sweep re-run 2026-09-01 on gemini-3.5-flash-lite, the model production ran at that date; production now runs a different vision model. This score does not cover every field or prove whole-invoice perfection. Required-field or validation failures go to review. We keep the raw run notes internally and will share them on request; the numbers above are the published summary.

How the sweep was run

This is a deliberately degraded fixture, not a customer-wide benchmark. Each variant was scored field by field against recorded ground truth.

Degrade on purpose

A script renders the fixture invoice at varying quality: resolution from 300dpi down to 72dpi, skew up to 5 degrees, Gaussian and salt-and-pepper noise, contrast faded to 0.42×, uneven lighting, heavy blur, and a worst-case combo of all of them.

Run the live pipeline

Every variant goes through the real path, not a mock: render, vision-model read, defensive normalization into the canonical invoice contract, then the full validator set.

Score field by field

Fourteen ground-truth fields per invoice, from seller GSTIN to grand total. Passing that score does not establish that descriptions, units, quantities or IRNs are exact. Missing required fields and failed checks route the entry to review.

Watch the clock

The recorded Gemini tests measured about 2.3 seconds a page end-to-end, and about 3.3 seconds across the degrade sweep. These are dated test timings, not a service-level promise. Large uploads run as background jobs.

See what the validators do when a field is incomplete →