Back to AI/ML Overview
๐Ÿ”ฅ MVP ยท Founder Runway Dashboard

BurnWallBank statements in. Burn rate, runway, and a decision deadline out.

A personal runway instrument I built in March 2026 and have used every day since. It ingests bank-statement data, computes monthly burn over a sliding window, and answers the only question that matters when you fund your own lab: how long can I keep building? FastAPI + React + PostgreSQL. All figures in the screenshots below are sanitized demo values.

Mar 2026
built, in daily use since
1 user
by design (me)
Sliding window
burn engine
3 lenses
monthly ยท to-decision-date ยท scenario
FastAPI + React
PostgreSQL under it
0
spreadsheets

๐ŸŽฏWhy BurnWall Exists

When you run a self-funded lab, runway is the heartbeat metric. Every product bet, every subscription, every contract decision ultimately reprices one number: the date the funds run out. I was tracking that date in a spreadsheet, which meant it was always stale, always an export-and-reconcile session away from the truth.

BurnWall replaces the spreadsheet with an instrument. Bank-statement data goes in; what comes out is a live picture of net worth, monthly burn by category, runway, and โ€” the part a spreadsheet never gave me โ€” a decision deadline: act two months before the wall, not when you hit it.

๐Ÿ”‘The MVP test
An MVP earns its existence by being used, not by being demoed. I open BurnWall every day, the way other people open a weather app. That daily-dogfooding loop is also where the product instinct comes from: every rough edge I hit as the user becomes the next small fix as the builder.

๐Ÿ—“๏ธThe Panoramic Calendar

The default view is a wide, scrolling calendar โ€” months side by side instead of one-at-a-time pages. Every day renders as a ring of that day's money events: income in green, expenses in red, sized so heavy days are visible from across the room. The top bar keeps the four headline numbers (funds, net worth, monthly burn, runway) and per-project tracks in view at all times.

Why a calendar and not a chart? Because burn is lumpy. Rent, insurance, annual renewals โ€” the texture of when money leaves matters as much as how much. A monthly aggregate hides the texture; the calendar shows it.

The same selector zooms to a single month for the detail pass โ€” every transaction labeled on the day it lands, income milestones in green, expenses in red. Three months for the trend, one month for the truth.

๐Ÿ“ŠThe Dashboard

The second view rolls everything up: net worth decomposed into cash / assets / debt, a burn-rate donut broken down by category, and the decision-deadline panel counting down.

Monthly burn

Current recurring expenses, by category โ€” the steady-state cost of operating.

To decision date

Total spend projected between now and the act-by date โ€” the real price of waiting.

Scenario budget

What burn looks like under a different living setup, so a lifestyle decision can be priced before it's made.

๐Ÿ”ฅThe Burn Engine โ€” Why Sliding Window

The computation pipeline is deliberately simple:

1. Ingest

Bank-statement transactions land in PostgreSQL.

2. Categorize

Each transaction maps to a category (housing, insurance, AI tools, subscriptions, โ€ฆ) and is flagged recurring vs one-time.

3. Slide

Monthly burn is computed over a sliding window (selectable, e.g. 3 months), not a single calendar month.

4. Project

Runway = liquid funds รท smoothed monthly burn; decision deadline = runway minus a safety lead time.

๐Ÿ’กWhy the sliding window matters
A single month's burn is noise. One annual insurance payment or a one-time purchase makes January look catastrophic and February look saintly. A sliding window smooths the spikes while staying responsive to genuine trend changes โ€” the same reason monitoring systems alert on moving averages, not point samples.

๐Ÿ—๏ธArchitecture

Boring on purpose. An MVP that exists to be used daily should be built from parts that never surprise you.

Backend

FastAPI + SQLAlchemy (async) + Alembic migrations.

Frontend

React 18 + Vite + TypeScript + Tailwind.

Database

PostgreSQL (Docker).

Tooling

uv (Python) + pnpm (JS), one start script for the whole stack.

What it deliberately does not have: auth (single-user, local), cloud deployment (my data stays on my machine), a mobile app, integrations. Every one of those is buildable; none of them earned their complexity yet. Knowing what not to build is most of MVP discipline.

๐Ÿ”’A Note on the Screenshots (Privacy by Construction)

BurnWall displays my real finances, so raw screenshots can never leave my machine. The captures on this page were produced by a Playwright script that rewrites the DOM at capture time โ€” every dollar figure replaced with a deterministic fictional value, the runway and deadline dates shifted โ€” while the real database is never touched. Treating my own data with production-grade privacy discipline is part of the point.

๐ŸŽฏ

Leadership Takeaway

MVPs as instruments, not demos. The fastest way to develop product judgment is to be your own daily user. BurnWall's feature list wasn't designed โ€” it accreted from real use: every rough edge I hit in the morning became a fix by evening.

The generalizes. Financial transactions in โ†’ categorization โ†’ windowed computation โ†’ glanceable visualization is the exact shape of consumer fintech: aggregation engines, spend insights, budgeting copilots. Building it end-to-end solo โ€” ingestion to pixels โ€” is the proof that the shape is understood, not just described.

Scope discipline is the skill. The interesting engineering decision in BurnWall isn't anything it does โ€” it's everything it doesn't. Single-user, local-only, no auth, no cloud. An MVP that ships and gets used daily beats a platform that's 80% done forever.