Cashflow & Runway Planner
Turn supplied receipts and payment schedules into a weekly cash plan with transaction-level evidence and scenario comparisons. The full ZIP includes a dependency-free Python 3.10+ forecast helper, fictional CSV/config examples and cash-versus-accrual guidance. This is operating planning, not investment advice, tax filing or assurance about future solvency.
Reconcile the starting point
Read cash model rules. Establish forecast start/end, reporting currency, unrestricted opening cash immediately before the start date, reserve floor and included bank accounts. Match opening cash to supplied balances after pending/cleared items are reconciled. Remove inter-account transfers within the modeled business to avoid double counting. Exclude restricted cash, or disclose and model its restrictions separately.
Map supplied exports into cash-events.csv. Use expected bank settlement dates, not revenue-recognition or invoice dates. Keep loan/equity inflows, asset purchases, loan principal, taxes and owner draws distinct from operating receipts/expenses. Include payroll, tax, debt, refunds, fees and annual renewals when evidenced. A missing export is an explicit coverage gap, never a zero expense. De-duplicate invoice schedules against already-settled bank transactions.
Each row needs a unique ID, source, currency, direction, classification, cash date, amount and committed/forecast status. The bundled fixtures are fictional and must be replaced. State whether scheduled amounts include taxes and processor fees. The helper expects gross inflows and separate fees, or consistently net inflows without duplicated fees; choose and document one convention.
Build scenarios
Copy plan.json. The helper handles a single two-decimal currency from its documented supported list. Convert foreign amounts outside the helper with an explicit dated FX assumption; do not mix currencies. Amounts are decimal strings, and all calculations use integer minor units after explicit rounding.
Scenario multipliers and receipt delays affect only forecast rows. committed rows keep their supplied amounts/dates. If a receivable is uncertain, model it as forecast or create a documented alternative schedule; do not mark it committed and expect a downside multiplier to stress it. Dates shifted beyond the horizon remain in the adjusted ledger and are reported as excluded from the horizon.
python3 scripts/forecast.py /path/to/plan.json /path/to/cash-events.csv /path/to/new-forecast
The helper produces summary.json, weekly.csv and adjusted-events.csv. It computes end-of-day cash, the first projected reserve breach, first negative-cash day, lowest opening or end-of-day cash and each week's opening/receipts/payments/closing reconciliation. It rejects duplicate IDs, mixed currency, invalid amounts/dates and accidental reuse of an output directory. A reserve breach at the opening balance is reported on the start date. Same-day payment ordering and bank facilities are not modeled.
Explain the operating decision
Compare base and downside in decision-memo.md. Explain which collection delay or spending change drives the earliest shortfall, including amounts moved outside the horizon. Do not extrapolate “months of runway” from one average burn number when inflows or costs are uneven. If no cash-floor breach occurs, say “none within the modeled period”; never claim unlimited runway.
Independently reconcile at least one week and one delayed receipt against the source schedule. Return the three generated files, scenario assumptions, input coverage gaps and a short action memo with owners and dates. For requested charts/XLSX, use available plotting/spreadsheet tools with these reconciled figures. No payments, loans, transfers, credit applications or messages are initiated by this skill.