YYYY-MM-DD. Every occurrence is computed from its
anchor by index rather than chained off the previous date, which is what stops month-end drift.
Monthly equivalents use exact annual rates (weekly × 52/12, not the legacy workbook's × 30/7) and are
used only for buffer sizing and reporting — never in the cash-flow path.
Safe-to-commit on each payday is the minimum projected future balance above the floor, found in one
backward pass, and the floor itself moves as sinking funds fill and empty. The current month posts what the
budget still expects rather than the raw plan, so a receipt typed into Actual moves the graph on the same
keystroke. Dated goals reserve capacity earliest-deadline-first; a goal that still misses returns a
shortfall, a blocker and the levers that would close it. Imports are deduped on the bank's own transaction
id, so the same file can be dropped in twice with no effect, and a row recognised as a planned bill stops
that bill being projected again. The claim is keyed on the occurrence's date, never its index,
so moving a bill's anchor makes a stale claim inert rather than silently suppressing the wrong bill.