← Back to the catalog
E19FINANCE

Bank reconciliation and transaction categorization

Reads transactions from the firm's bank and credit card feeds, matches each one against the bookkeeping system's open items (open invoices, expected receipts, recorded bills), and categorizes the unmatched ones to the right GL account based on description, amount, vendor pattern, and historical categorization. Surfaces the small set of genuinely ambiguous transactions for a human to decide. Replaces the slow, manual back-and-forth between bank statements and the books that bookkeepers traditionally do, and shifts the work from data-entry to exception handling. Builds the categorization model from the firm's own historical books, not a generic chart.

WHERE THIS FITS
BUSINESS SHAPES
B2B servicesProfessional servicesProduct companyNon-profit / mission-drivenDirect-to-consumer
VOLUME THRESHOLD
Below 100 bank transactions per month a month, the payback rarely earns the build. Patterns this shape reliably pay back at 1,000+.
FITS BEST
SMBs with monthly transaction volume >300, especially those whose accountant currently does this manually.
PAYBACK · 4-6 moBUILD · Low-MediumVALUE · $25k-$90kWHEN · >300 transactions/mo
FAILURE MODE TO DESIGN AROUND
Misclassification on tax-relevant items → human review on tax categories is non-negotiable.
REQUIREMENTS · 6 REQUIRED, 1 OPTIONAL

Requirements describe capabilities the pattern needs in your environment, not the vendors you must buy. Any system that fills a requirement satisfies it — that’s what makes the catalog portable across the long tail of SMB tooling.

  1. bank_transaction_feed
    REQUIREDREADbatch

    The stream of transactions from banking and card sources.

    DATA SHAPE
    Per-transaction: date, amount, direction (debit/credit), description, counterparty if available, balance after.
    COMMONLY FILLED BY
    • bank feed integration to the accounting system
    • card processor feed
    • direct bank API connection
    • scheduled CSV import from online banking
  2. open_item_register
    REQUIREDREADrequest

    Receivables, payables, and other open items the bank transactions might match against.

    DATA SHAPE
    Open invoices with amount, customer, expected payment date; open bills with amount, supplier, expected payment date; expected receipts from any other source.
    COMMONLY FILLED BY
    • accounts receivable and accounts payable modules of the accounting system
    • open items ledger
    • expected receipts log maintained by treasury
  3. categorization_history
    REQUIREDREADcorpus

    The firm's historical bookkeeping decisions, which the pattern learns from. Without this, categorization is generic and often wrong.

    DATA SHAPE
    Historical transactions with their final categorization: GL account, project, class, any custom dimensions.
    COMMONLY FILLED BY
    • complete transaction history in the bookkeeping system
    • general ledger with descriptions and categorizations
    • imported historical books from prior accounting platform
  4. chart_of_accounts
    REQUIREDREADrequest

    The valid set of accounts the pattern can categorize into, with definitions.

    DATA SHAPE
    Per-account: code, name, type, description, parent account, active or inactive.
    COMMONLY FILLED BY
    • chart of accounts in the bookkeeping system
    • structured account master maintained by the finance team
  5. bookkeeping_write_destination
    REQUIREDWRITEevent

    Where matched and categorized transactions get recorded.

    DATA SHAPE
    Categorized transactions written as journal entries or applied against open items, with reference back to the source bank transaction.
    COMMONLY FILLED BY
    • bookkeeping system with API write access
    • queue of approved entries the bookkeeper posts
    • structured journal staged for bookkeeper review
  6. ambiguity_review_queue
    REQUIREDREAD + WRITEbatch

    Where genuinely uncertain transactions go for human decision.

    DATA SHAPE
    Transaction with proposed categorization(s), confidence per option, evidence, decision capture.
    COMMONLY FILLED BY
    • review queue inside the accounting system
    • weekly review session with the bookkeeper
    • dedicated review UI built for the engagement
  7. rule_definition_layer
    RECOMMENDEDREADcorpus

    Explicit rules the pattern must always follow that override learned patterns: 'transactions over $X always need approval', 'transactions to vendor Y always go to project Z'.

    DATA SHAPE
    Rules with conditions and required actions or constraints.
    IF MISSING
    Pattern relies entirely on learned patterns. Most firms have hard rules that should be encoded explicitly.
    COMMONLY FILLED BY
    • rules table maintained by the finance team
    • small admin UI for rule authoring
    • documented finance policies captured in build phase
RUNTIME FLOW · 8 STEPS
  1. 01
    Pull new bank transactions on cadence (daily for most clients)
    bank_transaction_feed
  2. 02
    Try to match each transaction against open items by amount, counterparty, and expected date
    open_item_register
  3. 03
    For matches: stage the application against the open item
    bookkeeping_write_destination
    DECISION Strong match → propose; weak match → review.
  4. 04
    For unmatched transactions, predict categorization using historical patterns and any applicable rules
    categorization_historyrule_definition_layerchart_of_accounts
  5. 05
    Score confidence per prediction; high-confidence get auto-categorized, low-confidence go to review
    DECISION Threshold tuned per client based on appetite.
  6. 06
    Write high-confidence entries to the bookkeeping destination
    bookkeeping_write_destination
  7. 07
    Queue ambiguous transactions for review with proposed options
    ambiguity_review_queue
  8. 08
    Capture reviewer decisions, write to bookkeeping, feed back to categorization history for learning
    bookkeeping_write_destinationcategorization_history
EMISSIONS · 3

Structured outputs this pattern produces. Other patterns and client systems can subscribe to them, which is how the catalog composes over time.

  • reconciliation_health_signal

    Match rate, auto-categorization rate, review queue depth — the operational health of the books.

    CONSUMED BY
    • finance dashboards
    • month-end close tracking
    • bookkeeper performance metrics
  • categorization_drift_signal

    Cases where the firm's policies seem to be changing, surfaced for finance leadership.

    CONSUMED BY
    • finance policy reviews
    • audit prep
    • controller workflows
  • vendor_emergence_signal

    New counterparties appearing in transactions that aren't in the vendor master.

    CONSUMED BY
    • vendor master maintenance
    • procurement
    • B2 CRM hygiene if applicable