Benchmarks

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

Accuracy and speed by format

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

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.