Ballast
Weight where it counts.
Ballast is the weight a ship carries low in the hull so rough water can't turn it over. This is the same idea for money: know exactly what you carry, what's coming, and how much room you have before you're in trouble.
The line you can't cross
Ninety days projected forward across every real due date and payday — naming the exact day your balance would go under, while there's still time to move something.
One number, not forty
Income, minus bills, minus a safety buffer you set yourself, divided by the days in front of you. What's genuinely safe to spend today.
Yours alone
No account, no server, no analytics, no subscription. Every figure lives in this browser and is never transmitted anywhere. Export a backup whenever you want one.
Free and open. One HTML file. Works offline once loaded.
Current Status
90-Day Balance Projection
Projected forward from your current balance using every bill due date and payday in your ledger. It assumes no discretionary spending at all — real life lands below this line, which is exactly why the Daily Spend number matters.
Income Summary
Upcoming — Next 14 Days
| Date | Item | Category | Amount |
|---|
Quick Nav
Recurring Income Rules
These drive your rollup numbers and the projection automatically — no need to log every paycheck by hand. Log an actual paycheck below only when the real amount differs from the rule.
| Label | Frequency | Pay Day | Gross | Tax | Net | Monthly Net |
|---|
Job Income — Actual Log
| Week Of | Gross | Deductions | Net | Notes |
|---|
Side Income
| Date | Source | Category | Gross | Net |
|---|
Income Rollup
Add / Edit Bill
Bills Ledger — Source of Truth
| Bill | Category | Amount | Due | Frequency | Monthly Equiv. | Status |
|---|
Starting Balance
Log a Transaction
Amount is signed: negative for money out, positive for money in. Type "Income" is what Analysis uses to separate earnings from spending.
Transaction Log
| Date | Description | Category | Amount | Type | Running Balance |
|---|
Bank CSV Import
Paste rows from a bank CSV export — one transaction per line, comma-separated as
Date,Description,Amount. A header row is detected and skipped automatically.
Review the parsed preview, then import.
Weekly Breakdown
Controls
Every number on this tab recalculates live from these. Nothing here is hardcoded.
Daily Split
Suggested Daily Allocation
A suggested split of your daily discretionary amount, not a rule the app enforces. If groceries and gas are in your Bills Ledger, this is money on top of those.
Estimated Savings Projection
Growth of your buffer alone, assuming it's set aside and not spent — no interest, just straight accumulation. An estimate from your current numbers, not a promise.
Monthly View
| Flow | Monthly | Weekly | Daily |
|---|---|---|---|
| Net Income | $0 | $0 | $0 |
| Bills | $0 | $0 | $0 |
| Buffer | $0 | $0 | $0 |
| Discretionary Spend | $0 | $0 | $0 |
Spending by Category
This Month
Last 6 Months — Spending Trend
Budget vs. Actual — This Month
Compares what you actually spent per category against the monthly equivalent of the bills you've budgeted in that category.
| Category | Budgeted | Actual | Difference |
|---|
What Ballast Is
Ballast is the weight a ship carries low in its hull. It isn't cargo and it doesn't earn anything — it's there so rough water can't turn the vessel over. Take it out to travel lighter and the first real wave capsizes you.
Money works the same way. The buffer you hold back, the bills you know are coming, the margin between your balance and zero — that's ballast, and this app exists to measure it honestly rather than flatter you. Three questions, answered continuously: what am I carrying, what's coming, and how much room do I have before I'm in trouble.
How This Works
Dashboard — live overview plus a 90-day projection showing the lowest point your balance is expected to hit, and when.
Income — recurring rules (the fast way) plus optional real paycheck logs. If you log real paychecks, those override the rule estimate.
Bills — the source of truth for every bill. Monthly bills use a day of the month; weekly and biweekly use a day of the week; one-time bills use a real date and disappear after it passes.
Calendar — bills and paydays on a real month grid, with recurrence handled properly.
Transactions — set a starting balance once, then log spending (or paste a bank CSV). Running balance and current balance calculate automatically.
Daily Spend — turns your weekly surplus into one honest "safe to spend today" number, with a buffer and split you fully control.
Analysis — category breakdown, a six-month trend, and budget vs. actual.
Data & Privacy
Everything you enter is saved only in this browser, using local storage. Nothing is transmitted anywhere — there is no server, no account, and no analytics on this page. Nobody but you can see any of it.
The trade-off: your data is tied to this browser on this device. It survives refreshes and closing the tab, but it won't follow you to another browser or computer, and clearing site data will erase it. Export a backup regularly if the data matters to you — that's the only copy that outlives this browser profile.
Connecting a Real Bank Feed
A page like this cannot connect directly to your bank, and no version of it safely could — that's not a shortcoming of this build, it's how bank-data providers work.
Why not: Plaid Link and every comparable aggregator require a backend server holding a secret API key. That key can never ship inside a webpage — anyone could open dev tools, take it, and pull data from every account it touches.
Realistic options: use a consumer app that already has that infrastructure (Copilot, Monarch, YNAB, Rocket Money); build a real backend with a server, database and auth; or keep using the CSV import on the Transactions tab, which needs nothing beyond what your bank already offers.