AI-Powered Bank Reconciliation Automation Case Study

A finance team replaces tick-and-flick bank reconciliation with an AI-assisted, audit-ready workflow

The result: AI-assisted matching across 4 accounts and about 2,600 transactions a month saves about 30 hours a month (56% less processing time) and cuts time to reconcile to under 1 calendar day, down from 4 to 5 days.

Contact Us

Or reach us directly at: sales@decisionfoundry.com

What Was Built: The AI-Assisted Reconciliation Platform

A reconciliation platform that ingests bank statements from file upload (PDF, image, CSV or OFX) or an Outlook mailbox, reads the statement balance and date for the reviewer, pulls the General Ledger from QuickBooks Online, and pairs the two automatically

A dashboard of open reconciliations that ranks work by variance and age

A five-rule matching engine (exact, fuzzy, one-to-many, many-to-one, and AI-scored) where each rule only sees what the earlier, more reliable rules could not pair

A review workspace where accountants accept suggestions in bulk and work only the exceptions

Journal entry adjustments and timing-difference handling inside the reconciliation session, with reversals instead of edits

One-click session close with a PDF report and an append-only audit log enforced in the database

At a glance

Industry
Finance and accounting, multi-company group
Scale
4 bank accounts, about 2,600 transactions a month, several legal entities
Accounting system
QuickBooks Online (OAuth2 integration)
Built with
Python / FastAPI, PostgreSQL, Next.js, Celery + Redis, Claude and OpenAI APIs
Product
Bank reconciliation automation on a shared automation platform

The Results of AI-Assisted Reconciliation

These figures come from the internal one-pager for this automation, based on 4 accounts and about 2,600 transactions a month.

About 30 hours saved per month (from roughly 53 manual hours to roughly 23)

56% reduction in processing time

About 70% fewer errors and reworks (estimate)

Time to reconcile: under 1 calendar day, down from 4 to 5 days

Every AI-suggested match still requires a named reviewer, so the audit trail is intact

The Customer

The customer is the finance and accounting team of a multi-company group. They reconcile several bank accounts against their QuickBooks Online ledger every month, roughly 2,600 transactions across 4 accounts, and every reconciliation has to be signed off by a named person before the books close.

The Problem

Reconciliation was done by hand. Statements were downloaded from each bank and uploaded to QuickBooks, and the team ticked off transactions one by one in the reconcile screen. The work was slow, and it broke down in the same places every month:

  • Time and rework. About 53 hours a month went into matching, and close took 4 to 5 calendar days.
  • Matches the tool could not make. QuickBooks handles clean one-to-one pairs. Fuzzy descriptions and split payments (one bank line covering several ledger entries, or the reverse) were resolved in spreadsheets.
  • Notes outside the system. Timing differences and adjusting entries lived in ad-hoc notes, so the reason for an open item was easy to lose.
  • Weak audit trail. Unexplained differences were chased at month-end, and there was no record of who matched what, or when.
  • Reports assembled by hand. Every sign-off meant building the reconciliation report manually.

The Solution: AI-Assisted Matching, Humans on the Exceptions

The team built one pipeline with a clear lifecycle: ingest, pull the ledger, match, review, close. A reconciliation session moves through draft, matching, review and closed, and the state machine blocks illegal jumps. A closed session can be reopened for matching, and every change is logged.

  1. Draft
  2. Matching
  3. Review
  4. Closed

Ingest and pull.

Statements arrive by upload or by Outlook polling through Microsoft Graph, and every email is recorded in an ingestion log. For an uploaded statement the platform fills in the ending balance and date for the reviewer to confirm. The General Ledger is pulled directly from QuickBooks Online over OAuth2, so nobody exports or re-keys it.

Five rules, most reliable first.

Exact matches (same amount within a few days of each other) run first, then fuzzy matches on description similarity, then one-to-many and many-to-one subset matches, and finally AI scoring for whatever is left. Each suggestion carries a confidence score and the rule that produced it.

Humans on the exceptions.

