Expected cells
Headers and non-empty declared values are normalized for Unicode, whitespace, case, decimal form, and ISO dates, then matched against saved actual workbooks.
SMALL SAMPLE · VERSIONED · REPRODUCIBLE
Ten synthetic cases test one model against declared cells and complete rows. The cropped scan fails exactly where its source is missing.
Benchmark ID
2026-07-19-paddlevl16-v1System version
8584fddProvider model
PaddleOCR-VL-1.6Dataset
10 cases · 11 pagesHOW IT WAS SCORED
Headers and non-empty declared values are normalized for Unicode, whitespace, case, decimal form, and ISO dates, then matched against saved actual workbooks.
A row passes only when every expected value appears contiguously in one output row. The crop case therefore scores zero for full rows.
Every submitted case remains in the denominator. A provider or conversion failure would score zero rather than disappearing from the report.
BY FIELD TYPE
DOCUMENTED FAILURE
The right-edge stress case removes “Amount USD” and all three values before conversion. It completed technically, but scored 80.0% for expected cells and 0% for complete rows.
ALL TEN CASES
| Case | Input quality | Pages | Cell recall | Full rows | Artifacts |
|---|---|---|---|---|---|
| Scanned register | Clean image-only | 1 | 100% | 100% | PDFXLSX |
| Multi-page register | Digital text | 2 | 100% | 100% | PDFXLSX |
| Bank statement | Digital text | 1 | 100% | 100% | PDFXLSX |
| Commercial invoice | Digital text | 1 | 100% | 100% | PDFXLSX |
| Customs declaration | Digital text | 1 | 100% | 100% | PDFXLSX |
| Bill of lading | Digital text | 1 | 100% | 100% | PDFXLSX |
| Air waybill | Digital text | 1 | 100% | 100% | PDFXLSX |
| Scanned register | Resampled + 1.2° skew | 1 | 100% | 100% | PDFXLSX |
| Scanned register | Blur + low contrast + 2.4° skew | 1 | 100% | 100% | PDFXLSX |
| Scanned register | Right edge cropped | 1 | 80.0% | 0.0% | PDFXLSX |
READ BEFORE REUSING THE NUMBER
REPRODUCE IT
python3 scripts/generate_conversion_quality_dataset.py
go run ./cmd/quality-benchmark \
--benchmark-id 2026-07-19-paddlevl16-v1 \
--dataset-manifest apps/web/public/benchmarks/conversion-quality/2026-07-19-paddlevl16-v1/dataset-manifest.json \
--system-version <commit>
node scripts/score_conversion_quality_benchmark.mjs \
--benchmark-id 2026-07-19-paddlevl16-v1