What this page is
You gave me a Household CFO brief with explicit instructions: audit before redesigning. This page is that audit, plus the proposed architecture, the design alignment plan, and a phased build. I have not written any new dashboard code yet. Once you green-light the direction (or redirect me), Phase 1 begins.
Headline take
What I shipped overnight on 5/18 → 5/19 is a strong data substrate: 23 accounts parsed, 6,685 transactions in SQLite, methodology doc with cited per-card playbooks, 9 dashboard pages live, real numbers landing on every screen. What it isn't yet is a chief-of-staff experience. It still asks Topher to read tables and figure out the implication. The brief asks for a calm, decisive, fifth-grader-readable front page that says "you're okay" or "here's what to do" — and a deep-disclosure layer underneath. The gap is in the framing layer, not the data.
What's actually live today
Nine pages under /info/finance/, fed by a SQLite database at data/finance/reports/finance.sqlite (gitignored), driven by issuer-specific parsers under skills/finance/parsers/. Numbers below are factual, not aspirational.
| Page | What it does today | Strong | Weak |
|---|---|---|---|
| /finance/ index | Mortgage-overdue alert · 4-tile snapshot grid · 8 section-nav cards · build-status block. | Strong wayfinding to deep pages. | Doesn't answer "Are we okay?" in 30 sec. Snapshot tiles miss the big numbers (net worth, total debt, interest bleed). Visual language is pre-v2. |
| /finance/ accounts | 23-account table sourced from snapshot.json. Institution map, joint flags, last statement date. | Real parsed data. | No freshness badge per row. No "this account is missing recent statements" flag. |
| /finance/ cards | 12 cards rendered from seed + cards.json. Per-card: issuer, last4, AF, earn rules, current balance, notes. | Methodology research already done in methodology/rewards-optimization.md (562 lines, cited). | No rewards/perks tracking. No "which card to use" guide. No AF-vs-realized-value math. No cert/credit expiration calendar. |
| /finance/ loans | 8 loans listed: mortgage, 2 autos, HELOC, Lafayette patio, Bonnie family loan, 2 × 401(k) loans, student loan. | Bonnie loan correctly excluded from "optimize" pool. | No payoff scenario engine. No snowball/avalanche/cash-flow comparator. No interactive sliders. |
| /finance/ calendar | List view of upcoming due dates + recurring charges with rough timing. | Catches the Newrez $20 overdue. | Not actually a calendar view. No paydays plotted. No "crunch week" warnings. |
| /finance/ spending | Spending by category, by merchant, single-lens. | Real numbers behind it. | Smallest page. No lifestyle-aware framing. Doesn't surface the Venmo-as-CC-payment artifact (insights.astro caught it; spending.astro hasn't been refiltered). |
| /finance/ subscriptions | Recurring charges list. Highlights CrunchLabs (expired card), Iberostar (past due). | Catches real expirations. | No keep/cancel/downgrade/ask workflow. No annualized cost roll-up. No confidence tiering (definitely vs. probably recurring). |
| /finance/ networth | Balance sheet. $346K net worth · $1.21M assets · $861K liabilities · home equity $241K · combined retirement $434K. | Newest page; comprehensive. | Static — no trend line over time. No "data freshness per account" overlay. Home value is Zillow point-in-time, not flagged as estimate. |
| /finance/ insights | Long-form findings: $88K Venmo flow resolved, sweep-pattern decoded, combined retirement, 3-yr income trajectory, top-merchants table, recurring detection. | Best page of the bunch — actual narrative + math + resolution callouts. | Insights aren't ranked by impact. 12+ sections, no top-3 prioritization. This is where the insight engine should live but doesn't. |
The brutal version of the audit
We have a financial reporting tool, not a financial chief of staff. Reporting tools show numbers. Chiefs of staff turn numbers into decisions. The brief explicitly asks for the latter, and that's the redesign target.
The 9 questions vs. what the dashboard actually answers
The brief lists 9 questions a household CFO dashboard must answer clearly. Score: 3 "yes," 4 "partial," 2 "no." This is the work.
| Question | Today | What's missing |
|---|---|---|
| 1. Are we okay right now? | Partial | No plain-language status card. Tile grid shows mortgage rate & balance but not net cash position, runway, or "stable / watch / pressure" framing. |
| 2. Where is our money going? | Partial | Spending page exists but single-lens. No needs vs. wants, no business vs. personal, no per-person split. |
| 3. What needs attention? | Yes | Newrez $20, Saks $50 by 6/30, BoA Preferred cliff 5/26 all surfaced. But not ranked, and the rest of the page is just as loud as the actual urgency. |
| 4. What are we accidentally wasting money on? | Partial | Interest drag named (Venmo 35.24%, Lafayette 8.99%). Subscriptions listed. But no "$X/yr you didn't realize you were spending" framing, no AF-vs-value table for cards. |
| 5. How fast can we pay down debt? | No | No scenario engine. No snowball/avalanche/cash-flow comparator. No "+$250/mo saves $X over Y months" math. This is a flagship missing module. |
| 6. What choices would improve our situation? | Partial | HELOC arbitrage callout exists. Card-routing recommendations exist in methodology but not surfaced. No multi-lens recommendation engine. |
| 7. What should we talk to our agent about next? | No | No "Ask Aria" suggested-question surface. The deep methodology doc isn't linked from the dashboard. |
| 8. Are we making progress or drifting? | Partial | 3-yr income trajectory yes (2024→2025→2026). Net worth over time no — only point-in-time. No debt-trend chart. No "month-over-month rewards used" view. |
| 9. What is the simplest next action? | Yes | Top-3 list works in places. Needs to be the front-page hero, not buried below grids. |
Rewards & Perks Command Center
You called it out in the addendum: 20+ cards, free nights you forget about, hotel credits expiring unused, rotating bonus categories not activated. This becomes a peer-level module — same prominence as Debt Payoff — because rewards are only valuable if used, tracked, and not offset by interest.
What this module answers
- What credits expire soon? Hilton Aspire anniversary night, Saks H1 ($50 by 6/30, whole benefit dies 7/1), Amex airline incidentals, Resy monthly $20, rideshare monthly $10.
- What free-night certs do we have? Hilton Aspire anniversary (~$300-800). Marriott if any. Any earned through promos.
- Which card for this purchase? A decision tree fed by the methodology doc — grocery / dining / gas / travel / online / utilities / subs / large.
- Is each card paying for itself? AF $X vs. credits used $Y vs. rewards earned $Z vs. interest charged $W. Per-card net value.
- Are rewards being wiped out by interest? Venmo Visa is the warning case — $7,174 @ 35.24% means ~$200/mo in interest that crushes any 1–3% earn.
- What renewals are coming? Anniversary dates per card. Decision window before AF posts: keep / downgrade / cancel / product-change.
- What rotating categories need activation? Discover-style quarters, BoA Customized Cash category swap (monthly).
The integrity rule
Aria will never suggest spending to earn rewards. The module always distinguishes smart optimization of spend that's already happening from chasing rewards through unnecessary spend. When interest charged exceeds rewards earned (e.g., Venmo Visa), the dashboard says so plainly.
Proposed nav · 10 sections
Mapped to the brief's "suggested structure." Six existing pages survive (renamed/refocused). Four new modules. Order matters — it's the implied priority when Topher opens the dashboard.
What gets retired
/finance/insights stops being a page and becomes the insight engine that feeds the top of Home. The valuable narrative content (Venmo flow resolved, sweep pattern decoded, retirement breakdown) gets distributed: insights to Home, retirement detail to Net Worth, sweep map to Cash Flow. /finance/accounts gets folded into Data Health + Net Worth — there isn't a strong reason for a standalone account list once those two exist.
Multi-perspective insight engine
Per the brief: don't hard-code one philosophy. Insights are tagged with which lens they're coming from so Topher can see why a recommendation differs across views.
Debt discipline
Ramsey-influenced but not dogmatic. Reduce interest, kill balances, avoid new debt, build momentum.
Personal CFO
Cash flow, net worth trends, liquidity, upcoming bills, debt-to-income pressure, forecasting.
Lifestyle-aware
Protect the things that matter — family, travel, experiences. Cut what's drifting, not what's loved.
Behavioral coach
Nudges, weekly habits, pattern detection, simple next steps. No shame. Make the right action obvious.
Wealth-building
Net worth growth, retirement trajectory, asset/liability ratio over years, compounding visibility.
Rewards optimization
Use credits before expiry. AF vs. realized value. Choose the right card per purchase. Never let interest wipe out rewards.
How this shows up
Each insight surfaces with a small lens tag (e.g., Debt discipline Personal CFO) so Topher can see why two analyses disagree. The Venmo Visa is the canonical example: Debt-discipline says attack now; Lifestyle-aware says fine if it stays small; CFO says the interest line costs more than 3 subscriptions combined.
Finance pages need to speak v2
The Finance dashboard was built on 5/18, before today's v2 migration. It renders OK because of the dark-mode utility overrides in global.css, but it doesn't speak the new Aspire language: cream canvas, DM Serif Display headings, terracotta + hunter green accents, Material Symbols, editorial spacing.
What changes per page
- Drop dark-card-on-stone-50 gradients. Use
.aspire-card/.cfo-cardpatterns (this page is the live example). - Drop emoji-in-string. Replace 🚨 / 💳 / 📊 / 🔁 with Material Symbols (
warning/credit_card/monitoring/autorenew). - Use
--terrafor warnings (not red-500),--hunterfor CTAs and "okay" state,--text+--text-secfor hierarchy. - Tabular numbers via
--font-num(Unbounded) for big balances; DM Sans for body; DM Serif Display for h2/h3. - Mobile baseline 390px — no horizontal scroll on phones, tables get
.audit-scrollwrappers, grids collapse to 1-col below 640px. - Studio Dark must pass WCAG AA — checked via /info/accessibility matrix. Same standard the rest of CC just adopted.
How insights get ranked
Today: 12+ insights, no ranking. Proposed: every insight has a structured shape with a priority score; only the top 3 surface on Home. The rest live in deep pages.
The insight shape
{
id: "venmo-visa-interest-bleed",
title: "Venmo Visa is bleeding ~$200/mo in interest",
impact_dollars: 2400, // annualized
confidence: "high", // high · medium · low
urgency: "now", // now · 30d · 90d · ongoing
lens: ["debt", "cfo"], // which lenses agree
recommended_action: "Avalanche this first — $7,174 @ 35.24% APR is the highest-cost revolving balance.",
needs_confirmation: false,
related_accounts: ["venmo-visa"],
data_sources: ["snapshot.json#venmo-visa", "statements/venmo-2026-04"],
generated_at: "2026-05-19",
status: "open" // open · snoozed · dismissed · resolved
}
Priority score = impact_dollars × urgency_weight × confidence_weight × (1 − ignored_before_penalty). Top 3 on Home, top 10 on a "View all" overflow. Snoozed/dismissed insights age out gracefully.
Freshness & confidence everywhere
Because the source is uploaded statements (not live bank connections), no number should pretend to be real-time. Every major figure gets a freshness badge.
The badge vocabulary
- Current
- Last statement within 35 days. High confidence.
- As-of
- Last statement 35–90 days. Show the date inline.
- Stale
- >90 days since last statement. Suggest upload.
- Estimated
- Computed (Zillow, KBB, point estimate). Not a parsed fact.
- Missing
- Account exists but no recent statement parsed. Show the gap.
What I need from you to make this great
Per the brief: ask before assuming. Below are the open questions that block specific build decisions. Answer the easy ones inline; the harder ones can wait until the Review Inbox is live.
Card-variant identification (blocks Rewards Command Center)
- USAA Visa 2957 — Rewards Visa Signature, Preferred Cash Rewards, or Cashback Rewards Plus (military-base 5%)? Earn structure differs sharply.
- BoA card 3291 — Customized Cash Rewards ($0 AF) or Premium Rewards ($95 AF)? Both common. Determines whether the $10,920 balance is on a category-bonus card or a travel card, and whether the May 26 Preferred Rewards cliff applies.
- Venmo Visa last4 — confirm the last 4 so we can match transactions.
- Cap1 Quicksilver 5101 — yours or Jaime's?
- Lowe's Advantage last4 + current balance.
Lifestyle & goals (blocks Goals + insight prioritization)
- What's the monthly "enjoy life" budget you don't want squeezed?
- Categories that are off-limits for "cut suggestions" — i.e. things you and Jaime value? (Travel? Kids? Cleaning service?)
- Top 3 financial goals for next 6 months — pay off X card? Build $Y emergency? Save for Z trip?
- Strict alerts or gentle nudges? (My read: gentle nudges, but want to confirm.)
Data-completeness gaps (blocks specific calcs)
- Student loan current APR & status (Nelnet login needed).
- Bonnie loan start year (for cumulative interest paid).
- Pathways HELOC variable rate basis (Prime + X%).
- Vehicle KBB values to replace the $100K estimate.
- Anniversary dates per card (when the AF actually posts) — most you can pull from the card account online; some I have from statements.
9 phases, each independently shippable
Each phase delivers a visible win and gets committed separately. You can redirect after any phase. Time estimates are honest — bigger pieces (engine, calendar) are real work, not afternoons.
Home page rebuild — "Are we okay?"
Replace /finance/index.astro with a 30-second-comprehension home: plain-language status card, 4-tile snapshot (net worth, total debt, interest YTD, monthly cash flow), Top 3 to Review (ranked), Next Best Action, data-freshness line. v2 design language. Mobile-first.
Rewards & Perks Command Center
New page at /finance/rewards. Schema for per-card credits/certs/expirations. "Which card for this purchase" decision tree. AF-vs-realized-value table. Rewards-vs-interest warnings on revolving cards. Expiration calendar.
- New file:
src/data/finance/card_benefits.json— structured benefits per card - New page:
/info/finance/rewards.astro - Cross-link from Home top-3 ("Hilton anniversary cert hasn't been used")
Debt Payoff Command Center
Replace /finance/loans. Snowball vs. avalanche vs. cash-flow-relief vs. hybrid comparator. Sliders for extra payment + lump sum. "+$250/mo saves $X over Y months." Bonnie loan correctly excluded from optimization but shown in cash-flow.
Insight engine refactor
Convert analyze.py output into the structured insight shape (see §7). Priority scoring. Snooze/dismiss state file. Home pulls top-3 from this engine. /finance/insights becomes "all insights" overflow.
Subscriptions cleanup workflow
Per-row Keep / Cancel / Downgrade / Ask actions. Annual cost roll-up. Confidence tiers (definite / probable / annual). State saved to data/finance/subscription_decisions.json.
Cash Flow Calendar
Real calendar grid (CSS, not heavy lib). Paydays plotted. Due dates clustered. Subscriptions. Crunch-week warnings. Replace today's list-view.
Net Worth time-series + Data Health page
Net worth trend over time (from statement balance history in SQLite). Per-account freshness badges. Standalone Data Health page lists last-uploaded per account, missing months, parsing confidence.
Spending v2 — multi-lens
Pivot by category / merchant / person / needs-wants / business-personal / IRS schedule. Top-merchant filter cleaned (Venmo CC-payment routing excluded). "Trending above normal" callouts.
Goals + Review Inbox + Ask Aria
Goals tracking with progress per target. Review Inbox question queue (uncategorized txns, unclear transfers, possible subs). "Ask Aria" surface with suggested questions linked to the conversational agent.
Total time honest estimate
31–42 hours of focused build, plus data-quality follow-ups and your answers to the question queue. Realistic cadence: Phase 1 today, Phase 2 + 3 by end of week, Phases 4–9 over the next 10–14 days at the pace I can hold without dropping quality. Mobile-verified every phase. Topher reviews on the rendered page after each.
What could make this go sideways
Risk · Scope creep into a Mint replacement
The brief is huge and could pull this toward "rebuild Monarch/Mint." Mitigation: every phase is independently shippable. We don't promise live bank connections, real-time data, or budget envelopes (you already have envelopes at USAA). The dashboard is a decision surface on top of statement data, not a banking app.
Risk · Card-variant ambiguity blocks Rewards module
USAA 2957 and BoA 3291 have very different earn structures by variant. The methodology doc handles this by listing both with "TBD" — the Rewards module will render the same way until you confirm. Until then, "Which card to use" can still answer for the 5 cards we have confirmed.
Risk · Insight engine over-confidence
If we rank insights too aggressively, we'll feel like a financial coach lecturing. Mitigation: every insight gets a calm voice and a "snooze for 30 days" affordance. No streaks, no scores, no shaming language ever.
Assumption · You and Jaime share one dashboard
Per-person filtering exists in data (we know who owns what), but UI defaults to household view. If you want separate Topher / Jaime views as a first-class toggle, that's Phase 1 scope, not Phase 9. Tell me now.
Assumption · Linear OPS-54 stays the system of record for the paydown decision
The Debt Payoff page surfaces scenarios; the decision lives in OPS-54. I won't make the call for you — but I'll make the math undeniable.
Where I'd like your call
Three branches. The middle path is what I'd recommend — biggest visible win first, hard-thought build, your review built into every phase.
Whichever you pick: I will not start coding the redesign before I hear from you. The brief was explicit on that, and so are you when you said "take your time, think deep."
Drafted by Aria · 2026-05-19 · Back to Finance · Today's insights · Design system
Source brief: your "world-class Household CFO" message. Methodology foundation: memory/drawers/finance/methodology/rewards-optimization.md.