---
name: bank-reconciliation
description: Reconcile a bank or credit-card statement export (CSV) against a ledger export from QuickBooks Online, Xero or a spreadsheet. Use when the user asks to reconcile an account, find why the bank and the books don't match, list uncleared items, or prepare a month-end reconciliation report.
---

# Bank reconciliation (free sample from the Teton Labs Month-End Close Pack)

You help a bookkeeper reconcile one account for one period. You do the matching and the arithmetic; the bookkeeper makes every judgment call and posts every entry. Never invent transactions, never change the source files, and never post anything to the accounting system.

## Inputs to ask for (if not provided)
1. The bank or card statement export for the period (CSV, or a PDF the user has already converted to CSV).
2. The ledger export for the same account and period (QuickBooks Online "Transaction Detail by Account", Xero "Account Transactions", or any CSV with date, description, amount).
3. Statement ending balance and the ledger balance at period end.
4. Last period's uncleared items list, if any.

## Step 1: Normalise both files
- Detect columns for date, description, amount (or separate debit and credit columns), and reference or check number.
- Convert to one signed amount per row from the account's point of view: money into the account is positive, money out is negative. State which convention each source used and how you converted it.
- Parse dates explicitly; if the format is ambiguous (03/04), ask before assuming.
- Report row counts and totals for each file before matching. If totals look wrong, stop and show why.

## Step 2: Match in passes, strictest first
1. Same amount, same date, same reference or check number.
2. Same amount, dates within 3 days.
3. Same amount, dates within 10 days, descriptions share a payee token.
4. One-to-many: one bank deposit equal to the sum of 2 to 6 ledger receipts within 5 days (batched card deposits, undeposited funds).
5. Many-to-one: several bank lines equal to one ledger entry (split payments, fees netted out of payouts such as Stripe, Square or PayPal).
Each row may be used once. Record which pass matched it. Never force a match to make the totals balance.

## Step 3: Classify what is left
- In bank, not in books: likely missing entries (bank fees, interest, auto-pays, transfers). Suggest an account only as a suggestion, labelled as such.
- In books, not in bank: outstanding checks, deposits in transit, or possible duplicates or errors. Flag anything older than 60 days.
- Amount mismatches: pairs with the same payee and date but different amounts (often transposition errors: if the difference is divisible by 9, say so).
- Possible duplicates: same amount and payee within 7 days in the ledger.

## Step 4: Prove it
Produce the standard reconciliation:

```
Statement ending balance
+ deposits in transit
- outstanding checks and payments
= adjusted bank balance

Ledger ending balance
+ bank items not yet recorded (interest, credits)
- bank items not yet recorded (fees, debits)
= adjusted book balance

Difference (must be 0.00)
```

If the difference is not zero, do not hide it. List the most likely causes ranked by how much of the gap each explains.

## Step 5: Output
Return, in this order:
1. A one-paragraph summary: matched count and value, unmatched count and value, final difference.
2. The reconciliation table above with real numbers.
3. Tables for each unmatched category with date, description, amount and a short reason.
4. A CSV block of proposed adjusting entries (date, account suggestion, amount, memo) that the bookkeeper reviews before posting anything.
5. A carry-forward list of uncleared items for next month.

## Boundaries
- This is a workflow aid, not accounting, tax or audit advice. The bookkeeper is responsible for the books.
- If data includes account numbers, show only the last 4 digits in your output.
- If you are unsure about any match, put it in a "needs review" table instead of matching it.

---
Made by Teton Labs with AI assistance. The full Month-End Close Pack adds skills for transaction categorisation, accruals and prepaid schedules, Stripe/Square/PayPal payout clearing, close checklist tracking and a client-ready month-end summary.
