Help us improve
Share bugs, ideas, or general feedback.
Reconciles a bank statement to the cash ledger by matching transactions on amount, date, and reference with fuzzy tolerance, identifies deposits in transit and outstanding payments, surfaces unmatched items on both sides, and drafts a bank reconciliation workpaper with an aged list of reconciling items; use for month-end close, accounting clean-ups, audit cash testing, and any cash/bank reconciliation task in Excel or CSV.
npx claudepluginhub kimonarrow/ledgerskills --plugin accounting-essentialsHow this skill is triggered — by the user, by Claude, or both
Slash command
/accounting-essentials:bank-reconciliation-helperThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill reconciles a bank statement against the entity's cash book (general ledger cash account) and drafts the supporting workpaper. It is for accountants, bookkeepers, controllers, and auditors performing month-end close or substantive cash testing. It matches line items with sensible tolerance, classifies the residual differences (deposits in transit, outstanding payments, bank charges no...
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Share bugs, ideas, or general feedback.
This skill reconciles a bank statement against the entity's cash book (general ledger cash account) and drafts the supporting workpaper. It is for accountants, bookkeepers, controllers, and auditors performing month-end close or substantive cash testing. It matches line items with sensible tolerance, classifies the residual differences (deposits in transit, outstanding payments, bank charges not yet booked, errors), proves the reconciliation arithmetically, and ages the open reconciling items so stale items get investigated. It operates only on the files you provide in your session.
Provide two datasets (CSV preferred; an Excel workbook with two tabs also works):
date, description, reference (cheque no, payment ref, or transaction ID), amount (signed: credits positive, debits negative, OR separate debit/credit columns), and ideally a running_balance.date the entity recorded the entry, description, reference, amount (signed from the entity's perspective: receipts positive, payments negative).Also tell me:
A bundled synthetic example is provided: samples/bank_recon_sample.csv. It contains both sides in one file with a source column (BANK or LEDGER) so you can see the expected shape. Split it on source to get the two datasets.
Reconciliation is a controls discipline, not just arithmetic. Follow these steps.
YYYY-MM-DD. Coerce amounts to a single signed convention (entity perspective: money in positive, money out negative). If the bank uses separate debit/credit columns, compute amount = credit - debit.REF, PAYMENT, INV, trailing transaction IDs) into a normalised key for fuzzy matching, but keep the original text for the workpaper.Apply rules in order; once a line is matched, remove it from both pools so it cannot match twice.
Never force a match across different signs or across a material amount gap to make the reconciliation balance. An unexplained item is a finding, not an error to be hidden.
Every remaining item must be classified:
Use the standard bank-to-book proof:
Bank statement closing balance
+ Deposits in transit (in books, not yet at bank)
- Outstanding payments (in books, not yet cleared)
+/- Bank errors (if the bank is wrong)
= Adjusted bank balance
Cash book closing balance
+ Items on bank not yet booked (interest, etc.)
- Items on bank not yet booked (charges, DDs, returns)
+/- Book errors
= Adjusted book balance
Adjusted bank balance MUST equal Adjusted book balance.
If the two adjusted balances do not agree, the difference equals an unexplained item still in a pool - do not sign off. The residual difference must be 0.00 or fully explained.
For each unmatched item still open at the reconciliation date, compute age in days from the item's own date to the reconciliation date and bucket: 0-30, 31-60, 61-90, 90+. Items older than one statement cycle (typically 30 days for cheques, sooner for electronic payments) warrant follow-up: an uncashed cheque past its validity window may need to be voided and reinstated as a liability; a long-outstanding deposit in transit may indicate a misposting or fraud.
Produce a Markdown bank reconciliation workpaper (and, on request, a companion CSV of the line-level matching detail). The workpaper contains:
Item ID, Type (deposit in transit / outstanding payment / bank-only item / error), Date, Reference, Description, Amount, Age (days), Age bucket, Action.match_rule (exact / amount+date / ref+tolerance / grouped), bank_date, ledger_date, reference, bank_amount, ledger_amount, difference.Using samples/bank_recon_sample.csv for Aurora Components Ltd at 2026-05-31 (GBP):
source. The exact-match pass ties the customer receipt from Northwind Trading BV (ref INV-2041, 12,500.00) and the supplier payment to Borealis Supplies (ref CHQ-1087, -3,200.00).CHQ-1091 for -1,450.00 is in the cash book but not on the bank statement -> outstanding payment (deduct from bank). A 2026-05-31 receipt of 2,000.00 is in the books but not yet at the bank -> deposit in transit (add to bank). Bank shows a -45.00 service charge and +18.50 interest not in the books -> bank-only items needing journals.CHQ-1091 outstanding cheque is aged 0-30 days; no stale items this period.Disclaimer: This skill is a drafting and analysis aid, not professional advice. It does not provide accounting, audit, tax, investment, or legal advice. All output must be reviewed and approved by a qualified professional before use or reliance.
Part of LedgerSkills - security-vetted Claude Code skills for finance teams. New skills scanned and tested weekly; subscribe on the site.