← Back to Skills Marketplace
samledger67-dotcom

Bank Reconciliation

by samledger67-dotcom · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
196
Downloads
0
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install bank-reconciliation
Description
Reconcile bank accounts against QuickBooks Online (QBO) for monthly close, discrepancy investigation, or audit workpapers. Use when a client needs GL vs bank...
README (SKILL.md)

Bank Reconciliation Skill

Pipeline: scripts/pipelines/bank-reconciliation.py
Day: 2 of 14-Day Deterministic Pipeline Build


When to Use This Skill

Use when a client needs their bank account reconciled against QBO:

  • Monthly close reconciliation
  • Investigating GL/bank balance discrepancies
  • Catching unrecorded bank fees, interest, or deposits
  • Producing auditor-ready reconciliation workpapers
  • Tracking outstanding checks or deposits in transit

NOT for:

  • Payroll reconciliation (use payroll-recon pipeline)
  • AR/AP aging (use ar-collections pipeline)
  • Investment/brokerage accounts
  • Intercompany eliminations

Requirements

pip install openpyxl
# Node.js QBO client must be connected:
node integrations/qbo-client/bin/qbo connect \x3Cslug>

Usage Patterns

1. Standard Run (Chase, auto-detected)

python3 scripts/pipelines/bank-reconciliation.py \
    --slug sb-paulson \
    --end-date 2026-02-28 \
    --bank-csv ~/Downloads/chase_feb2026.csv \
    --bank-ending-balance 42531.87

2. Specific Account Name

python3 scripts/pipelines/bank-reconciliation.py \
    --slug glowlabs \
    --end-date 2026-02-28 \
    --bank-csv ~/Downloads/boa_feb2026.csv \
    --account "Business Checking" \
    --bank-ending-balance 18250.00

3. Wells Fargo (separate debit/credit columns)

python3 scripts/pipelines/bank-reconciliation.py \
    --slug sb-paulson \
    --end-date 2026-02-28 \
    --bank-csv ~/Downloads/wf_feb.csv \
    --bank-format wellsfargo \
    --bank-ending-balance 55000.00

4. Custom Column Mapping (unknown CSV format)

python3 scripts/pipelines/bank-reconciliation.py \
    --slug sb-paulson \
    --end-date 2026-02-28 \
    --bank-csv ~/Downloads/stmt.csv \
    --col-date "Trans Date" \
    --col-desc "Narrative" \
    --col-amount "Net Amount" \
    --bank-ending-balance 28000.00

5. Wider Date Window + Custom Output

python3 scripts/pipelines/bank-reconciliation.py \
    --slug sb-paulson \
    --end-date 2026-02-28 \
    --bank-csv ~/Downloads/chase_feb.csv \
    --date-window 5 \
    --bank-ending-balance 42531.87 \
    --out ~/Desktop/recon

Arguments Reference

Argument Required Description
--slug Company slug (must be connected in qbo-client)
--end-date Reconciliation as-of date (YYYY-MM-DD)
--bank-csv Path to bank statement CSV file
--bank-ending-balance Recommended Bank statement ending balance (float)
--account Optional Account name to match on Balance Sheet
--bank-format Optional auto (default), chase, bofa, wellsfargo, generic
--col-date Optional Override date column header
--col-desc Override Override description column header
--col-amount Optional Override single amount column header
--col-debit Optional Override debit/withdrawal column header
--col-credit Optional Override credit/deposit column header
--date-window Optional Days for exact match window (default: 3, fuzzy: 2×)
--out Optional Output directory (default: ~/Desktop)
--sandbox Optional Use QBO sandbox environment

Supported Bank CSV Formats

Format Date Column Amount Column Notes
chase Transaction Date Amount Negative = withdrawal
bofa Date Amount Negative = withdrawal
wellsfargo Date Withdrawals + Deposits Two separate columns
generic Tries common names Tries common names Use --col-* if fails

Auto-detection reads column headers and picks the best format. Use --bank-format to override.


Matching Logic

Pass 1 — Exact: Amount match within ±$0.01, date within ±date-window days (default 3).

Pass 2 — Fuzzy Date: Amount match within ±$0.01, date within ±2×date-window days (default 6).

Pass 3 — Fuzzy Vendor: Amount within ±$1.00, vendor key substring match (strips check numbers, dates, ref numbers), any date.

Unmatched after all 3 passes → flagged in Unmatched tabs.


Reconciliation Equation

