Security

银行流水自动对账

Try it

银行流水自动对账技能。导入银行流水(Excel/CSV)和账面记录, 通过金额+日期精确匹配、模糊匹配、关联匹配三层引擎自动核销, 生成交互式HTML可视化对账报告,标注待确认异常项。 覆盖工商/建设/农业/中国/招商/兴业/浦发等主流银行流水格式。 触发词:银行对账、流水对账、自动对账、导入银行流水、对账报告、...

What it does

**Pipeline:** **Day:** 2 of 14-Day Deterministic Pipeline Build

The skill document

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 

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

ArgumentRequiredDescription
--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-balanceRecommendedBank statement ending balance (float)
--accountOptionalAccount name to match on Balance Sheet
--bank-formatOptionalauto (default), chase, bofa, wellsfargo, generic
--col-dateOptionalOverride date column header
--col-descOverrideOverride description column header
--col-amountOptionalOverride single amount column header
--col-debitOptionalOverride debit/withdrawal column header
--col-creditOptionalOverride credit/deposit column header
--date-windowOptionalDays for exact match window (default: 3, fuzzy: 2×)
--outOptionalOutput directory (default: ~/Desktop)
--sandboxOptionalUse QBO sandbox environment

Supported Bank CSV Formats

FormatDate ColumnAmount ColumnNotes
chaseTransaction DateAmountNegative = withdrawal
bofaDateAmountNegative = withdrawal
wellsfargoDateWithdrawals + DepositsTwo separate columns
genericTries common namesTries common namesUse --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:

CategoryKeywordsSuggested 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)

TabContents
Reconciliation SummaryBook/bank balance sections, stats, reconciled status badge
MatchedAll 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 EntriesSuggested DR/CR journal entries for each unmatched bank item
CDC LogChanges 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

More from samledger67-dotcom

Browse all skills

AI合同智能审查助手。上传或粘贴合同文本,自动进行9维雷达评分、风险热力图可视化、条款对比修改建议、法律依据引用、谈判策略生成、关键信息提取、合同摘要、时间线可视化、条款结构化解析,输出交互式HTML审查报告。覆盖买卖合同/劳动用工/租赁合同/服务合同/保密协议/投资协议/建设工程/技术开发8类合同类型。触发词:...

by lmanchu

简历优化两步走编排器:第一步调用 resume-assistant 按 JD 重组内容并量化成果,第二步调用 humanizer 去除 AI 写作痕迹。解决直连 AI 重写导致的「空洞修饰词+千篇一律句式」问题,产出既专业又像本人写的简历。

by TomsTools

投标文件全流程智能分析技能。解析招标/投标文件(PDF/DOCX/XLSX),基于MECE原则进行多维度结构化需求拆解, 自动生成架构图/流程图/ER图/甘特图/雷达图五大专业图表,模拟评审专家打分并输出扣分明细, 根据评审意见逐条自动修订,提供类Git版本管理与迭代追踪。 Triggers: 投标, 招标, 标...

by Soul-Code

👴👵 专为银发族设计的AI生活助手。大字体+高对比度+语音优先,覆盖健康管理、用药提醒、暖心陪伴、每日播报、记忆辅助、亲情联络6大场景。帮助老年人跨越数字鸿沟,享受AI时代的便利与温暖。

by scikkk

WorkBuddy Skill 全生命周期管理器。列出/查看/创建/删除/搜索/审计/打包/安装技能, 一站管理本地和内置市场的所有 Skill。触发词:技能管理, skill管理, 管理技能, skill manager, 列出技能, 技能列表, 审计技能, 技能审计, 删除技能, 创建技能, 技能健康检查,...

by Iván1 installs

根据用户输入知识素材,自动生成符合 Kindle 纸书暖色体系的纯 HTML 高密度知识卡片,支持流程、对比和单概念三种布局。

by Conan