tie-out-statementslisted
Install: claude install-skill median-labs/close-the-books
# Tie out statements
Before you categorize a transaction you need to know you have all of them. A feed
that quietly stopped, a month that downloaded half, a card whose statement cycle
runs mid-month: each leaves a hole that no amount of careful categorizing fixes.
The check is arithmetic and it is absolute:
```
opening balance + deposits - withdrawals = closing balance
```
If that holds for every month, you have every transaction. If it does not, you
are missing some, and the difference tells you how much.
## Hard gates
- **Never plug a difference.** Report it as a number and find it. An adjustment
that makes a difference disappear destroys the only signal you had.
- **The chain identity beats the statement's own summary field.** Printed totals
are sometimes mangled in the PDF. If the running balance chain ties and the
printed "total withdrawals" does not parse, trust the chain and say which
check you skipped.
- **A missing statement is reported, never assumed empty.** No statement for an
account-month means "cannot check", not zero.
## Run it
```
python3 bin/books.py tieout --statements statements/ --profile profiles/mine.local.json
```
Per account per month it reports opening, deposits, withdrawals, computed
closing, stated closing, and the difference. It also reports **chain breaks**,
where one month's closing does not equal the next month's opening, which is how
a missing statement shows up even when every statement you do have ties.
## Getting the sta