Cash flow forecasting is one of those finance tasks that sits somewhere between art and accounting. Every CFO has an opinion on how it should be done. Fewer CFOs have a process that actually survives contact with their team's daily workload.
The spreadsheet-driven approach has been the default for so long that most mid-market finance teams no longer question it. A model built in Excel — or inherited from whoever held the CFO seat before you — gets copy-pasted month after month, layered with VLOOKUP fixes and colour-coded override cells. The numbers land in your inbox two days before the board call. You present them. The board asks a question about the next quarter. You give an answer you aren't fully confident in.
This article is a working framework for moving to a rolling 90-day forecast. Not a theoretical one — the kind that your team can maintain without it becoming a full-time job.
Why a 90-Day Rolling Window Is the Right Default
There's a real debate about forecast horizons. Annual budgets give you full-year visibility but become increasingly fictional after Q1. Monthly cash reports give you precision but no foresight. The 90-day rolling window is a practical middle ground that most mid-market CFOs eventually converge on — and for good reason.
Ninety days is long enough to catch cash pressure before it becomes a crisis. If your receivables collection is slipping, a 90-day horizon gives you three months to act — adjust credit terms, accelerate collections, or pre-arrange a facility increase. Sixty days is often already too late to do much; 120 days forward carries too much model noise to be operationally useful.
The "rolling" part is equally important. A static Q3 forecast built in July becomes stale by August. A rolling forecast — rebuilt or refreshed each week or fortnight — stays anchored to current actuals. It eliminates the late-quarter scramble to reconcile why Q3 projection differs so dramatically from Q3 reality.
The Four Components Your Forecast Needs to Track
Before discussing process, it helps to be explicit about what a 90-day cash forecast is actually tracking. Many teams conflate cash forecasting with P&L projection. They are related but different exercises. A cash forecast tracks the timing of actual cash movements, not accrual-based revenue or expense recognition.
A functioning 90-day model needs to include four distinct components:
- Operating cash inflows. Customer payments from invoices — adjusted for your actual collection pattern. If your DSO is 45 days, revenue booked this week won't hit your bank account for another six weeks. The model has to account for that lag, not project revenue-equals-cash.
- Operating cash outflows. Payroll runs, supplier payments, rent, subscriptions, tax instalments. These are mostly predictable. The error most teams make is treating them as a single monthly lump rather than mapping them to the actual payment dates.
- Capital and financing movements. Loan drawdowns, repayments, capital expenditure. If you have a credit facility, when can you draw on it and what are the repayment triggers? These need explicit dates in the model, not approximate "Q3" buckets.
- One-off and contingent items. VAT settlements, annual insurance premiums, bonus payments. The most common reason a cash forecast fails mid-quarter is an unplanned outflow that everyone knew about but nobody put in the model.
Building the Model: Structure Before Complexity
A common mistake is building a highly sophisticated model before establishing the underlying data discipline. A complex forecast that relies on manual data entry will produce unreliable output regardless of how elegant the formulas are.
Start with structure. Create three sections: receipts, payments, and net cash position. Map each line to a real source — an ERP invoice ledger, a supplier payment run, a payroll system. If you can't map a line to a specific data source, you're estimating rather than forecasting, and you should label it as such.
For a manufacturing company with roughly 180 employees — the kind of mid-market business this framework is designed for — the receipts section might have 12 to 20 customer accounts that represent 80% of receivables. Map each of those to their actual payment terms and their historical collection pattern. The remaining 20% of receivables can be averaged. This segmentation alone dramatically improves forecast accuracy compared to treating all customers as a single blended DSO figure.
On the payments side, separate committed outflows from discretionary ones. Payroll, lease obligations, and existing supplier contracts are committed — they go in at their actual scheduled dates. Marketing spend, capex, and discretionary hires are flexible. Keeping these separate makes it immediately visible where you have room to manoeuvre if the inflow side disappoints.
The ERP Integration Problem
A 90-day rolling forecast only maintains itself if it pulls actuals from your ERP automatically. If your finance team is manually exporting invoice data from Fortnox or Visma each week to update the forecast model, two things will happen: the forecast will fall behind, and the person doing the export will gradually stop doing it at the frequency you need.
This is the core operational problem with spreadsheet-based forecasting. The model itself might be well-designed, but the data pipeline is manual and brittle. Any system that depends on a human remembering to run an export on the right day — and then mapping it to the right cells — will produce inconsistent output.
The solution is not to build a better spreadsheet. It's to establish a live connection between the forecast model and the ERP. When invoices are raised, paid, or overdue in your accounting system, that information should flow into the forecast automatically. When payroll runs, the actual figure should replace the estimate. The 90-day projection should be recalculated on fresh data, not stale last-week exports.
We're not saying spreadsheets are incapable of this — some Excel-based models do maintain live connections to ERP APIs. What we're saying is that building and maintaining those connections requires technical resource that most mid-market finance teams don't have readily available. Purpose-built tools address this at the integration layer rather than pushing it onto the finance team.
Where Forecasts Break Down: The Common Failure Points
After working with growing finance teams, several patterns appear in how 90-day forecasts degrade. Knowing them in advance is useful.
Overconfidence in DSO stability. Days Sales Outstanding fluctuates more than most models assume. A customer who paid on day 38 for the last six months might shift to day 52 when their own business comes under pressure. If your model treats DSO as a fixed constant, it will overstate cash inflows in precisely the quarters when you most need accurate numbers.
Ignoring seasonality in expense timing. Annual software renewals, insurance premiums, and one-off capex create lumpy outflow patterns. These are entirely predictable — they're on the calendar — but they regularly appear as "surprises" because nobody added them to the rolling model.
Treating the forecast as a reporting exercise. The forecast has value only if it informs decisions. If it's produced for the board pack and then filed, you've created a compliance artefact, not a management tool. The discipline of reviewing the forecast weekly — even briefly — and asking "what does this tell us we should do now?" is what converts a model into a useful financial instrument.
Review Cadence and Ownership
A 90-day rolling forecast needs two things to stay useful: a clear owner and a regular review rhythm. The owner should be a single person — typically the Head of Finance or a senior financial controller — who is accountable for the forecast's accuracy and for raising the alarm when actuals diverge from projections by more than a defined threshold (commonly ±10% on any week's net cash movement is a reasonable starting trigger).
Weekly is the right frequency for reviewing the near-term view (the next four weeks). Monthly is sufficient for the 60-90 day range. If you're spending more than 90 minutes per week maintaining a 90-day rolling forecast, the data pipeline is broken — that time should be going into analysis and decisions, not data assembly.
The final measure of a good cash forecast is not precision for its own sake. It's whether the CFO can answer this question with confidence at any point in the quarter: "Do we have cash pressure in the next 90 days, and if so, where is it coming from and how much time do we have to act?" If your current process answers that question reliably, it's working. If it doesn't — or if you only find out the answer at month-end — the process needs attention.