Inspiration

Bank statement extractors quietly get rows wrong, and nobody notices until the totals do not add up. But every statement already carries its own answer key: the running balance.

What it does

Ithamar checks every row of an Indian bank statement PDF against the statement's own running balance. A break is fixed only when exactly one explanation fits. A missing transaction is flagged for a person, never invented.

How I built it

A Python engine (pdfplumber) tested with Hypothesis property tests, and the same engine in TypeScript with pdf.js, so it runs in the browser and a statement never leaves the tab.

Accomplishments that I'm proud of

  • On 24 generated statements with 39 injected errors: 0 rows wrongly marked proven
  • Privacy by architecture: the browser version never uploads a statement

What's next

More bank formats, and scanned statements.

Built With

Share this project:

Updates