| Date | In | Out | Projected checking | State |
|---|
A card purchase is the real spending event — the moment you log it, it raises that card's "Unfunded" amount on the Cards tab (money you now owe but haven't set cash aside for), and it's immediately subtracted from Safe to Spend below — no cash leaves checking yet, but the debt is real, so it counts right away rather than staying invisible until a statement payment eventually gets scheduled. The later card payment is just a transfer of cash from checking to the card — never a second expense. Reconciling moves that same amount from "unfunded" into "scheduled outflow" (or, if the due date falls after your next payday, off the near-term radar entirely) — either way, the headline can only hold steady or improve once the real due date is known, never drop as a surprise later.
Safe to spend = spendable checking − your cash reserve − everything scheduled to leave checking before the next payday (+ anything scheduled to arrive before then) − every card's unfunded balance. Moderate adds the next paycheck; Aggressive adds savings backup. Only rows that actually move cash, plus unfunded card debt, ever touch this number — nothing is ever counted twice.
A Pending item that's still sitting there weeks after its date is usually forgotten cruft (an autopay that actually posted, or leftover sample data) — it keeps counting against you forever until you clear or delete it, so the app flags anything over two weeks stale.
| Date | Description | Amount | Where | Cash? | Status |
|---|
“Cash? yes” rows are the only ones that move checking. Card purchases sit on the card until its statement payment. Click a status to flip Pending ↔ Cleared. Click a column header to sort by it — click again to reverse.
| Card | Balance | New since reconcile | Statement | Due | Autopay | Funded | Unfunded |
|---|
Balance and Funded are both calculated, never typed in directly. Balance starts from whatever you set at Balance as of and rolls forward with every purchase, refund, and posted payment dated on or after that date. Funded is whatever payment is currently scheduled for this card; Unfunded is the gap. To set or correct a card's starting balance (e.g. when you first add it, or you're backfilling purchases that happened after your last statement closed), hit Reconcile — set "Balance as of" to the date your statement actually covers through (not necessarily today), and anything you log dated that day or later rolls in automatically. Saving also schedules the payment (full / minimum / custom, per the card's autopay).
| Account | Type | Institution | Balance | New since reconcile | Spendable? |
|---|
Spendable accounts (your checking) feed the headline number. Savings are backup only — they only count in Aggressive mode. Like Cards, Balance is calculated, never typed in directly: it starts from whatever you set at Balance as of and rolls forward automatically with every Cleared cash-impact ledger entry touching this account dated on or after that day — mark a bill or paycheck Cleared once it actually posts and the balance updates itself, no manual retyping needed. Hit Edit to correct drift or set the starting point — set "Balance as of" to whatever date that number is actually accurate for (not necessarily today, e.g. when backfilling older activity).
| Name | Category | Amount | Frequency | Next date | Paid with | Mandatory |
|---|
“Generate upcoming bills” adds any instances missing from the ledger for the next 60 days — it never duplicates one that’s already there. Estimates with no fixed date (groceries, gas) are reference only and aren’t generated. A bill whose real-world payment is charged to a credit card rather than paid from checking — a debt paid via a card, a store financing plan — should be paid with that card here rather than tracked as its own scheduled card payment; if it's also a debt you're tracking on the Cards tab, set Pays down debt so each occurrence both charges the card and reduces that debt's balance automatically. Set Kind: Income to set up your paycheck once here — each payday it lands in the projection automatically, without a manual "Add something" entry every pay period.
Rows are auto-classified: on a card file, charges become card purchases, credits become refunds, and “payment” rows become the checking→card transfer (never an expense). Rows that match something already in the ledger are skipped or reconcile the pending item instead of duplicating it. You can override any row before importing.
Everything lives in this browser’s local storage — nothing ever leaves your machine. Export a JSON now and then (or before switching devices) and keep it wherever you keep backups. Importing a JSON replaces everything currently here.
Paydays roll forward automatically — once a payday passes, the window moves to the next one. The seed data uses a fixed “today” of 2024-07-12 so it matches the reference workbook; switch to the real date when you load your own numbers.