BUSINESS CASH PLANNING

See your cash low point before it surprises you.

Model invoice collection delay against weekly bills in under a minute — then add the payments that do not arrive every week, like the quarterly tax bill or the invoice you are still chasing. Nothing leaves this browser.

When will my business run out of cash? · vs. QuickBooks Online's Cash Flow Planner · vs. building your own spreadsheet

Money in or out on a set week

The payments that break a runway are the lumpy ones: a quarterly tax bill, an insurance renewal, a deposit you are owed. Leave a row blank if you do not need it. Fill in “Repeats every” for a bill that lands more than once in this window — a quarterly tax bill needs one row, not four.

Enter your numbers to see the forecast.

Common questions

What counts as “week 1”?

The week you are looking at the page, not a fixed calendar boundary. Each row in the results list shows both the week number and its calendar date (“w/c”), so “week 4” means something concrete when you decide which payment to move. On the defaults — $5,000 starting cash, $1,800 invoiced weekly with a 2-week collection delay, $1,400 in weekly costs — no income lands until week 3, so the lowest balance is $2,200 in week 2, before collections catch up.

Why won't it accept a collection delay like 1.5 weeks?

Because the forecast is a whole-week timeline: a fractional delay would be silently rounded up internally (1.5 forecasts identically to 2), and you would never learn the number you typed was not the number used. Rejecting it up front means the forecast always answers the delay you actually entered.

When there's a shortfall, what does the suggested fix actually do?

It targets the deepest week of the negative run, not just the first week it turns negative — covering only the first week would leave you short again days later. Then it looks for one of two moves already on your one-off list: delaying the largest outgoing payment dated at or before the shortfall starts, or pulling forward the soonest incoming payment dated after the low point. Each suggestion says plainly whether it “closes the gap” or only “covers” part of it, based on whether its amount meets the deficit at the trough. If cash recovers and then runs short again later in the window, that is a separate shortfall with its own low point, and gets its own suggestion — a payment already used to fix an earlier gap is not offered a second time.

Why does it sometimes say “this is not a timing problem”?

When your weekly costs exceed your weekly collected income — a structural gap, not a one-off — moving a single payment only postpones the same shortfall by a week rather than closing it. The planner checks for that (weekly costs minus weekly income) before suggesting a specific payment to move, so it does not sell a move-this-bill fix to a gap that reopens on its own the following week.

Why do only 3 one-off rows show at first, and why is there a limit of 8?

Three rows cover the common case — a tax bill, a renewal, a chased invoice — without cluttering the form; “Add another row” reveals more up to 8. The 8-row cap keeps the form's field set identical on every visit, which is what lets a saved draft restore correctly: the restore logic compares the saved fields against the form's fields and refuses to restore anything that doesn't match.

How do I model a bill that lands more than once, like a monthly payment?

Fill in “Repeats every” on that row with the interval in weeks — 13 for quarterly, roughly 4 for monthly — and the row lands once at the week you gave it and again every interval after that, for as long as the forecast window runs. A quarterly tax bill inside a 52-week forecast now costs one row instead of four, which matters because only 8 rows exist. Each landing still gets its own line in the results list and the CSV, and a repeating payment is still eligible to be the one a shortfall plan suggests moving — whichever occurrence actually falls inside that shortfall.

Does anything here leave my browser?

No. The forecast, the CSV export, and the saved draft all run and stay in local storage on your device. “Copy share link” puts your numbers in the URL fragment (the part after #), which a browser never sends to a server, so pasting the link somewhere else is the only way your figures travel. The only optional exception is anonymous local usage counting, which is off unless you check the box, and is disabled automatically when Do Not Track or Global Privacy Control is on.

What does “Copy share link” actually send?

It copies the current page URL with your forecast inputs — starting cash, weekly income and costs, the collection delay, the forecast length, and every filled one-off row — encoded after a # in the address. Opening that link runs the same forecast immediately, including the one-off rows, so a bookkeeper or business partner sees the exact same shortfall you did, not just the headline numbers. Anything you have not filled in is left out of the link.