dtsong/accounting-skills · Archived

bank-rec

Performs bank reconciliations between a bank statement export and GL cash detail.

First seen Aug 15, 2026

Installation

$ npx skills add dtsong/accounting-skills --skill bank-rec

Summary

  • Performs bank reconciliations between a bank statement export and GL cash detail.
  • Use when the user provides a bank statement file (CSV, XLSX, or PDF) and a GL cash detail file and asks to reconcile, match transactions, identify outstanding items, or produce a bank rec workpaper.
  • Outputs a matched/unmatched workbook, aged reconciling items, proposed adjusting JEs, and an evidence table.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from dtsong/accounting-skills.

npx skills add dtsong/accounting-skills

Browse all from dtsong/accounting-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

License LICENSE
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,005 B
  • docs SUMMARY.md 405 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

Bank Reconciliation

Reconciles a bank statement against the GL cash detail for one account and one period. Best run in Cowork — two files in, workbook out.

Required inputs

  • Bank statement — CSV, XLSX, or PDF. Must contain date, description, amount (with sign), and ideally a reference/check number.
  • GL cash detail — CSV or XLSX. Must contain posting date, description, debit, credit (or signed amount), and entry/reference number.
  • Period — the close period being reconciled (e.g., 2026-04).

If any of these is missing, output what's missing instead of guessing.

Workflow

  1. Load and validate. Open both files. Confirm period and currency match. Confirm the bank account in the statement matches the GL account in the cash detail (compare to firm-config/references/chart-of-accounts.csv).
  1. Match transactions. Run scripts/match_transactions.py with priority order:

- Exact amount + exact date (HIGH confidence) - Exact amount + date within ±3 days (HIGH) - Exact amount + matching reference/check number (HIGH) - Fuzzy description match + same amount (MEDIUM — never auto-confirmed)

  1. Bucket the output. The script returns four sets:

- exactmatches — auto-included in the reconciliation - probablematches — go to a ProbableMatches review tab; preparer confirms - unmatchedbank — bank items with no GL match - unmatched_book — GL items with no bank match

  1. Age unmatched items. Run scripts/ageitems.py. Buckets: 0–30, 31–60, 61+ days from period end. Items aged 61+ get a red flag and go to ReviewNotes.
  1. Classify unmatched items. For each, pick the best fit from workpaper-standards/references/review-flags.md:

- OUTSTANDINGCHECK — book debit (cash out), no bank match, recent - DEPOSITINTRANSIT — book credit (cash in), no bank match, recent - BANKFEENOTBOOKED — bank debit, no book match, small/recurring description (SERVICE CHARGE, WIRE FEE, etc.) - NSFRETURN — bank credit reversal with NSF / RETURNED in description - DUPLICATEENTRY — same amount, same date appearing twice on one side - UNKNOWN — anything else, escalated to MANUALREVIEWREQUIRED

  1. Propose adjusting JEs. For each classifiable item that requires a book adjustment (bank fees, NSF returns, missed deposits), draft a JE using workpaper-standards/references/je-template.md. Bank fees credit cash and debit 6900 - Bank Fees. NSF returns reverse the original deposit. Outstanding checks and deposits in transit are not booked — they're reconciling items.
  1. Build the reconciliation summary. Tie GL balance to bank balance:

`` Balance per bank (statement) X Plus: deposits in transit + Less: outstanding checks - Plus/less: other reconciling items ± Balance per books (after adjustments) Y Less: GL balance per cash detail - = Unreconciled difference (should be 0) Z ``

If Z is within materiality.bankrecdifference_tolerance (default $0.01), the rec ties. If not, the skill says so and quantifies Z — it does not plug to force a tie.

  1. Output workbook tabs per workpaper-standards:

- Cover — header, period, accounts, status - SourceBank — raw bank file - SourceGL — raw GL detail - Matched — exact matches with confidence column - ProbableMatches — review-required matches - UnmatchedBank, UnmatchedBook — with aging columns - ReconcilingItems — classified, with proposed JEs - Summary — the tie-out shown above - JEsProposed — feeds directly to je-review - Evidence — every number on Summary traced back - ReviewNotes — questions, flagged items, aged items

Invariants

  • Probable matches are never auto-confirmed. They appear on their own tab.
  • If the rec doesn't tie, say so. Never plug.
  • The proposed JEs go through je-review before posting. That is the composition pattern.
  • One account, one period per workpaper. If the user has multiple accounts, run once per account.

When to say "I don't know"

  • Bank statement and GL appear to be different accounts → stop and ask.
  • Bank statement is in a different currency than GL → stop and ask about FX treatment.
  • More than 30% of items are UNKNOWN after classification → likely a data quality issue with the inputs; surface in Review_Notes and don't pretend the rec is healthy.