bank-statement-to-tablelisted
Install: claude install-skill Hiberius/bank-statement-to-table
# Bank Statement to Table
## Overview
Extraction is the easy half. Any parser produces a table; the question is whether the
table is the statement. A bank statement carries its own proof, so you never have to
guess:
```
balance[i] == balance[i-1] + amount[i] every row
opening + sum(amounts) == closing the whole statement
```
**Core principle: never hand over an extraction that has not passed both checks.**
Extraction is guessing. Verification is knowing.
## When to use
- A PDF or scanned bank statement that needs to become a spreadsheet or accounting import
- Dates and amounts in a mixed or unclear convention
- An extraction that "looks right" and needs to be proven before it is used
- Multi-line descriptions, page breaks, repeated headers, carried-forward lines
- A statement that crosses a year boundary with rows that omit the year
**Not for:** categorising transactions, budgeting, or reading a statement to answer a
question. This is about getting the numbers out correctly.
## The three commands
```bash
pdftotext -layout statement.pdf - > statement.txt
python3 scripts/statement.py detect statement.txt
python3 scripts/statement.py parse statement.txt --out rows.csv
python3 scripts/statement.py verify rows.csv --opening 1240.55 --closing 2103.11
```
```
VERIFIED: the parse reproduces the statement exactly.
```
That line, and only that line, means the file is usable.
## Two decisions made once per document, never per row
**Date order.** `01/06` is