Book Balance (QBO BS)
+ Deposits in Transit     (book has it, bank hasn't cleared it)
- Outstanding Checks      (book has it, bank hasn't cleared it)
= Adjusted Book Balance

Bank Statement Ending Balance
+ Bank Credits Not in Book  (bank has it, not yet in QBO)
+ Bank Charges Not in Book  (negative; bank has it, not yet in QBO)
= Adjusted Bank Balance

Adjusted Book Balance = Adjusted Bank Balance → RECONCILED ✅

Adjusting Entry Auto-Suggestions

The pipeline auto-classifies unmatched bank transactions into:

Category Keywords Suggested Entry
Bank Fee "service charge", "monthly fee", "wire fee", "nsf fee" DR Bank Service Charges / CR Checking
Interest Earned "interest", "dividend" DR Checking / CR Interest Income
Direct Deposit "payroll", "ach credit", "zelle" DR Checking / CR AR/Revenue
Payment Processor "stripe", "square", "paypal" DR Checking / CR Undeposited Funds
NSF Returned "returned item", "returned check" DR Returned Check Expense / CR Checking
Unclassified (no keyword match) TBD — review manually

Output: Excel Workbook

File: BankRecon_{slug}_{YYYYMMDD}.xlsx (saved to --out or ~/Desktop)

Tab Contents
Reconciliation Summary Book/bank balance sections, stats, reconciled status badge
Matched All matched pairs with match type (exact/fuzzy), amounts, date diff
Unmatched (Book) Outstanding checks + deposits in transit (in QBO, not cleared)
Unmatched (Bank) Bank items not in QBO (fees, interest, unrecorded deposits)
Adjusting Entries Suggested DR/CR journal entries for each unmatched bank item
CDC Log Changes since last reconciliation run (book balance, diff, etc.)

CDC (Change Data Capture)

Cache stored at: .cache/bank-reconciliation/{slug}.json

Tracks changes in:

  • Book Balance
  • Adjusted Book/Bank Balance
  • Deposits in Transit
  • Outstanding Checks
  • Reconciling Difference

On first run: "First run — snapshot saved." On subsequent runs: only changed fields shown. Saves 90%+ API calls on recurring monthly reconciliations.


Design Notes

  • All financial math uses Python Decimal — no float drift
  • Amount sign convention: positive = deposit/inflow, negative = payment/outflow (both book and bank)
  • GL pull uses QBO GeneralLedger report filtered to the reconciliation period
  • If GL pull fails (e.g. permissions), pipeline falls back to Balance Sheet only (matching disabled)
  • Bank CSV preamble rows (Chase header lines before data) are auto-skipped

Typical Workflow

1. Client sends bank statement PDF → export as CSV from bank website
2. Run pipeline with --slug, --end-date, --bank-csv, --bank-ending-balance
3. Review Reconciliation Summary tab — check RECONCILED badge
4. If difference exists: check Unmatched (Book) for outstanding items, Unmatched (Bank) for unrecorded items
5. Post adjusting entries from Adjusting Entries tab
6. Re-run pipeline — difference should clear to $0.00
7. Save Excel to client Google Drive folder
Usage Guidance
This instruction-only skill appears coherent, but before running it: (1) inspect scripts/pipelines/bank-reconciliation.py locally to confirm it only reads your bank CSV and QBO data and writes the Excel file (look for unexpected network or file operations); (2) ensure the Node qbo-client you connect is a trusted integration because it will hold tokens that grant access to QBO data; (3) run in a safe environment or sandbox first if you are unsure; (4) back up sensitive files before running and verify output goes to a safe --out path. If you want additional assurance, share the referenced pipeline file for a deeper review.
Capability Analysis
Type: OpenClaw Skill Name: bank-reconciliation Version: 1.0.0 The skill bundle describes a legitimate financial tool for reconciling bank statements with QuickBooks Online (QBO). The documentation in SKILL.md outlines standard accounting logic, including transaction matching and Excel report generation, and does not contain any suspicious commands, data exfiltration patterns, or prompt-injection attacks.
Capability Assessment
Purpose & Capability
Name/description (bank reconciliation vs QBO) align with the instructions: running a local Python pipeline that reads bank CSVs and queries QBO via a Node qbo-client. Required packages (openpyxl) and the qbo-client connect step are consistent with producing Excel output and accessing QBO.
Instruction Scope
Instructions tell the operator to run scripts/pipelines/bank-reconciliation.py with a local bank CSV and to use a connected qbo-client. The skill expects access to local files (bank CSVs) and to QBO account data via the qbo-client. It also writes an Excel file to disk. Recommend reviewing the referenced script (scripts/pipelines/bank-reconciliation.py) before running to confirm it only does reconciliation and no unexpected I/O or network calls.
Install Mechanism
No automated install spec; instruction-only. The README asks to pip install openpyxl and to ensure a Node qbo-client is connected. Both are reasonable and low-risk by themselves; there is no arbitrary download URL or archive extraction in the skill.
Credentials
The skill declares no environment variables or credentials. It relies on a pre-existing Node qbo-client connection for QBO access, which is proportionate to the task. There are no requests for unrelated secrets or system config paths.
Persistence & Privilege
always is false and the skill is user-invocable. It does not request permanent/always-on presence or modification of other skill configs. Autonomous invocation is allowed by default but is not combined with other red flags here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install bank-reconciliation
  3. After installation, invoke the skill by name or use /bank-reconciliation
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: QBO bank reconciliation pipeline skill
Metadata
Slug bank-reconciliation
Version 1.0.0
License MIT-0
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is Bank Reconciliation?

Reconcile bank accounts against QuickBooks Online (QBO) for monthly close, discrepancy investigation, or audit workpapers. Use when a client needs GL vs bank... It is an AI Agent Skill for Claude Code / OpenClaw, with 196 downloads so far.

How do I install Bank Reconciliation?

Run "/install bank-reconciliation" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Bank Reconciliation free?

Yes, Bank Reconciliation is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Bank Reconciliation support?

Bank Reconciliation is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Bank Reconciliation?

It is built and maintained by samledger67-dotcom (@samledger67-dotcom); the current version is v1.0.0.

💬 Comments