Finance AI · Portfolio project

AI Reconciliation
Three types. One tool.

Automates bank, intercompany, and AP reconciliations in one platform. Fuzzy matching identifies near-matches, GPT-4o writes the sign-off narrative, and the audit file writes itself.

3×
Recon types
94%
Match rate (demo)
<2min
Full run time
GPT-4o
Narrative engine

Three workflows, one tool

Each reconciliation type has different matching logic, exception classifications, and GPT-4o prompt — all built for the specific audience who reads it.

Bank reconciliation
Matches bank statement lines against GL entries using fuzzy string matching. Classifies exceptions and generates an audit-ready sign-off narrative.
fuzzy matchingexception classificationtiming diffsaudit narrative
Intercompany reconciliation
Reconciles intercompany balances between entities for group consolidation. Isolates FX differences from genuine disagreements. References IFRS 10.
ref-first matchingFX isolationIFRS 10elimination notes
Accounts payable
Matches supplier statement invoices against the AP ledger. Detects missing invoices and flags duplicate payment risk before the payment run.
invoice matchingduplicate detectionrisk scoringexception actions

Two-layer pipeline

Clean separation between matching logic and AI narrative — the engine runs fast and cheap, the AI layer only processes exceptions.

01 / Matching layer
Python engine
Loads both CSVs, normalises columns, runs exact amount matching first, then fuzzy description matching for near-misses. Classifies everything into matched / exceptions / timing.
pandasSequenceMatcherpython
02 / AI layer
GPT-4o narrative
Only exceptions are sent to the API — keeping cost under $0.05 per run. Three separate prompts for bank, IC, and AP — each written for the specific audience and sign-off requirement.
openai apiprompt engineeringJSON output
03 / Output layer
Multi-format delivery
Excel workbook with matched, exceptions, and timing tabs. Sign-off narrative text for the audit file. Streamlit UI with tab navigation and file upload for each recon type.
streamlitopenpyxlexcel

Audit-ready in 2 minutes

GPT-4o produces a formal reconciliation narrative that reads like a senior controller wrote it — because it's prompted to think like one.

bank_recon_signoff_june_2024.txt — generated by GPT-4o
Bank reconciliation sign-off narrative

The HSBC Operating Account bank reconciliation for June 2024 has been completed with a match rate of 94.2%, representing 128 of 142 transactions successfully reconciled. The reconciliation is materially complete; the remaining unreconciled balance of £34,250 comprises eight exception items requiring investigation and six timing differences of £12,800 which are expected to clear in early July.


The most significant exception is an unidentified BACS credit of £14,200 received on 22 June with no corresponding general ledger entry — this should be investigated immediately with the treasury team. A potential duplicate CHAPS payment of £8,300 posted on 14 June requires urgent review by the AP team; if confirmed, recovery action should be initiated before the July payment run.


All six timing differences are routine month-end items confirmed to have cleared by 3 July. This reconciliation is approved for sign-off subject to resolution of the two priority items before management accounts are finalised.

What this project shows

A more complex project than variance analysis — three matching algorithms, three prompt types, duplicate detection, and audit documentation.

Finance domain
Bank recon · Intercompany elimination · IFRS 10 · AP controls · Duplicate risk · Audit sign-off conventions
Python / data engineering
Pandas pipeline · Fuzzy string matching · Duplicate detection · Multi-type classification · Configurable thresholds
AI / prompt engineering
Three specialised GPT-4o prompts · JSON-structured action output · Batch exception processing · Audience-specific tone
Software design
Modular architecture · Separation of concerns · Configurable matching parameters · Multi-tab Streamlit UI
Python 3.10
OpenAI GPT-4o
Pandas
Streamlit
openpyxl
GitHub Pages

See all three in action

Sample data pre-loaded. Click Run reconciliation on any tab.