Book a call
Case study · Family office Financial services Singapore

Bank statements parsed automatically.
Full portfolio view, live.

A Singapore family office held positions across multiple private banks, with each bank's statement arriving in a different PDF format. The director needed a consolidated view; the team built it manually every week. We built an OCR + consolidation + risk-flagging system in 3 weeks. The director sees everything, live, without asking anyone.

3w
Built in
Live
Portfolio view
Multi
Bank OCR
F+1
Foundation + 1 cycle
Financial documents and portfolio analysis on a desk
Family office · Singapore
Before

The portfolio was always one week behind.

The family office held positions across four private banks. Each bank produced statements in a different PDF format, on a different cadence. The director wanted one consolidated view of the portfolio — total exposure, currency mix, asset class allocation, internal dependencies, and a flag on anything unusual.

The team built that view manually. Every week. Two analysts spent the better part of a day each pulling numbers, re-keying them into a master spreadsheet, and reconciling the inevitable mismatches. By the time the director saw the spreadsheet on Wednesday, it represented Monday's reality.

For a family office moving real money in real time, "Monday's reality on Wednesday" wasn't visibility. It was a delay disguised as a report.

"I was making decisions on data I knew was a few days stale. I just had no way to fix that without hiring two more analysts."

— The director, paraphrased from scoping
What we built

An OCR engine, a consolidation layer, and a risk surface.

Three weeks from kick-off to full deployment. Foundation Build plus one Function Cycle. The OCR was the unlock; the rest fell into place once the data was structured.

01
Multi-bank OCR engine
Statements from each bank parsed into a normalised position schema. Format differences absorbed; the director's view doesn't care which bank produced which PDF.
02
Consolidation layer
Cross-bank duplicates collapsed. Currency conversion applied at consistent reference rates. Asset class taxonomy reconciled across providers.
03
Risk and dependency flags
The system surfaces internal dependencies (positions correlated across banks), concentration risk, and unusual movement against a rolling baseline. The director gets flags, not a sea of numbers.
04
Director's dashboard
One view: total exposure, currency mix, allocation, top-N positions, recent movement. Drill in by bank, by asset class, by date. No spreadsheet involved.
05
AI consolidation suggestions
Where positions can be consolidated for fee or risk reasons, the system surfaces suggestions with the rationale visible. The director decides; the system shows the work.
Timeline

Three weeks. Smaller scope than Foundation, faster delivery.

Family office scope was tighter than a full Foundation Build because the data sources were narrower. We compressed the schedule accordingly.

48 hours
Scope document delivered. OCR template per bank confirmed, consolidation rules agreed, risk thresholds set, dashboard layout sketched.
Day 7
Working MVP. Two of four banks parsing correctly. Consolidation logic running. Director reviewing real numbers in the dashboard.
Week 3
Full build deployed. All four banks parsing. Consolidation layer reconciling. Risk flags live. Manual weekly compilation retired.
Function Cycle
AI consolidation suggestions added as a follow-on cycle once the director had used the base view for a few weeks.
What this means

If "the team compiles it weekly" is your reporting model, you don't have a reporting model.

Manual compilation is fine when the data fits in one head. The moment it lives across multiple sources or formats, weekly compilation is a delay you've decided to accept. Most of the time, it's a delay you can stop accepting in three weeks.

Yours could be the next one

Build a portfolio view that updates itself.

No pitch. No proposal. We talk about your business, identify the leverage, and tell you honestly whether we can help.