A profit report tells you whether the business made money last month. A 13-week cash flow forecast tells you whether you will have enough cash in the bank next month. For a small shop or freelancer, the second question is usually the scarier one.
Here is a plain-Excel way to build one. No macros, no add-ins.
1. Lay out the weeks across the top
-
A1: "Week starting" -
B1: the Monday of the current week, e.g.2026-11-09 -
C1:=B1+7, then fill right toN1(13 columns in total)
Using real dates (not "Week 1, Week 2") lets you use SUMIFS on dates later.
2. Opening balance row
-
A2: "Opening cash" -
B2: today's actual bank balance (type it in) -
C2:=B10(last week's closing cash), fill right
That single link is what makes the sheet roll forward.
3. Cash in
Rows 3–5: "Customer receipts", "Other income", "Total cash in".
Keep a separate table called Receipts with columns Date and Amount (expected payment dates, not invoice dates). Then in B3:
=SUMIFS(Receipts[Amount], Receipts[Date], ">="&B$1, Receipts[Date], "<"&B$1+7) Fill right. B5: =SUM(B3:B4).
Tip: use the date you realistically expect to be paid. If a client usually pays 10 days late, add 10 days. A forecast built on invoice due dates is optimistic by design.
4. Cash out
Rows 6–8: "Supplier payments", "Fixed costs (rent, software, wages)", "Total cash out".
Same pattern with a Payments table:
=SUMIFS(Payments[Amount], Payments[Date], ">="&B$1, Payments[Date], "<"&B$1+7) For fixed monthly costs, list each payment on its real date in the Payments table instead of dividing by 4. Rent hitting on the 1st is a lump, and the lump is what causes a bad week.
5. Net flow and closing cash
-
A9: "Net cash flow",B9:=B5-B8 -
A10: "Closing cash",B10:=B2+B9
Fill both right to column N.
6. Make the danger weeks obvious
Add a minimum buffer in a cell, say Q1 = 2000. Select B10:N10 → Conditional Formatting → New Rule → Use a formula:
=B10<$Q$1 Fill red. Now any week where closing cash drops below your buffer lights up.
Also useful: =MIN(B10:N10) for the lowest point, and
=INDEX(B1:N1, MATCH(MIN(B10:N10), B10:N10, 0)) for the week it happens.
7. Keep it honest every week
- Replace this week's opening balance with the real bank balance.
- Move any receipt that didn't arrive to a later date (don't delete it).
- Add new invoices and bills to the two tables.
- Shift the start date in
B1forward one week.
The comparison between what you forecast and what actually happened is where the learning is. After a month you will know exactly which customers pay late and by how much.
Common mistakes
- Mixing profit and cash. Depreciation and unpaid invoices are not cash. Only money moving in or out of the bank goes here.
- Forgetting tax and loan repayments. Put GST/VAT/sales tax and loan payments in
Paymentson the dates they leave the account. - Hard-coding numbers in the grid. Keep raw numbers in the tables; the grid should be formulas only. That way updating takes two minutes.
This post was drafted with AI assistance and the formulas were checked in Excel.

