Benchmarks

Self-reported accuracy, speed, and coverage as of 2026-07-27 (version 2026.Q3). Refreshed quarterly.

Measured from live processing

Live figures are published once enough documents have been processed in the last 90 days for the sample to mean anything. Until then, the fixture run below is the honest number. The endpoint at /api/public/v1/quality reports the same state.

Accuracy and speed by format

Every number below is measured on our own test corpus. How the corpus is built, what counts as a correct row, and how runtimes are timed is set out in the testing methodology.

FormatParsing successRow accuracyMedian runtimep95 runtimeSample
CSV99.7%99.9%180 ms520 ms412
XLSX99.2%99.8%230 ms640 ms208
PDF (digital)96.4%98.1%920 ms2400 ms486
PDF (scanned)84.2%92.3%3800 ms9600 ms138
Receipt PDF95.8%97.2%1100 ms3200 ms40

Bank coverage

Total supported banks: 55 (how coverage is counted). Coverage by region:

  • US: 24 banks
  • UK: 10 banks
  • EU: 2 banks
  • Global: 2 banks
  • IN: 7 banks
  • AU: 5 banks
  • AE: 5 banks

Full list at Supported banks.

Supported formats

  • CSV (Comma-separated values): Any dialect, any column order. Header row auto-detected.
  • TXT (Delimited text): Tab, semicolon, or pipe. Fallback for legacy exports.
  • XLSX (Excel workbook): First sheet by default. Multi-sheet workbooks are enumerated.
  • XLS (Legacy Excel): Read via the same XLSX pipeline.
  • PDF (PDF statement): Digital PDFs parsed as text. Scanned PDFs routed through OCR.

Methodology

Dataset: The benchmark dataset is a curated set of anonymized statements donated by users under an internal test license, plus synthetic statements generated from public bank templates. It spans checking, savings, credit card, and business accounts across US, UK, EU, IN, AU, and AE banks. Sample size 1284 statements. Full detail on the methodology page.

Environment: Runs execute on a single Chromium instance with 4 vCPU and 8 GB RAM. Parsing happens in-browser via the same WASM pipeline shipped to end users. OCR times include model warm-up on the first page.

Refresh cadence: Quarterly. Next scheduled run: 2026-10-15.

Audit trail: Every run writes a fingerprint into src/generated/seo-fingerprint.ts and the accompanying numbers in this file are updated in the same commit.

Programmatic access

The same numbers are available as JSON at /api/public/v1/benchmarks. See the API documentation for the full list of public endpoints.

How to compare fairly

Vendor accuracy numbers are only comparable when the datasets are. Ours is described above. If you are running your own comparison, use the same set of statements across every tool, use the same definition of a correct row, and publish the number of samples per format. A 99 percent claim on 20 samples is not the same as a 96 percent claim on 500 samples.