How to make a simple 30/60/90-day cash flow forecast
Profit and cash are not the same thing. You can have a profitable month and still not have enough in the bank on the day rent is due, because customers pay late and bills arrive on fixed dates.
A cash flow forecast answers one question: if nothing changes, how much money will I have in 30, 60 and 90 days? You don't need accounting software for it. You need three lists and one formula.
The formula
Work it out three times, with N = 30, 60 and 90.
Step 1: Cash today
Add up the money you can actually spend right now: your business bank accounts, plus marketplace or payment balances that are already on their way to your bank. Don't count stock, equipment, or money a customer has promised but not paid.
Step 2: Money coming in
List every unpaid invoice with its due date. For each forecast window, count only the invoices due inside it.
- If a client usually pays two weeks late, move their date two weeks out. A forecast is only useful if it's honest.
- Leave out sales you hope to make. Your forecast then shows the floor: what happens if you don't sell anything new. If your sales are very steady you can add a conservative line (for example 70% of an average month), but keep it separate so you can see the difference.
Step 3: Money going out
List every bill with its amount, its next due date and how often it repeats: rent, software, insurance, loan payments, supplier invoices, tax payments.
The step most people get wrong is recurring bills. A monthly bill doesn't count once in a 90-day forecast, it counts three times:
| Bill | Next due | 30 days | 60 days | 90 days |
|---|---|---|---|---|
| Monthly, $900 | in 3 days | 1× $900 | 2× $1,800 | 3× $2,700 |
| Quarterly, $450 | in 50 days | 0 | 1× $450 | 1× $450 |
| One-off, $700 | in 25 days | 1× $700 | 1× $700 | 1× $700 |
The rule: a bill due in d days that repeats every s days is paid ⌊(N − d) ÷ s⌋ + 1 times in an N-day window, as long as d is N or less. A one-off bill counts once if it falls inside the window, and an overdue bill counts as due today.
A worked example
A small online shop has $3,200 in the bank today.
| Money coming in | Due | Amount |
|---|---|---|
| Invoice: wholesale order | in 12 days | $1,200 |
| Invoice: custom order | in 45 days | $800 |
| Invoice: corporate gifts | in 75 days | $600 |
| Money going out | Due · repeats | Amount |
|---|---|---|
| Rent | in 3 days · monthly | $900 |
| Software | in 20 days · monthly | $60 |
| Supplier bill | in 25 days · once | $700 |
| Insurance | in 50 days · quarterly | $450 |
| 30 days | 60 days | 90 days | |
|---|---|---|---|
| Cash today | $3,200 | $3,200 | $3,200 |
| + Coming in | $1,200 | $2,000 | $2,600 |
| − Going out | $1,660 | $3,070 | $4,030 |
| Cash at the end | $2,740 | $2,130 | $1,770 |
Without a single new sale, this shop stays positive for the next three months, but the cushion shrinks by roughly $500 a month. That's the useful part: you see the trend long before it turns into a problem.
How to read your forecast
- All three numbers comfortably positive: you're fine. Check again next week.
- Positive, but less than one month of fixed bills: you're running thin. Hold off on big stock purchases until invoices come in.
- Negative at 60 or 90 days: you have time to act, which is the whole point of forecasting.
- Negative at 30 days: act this week.
What to do if the forecast goes negative
- Invoice sooner and chase faster. Send the invoice the day the work is done, and follow up the day after it's due.
- Ask for deposits on custom or large orders, for example 30 to 50% up front.
- Move bill dates. Many suppliers and software companies will change a due date if you ask before it's due.
- Pause or cancel subscriptions you haven't used in the last month.
- Turn slow stock into cash with a bundle or a small discount, instead of buying more inventory.
Set it up in a spreadsheet
Make a Bills sheet with these columns: Name (A), Amount (B), Next due date (C), Repeats every N days (D, use 0 for one-off bills). This formula gives the amount each bill costs you in the next 30 days:
Copy it into two more columns with 60 and 90 instead of 30. When you pay a recurring bill, move its next due date forward. On an Invoices sheet (Amount in B, Due date in C, unpaid invoices only) use =IF(C2-TODAY()<=30, B2, 0), then add up each column and plug the totals into the formula at the top.
Or let your bookkeeping do it
The Business Hub for Notion builds this forecast for you from your bills and invoices: recurring bills are counted the right number of times, paid bills roll forward to their next date, and your cash in 30, 60 and 90 days sits on the main dashboard next to your sales and profit.
Know your cash 90 days ahead, without a spreadsheet
Log a sale, a bill or an invoice once, and the Business Hub updates your cash today and your 30/60/90-day forecast on its own.
- Price Planner: profit after fees for every item
- Stock that updates when you log a sale
- Invoices, bills and a 30/60/90-day cash forecast
- One-time $39, no subscription