-
-
AI Reasoning — Candidate Comparison AI compares multiple candidates and recommends the most plausible ledger match with a confidence score.
-
Executive Overview ReconAI dashboard showing transaction volume, match rate, unmatched exceptions, and the AI-powered review queue.
-
Matching Breakdown Matching breakdown showing how ReconAI resolves transactions using exact, fuzzy, and split-payment matching.
-
Fuzzy Matching Fuzzy matching identifies transactions despite differences in amounts, dates, or reference details.
-
Exact Matching Exact matching automatically verifies transactions with matching reference, amount, and date.
-
Assisted human review queue where ReconAI provides confidence scores and recommendations without auto-committing matches.
-
Explains why a transaction is a strong match using amount, reference, party name, and date similarity.
-
Exceptions ReconAI flags unmatched and ambiguous transactions as exceptions for further investigation.
Inspiration
Financial reconciliation is a critical but often time-consuming process. Businesses receive payments through banks while maintaining separate internal ledgers and invoice records. Matching these records manually becomes difficult when transaction descriptions differ, payments are split, or multiple invoices are settled together.
We built ReconAI to automate this process and make reconciliation faster, more accurate, and explainable.
What it does
ReconAI is an AI-powered financial reconciliation engine that matches bank transactions with internal ledger entries and invoice records.
Instead of relying only on exact matching, ReconAI uses a multi-stage approach:
- Pass 1 — Exact Matching: Matches transactions using strong identifiers and exact amounts.
- Pass 2 — Fuzzy Matching: Handles variations in names, descriptions, references, and transaction details.
- Pass 2B — Split-Payment Detection: Identifies cases where one payment corresponds to multiple ledger or invoice entries.
- Pass 3 — LLM-Assisted Matching: Uses Claude to analyze grouped candidate records and resolve complex reconciliation cases that traditional rules cannot confidently match.
The system also produces structured reconciliation results, making it easier to identify matched, partially matched, and unmatched transactions.
How we built it
We built ReconAI in Python using a modular reconciliation pipeline. Synthetic datasets representing bank statements, internal ledgers, invoices, and ground-truth matches were generated to test the system.
The reconciliation engine progressively applies deterministic rules, fuzzy matching, split-payment detection, and finally LLM-assisted reasoning for difficult cases. This layered approach allows simple transactions to be resolved quickly while reserving AI reasoning for ambiguous cases.
Anthropic's Claude API is integrated into the final reasoning stage to evaluate grouped candidates and determine the most likely reconciliation.
Challenges
One of the biggest challenges was handling real-world-style ambiguity. Two transactions may refer to the same payment but contain different descriptions, while a single bank payment may settle multiple invoices.
Another challenge was designing the system so that the LLM was not unnecessarily used for every transaction. We addressed this by creating a multi-pass pipeline where deterministic and fuzzy matching handle straightforward cases first, and the LLM is used only when additional reasoning is required.
What we learned
Through this project, we learned how combining traditional data-processing techniques with LLM reasoning can create a more reliable AI system. We also learned that AI works best when it is used as part of a structured pipeline rather than as the only decision-maker.
ReconAI demonstrates how intelligent automation can reduce repetitive reconciliation work while still providing a clear and systematic process for financial matching.
Built With
- anthropic
- artificial
- claude
- data
- financial
- fuzzy
- intelligence
- learning
- llm
- machine
- matching
- pandas
- processing
- python
- technology
Log in or sign up for Devpost to join the conversation.