The 13-week cash flow forecast: a method that warns you in time
A weekly view with three months of visibility, so you spot the next pinch point with eight weeks' notice. Mechanics, worked example and Monday routine.
Some weeks squeeze you. Payroll, VAT, the year-end bonus. If you find out on Tuesday morning when you open the bank app, it is already too late to move anything. A 13-week cash flow forecast flips the order: you see the pinch with two months’ notice, and that is enough time to act.
Three months is the right horizon. Looking forward, almost everything already sits in Odoo or your accounting system: issued invoices with due dates, supplier bills to pay, loan instalments, recurring payroll, taxes with fixed dates. What is missing you add once. The promise is simple: you know the closing balance of every Friday for the next 13 weeks and, when something starts to drift, you know it in time.
Why 13 weeks and not 12 or 26
A quarter has 13 weeks. Three months out, recurring payments are almost all defined: the team is in place, large purchases have purchase orders, taxes have deadlines. Six months out, half the plan is wishful thinking. Twelve weeks is a hair too short, because it leaves out the next VAT return. Thirteen fits.
And the week rules, not the month. A month can net out to a healthy balance while hiding one week where the bottom falls out. The monthly view is for the annual budget; to run cash day to day, you need the weekly view.
Rows and columns
The structure is always the same. One column per week with the Monday date as the header. Thirteen weeks plus a first column for line items and a last for the quarter total.
Rows are grouped in blocks:
- Opening balance (the previous week’s close).
- Receipts: customers with invoices due that week, cash sales from your forecast, other inflows.
- Operating payments: supplier invoices, recurring services, utilities.
- Payroll and social charges (PAYE/PRSI, NIC).
- Taxes: VAT return, withholding, corporation tax instalments.
- One-off bonuses, loans and leases, ad hoc expenses.
- Closing balance for the week.
If you make it bigger, it will go stale within a fortnight.
A worked example
Harwell Metalworks Ltd., 38 staff in Cork, around €450,000 a month in sales. Bi-monthly Irish VAT return, payroll on the last Friday of the month, a year-end bonus paid with the December payroll. The finance director sets the minimum cash threshold at €50,000. We start on Monday 2 November 2026 with €55,000 in the bank. Figures in thousands of euro.
| Week | Mon | Receipts | Payments | Payroll+PRSI | Taxes | Bonus | Closing |
|---|---|---|---|---|---|---|---|
| 1 | 2 Nov | 100 | 70 | 85 | |||
| 2 | 9 Nov | 115 | 65 | 135 | |||
| 3 | 16 Nov | 90 | 55 | 170 | |||
| 4 | 23 Nov | 85 | 60 | 70 payroll | 125 | ||
| 5 | 30 Nov | 95 | 65 | 155 | |||
| 6 | 7 Dec | 100 | 60 | 195 | |||
| 7 | 14 Dec | 85 | 50 | 20 PAYE Nov | 210 | ||
| 8 | 21 Dec | 55 | 55 | 70 payroll | 60 | 80 | |
| 9 | 28 Dec | 50 | 40 | 90 | |||
| 10 | 4 Jan | 75 | 55 | 110 | |||
| 11 | 11 Jan | 90 | 60 | 20 PAYE Dec | 120 | ||
| 12 | 18 Jan | 85 | 65 | 40 VAT Nov-Dec | 100 | ||
| 13 | 25 Jan | 100 | 55 | 70 payroll | 75 |
The two low points of the quarter show up right away. Week 8 (21-27 Dec) falls to €80,000 because the December payroll lands in the same week as the year-end bonus. Week 13 (25-31 Jan) falls to €75,000: the January payroll lands right after the bi-monthly VAT return paid in week 12. Both weeks sit above the €50,000 floor, but the margin is thin.
You can see all of this on Monday 2 November, with seven weeks’ notice before week 8 and twelve before week 13. With that lead time, the decisions are quiet. Negotiate with a large customer to bring forward a €20,000 payment. Shift a non-critical supplier payment from week 8 to week 9. Line up a short draw on the overdraft facility so the floor stays intact. Postpone the lathe you had pencilled in for late January. Any of those conversations held eight weeks early is calm; held on a Friday afternoon, they turn into missed payments or favours bought at a premium.
How it rolls: one week out, one week in
The expensive mistake is to treat the forecast as a document. It is a rolling calendar. Every Monday, last week disappears and a new week slots in at the end. What was week 2 is now week 1; what was week 13 is now week 12; a fresh week 13 enters the picture. The horizon is still 13 weeks, but the snapshot is different each week.
That matters: the forecast never expires, because it always reaches into the next quarter. You never run out of visibility. A sales order signed today lands in the week of its due date. A supplier invoice on 60-day terms drops into the right week. If the new week falls below the floor, the alert fires and you look again before Monday closes.
The 30-minute Monday routine
Half an hour each Monday morning is enough if your data lives in Odoo. The script:
- Download the weekend’s bank statements and reconcile them.
- Compare last Friday’s real balance with what you had forecast. Note the gap.
- Confirm receipts for the week ahead: has the customer confirmed? Is the SEPA batch at the bank? Flag the doubtful ones.
- Review payments: anything renegotiated with a supplier? Any lease instalment that changed?
- Add the new week at the back with its known recurring items and already-signed orders.
- Check the minimum balance over the 13 weeks: still above the threshold? Any week that dips?
- Decide an action if needed and write a one-line note on that week.
Half an hour of work is a lot cheaper than an emergency call to the bank in February. If building the forecast from scratch is still ahead of you, start there and come back here.
Measuring accuracy, week by week
A forecast without measurement degrades. Each Monday, write down three numbers: the forecast balance for the Friday that just passed, the actual balance, and the gap. When the gap always goes the same way, the fix is not the number, it is the method: you are underestimating receipts, or overestimating payments. A 5-10% weekly error is normal; if you keep breaching 20% week after week, the problem is in your Odoo data (untouched due dates, unreconciled bank statements, recurring payments that live only in someone’s head), not in the model.
When to combine it with a 12-month monthly view
The 13 weeks are operational: they decide whether you pay payroll on time or not. The 12-month monthly view is strategic: it decides whether you hire two more people, sign the lease on the new warehouse, or draw down a loan. If the weekly forecast is up to date, the monthly view falls out of the same data, and that is where you plan cash flow scenarios around late-paying customers. For a group with several companies, the 13 weeks consolidate by summing the entities and stripping out intercompany movements, as described in the article on cash position across a group of companies in Odoo.
Spreadsheet templates for cash forecasting are useful for getting started. As soon as you add a second bank account or a second company, the sheet runs out of road and human error multiplies. Kashbi reads your Odoo and lays out these 13 weeks every day, with the alert when the balance drops below the floor and the monthly view alongside. It changes nothing in your Odoo: it reads it and shows it ordered.
Frequently asked questions
What if sales orders are not in Odoo?
You can start with issued invoices alone, but the forecast gets a lot better when sales orders have delivery dates. If you sell on order or with heavy repeat business, keeping orders current pays off in the first week.
How do I include taxes if I do not know the exact amount yet?
Enter a conservative estimate and mark it as estimated. The VAT return can be sized with reasonable accuracy from output VAT minus input VAT in the current period: two weeks before the period closes you already have most of the picture. For corporation tax instalments, use last year’s equivalent payment and adjust for the expected margin.
What about seasonal businesses?
Highly seasonal businesses (tourism, agriculture, back-to-school) need the forecast more than anyone, but 13 weeks is too short to cover a full campaign. Always combine it with the 12-month monthly view and keep the minimum threshold higher, to absorb a dip in the peak.