Self-service access to portfolios and statements for a wealth manager's clients, fed by automated daily imports from the systems that already held the data.
Investors could only see their position when someone at the firm sent it to them. Portfolio valuations and statements lived in the administration systems the firm's providers operated; every client question turned into manual work for a small team, and the answer was always slightly out of date.
The firm did not want to replace those systems, and could not. The data had to keep arriving the way it already arrived — as scheduled file drops — while clients got a portal that looked and behaved like it was live.
I built the portal against an internal model of clients, portfolios, holdings and statements, and treated ingestion as a separate concern feeding that model. Files land over SFTP; a scheduled job fetches, validates and imports them as queued work, with each import recorded as an auditable run rather than a side effect.
Every import is idempotent and every failure is visible. A malformed or partial file fails its run and leaves the previous good state intact — in financial reporting, showing yesterday's correct number is always better than showing today's wrong one.
Access scoping was designed before any screen was: an investor sees only their own portfolios, an adviser only their book, and the firm's operations team the whole estate through a separate administration surface.