The problem
I wanted one place that answers the questions I actually have about money. Are we on track? What happens if we retire at 52 instead of 60? Is this fund just a duplicate of one we already own? What changed since last week, and does any of it matter?
Off-the-shelf apps each answer a slice of that, none of them knows the whole picture, and I didn't want to hand all of it to a third-party server. So I built my own: personal software for one household, open source so people can see how I build.
What I built
A FastAPI orchestrator with about 125 domain services covering portfolio tracking with FIFO cost basis and multi-currency history, risk alerts, fund overlap and look-through, rebalancing, and transactions replayed into past snapshots. Broker CSV imports run through a workbench that previews, reconciles, and de-duplicates before anything is applied. Vision extraction turns a screenshot of a statement or paystub into a structured patch I review first.
The planning engine runs year-by-year, tax-aware projections across cash, taxable, tax-deferred, and tax-free accounts, in fixed, stochastic, historical, and Monte Carlo modes. Each strategy comes with a plain-language explanation of why it wins.
The frontend is vanilla ES modules with a hash router, hand-written SVG charts, and a token-based design system that meets WCAG AA contrast, with no framework and no build step.
Honest numbers as a design rule
Finance interfaces love a big green number with no context. Here every change chip states the window it was actually measured over. Estimates say they're estimates, home equity gets its own exposure line instead of inflating diversification, and the health check tests the database and disk rather than returning 200.
An AI that can't act alone
The copilot has 73 tools over canonical data and works with OpenAI, Anthropic, Gemini, xAI, local models, or a ChatGPT subscription through the Codex app-server. Its retrieval layer ranks context, flags conflicts, and records what each answer was given. Conversation text and tool output are treated as untrusted, and when authoritative sources disagree, advice is labeled "Not Ready To Act On" until the conflict is reviewed.