All posts
9 min read

AI Bank Reconciliation: How 3-Pass Matching Actually Works

AI bank reconciliationbank reconciliation3-pass matchingaccounting automation
Artifi

AI Bank Reconciliation: How 3-Pass Matching Actually Works

And why you're still chasing pennies at month-end.

Bank reconciliation is one of those tasks that seems simple until you actually do it. In theory: compare what the bank says to what your books say. Match the transactions. Done.

In practice: you're staring at 200 bank transactions trying to figure out which ones correspond to which GL entries, dealing with timing differences, batched deposits, bank fees you forgot to record, and that one payment from three months ago that's still sitting in outstanding checks.

Most accounting software gives you a bank feed with suggested matches. It catches the obvious ones. For everything else, you're on your own. That's the 20-40% of transactions that eat 80% of your reconciliation time.

Artifi handles bank reconciliation differently — with a 3-pass matching engine that Claude runs automatically. Here's how it works and why three passes matter.

Pass 1: Exact Match

The first pass is straightforward. Claude compares each bank transaction against unreconciled GL entries looking for exact matches on amount and approximate date (within a configurable window, typically 3-5 business days).

What it catches: Direct payments that hit the bank for the exact amount recorded in AP. Deposits that match recorded invoices exactly. Recurring charges (SaaS subscriptions, utilities, insurance) that are the same amount every month.

Match rate: Typically 50-65% of transactions are resolved in Pass 1.

This is roughly what most accounting software already does. The value of Artifi isn't in Pass 1 — it's in what happens next.

Pass 2: Fuzzy Match

Pass 2 handles the transactions that are close but not exact. Claude applies a set of matching rules that account for the ways bank transactions and book entries diverge in the real world:

Amount variance matching. A bank transaction for €1,003.50 against a book entry for €1,000.00 — the €3.50 difference is a bank fee. Claude identifies the likely match, creates a journal entry for the fee, and reconciles both.

Batched transaction matching. Your bank shows a single deposit of €8,450.00. Your books show three invoices: €3,200 + €2,750 + €2,500 = €8,450. Claude matches the batch to the component entries.

Payee name matching. The bank says "HETZNER ONLINE GMBH" and your vendor record says "Hetzner." Claude recognizes these are the same payee and matches accordingly. This sounds trivial but it's a surprisingly common reason manual rec takes so long — the bank and your books use different names for the same entity.

Timing offset matching. You recorded an expense on March 28. The bank cleared it on April 2. Pass 1 might miss it if the date window is tight. Pass 2 widens the window for transactions where the payee and amount suggest a match but the dates are slightly off.

Match rate after Pass 2: Typically 80-90% cumulative.

Pass 3: Pattern Match

Pass 3 is where the AI earns its keep. For the remaining 10-20% of unmatched transactions, Claude looks at historical patterns and context clues:

Recurring pattern recognition. "Every month, there's a bank charge between €15-25 that's never in the books. Last month it was €18.50, this month it's €21.00. Based on the pattern, this is a monthly bank service fee." Claude posts the entry and matches it.

Split transaction inference. A single bank payment of €5,000 might correspond to two separate bills — €3,200 for a supplier and €1,800 for a different supplier — that were paid in a single batch. Claude looks at the open AP items, finds a combination that equals the bank amount, and proposes the split.

Reference number cross-check. Bank transactions sometimes include invoice numbers or PO numbers in the description field. Claude extracts these and matches against your records, catching transactions that don't match on amount (partial payments) or date (old invoices).

Historical vendor behavior. If a particular vendor's payments have historically cleared 5-7 days after recording, Claude factors that into the matching logic for that vendor's transactions.

Match rate after Pass 3: Typically 92-98% cumulative.

What's Left: The Exception List

After three passes, Claude presents you with a list of unmatched items. This is typically 2-8% of transactions — the ones that genuinely need human judgment:

  • Transactions with no obvious book counterpart (did someone make a payment you didn't know about?)
  • Deposits that don't match any open invoices (new revenue that hasn't been invoiced yet?)
  • Charges from vendors you've never seen before (legitimate expense or fraud?)
  • Old outstanding items that may need to be written off

The key difference: instead of reviewing 200 transactions, you're reviewing 5-15. And Claude tells you why each item is on the exception list — "No matching vendor found," "Amount exceeds any open AP item by more than 10%," "Transaction date is more than 30 days from any unreconciled entry."

What This Looks Like in Practice

You tell Claude: "Reconcile the March bank statement for our main operating account."

Claude:

  1. Pulls the bank statement data (via bank connection or uploaded file)
  2. Pulls all unreconciled GL entries for the account
  3. Runs Pass 1 — matches 127 of 203 transactions
  4. Runs Pass 2 — matches 58 more (including 4 batched deposits and 12 bank fee entries it auto-posted)
  5. Runs Pass 3 — matches 11 more (including 3 recurring charges and a split payment)
  6. Returns: "Reconciled 196 of 203 transactions. 7 exceptions need your review. Net unreconciled difference: €47.30."

You review the 7 exceptions. Three are legitimate expenses that need to be recorded. Two are timing differences that will clear next month. One is a duplicate charge from a vendor (Claude flagged it). One is a small rounding difference you write off.

Total time: 15 minutes instead of 2-3 hours.

Why Three Passes Instead of One Smart Pass?

You could argue: why not just run one pass with all the matching logic? The answer is determinism and auditability.

Pass 1 matches are high-confidence. Exact amount, close date — these are nearly certain to be correct. You can auto-post these without review.

Pass 2 matches are medium-confidence. They require a rule to be applied (fee adjustment, batch splitting, name matching). Each rule is documented in the audit trail. You can review these in bulk.

Pass 3 matches are lower-confidence. They're based on patterns and inference. They might be wrong. They're flagged for closer review.

By separating the passes, you get a confidence-tiered result. Your review effort scales with risk: spend zero time on Pass 1, a quick scan on Pass 2, and careful attention on Pass 3 and exceptions. This is how good auditors work — risk-based, not volume-based.

The Bigger Picture

Bank reconciliation isn't glamorous. Nobody starts a company to match bank transactions. But it's one of those foundational tasks that, when automated well, cascades into better everything: faster close, cleaner books, more accurate cash position, fewer surprises at audit time.

The 3-pass approach isn't novel in concept — experienced accountants mentally do something similar. What's novel is having an AI execute it systematically, at scale, with a full audit trail, in minutes instead of hours.

If you're still chasing pennies at month-end, that's not a you problem. It's a tools problem. And the tools just got better.


Related reading:


Artifi's 3-pass reconciliation runs inside Claude. Learn more.

Subscribe to new posts

Get notified when we publish new insights on AI-native finance.