The problem
Private funds report on their own schedules and in their own formats. A PDF statement from one, a spreadsheet from another, a capital call notice by email from a third. An investor with money in several funds ends up rebuilding the picture by hand every quarter, and the numbers are out of date by the time it's done.
How it works
- 01
Add a fund
Wealth MS gives it a private email address, with a short letter asking the fund to send its statements there.
- 02
The fund emails Wealth MS
Statements and notices arrive as the fund issues them. Investors can forward them too.
- 03
Wealth MS reads and checks them
Claude on Amazon Bedrock maps each statement into one data format. Rule-based checks hold doubtful figures for the investor to confirm.
- 04
The portfolio updates
Values, returns, capital calls and documents, with each figure linked to the document it came from.
What investors see
- Every fund and holding across a family's trusts, companies and people, in their currency.
- IRR since inception, TVPI, DPI and RVPI, and time-weighted returns for any period.
- Capital calls with their due dates, next to unfunded commitments.
- The original statements and notices, filed by fund and type. Each figure links to its source.
Reading whatever a fund sends
Text and scanned PDFs, password-protected PDFs, Word, Excel, CSV, images, zip files and forwarded emails. Large PDFs are split and the results merged, and every attachment is either read or set aside with a stated reason. Holdings are matched by reference, alias or a close name match. Checks catch value jumps, units that don't match the price, the wrong currency, future dates, calls beyond the commitment and likely duplicates, and hold those figures until the investor accepts or rejects them.
How it's built
- API. Python, Django 5.2, DRF and TurboDRF on AWS Lambda in Sydney, with PostgreSQL on RDS, S3, and SES for mail in and out. Building Wealth MS turned up bugs in TurboDRF, fixed upstream in 0.5.2.
- AI. Claude on Amazon Bedrock with a forced tool call that matches the data format, prompt caching, and Australian inference profiles.
- Apps. One TypeScript monorepo: a React 19 web app, an Expo iPhone app, and a shared package for the API types and data hooks.
- Infrastructure. All in CloudFormation, deployed by GitHub Actions once the tests pass.
- Accounts. Sign-in by password, Google, Apple or passkey. Owner, member and viewer roles, each household's data kept separate, and fund statement passwords stored encrypted.
What it doesn't do
Wealth MS shows what the funds report. It doesn't trade, give advice or hold money.

