SMALL SAMPLE · VERSIONED · REPRODUCIBLE

A benchmark with its failure left in.

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-v1

System version

8584fdd

Provider model

PaddleOCR-VL-1.6

Dataset

10 cases · 11 pages

HOW IT WAS SCORED

Recall, structure, and completion are separate.

01

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.

02

Complete rows

A row passes only when every expected value appears contiguously in one output row. The crop case therefore scores zero for full rows.

03

Run completion

Every submitted case remains in the denominator. A provider or conversion failure would score zero rather than disappearing from the report.

Cell recall
98.2% 214/218
Full-row exact match
90.3% 28/31
Completed runs
100% 10/10

BY FIELD TYPE

The missing crop is visible in headers and numbers.

Headers98.2%54/55 exact matches
Text100%88/88 exact matches
Numbers94.9%56/59 exact matches
Dates100%16/16 exact matches

DOCUMENTED FAILURE

A cropped source cannot yield the missing amount column.

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.

Missing header
Amount USD
Missing values
425.30 · 1180.00 · 690.75
Review action
Return to the source and rescan the complete page.

ALL TEN CASES

Inputs and actual model outputs are public.

CaseInput qualityPagesCell recallFull rowsArtifacts
Scanned registerClean image-only1100%100%PDFXLSX
Multi-page registerDigital text2100%100%PDFXLSX
Bank statementDigital text1100%100%PDFXLSX
Commercial invoiceDigital text1100%100%PDFXLSX
Customs declarationDigital text1100%100%PDFXLSX
Bill of ladingDigital text1100%100%PDFXLSX
Air waybillDigital text1100%100%PDFXLSX
Scanned registerResampled + 1.2° skew1100%100%PDFXLSX
Scanned registerBlur + low contrast + 2.4° skew1100%100%PDFXLSX
Scanned registerRight edge cropped180.0%0.0%PDFXLSX

READ BEFORE REUSING THE NUMBER

What this benchmark does not prove.

  1. Ten synthetic cases and eleven pages are too small for a general product accuracy claim.
  2. Four scan-quality cases derive from one layout. Handwriting, camera perspective, language variation, and naturally noisy archives are absent.
  3. Expected-value recall does not penalize unrelated extra cells and is not a semantic field-mapping metric.
  4. Each business document type has one case, so its rate is descriptive, not a stable estimate.

REPRODUCE IT

Every input, output, hash, and formula is inspectable.

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