🧰 Before You Begin
Before you build a project-based cash flow statement, confirm you have the right inputs. Start with signed contracts or scopes of work showing total value, milestone structure, retention amounts, and payment terms. You’ll need historical billing patterns and collections data so your cash forecasting reflects reality, not wishful thinking. Make sure your chart of accounts is clean enough that you can tag revenue, costs, and retentions to individual projects or work orders.
You should also know whether you’ll be reporting cash weekly or monthly and how that ties into your existing 13-week cash flow model. Decide upfront how you’ll treat variations, change orders, and provisional sums so they don’t derail your schedule later. Finally, confirm who owns the model: project finance, commercial, or the CFO. Clarity on ownership, frequency of updates, and sign-off rules will stop arguments about profit vs cash flow once the model is live.
🧱 Step-by-Step: Building a Project-Based Cash Flow Model
Step 1: Capture Contracts, Milestones, and Retentions
Start by logging every active project into a single source of truth: project name, client, contract value, start/end dates, and currency. For each, list the milestones that drive billing – mobilisation, progress claims, practical completion, and final handover. Attach the retention rules (for example, 5% held until practical completion, 5% at defects expiry). At this point, you’re not worrying about dates in a cash flow statement yet – just the structure.
Next, map each project to your chart of accounts so revenue, direct costs, and retention balances reconcile to your ledger. This is where strong cash flow foundations pay off; if your GL is messy, you’ll struggle to trust project cash numbers later. Finally, flag any projects with unusual terms (large advance deposits, heavy retentions, or milestone stacking) so you can treat them as edge cases. This gives you a clean base to convert contracts into cash forecasting logic.
Step 2: Turn Milestones Into Dated Cash Events
Now convert those milestones into timed cash events. For each milestone, add expected claim dates, approval lags, and customer payment terms. For services and construction, the lag between work performed and cash received is often where cash flow vs profit diverges the most. Build in realistic assumptions for delays: disputed claims, variations, or client-side approvals.
Use simple rules at first (for example, 30 days from invoice to cash) and refine with history once you’ve proven the model. If you already use a milestone-style forecast for project performance, align it with your project cash-flow templates from the construction use case library. This ensures your cash schedule speaks the same language as project managers in the field. The outcome of this step is a calendar of expected inflows (claims and releases) and outflows (subcontractors, suppliers, labour) for each project, ready to drop into a cash flow statement view.
Step 3: Layer in Payables, Subcontractors, and WIP Timing
Next, model when cash actually leaves the business. Tie each project’s direct costs to supplier and subcontractor terms – for example, 14-day terms for materials, end-of-month plus 30 days for subcontractors. This is where the timing of invoices and bills really matters. If your system already tracks due dates, use them as the driver for project-level cash outflows.
Don’t forget WIP and cost-to-complete: if you recognise cost before you pay it, your cash vs profit gap widens until invoices fall due. Use simple drivers (for example, 60% of labour paid in the current month, 40% in the next) if you don’t have detailed WIP models yet, then refine over time. The goal is not perfect accounting; it’s a realistic view of project cash burn. Once this step is complete, you’ll see net cash forecasting by project: inflows from claims minus outflows to suppliers and crews.
Step 4: Build a 13-week Project Cash Board
With inflows and outflows mapped, roll them into a 13-week grid to see project cash on the same horizon as your core 13-week cash flow forecast. Aggregate weekly inflows and outflows for each job, then sum across projects to show total project-driven cash movement. This is where owners and lenders can finally see whether you are genuinely cash flow positive vs profitable in the near term.
Keep the structure simple: one tab for the project view, one for consolidated cash, and a few key metrics – net project cash per week, cumulative cash, and minimum headroom. If you’re already running a general cash forecasting model for the business, align week numbers and bank account structure so the project board snaps in cleanly. The result is a forward-looking view of how milestones, retentions and releases drive short-term cash risk across all active jobs.
Step 5: Roll Up by Segment and Refine Decisions
Finally, enrich the model so it drives decisions, not just reporting. Group projects by segment (commercial, residential, maintenance), region or project manager to see who’s creating or consuming cash. Combine the project grid with your multi-project consolidation view so you can reprioritise which jobs start, pause or accelerate based on their cash impact. If you operate across entities or SPVs, connect this view to your multi-entity cash flow modelling.
Use a weekly review cadence to update actuals, shift delayed milestones, and re-cut the next 13 weeks. Over time, you’ll spot levers – renegotiating retention percentages, tightening progress claim timetables, or sequencing work differently – that improve project-based cash flow foundations. For owners and CFOs, the outcome is simple: fewer surprises, cleaner conversations with banks, and decisions based on real project cash, not just accounting cash flow statements.
⚠️ Tips, Edge Cases & Gotchas
Watch out for projects with unusually back-weighted cash, such as high final milestone percentages or long defect periods. These often look profitable but are dangerous for cash flow foundations. Model alternative structures so you can negotiate better terms upfront. Be explicit about how variations are handled – whether they’re invoiced immediately, bundled into future claims, or left to the end – as this has a big impact on cash forecasting.
For construction groups, align project cash with your working-capital dashboards so AR ageing, retentions, and WIP all reconcile. If you’re using spreadsheets, lock formula ranges carefully and avoid mixing project logic across tabs; this is a common source of broken cash flow methods. And for large programs with staged capex, connect project cash timing to your broader capex-to-cash models so deposits, draws, and releases stay consistent. Treat the first version as a pilot; refine with each new project cycle.
📊 Example / Quick Illustration
Imagine a $1.2m construction contract with four milestones: 20% mobilisation, 40% mid-project, 30% practical completion, 10% at defects expiry, with 10% retention held on each progress claim. On paper, the P&L shows smooth revenue, but the cash flow statement tells a different story. Mobilisation is invoiced immediately but paid 30 days later; mid-project claims are delayed another 14 days after client inspections. Meanwhile, subcontractors are paid on 14-day terms, and materials are COD.
When you put this into a 13-week cash forecasting grid, you see a six-week period where outflows exceed inflows by $300k, even though the project is “profitable.” Using the techniques from the core cash vs profit pillar and the dashboard view for reading both together, you can explain this clearly to owners and lenders, adjust staffing and procurement, and decide whether to negotiate different retention or milestone structures on the next contract.
🚀 Next Steps
You now have a practical blueprint for turning project contracts into a living, project-based cash forecasting system. The next step is to pilot this on a small set of jobs, plug it into your broader cash flow foundations pillar, and run it through a few weeks of real updates. Use the insights to negotiate better terms, tighten milestone approval processes, and plan staffing against actual project cash, not just revenue.