Connect and query
One data source in Metabase, pointed at the brosnan_growth database as metabase_reader. The first three cards are plain SQL: spend by category this month, account balances, budget versus actual.
Dashboards defined in SQL
Metabase stores its dashboards in its own Postgres database. Two SQL files insert the FIRE and Action Center dashboards, their cards, and their layouts directly, deleting any prior run first inside one transaction. Editing a dashboard means editing a file and re-applying it.
The FIRE layer
FIRE number = lean_annual_spend / swr
Coast number = FIRE number / (1 + real_return) ^ years_to_retirement
- Assumptions live in one row: retirement age, safe withdrawal rate, real return, lean annual spend, planned contribution.
- Invested assets are classified by account type with a per-account override.
- Every hourly sync upserts a daily net-worth snapshot per account, so history is durable.
- Views for status, projection, milestone dates, and sensitivity answer the question the app could not: when.
Free to borrow for your feed · Wide edition
Where you are: a retirement date that updates every hour. Next, the numbers start telling you what to do.
