All work

Fund operationsR&D

Institutional Fund Manager Built an AI Reconciliation Platform

How month-end stopped being a manual stitch-up under time pressure, with every custodian feed reconciled automatically and every figure still traceable to the statement it came from.

Challenge
Custodian statements agreed on nothing, so a number was re-keyed, matched by hand, and its audit trail reconstructed weeks later from memory and email — and breaks hid in the gap between two figures that should match.
Solution
One operating path from ingestion through reconciliation to reporting, where lineage is a property of the data rather than a report assembled afterwards, and an unresolved break holds its own state.
Impact
Month-end reconciliation moved from days to hours, with every figure keeping its source and transformation path.
Status
Built and internally tested. A real client project that concluded at internal stage and was not deployed.
Days → hours
Month-end reconciliation

Working outcome from the built system. This project reached internal stage and was not deployed, so it is not a realised production close time.

Every custodian
In one reconciled view

One operational picture across every statement and feed, in place of a spreadsheet rebuilt by hand each cycle.

By default
Source lineage on every figure

Each final figure keeps its source and transformation path, so the trail is a property of the data rather than something reconstructed later.

Stack

Automated statement ingestionReconciliation across custodiansCompliance & audit dashboardsOne view of the portfolio

Fund operations is unglamorous, unforgiving work. A wrong number is not an inconvenience; it is a problem with regulatory weight behind it.

FinSight hired us to take that work off spreadsheets and onto a single reconciled system. What we set out to build was one source of truth for the back office, where every figure agrees and every figure can be defended.

About the Client

Client
Institutional Fund Manager
Industry
Fund operations
Stage
Internal stage · Institutional finance
Service
AI Development

FinSight is an institutional fund and portfolio operations platform. The job is exacting: pull statements and brokerage data from every custodian, reconcile them, surface the portfolio in dashboards, and keep a compliance and audit trail running through all of it. It is part of our work moving deeper into regulated financial operations, where the bar is less about novelty and more about being right every time and being able to prove it.

The old model

Follow one number through a month-end close. It starts in a custodian's statement, in that custodian's format, arriving on that custodian's schedule. Somebody re-keys it into a spreadsheet. It is matched against a brokerage feed that says something slightly different. The gap gets investigated, resolved and noted somewhere — an email, usually. The portfolio view is rebuilt from the result. And weeks later, when a manager or an auditor asks where the number came from, someone reconstructs that entire path from memory and inbox archaeology.

Every step there is a place a mistake can enter, and the mistakes hide in a specific spot: the gap between two figures that should match and do not. A break that is caught the day it appears is a five-minute question. The same break found at quarter-end is a forensic exercise, because by then it has propagated into three reports and nobody remembers what changed.

The re-keying is the visible cost and the smaller one. The real cost is that the evidence trail is produced separately from the work — assembled after the fact, by hand, under audit pressure, from sources that were never designed to be evidence.

  • Ingest from every custodian and normalise into one structure, rather than re-keying each cycle

  • Reconcile automatically, surfacing breaks while they are still small and explainable

  • Present one operational view, not a patchwork of files that disagree

  • Keep lineage by default, so every figure is traceable without anyone assembling a report

What changed

We designed one operating path that runs ingestion, normalisation, reconciliation, exception handling, portfolio reporting and source lineage as a single sequence rather than as separate activities joined by spreadsheets.

The design priority was traceability, and it drove a specific structural decision: the audit trail is a property of the data, not a report someone assembles later. Each final figure carries its source and its transformation path. Nobody produces the evidence, because the evidence was never separate from the work.

The second decision matters as much and is easier to get wrong. An unresolved break stays visible. The system does not net it away inside an aggregate to make a dashboard look clean. That is a deliberate refusal — a reconciliation system that hides its own exceptions is worse than a spreadsheet, because it looks authoritative while doing so.

Together those two turn the month-end question from "can we finish the close" into "is there anything outstanding," which is a question the team can answer on any day of the month rather than only at the end of one.

Design decision: breaks surface as they appear rather than at cycle end. A discrepancy found on the day it arises is a question; the same discrepancy found six weeks later is an investigation.

How the ingestion, reconciliation and lineage layers are built

The new workflow

Feeds arrive and normalise themselves

Statements and brokerage data from every custodian, pulled in and mapped into one structure — so the work starts with data already in shape rather than with data entry.

Reconciliation runs continuously

Feeds are matched against each other as they land, not in a batch at month-end. Discrepancies surface while they are still small enough to explain.

Breaks stay visible until resolved

An unmatched item is an open exception with its own state, not a rounding difference absorbed into a total.

One view, on any day

The portfolio is a single operational picture the team manages from, rather than a monthly rebuild of a spreadsheet.

The trail is already there

Every figure carries its source and transformation path, so a review reads the same record the team works from.

Control and evidence

What can change a number

Nothing untracked. Each figure keeps its lineage from custodian statement through normalisation and reconciliation to final presentation, so "where did this come from" is a query rather than an investigation. An unresolved break cannot be silently absorbed — it holds its own state until someone resolves it explicitly.

What runs, in what order

Ingest, normalise, reconcile, raise exceptions, report the portfolio, retain lineage. Running these as one path rather than as separate stages joined by files is what keeps the audit trail continuous — the trail breaks wherever the process passes through something that isn't the system.

What you can see afterwards

The team, a manager and an auditor all read the same record: the source statement, what was extracted, how it was normalised, what it was matched against, which breaks were raised, how each was resolved, and how it reached the final figure. There is no separate audit view, because a separate audit view is a second version of the truth.

Impact

Month-end changed from a manual reconciliation under time pressure into an operational view the team can trust on any day of the month. Custodian feeds that used to be stitched together by hand agree automatically, and the compliance trail regulated fund work depends on is built into the system rather than reconstructed afterwards.

This project did not reach deployment. It concluded at internal stage, so the statements below describe how the system we built works — not a close time a fund operations team realised in production.

  • Month-end reconciliation in hours rather than days, with custodian feeds ingested and reconciled automatically

  • One reconciled view across every custodian, replacing the monthly spreadsheet rebuild

  • Lineage on every figure by default, with unresolved breaks staying visible rather than netting away

Reading the numbers

The qualifier belongs at the top: this was a real client project at internal stage and was not deployed. The days-to-hours statement describes the built system's working behaviour. It is not a production result and not a saving a fund booked.

What is directly demonstrable: multi-custodian ingestion and normalisation, automated reconciliation with exception state, the single portfolio view, and per-figure source lineage.

For your own estimate: records per close × processing time × closes per year × loaded operator cost, plus break-investigation time, plus what audit reconstruction actually costs you. That last term is the one worth measuring properly — most teams carry it as unbudgeted time from senior people, so it never appears in the business case despite being the thing the system removes most completely.

Read the engineering write-up: normalisation, break detection, and lineage as a data property

Want the version of this built for you?

We can walk you through Institutional Fund Manager Built an AI Reconciliation Platform live — the architecture, the failure modes, and what we would change for your constraints. Tell us what you are building and we will come back with a concrete plan.

Reply within 2h