The Money Ops Dashboard Kit is the engineering guide — plus working reference code — for a self-hosted personal-finance dashboard: small Python collectors on cron, honest JSON feeds, and one static page that shows your real position. No subscriptions, no app, no one else holding your data.
Budgeting apps show you pie charts. This kit gives you the machinery underneath — the same architecture a family actually runs every day:
A month-by-month avalanche/snowball simulator over your real balances — your debt-free date becomes an output of current data, recomputed on cron, never a guess.
Every autopay with the account it drafts from, every expected inflow — and the one question that hurts: is there enough in the right account on the day it drafts?
Tuition, trips, the emergency fund — named funds with targets, deadlines, priorities, and the monthly math that shows the gap instead of hiding it.
Works with any bank on earth. Content-based dedupe, keyword rules you garden, and transfers quarantined so your totals stop lying.
Not "balance is low" — "the $619 autopay on the 18th will bounce." Deduped, stateful, and staleness is a first-class alarm.
One honest row a day, liquid tracked separately from total — because a comforting aggregate is the most dangerous number in personal finance.
Architecture → the feed contract → balances, cash flow, debt, goals, calendar, alerts, net worth → operations, ending with a two-week build order. Clean HTML: read anywhere, print to PDF.
dashboard/index.htmlthe single-file dashboard — renders every feed, marks stale cards, zero dependenciesdebt_sim.pyavalanche/snowball simulator → your debt-free dategoals.pysinking funds + the waterfall mathmoney_calendar.pyobligations, inflows, warning windowbank_csv.pyany-bank CSV import · dedupe · category rulesalerts.pycondition+consequence alerts, deduped, via email APInetworth_history.pyappend-only daily snapshot, liquid vs totalstripe_revenue.pyside-business revenue + MRR collectordata/ + crontab.exampleeditable sources of truth + the schedule