Accuracy

No converter should ask to be trusted on adjectives. This page publishes the measurements that gate every release: what was tested, how, and the current numbers. If a layout ever falls below threshold, it is disabled rather than averaged away.

Methodology

Each certified layout is benchmarked through the complete production pipeline. A seeded generator produces statement models with known-true rows. Those models are rendered as real PDF files with a text layer, exactly the way the adapters will meet them. The same extraction, parsing, and reconciliation code that runs in your browser then reads the bytes back, and every recovered row is compared with the truth.

The corpus covers single and multi-page statements up to 250 transactions, month and year boundaries, leap days, overdrawn balances, zero balances, wrapped multi-line descriptions, and same-day rows without repeated dates. On top of the clean corpus, corrupted variants are generated with a running balance shifted by one penny, a row silently removed, a debit swapped into the credit column, and an unreadable date. A corrupted fixture that comes out labelled verified counts as a false verified, and the release gate requires that number to stay at zero.

Fixture provenance: the corpus is currently synthetic, built to replicate each bank’s digital statement structure. Synthetic fixtures exercise the arithmetic and layout logic thoroughly, but they are not scans of real statements, and we say so here rather than imply otherwise. As authorised, sanitised real-world fixtures are contributed, they will be added to the corpus and these numbers will be regenerated.

Thresholds for enabling a layout: at least 98% exact row recall, 99.5% date and amount accuracy, 99.5% direction accuracy, zero false verified results, at least 85% of fixtures completing without manual repair, and a median under five seconds for a 25-page statement.

Current results

Generated 16 July 2026 by the certification harness. Regenerated on every parser change; a regression blocks the release.

Barclaysbarclays-personal-classic · parser v1.0.0

Verified
Exact row recall
100.00%
Amount accuracy
100.00%
Date accuracy
100.00%
Direction accuracy
100.00%
Reconciliation rate
100.00%
False verified
0 of 48 corrupted
Clean fixtures
24
Rows compared
2,112
Median parse, large statements
17 ms
Completed without repair
100.00%

Lloydslloyds-personal-classic · parser v1.0.0

Verified
Exact row recall
100.00%
Amount accuracy
100.00%
Date accuracy
100.00%
Direction accuracy
100.00%
Reconciliation rate
100.00%
False verified
0 of 48 corrupted
Clean fixtures
24
Rows compared
2,112
Median parse, large statements
16 ms
Completed without repair
100.00%

NatWestnatwest-personal-classic · parser v1.0.0

Verified
Exact row recall
100.00%
Amount accuracy
100.00%
Date accuracy
100.00%
Direction accuracy
100.00%
Reconciliation rate
100.00%
False verified
0 of 36 corrupted
Clean fixtures
24
Rows compared
2,112
Median parse, large statements
10 ms
Completed without repair
100.00%

Monzomonzo-personal-classic · parser v1.0.0

Verified
Exact row recall
100.00%
Amount accuracy
100.00%
Date accuracy
100.00%
Direction accuracy
100.00%
Reconciliation rate
100.00%
False verified
0 of 48 corrupted
Clean fixtures
24
Rows compared
2,112
Median parse, large statements
13 ms
Completed without repair
100.00%

Starlingstarling-personal-classic · parser v1.0.0

Verified
Exact row recall
100.00%
Amount accuracy
100.00%
Date accuracy
100.00%
Direction accuracy
100.00%
Reconciliation rate
100.00%
False verified
0 of 48 corrupted
Clean fixtures
24
Rows compared
2,112
Median parse, large statements
16 ms
Completed without repair
100.00%

Revolutrevolut-personal-classic · parser v1.0.0

Verified
Exact row recall
100.00%
Amount accuracy
100.00%
Date accuracy
100.00%
Direction accuracy
100.00%
Reconciliation rate
100.00%
False verified
0 of 48 corrupted
Clean fixtures
24
Rows compared
2,112
Median parse, large statements
12 ms
Completed without repair
100.00%

first directfirst-direct-personal-classic · parser v1.0.0

Verified
Exact row recall
100.00%
Amount accuracy
100.00%
Date accuracy
100.00%
Direction accuracy
100.00%
Reconciliation rate
100.00%
False verified
0 of 48 corrupted
Clean fixtures
24
Rows compared
2,112
Median parse, large statements
14 ms
Completed without repair
100.00%

What these numbers do not claim

  • They do not cover scanned statements, password-protected files, or layout variants outside the certified list; those are refused at the door.
  • They do not promise that a bank will never change its statement format. When one does, the fingerprint stops matching, the document is reported as unsupported, and the adapter is re-certified before the bank page returns.
  • They are not a substitute for your own review. Flagged fields exist precisely because some values need a human decision.

The harness source lives in the repository as scripts/benchmark.ts. See also supported banks and how documents are handled.