Back to browse
GitHub Repository

Bankstatemently Open Benchmark for bank statement parsing. 15 synthetic statements, 40 parsing challenges, automated scoring via API.

1 starsShell

Open-source synthetic bank statements for testing parsers

by Maesh·Mar 19, 2026·3 points·0 comments

AI Analysis

●●●BangerSolve My ProblemZero to OneDark Horse

First shared benchmark for bank statement parsers when real data is legally off-limits.

Strengths
  • Server-side ground truth prevents cheating—submit JSON, get field-level accuracy scores.
  • 40 documented edge cases like Buddhist era dates and positive credit charges show real pain.
  • Synthetic data across 8 languages solves the privacy problem blocking parser testing.
Weaknesses
  • Only 15 statements limits statistical significance for production benchmarking.
  • Evaluation API requires network calls—offline testing needs manual comparison.
Category
Target Audience

Developers building financial document parsers or fintech extraction tools

Similar To

DocLayNet · PubLayNet · CORD

Post Description

I open-sourced a dataset of 5 synthetic bank and credit card statement PDFs designed for testing extraction/parsing accuracy. Each PDF uses a fictional bank with realistic formatting from a different country

I've been building a bank statement converter (Bankstatemently) and kept discovering edge cases across different banks. At some point, I started cataloging them as "quirks" and I'm currently at 36 documented challenges and counting (think: dates without years across year boundaries, credit card charges shown as positive instead of negative, dates hiding inside description text etc)

Real bank data is private, so there's no shared dataset to test parsers against. Once I had these quirks, I realized I can use them to reconstruct statements that deliberately include these challenges so more people can use them

There's also a free evaluation API: submit your parsed JSON and get field-level accuracy scores back. Ground truth is held server-side, but that's not necessarily bullet-proof against overfitting

Would appreciate feedback on which edge cases are missing. I'm planning to make the next 10 statements a bit harder (scanned PDFs, multi-currency across multi-table, Buddhist era dates)

https://github.com/bankstatemently/bank-statement-parsing-be...

You can browse all of the quirks here with real-world examples: https://bankstatemently.com/benchmark/challenges

Similar Projects