Short Answer
To automate bank reconciliation across a book of client entities, you have to fix three things in order. First, how bank data reaches you. Then how transactions get matched, and finally what happens to the items that fail to match. Most firms buy software for the middle problem and discover that the first one was causing the failures and the third one was the actual job.
Bank reconciliation automation runs through six stages. You measure your current state, fix data ingestion, build deterministic rules, add probabilistic matching to transaction descriptions, and handle aggregate matches, where one bank line corresponds to several book entries. Then you design exception handling and controls, which make the rest of it safe to rely on. Each stage produces a specific artifact, and each has a condition you should meet before starting the next one.
Bank Reconciliation is Two Problems Sold as One
A reconciliation engine does two jobs. The first job compares amounts and decides whether a bank line for 4,812.60 corresponds to one book entry of 4,812.60, or to four entries that sum to it, or to nothing at all. This is arithmetic under a tolerance, and the difficulty scales with combinations.
The second job reads text. It decides that SQ *BLUEBIRD CATER 8829 is the caterer you booked to Meals and Entertainment last quarter. This is language work performed on strings that were never meant for humans to read.
Researchers at J.P. Morgan made this separation more explicit. The team isolated amount matching from the matching of other transactional information, including textual descriptions, and concluded that an automated reconciliation solution benefits from treating the two as distinct problems that get combined later.
The practical consequence for a firm is that interventions do not transfer. Twenty more matching rules will not help you with garbled merchant names. A better text model will not decompose a lump-sum deposit against eleven open invoices. When a vendor shows you one product and one accuracy figure, ask which of the two problems the figure describes.
The stages below address both. They are also ordered so that the cheapest fixes come first.
Stage 0: Measure Your Current Bank Reconciliation Process
Firms make a very big mistake by skipping this step and later cannot say whether the project worked, which is how bank reconciliation automation becomes the topic nobody raises at the partner meeting.
During this stage, you have to collect six measures across the client book:
- Auto-match rate
- Exceptions per thousand transaction lines
- Exception aging (meaning how long unresolved items sit)
- Touch minutes per client per month.
- Rework rate (meaning reconciliations reopened after sign-off)
- The arrival method for each client's bank data
That last one takes the longest and tells you the most. In a 50-100 person firm running client accounting services, you will typically find a mix: some clients on live feeds, some on monthly file downloads, a handful where a staff member re-keys figures from a PDF, and at least one where nobody currently remembers how it works.
Who owns it: CAS operations lead.
Effort shape: one week, no spend, no engineering.
What you should hold when this stage is done: a reconciliation inventory with one row per client bank account covering volume, arrival method, bank, and current touch time; a baseline metrics sheet; one documented current-state workflow.
Gate to Stage 1: you can state auto-match rate and exception aging for the entire client book from a single sheet. Until you can, nothing below is measurable.
Stage 1: Fix How the Data Arrives
This stage is the highest-leverage one in this guide, and also the least technical.
Three main problems account for the bulk of it:
1. Format
A CSV export carries a date, an amount, and a description. A structured bank statement format carries considerably more. BAI2, MT940, and camt.053 all include bank transaction type codes that identify a line as a wire, an ACH credit, a returned item, or a service charge. Those codes are matchable signal, and a CSV throws them away before your engine sees them. Where a client's bank offers a structured statement, take it.
2. Duplicates on refresh
Feeds re-present pending transactions after they post, and posted amounts often differ from pending ones because of tips, holds, and settlement adjustments. If your deduplication key is amount plus date, you will create duplicates every time this happens. Key on the bank's transaction identifier where the feed provides one.
3. Boundaries
Decide once how you handle transactions that post after your cutoff, and apply the same rule to every client. Inconsistency here produces reconciling items that look like errors and are not.
Then the two moves that pay most and involve no software.
Standardize the chart of accounts across client segments. Build one model chart for professional services clients, one for retail, one for construction, and hold new clients to it during onboarding.
Every rule you write afterwards becomes portable across the segment instead of bespoke to one client.
Where your firm controls disbursement, put invoice references into the payment reference field. You are creating a matchable key where none existed, at the cost of a process change.
Who owns it: CAS operations lead, with changes to client onboarding.
Effort shape: four to eight weeks across a book, mostly coordination.
What you should hold when this stage is done: a data-source map per client showing connection type and a named fallback; a written format standard; a model chart of accounts per client segment with a conformance measure; a payment-reference convention; a feed-failure runbook.
Gate to Stage 2: every client sits on a primary structured source with a documented fallback, no client depends on re-keying from PDF, and chart of accounts conformance is measured rather than assumed.
The Part of Your Stack You Do Not Control
Every guide to automated bank reconciliation assumes bank feeds are free and permanent. As of August 2026, neither holds.
The Consumer Financial Protection Bureau finalized its Personal Financial Data Rights rule under Section 1033 of the Dodd-Frank Act in October 2024, with compliance phased in from April 2026.
Forcht Bank, the Kentucky Bankers Association, and the Bank Policy Institute sued the same month. Judge Danny Reeves of the Eastern District of Kentucky later granted a preliminary injunction barring the Bureau from enforcing the rule, and the Bureau opened a reconsideration through an advance notice of proposed rulemaking in August 2025.
The April 2026 compliance date arrived without functioning as an enforcement trigger. One of the questions the Bureau reopened is whether banks may charge for data access at all.
The commercial layer moved while the legal one stalled. JPMorgan Chase began charging data aggregators for API access in 2025, citing 1.89 billion data requests received in June 2025 alone, of which it said roughly 13% were tied to something a customer had just done. The bank has since signed updated agreements with Plaid and three other large aggregators, together accounting for more than 95% of open banking data requests to its systems.
For a firm COO, the takeaway is worth acting on. Your reconciliation automation rests on a data supply chain your firm does not own, whose price and legal footing are both unsettled. That is the argument for keeping structured file fallbacks alongside every feed, and for knowing which of your clients bank where before the question becomes urgent.
Stage 2: Build the Rules Behind Automatic Bank Reconciliation
- Amount plus date window plus reference
- Recurring payee rules
- Tolerance bands for card fees, foreign exchange, and rounding
- Automatic posting for bank charges and interest.
Most firms already live here, so the useful part of this stage is knowing when you have finished with it. Rules improve your match rate until they run out of fields to work with, and the shape of that curve is your diagnostic. Track the rate weekly. It will climb, then flatten.
Write rules at segment level wherever the standardized chart of accounts allows it. Per-client rule libraries feel faster in the first month and become the reason nobody wants to onboard client 51.
Your tolerance policy deserves a document rather than a setting. Record what variance you permit, for what reason, and who approved it. A 50-cent tolerance on card settlements is a control decision. Treat it like one.
Who owns it: senior CAS staff. No engineering required.
Effort shape: two close cycles.
What you should hold when this stage is done: a versioned rule library, exportable and organized by client segment; a written tolerance policy; a rule ownership register naming who can change what.
Gate to Stage 3: the auto-match rate has plateaued across two consecutive cycles. If it has not plateaued, stop and write more rules. Buying machine learning to solve a problem that twenty more rules would solve is the most common way firms overspend on this.
Stage 3: Add Probabilistic Matching on Descriptions
This stage is where the work gets genuinely hard, and where the honest numbers belong.
Bank transaction descriptions are not natural language. They follow formatting standards set by financial institutions and card networks. Visa requires business entity names in transaction descriptions to fit inside 25 characters, which forces abbreviation on any merchant with a real name.
Intuit's research team, writing about QuickBooks in 2025, found that standard language models handle this text poorly because their tokenizers fragment abbreviated business names into meaningless pieces. The team trained a transaction-specific encoder from scratch rather than adapting a general one.
Their results give you the ceiling to plan against:
Source: Dong et al., Intuit and University of Notre Dame, arXiv:2506.09234. Rel-Cat was reported as in the process of being implemented for deployment, so read it as a research result rather than a shipped feature. These figures describe transaction categorization, which is adjacent to bank-line matching and not identical to it.
One finding in that paper matters more to your rollout than the headline number. The system's nearest-neighbour component scored 79.72% on categories already present in a company's own history and 0.16% on categories it had never seen for that company. The graph-based component reached about 22% on unseen categories. Historical context carries almost all of the accuracy.
Translated into your operations: new clients will behave badly for months, and no purchase changes that. Onboarding stays manual longer than anyone budgets for, and the cost of a new client's first quarter belongs in your pricing.
Threshold design closes this stage. Split predictions into three bands: auto-accept, route to review, reject. Where those boundaries sit is a control decision rather than a technical one, and the COO owns it.
Who owns it: engineering partner, with CAS review.
Effort shape: one quarter at minimum, and it does not end.
What you should hold when this stage is done: a labelled dataset built from your own historical matches; a threshold policy with measured precision at each band; a model configuration record; monitoring for precision drift.
Gate to Stage 4: measured precision inside the auto-accept band clears your stated control threshold, verified by sampled review, across two close cycles.
Stage 4: Handle Aggregate and Many-to-Many Matches
One bank credit against several invoices. A deposit batch covering a week of receipts. A card settlement arriving net of processor fees. These survive everything above.
The general form of this problem is harder than it looks. The J.P. Morgan paper formalized it as the Subset Sum Matching Problem, where two sets of records match when the absolute difference between their sums falls inside a tolerance, and that tolerance is what absorbs timing differences and rounding. The corresponding decision problem is NP-complete, by reduction to classical subset sum. No vendor is going to resolve this tier reliably at portfolio scale, and claims to the contrary describe heuristics.
So change the problem instead of shopping for a solver.
Ask the client's payment processor for remittance detail. Ask for the settlement report that breaks a net deposit into its gross components and fees. Ask the bank for the lockbox file. Each of these turns a combinatorial search into a lookup. Acquiring better upstream data is a procurement decision a COO can make this quarter, and it outperforms every algorithmic approach available to a mid-market firm.
Some residue stays manual permanently. Writing that down beats pretending otherwise, because an unbounded exception population is what erodes trust in the whole system.
Who owns it: CAS lead, with client-side coordination.
Effort shape: ongoing, negotiated per client.
What you should hold when this stage is done: a catalogue of aggregate-match sources per client; a remittance data acquisition plan; a written decision recording which residue stays manual and why.
Gate to Stage 5: your aggregate exception population is bounded and named rather than open-ended.
Stage 5: Exception Handling and Controls for Automated Bank Reconciliation
Exceptions are the output of an automated bank reconciliation, not its waste. A firm that automates matching and leaves exceptions in a shared inbox has moved the work rather than reduced it.
Build the queue properly. Aging buckets. A named owner per item. Service levels by age. An escalation path that reaches a human with authority before an item turns 30 days old.
Then the controls, which answer the question your Managing Partner will ask.
Segregation of duties. Whoever configures matching rules does not approve exceptions. This costs you nothing to implement at the outset and becomes expensive to retrofit.
Audit trail. Every automatically posted entry carries the rule identifier, the confidence score, the actor, and the timestamp that produced it.
Sampled review. Nobody reviews every auto-matched item. Sampling is how you measure precision, and precision is what you are buying.
Change control. Retraining a model or moving a threshold changes your control environment. Log it the way you would log any other control change.
One failure mode deserves naming because no product page mentions it. A system tuned to maximize match rate will force matches.
Reconciliation exists to surface fraud, error, and unauthorized disbursement, and a match rate raised by loosening tolerance defeats that purpose while improving the dashboard. Watch precision, and watch what your tolerance policy has drifted to over six months.
Who owns it: CAS quality lead with the engagement partner.
Effort shape: designed alongside Stage 3, never bolted on afterwards.
What you should hold when this stage is done: an exception queue with aging, ownership, and service levels; a segregation-of-duties matrix; an audit trail specification; a sampling plan; a change-control procedure.
Gate to Stage 6: an external reviewer can trace any automatically posted entry back to the rule and evidence that produced it, without asking anyone at your firm.
Stage 6: Move to Continuous Reconciliation
Run reconciliation daily instead of monthly. The work changes shape from a month-end spike into a flow, and that is what returns capacity rather than compressing it into a shorter window.
This stage only holds once the five below it hold. Firms that jump here from Stage 2 build a daily version of their existing exception backlog and burn out the staff maintaining it.
What you should hold when this stage is done: a daily run schedule; an intra-month exception service level; a revised client deliverable calendar.
Gate: sustained across a full quarter, including one busy-season month.
What to Measure in Bank Reconciliation Automation
How Codebridge Approaches This
Codebridge builds custom systems for mid-market firms, with roots at KPMG and 70+ engineers. We deliver reconciliation and matching work as an operational service rather than a subscription, and the client owns the code at the end.
Our relevant engineering pattern comes from work outside accounting. In a multi-agent sales system we built, routing decisions run against explicit authority boundaries and a confidence threshold, with anything below the threshold handed to a person who can act on it.
Stage 3 and Stage 5 of this guide pose the same design question: where the automatic band ends, who receives what falls outside it, and how you prove afterwards which path a given decision took. That problem transfers between domains. Reconciliation subject-matter judgement stays with your team.
Engagements start with a fixed-fee three-week discovery run on your own data, producing a working prototype against a sample of your client book rather than a specification. You keep whatever it produces.
If your firm has plateaued at Stage 2 and is deciding whether Stage 3 is worth funding, a 30-minute call is usually enough to tell.

Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Block quote
Ordered list
- Item 1
- Item 2
- Item 3
Unordered list
- Item A
- Item B
- Item C
Bold text
Emphasis
Superscript
Subscript

























