← All work
ProductLive · private2026

Household Financial OS

Every number traceable. Every gap honest.

Retirement planning isn’t one question. It’s a dozen that answer each other: when to claim Social Security depends on the widow’s math, how hard to convert to Roth depends on health-insurance cliffs, whether to work one more year depends on a vesting schedule and on what that year buys the person who lives longest. Scattered tools each answer one of them well, against their own private assumptions — and the seams between them are where plans quietly go wrong.

This platform removes the seams. Every planning lever lives in exactly one place and every model reads from there, so changing the retirement date moves the Monte Carlo, the Roth pipeline, the vesting forfeiture and the healthcare phases in the same breath. Underneath it is a bitemporal, append-only ledger — every fact records when it was true and when it was learned, corrections supersede rather than overwrite, and a database trigger enforces that against the application’s own author.

The discipline is the point. Every computed figure declares its inputs, so two modules physically cannot hold two values for one quantity. Assumptions carry an authority or a stated rationale and the schema refuses one without it. An unknown value propagates as Unknown, with its reason — never a silent zero, never an interpolation. A wrong number is worse than a missing one, and the system is built so it can always tell you which kind it just handed you.

It’s also a portfolio piece twice over: the platform, and the process that built it. Roughly 190 tagged releases, 47 schema migrations and ~1,450 tests inside about two weeks, built with multi-agent AI assistance under a written, checked-in constitution — scope declared before any edit and enforced by a pre-tool hook, an adversarial review pass before every release cut, and a deploy gate that refuses to ship on a failing test, from an unversioned tree, or over another deploy.

Single-tenant by design and deliberately not productised. It runs one real household and a fully synthetic demo household on identical code — portability is a tested property, not an aspiration: a deploy gate forbids any proper noun in source or fixtures, and it has refused real releases. Every screenshot here is the demo dataset. It is analysis with provenance, not advice, and its own pages say so.

A look inside

Every simulated future, year by year — a Monte Carlo fan chart with percentile bands, a median line, and annotated retirement and Social Security milestones.
Every simulated future, year by year — a Monte Carlo fan chart with percentile bands, a median line, and annotated retirement and Social Security milestones.
Two ways to run the same plan — a fixed-spending model beside a guardrails model, on paired seeds, so the gap between them is the conclusion.
Two ways to run the same plan — a fixed-spending model beside a guardrails model, on paired seeds, so the gap between them is the conclusion.
What converting actually buys, in dollars, over time — traditional and Roth balances plotted against each other across a ten-year conversion window.
What converting actually buys, in dollars, over time — traditional and Roth balances plotted against each other across a ten-year conversion window.
The at-a-glance view — a retirement readiness grade with its reasoning, over an allocation breakdown of the whole household.
The at-a-glance view — a retirement readiness grade with its reasoning, over an allocation breakdown of the whole household.
Accounts grouped by institution, each with its own trend sparkline — the live data foundation everything else is computed from.
Accounts grouped by institution, each with its own trend sparkline — the live data foundation everything else is computed from.
Allocation read two ways at once — by asset class and by tax treatment, because the second one is what actually drives the conversion plan.
Allocation read two ways at once — by asset class and by tax treatment, because the second one is what actually drives the conversion plan.
The advisor packet builder — selected pages assembled into one dated, printable export, with anything flagged unshareable excluded server-side.
The advisor packet builder — selected pages assembled into one dated, printable export, with anything flagged unshareable excluded server-side.