← ClaudeAtlas

tie-out-statementslisted

Parse bank and credit card statements and prove each month's transactions are complete by tying opening balance plus deposits minus withdrawals to the closing balance. Use before categorizing anything, and whenever a bank feed has gaps or has stopped syncing.
median-labs/close-the-books · ★ 1 · AI & Automation · score 74
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