How an AI Agent Cut Bank Reconciliation to 23 Minutes
·|Adam Boudjemaa
SHARE
KEY TAKEAWAYS
◆A single production agent cut bank reconciliation from 8 hours to 23 minutes inside a real-estate private-equity fund with roughly $3B AUM.
◆The speed came from unifying about 2 TB and 1.4M files across 13 years and 13 sources into one queryable ground truth.
◆The part that made it safe was not the matching. It was the abstention: the agent escalates anything it cannot back with evidence instead of guessing.
◆In regulated finance the number that sells the agent is 23 minutes. The number that keeps it in production is zero confident wrong answers.
8h8h
BEFORE
by hand, per cycle
23 min23 min
AFTER
mostly human review
1111
AGENTS IN PRODUCTION
the fund's platform
The eight hours nobody wanted
Someone at the fund did bank reconciliation by hand, and it ate a full working day. Eight hours, once a cycle, of a smart person opening files and cross-checking numbers that a computer should have checked. Nobody wanted the job. It was the kind of task that quietly convinces good people to leave.
I was the forward-deployed AI engineer embedded in that fund, a US real-estate private-equity shop with roughly $3B in assets under management. I built the agent that took those eight hours down to twenty-three minutes. This is the whole thing, end to end, including the part most write-ups skip: what it refused to do.
HOW IT WENT
1
A full day, once a cycle
Someone at the fund reconciles by hand. Eight hours of opening files and cross-checking numbers a computer should have checked. Nobody wants the job.
2
I get embedded
Forward-deployed AI engineer inside the fund, a US real-estate private-equity shop with roughly $3B in assets under management.
3
Eight hours becomes twenty-three minutes
I build the agent that takes the day. What is left is mostly a person reviewing the lines the agent escalated instead of guessing.
4
The part most write-ups skip
What it refused to do. That is the real subject here, and the reason it stayed in production.
The arc of this piece. The numbers are the easy part. The refusals at the end are what the article is actually about.
What bank reconciliation actually is
Bank reconciliation is boring until it is wrong, and then it is a very bad day. You have what your records say happened, and you have what the bank statement says happened. Reconciliation is proving those two stories are the same, line by line, and explaining every place they differ.
For a fund, "explaining every difference" is not bureaucracy. It is how you catch a duplicated payment, a fee nobody approved, or a wire that went somewhere it should not have. The output is not a spreadsheet. It is the confidence that the money did what the books claim it did.
WHAT RECONCILIATION ACTUALLY IS
Two independent stories about the same money, forced to agree. The valuable step is not the matching, it is being able to explain every line where they differ.
Why it took a whole day
The eight hours were not spent matching. They were spent searching. The evidence that explained any given line was scattered across sources that had accumulated over more than a decade, in formats that did not agree with each other, named by whoever happened to save the file.
When I mapped it, the scale was the story: roughly 2 TB and 1.4 million files across 13 years and 13 sources. A human reconciling a single odd line might open five systems to find the one PDF that explained it. The matching was minutes. The hunting was the day.
WHERE THE EIGHT HOURS WENT
The matching was never the hard part. The evidence that explained one odd line was buried somewhere in a decade of files nobody had named consistently, so the day was spent hunting for it.
Where the 8 hours went
What it really was
Finding the source document for a line
A search problem across 13 systems
Reading it to confirm the amount
Manual evidence-checking
Chasing the few that would not tie out
The genuinely hard 10% that needed judgment
Re-doing it because a file moved
No single source of truth
The agent, end to end
So I did not build a "reconciliation AI." I built a retrieval-first agent whose real job is to find the evidence, propose the match, and be honest about what it could not prove. Here is the pipeline.
DATA FLOW
The pipeline: retrieve, cite, then a hard numeric gate. The final step forks into a cited match or an abstention a human reviews.
The part that mattered: what it refuses to match
Here is the counterintuitive part. The feature that made this agent safe to run near a fund's books is not the matching. It is the refusing.
An agent that matches everything is easy to build and impossible to trust. The moment it confidently books a wrong match, you have not saved eight hours, you have created a landmine in the audit trail that costs far more than a day to defuse. So the design goal was never "match more." It was "never be confidently wrong."
That means the agent is allowed to say "I do not know." When the evidence does not support a match, it abstains and escalates instead of inventing a plausible answer. The 23 minutes is mostly a person reviewing exactly those escalations, which are the cases that actually needed a human anyway.
THE RULE
One rule, three exits. The agent only books what it can cite and reconcile. Everything else routes to a person or gets blocked.
None of this is safe on vibes. The reconciliation agent lived inside an 11-agent platform that shared a serious guardrail layer, and those guardrails are the reason it was allowed near real money.
Retrieval meant every claim pointed at a real source document, not the model's memory. Numeric and consistency checks caught the cases where a match looked right in prose but did not add up. Evidence-based abstention turned uncertainty into an escalation. And before any of it went live, it was evaluated and red-teamed, because "it worked in the demo" is not a standard you can reconcile a fund on.
THE GUARDRAIL LAYER
The reconciliation agent did not carry its own safety. It sat inside an 11-agent platform that shared a guardrail layer, and nothing went live until it had been evaluated and red-teamed.
The tempting version
A model that reads the statements and outputs matches. Fast, impressive in a demo, and quietly wrong in ways nobody catches until an auditor does.
The version you can keep
Retrieval so claims are grounded, numeric checks so matches actually tie out, and abstention so uncertainty escalates. Slower to build, and the only version allowed near the books.
Guardrail
What it catches
The failure it prevents
Retrieval and citations
A claim with no source document behind it
The agent answering from memory instead of evidence
Numeric and consistency checks
A match that reads right but doesn't tie out to the cent
A plausible but wrong booking
Evidence-based abstention
A low-confidence line dressed up as an answer
A confident wrong match landing in the audit trail
When I present this, people latch onto "8 hours to 23 minutes." Fair, it is a good number, and it is why the fund said yes. But it is the wrong lesson to take away.
The number that keeps an agent in production in regulated finance is not its speed. It is the count of times it was confidently wrong, and that count has to be zero. Speed gets you the pilot. Restraint gets you the renewal, because the merely fast agent gets switched off the first time it is wrong with confidence.
That is the real forward-deployed lesson. The hard engineering was not making the agent clever. It was making it honest.
Most of the 8 hours was not matching, it was hunting: opening 13 different sources spanning 13 years to find the document that explained a line. I unified about 2 TB and 1.4M files into one queryable store, so the agent retrieves the supporting evidence in seconds. It proposes matches with citations, and a human confirms the handful it was not sure about. The 23 minutes is mostly that human review.
No, and that is deliberate. The agent proposes matches and attaches the evidence for each one. Anything it cannot support with a citation, or where the numbers do not add up, it does not guess. It escalates to a person. In a regulated fund, an agent that confidently books a wrong match is far more expensive than one that asks.
Three things working together: retrieval so every claim points at a real source document, numeric checks so a proposed match has to actually reconcile to the cent, and evidence-based abstention so a low-confidence case becomes an escalation instead of a fabricated answer. It was also evaluated and red-teamed before it went live.
The reconciliation agent was one part of an 11-agent GenAI platform I delivered for a confidential US real-estate private-equity fund with roughly $3B AUM. The platform shared the retrieval layer, the evaluation harness, and the guardrails, which is why a single agent could be both fast and safe.
The pattern transfers if your bottleneck is the same: too many sources, too much history, and a review that is really a search problem. What does not transfer is skipping the guardrails. The retrieval, the numeric checks, and the abstention policy are the reason it is allowed near the books, not optional polish.
Former CTO of Integra. Named author (1 of 5) of ERC-3643, first author of ERC-6960, co-author of ERC-7410, and co-author of ERC-8203, which is still a draft. Building production AI and regulated Web3 systems.