Reviewers bulk-accept the high-confidence suggestions and spend their time on exceptions, journal entry adjustments and timing differences. Roles (admin, reviewer, viewer) control who can do what.

Close with evidence.

Closing a session locks it, generates a PDF reconciliation report, and records the sign-off in the append-only audit log.

See the AI in Action

1. Reconciliation dashboard.

Every reconciliation by bank account and period, with its status and a health score, plus headline figures for open reconciliations, match rate, exceptions and items aging past seven days. An action-priority strip flags high-variance and aging items so the team starts with what matters most.

2. Starting a reconciliation.

Pick the account, then upload the bank statement (PDF, image, CSV or OFX) or fetch it from the mailbox. The ending balance and statement date are read from the document and marked as auto-filled, so the reviewer only confirms them.

3. Reconciliation workspace.

The bank statement balance on one side and the QuickBooks balance on the other, with the remaining difference and a clear balanced or not-balanced status. Below, each bank transaction sits next to its QuickBooks entry: confirmed items are grouped at the top and unmatched bank items below, each with a Review action. Statuses, match types and search let reviewers jump straight to exceptions, and one click syncs the latest ledger from QuickBooks.

4. AI-assisted matching.

Pending suggestions show the bank line beside the ledger entry, how it was matched (exact or AI), and one-click accept or reject. Where the AI proposed a match, it shows its confidence and a plain-language reason, for example a high similarity in the reference with a small amount gap likely caused by fees, so the reviewer can judge it quickly.

5. Reconciliation report.

The monthly report sets the bank statement (beginning balance, each transaction, closing balance) beside the internal records from the General Ledger, then shows the total bank balance, the total books balance and the difference still needing adjustment. A balanced month ends at zero. The report can be printed or downloaded as a PDF for sign-off.

Challenges Faced Building AI-Assisted Reconciliation

Splits and aggregates.

Many bank lines do not pair one-to-one with the ledger. Searching every combination of ledger entries for a matching total gets expensive fast. The team capped subset matching to groups of two to five entries within a seven-day window and a bounded candidate pool, which keeps matching fast and keeps the suggestions explainable.

Trusting AI suggestions.

A confident wrong match is worse than no match. The AI rule runs last and only on the rows the deterministic rules could not pair, it only considers candidates within a narrow amount and date range, and any score below 0.70 is never shown. Inputs are sanitized before every model call, model payloads are stored encrypted, and every accepted suggestion still carries a named reviewer.

Timing differences are not errors.

A cheque written in January that clears in February is correct in both records. Reviewers can flag a period-crossing item so it stops counting as unresolved and no longer blocks close, while it stays visible for follow-up.

The same wrong suggestion, again and again.

When a reviewer rejects a pair, the platform remembers it for the rest of the session so the same false positive does not keep coming back.

Corrections without editing history.

Accountants do post wrong entries, and the audit requirement says history must not change. An adjustment posted in error is reversed with an opposite entry, and both stay visible. Closed sessions are locked, and a database trigger rejects any update or delete on the audit log.

Messy statements and duplicate imports.

Banks format statements differently, and the same file or email can arrive twice. Imports accept PDF, image (JPEG, PNG, HEIC), CSV and OFX statements, read the ending balance and date from the document, de-duplicate transactions, and report row-level errors instead of failing the whole file.

Technology Stack

Built with Python / FastAPI, PostgreSQL, Next.js, Celery + Redis, Claude and OpenAI APIs.

LayerTechnology
BackendPython, FastAPI, async SQLAlchemy
DatabasePostgreSQL with an append-only audit log enforced by triggers
MatchingRule-based engine (exact, fuzzy, subset) plus AI confidence scoring
AI scoringAnthropic or OpenAI (provider configurable)
QueueCelery and Redis
StorageS3 or MinIO for uploaded files and encrypted model logs
Accounting systemQuickBooks Online (OAuth2 GL import)
EmailMicrosoft Graph (Outlook polling)
FrontendNext.js, React, shadcn/ui
HostingDocker on AWS, deployed through GitHub Actions

Get In Touch

Reach out to Decision Foundry today for AI automation of your business processes, saving time and money.