Design agency cash flow problems are almost always timing problems, not revenue problems. Build your forecast from project milestones and approval gates — not past transactions.
You've got three brand systems in flight, two monthly retainers, and a pitch deck due next week for a packaging rebrand. The calendar is full. Ask what your cash position looks like after this month's payroll and before the branding project's final milestone payment clears — and the mental math gets uncomfortable fast.
That discomfort isn't a shortage. It's what no forecast feels like.
Why most forecasts fail
Most design agency founders who've tried cashflow forecasting built it from their bank or accounting history. Past payments in. Past expenses out. That's not a forecast. That's a ledger.
It doesn't tell you that the client who owes for revision round 3 is waiting on internal brand approval. It doesn't show that the asset library deliverable is done but the invoice won't go out until the handoff spec is signed off. It doesn't account for the Figma-to-production project that's been in final review for three weeks.
A cash flow projection built from transactions tells you what happened. One built from your project pipeline tells you what's coming.
The 3 numbers design agencies need to track
1. Receivables due
Invoices already sent. Not yet paid. Every one of them — by client, amount, due date. Most design agencies have this number distributed across email threads and a billing tool nobody checks consistently.
2. Invoices outstanding
Work completed but not yet invoiced. Final deliverables pending sign-off. Asset library submitted, approval pending. Revision rounds done, milestone not yet triggered. Money you've earned and haven't claimed.
3. Projected inflows by month
Projects in delivery, mapped to their payment triggers. Not "this brand system project is worth £25K." What you need is: "£8K at kickoff (received), £9K at brand presentation approval (next month), £8K at final file handoff (month three)." Most design agency cash flow problems live in this number.
How to build it
Step 1 — List every active project and retainer. Retainers: monthly fee, billing date, expected payment date. Projects: every remaining milestone, the delivery event that triggers it (client approval, presentation, handoff, final file submission), and the most realistic expected date.
Step 2 — Pull all open invoices. Every sent invoice. Status. Due date. Days overdue if applicable.
Step 3 — Map the next 90 days. Month 1, Month 2, Month 3. Confirmed inflows: retainer payments, invoices at their due dates. Conditional inflows: project milestones tied to client sign-off or revision round completion.
Step 4 — Lay your fixed costs against it. Payroll. Designer and contractor fees. Software — Figma, Creative Cloud, project tools. Anything that clears regardless of whether a client approves the brand files.
"The design agency cash flow problem is rarely a pricing problem. It's a timing problem. You finished the brand system. The client has the files. The invoice is sent. Their finance team processes on the last Friday of the month. Meanwhile, payroll is on the 25th."
One place to track it
The Finance + Invoices module in Agency OS tracks every invoice by status — Draft, Sent, Due, Overdue, Paid — linked to the client and project record. Receivables and outstanding invoices are visible in one view. MRR is calculated automatically from active retainer clients.
When invoice status reflects reality, the forecast becomes readable.
Why this works for design agencies specifically
Design billing is milestone-heavy. Revision rounds create natural approval gates — and approval gates create natural payment delays. When those gates are tracked against invoice status in one place, you can see which milestones are genuinely close to triggering payment and which are stuck waiting on a client's internal process.
That's the difference between a cash flow projection and a cash flow guess.
List every active project. Every open invoice. Every expected payment in the next 90 days. Map it once. Imperfect is fine. The forecast just needs to exist.
