Most cashflow shocks on construction jobs don't come from a single bad decision. They build up quietly across three or four billing cycles, then land all at once — usually the same week payroll is due, a supplier moves to COD terms, and a retention release you were counting on gets pushed to next quarter. By the time it's obvious, you're borrowing to cover a project that's technically profitable on paper.
The gap between paper profit and actual cash is where good projects go sideways. A job can be 60% complete, tracking at margin, and still starve you of working capital because money going out is front-loaded while money coming in is back-loaded and gated behind milestones you haven't closed yet.
This is a systems problem. The forecast-to-complete, billing schedule, retention timelines, reforecast cadence, and the governance rules that decide when someone escalates — they're all one machine. When one part drifts, the others compensate badly.
Why "profitable" projects run out of cash
The core issue is timing, not margin. Costs follow the physical work — mobilization, materials, labor, equipment — and a lot of that spend clusters early. Revenue follows the billing cycle, which is always behind the work, and then a slice gets held back until milestones or closeout.
The curve looks like this: heavy spend in months one through four, billing in arrears, waiting 30–60 days to get paid, and watching 5–10% of every payment disappear into retention. On a single small job you can float that. Run three or four concurrently and the floats stack. Now you've got overlapping negative-cash windows, and one delayed payment on Project A means you can't fund mobilization on Project D.
What we've seen across a lot of contractors is that the finance side and the field side keep two different versions of reality. The PM knows the slab is poured and framing starts Monday. Finance knows the invoice hasn't gone out and last month's pay-app is still in dispute. Neither one is looking at the combined picture — cost committed vs. cost billed vs. cash actually received — and that combined picture is the only one that tells you whether you're about to get squeezed.
A forecast-to-complete is supposed to be that combined picture. Done right, it's not a spreadsheet you update at month-end for the accountant. It's a rolling estimate of what's left to spend, what's left to bill, and when the cash actually lands — updated often enough to catch drift before it becomes a crisis.
The forecast-to-complete artifact that actually works
Most FTC templates fail because they only track cost. Cost-to-complete tells you if you'll finish on budget. It tells you nothing about whether you'll survive next Thursday.
Keep your construction projects on schedule and budget.
Projbrick helps you plan, track, and manage every project phase with precision and ease.
- Real-time project tracking
- Resource & budget management
- Team collaboration tools
No credit card required
A usable forecast-to-complete tracks four columns per cost code, not one:
| Column | What it answers | Who owns it |
|---|---|---|
| Committed to date | What we've already spent or locked in via PO/subcontract | Finance |
| Cost to complete | What's left to spend to finish this scope | PM |
| Billed to date | What we've actually invoiced the owner | Finance |
| Forecast cash-in date | When we realistically expect the money, net of retention | Finance + PM |
The magic isn't in any single column — it's that the FTC now shows you the gap between committed spend and received cash at any point in the schedule. That gap is your working-capital exposure. When you can see it per project and rolled up across the portfolio, you stop getting surprised.
A practical rule worth enforcing: every cost code with a cost-to-complete that swings more than around 10% between reforecasts gets flagged and gets a one-line reason. No essay required. Just "labor productivity down, added crew" or "steel came in over allowance." Those one-liners become your early-warning log and feed a smarter reforecast next cycle.
Flag cost codes that swing >10% between reforecasts and require a one-line reason to build a concise early-warning log.
If your cost, risk, and change workflows aren't already feeding the same numbers, the FTC will quietly diverge from reality. It's worth reading how those pieces connect in our breakdown of integrated project controls, because an FTC is only as honest as the change-order and risk data flowing into it.
Cashflow smoothing: managing the curve, not just watching it
Once you can see the exposure, the next job is flattening the negative-cash windows so they don't overlap into a wall. This is the part most PMs never touch because they treat cashflow as finance's problem. It isn't. Almost every lever that smooths the curve is an operational one.
A few that consistently move the needle:
-
Front-load billable milestones where the contract allows. If mobilization, submittals, and material procurement can be billed as line items, get them into the schedule of values. Early, defensible billing events beat one giant "substantial completion" payout at the end.
-
Match subcontractor payment terms to owner payment terms. If the owner pays you net-45 and you're paying subs net-30, you're financing the gap out of your own pocket on every cycle. Pay-when-paid clauses aren't always popular, but the terms mismatch is a silent cash drain.
-
Time material-heavy purchases to just after a billing event, not just before. Buying $180k of materials the week before you invoice means you carry that spend for the full payment cycle. Sequencing it right after cash-in shortens the float considerably.
-
Stage retention so it's not all released at the very end. Tying partial releases to milestones is one of the biggest single improvements you can make to working capital.
A typical example: a mid-size contractor running four fit-out jobs was hitting a cash trough every eight weeks, right before progress payments cleared. Nothing was wrong with any individual project. But because all four had similar start dates, their spend curves peaked together. Just staggering two of the mobilization schedules by three weeks — and pulling procurement to land after billing instead of before — turned a recurring near-overdraft into a manageable dip. Same margin, same scope, completely different stress level.
Retention and release: stop treating it as an afterthought
Retention is where a lot of "finished" money sits trapped. Typically 5–10% withheld on every payment, and on a job with real volume that's a serious chunk of profit locked up for months after the work is done.
The mistake is treating retention as a single event at closeout. The better approach ties partial releases to defined milestones so the money comes back in stages as your risk to the owner decreases.
-
Foundation / structure complete — release a portion of retention held against that scope, tied to sign-off, not a calendar date.
-
Weathertight / envelope complete — next tranche released against inspection.
-
MEP rough-in accepted — release tied to the relevant trade sign-offs.
-
Substantial completion — bulk of remaining retention, minus a defect holdback.
-
Defects liability period ends — final holdback released after the punch list is verified closed.
The single biggest reason retention releases stall isn't disagreement over the work — it's missing documentation. The owner's finance team won't cut the check until every gate has its paperwork, and if your closeout packets aren't ready, the money sits. Retention timing lives or dies on closeout discipline. If that side of your operation is loose, tightening it is one of the fastest ways to unlock trapped cash — the closeout system that speeds final accounts walks through the packets and SLAs that keep releases from stalling.
Reforecast cadence: how often, and what triggers an off-cycle update
A forecast you touch once a month is usually about three weeks behind reality on an active job. But reforecasting weekly on everything burns your team out and produces noise. The trick is matching cadence to project phase and building in event triggers that force an off-cycle update.
A cadence that holds up in practice:
-
Weekly light-touch during high-burn phases (mobilization, structure, anything with concentrated spend) — just the cost-to-complete and cash-in dates on the active cost codes.
-
Full monthly reforecast across all four columns, aligned to your billing cycle so the numbers feed the pay-app.
-
Event-triggered off-cycle reforecast whenever one of these hits: - a change order over a set threshold gets approved or disputed - a milestone slips by more than a week, which moves a billing event and a retention release - a payment comes in materially late - a subcontractor default or a major material price move
That third bucket is what separates teams that see the shock coming from teams that get blindsided. A slipped milestone doesn't just move the schedule — it delays the invoice tied to that milestone and pushes the retention release gated behind it. One slip, three cash effects. If your reforecast only runs monthly, you find that out weeks after you could have done something about it.
Governance: the decision rules that decide who acts and when
None of this matters if the numbers surface and nobody's clear on who does what. Governance is the layer people skip, and it's the layer that turns a good forecast into an actual control.
Good governance here is boring and specific. A small set of thresholds tied to defined actions and defined owners:
-
Green projected cash gap stays inside the agreed buffer. PM manages, reports monthly.
-
Amber projected gap exceeds buffer in any upcoming window, or cost-to-complete drifts past a set percentage. PM and finance lead do a joint reforecast within the week, agree on a smoothing action, document it.
-
Red projected gap threatens ability to fund payroll or committed POs. Escalates to whoever controls the credit line, same day. No waiting for the monthly meeting.
Writing these down means decisions stop being personality-driven. Without rules, escalation depends on whether the PM feels comfortable raising a flag — and plenty of avoidable crunches happen because someone hoped the next payment would come in and it didn't.
Pay-app accuracy is quietly load-bearing for this whole system. If your applications for payment get rejected or trimmed, every downstream number — cash-in dates, retention timing, the gap calculation — is wrong. Clean, well-evidenced pay-apps get paid faster and closer to full, which is why a tight pay-app verification checklist is really a cashflow control dressed up as an admin task.
What breaks when you scale from one project to a portfolio
Everything above is manageable on one job with a spreadsheet and a disciplined PM. The system breaks in predictable ways when you're running several at once.
The floats stack. Each project has its own negative-cash window. On a single project you can ride it out. Across five, the windows overlap and the combined trough goes deeper than any one project's numbers suggest. You need a portfolio-level rollup, not five separate spreadsheets living on five different laptops.
The reforecasts fall out of sync. PM A updates weekly, PM B updates when he remembers, finance consolidates from whatever version they happened to receive. The rolled-up number is built from data of wildly different freshness, so it's confidently wrong.
Event triggers get missed. A milestone slips on Project C. The PM knows. But nobody connects it to the billing event and retention release it delays, so the portfolio cash forecast doesn't move until month-end — by which point the trough has already arrived.
This is where a shared operational platform earns its place. Not as a magic fix, but as the thing that keeps every project's four columns current in one view, with the same definitions. When forecast-to-complete data lives in a system rather than scattered spreadsheets, the routine work gets easier — reforecast reminders fire on the right cadence, milestone slips can flag the billing and retention events they affect, and the portfolio rollup reflects real freshness instead of whatever got emailed in last. AI-assisted checks can catch drift — a cost code swinging past its threshold, a cash-in date that no longer lines up with the schedule — and surface it before someone has to notice manually. The judgment stays with your PMs and finance lead. The system just makes sure the numbers stop lying to you.
When this level of control is overkill
Not every operation needs the full machine. If you're running one project at a time under a few hundred thousand dollars, with fast-paying clients and short durations, a disciplined monthly spreadsheet reforecast is genuinely fine. Building out staged retention timelines and event-triggered reforecast cadence for a six-week job is effort you won't recover.
The controls start paying for themselves when two things are true at once: multiple concurrent projects, and payment cycles long enough that floats overlap. That's usually where a PM who used to know the cash position in their head suddenly can't, and the first surprise trough shows up. If you're there or heading there, that's the signal to formalize the system before a shock forces you to.
Where it goes wrong is bolting heavy governance thresholds and weekly cadences onto a team that isn't even keeping cost-to-complete current yet. Fix the data discipline first. A precise reforecast cadence on unreliable inputs just produces faster wrong answers.
Real scenario: a specialty contractor that stopped getting squeezed
A specialty MEP contractor running three-to-five concurrent commercial fit-outs kept hitting the same wall — roughly every couple of months, cash got tight enough that they'd draw on their line of credit to cover payroll and supplier terms, even though every project was tracking at or above bid margin.
The problem wasn't margin. It was that all three cost columns lived in different places. PMs tracked cost-to-complete in job spreadsheets, finance tracked billing in the accounting system, and nobody was forecasting cash-in dates net of retention at all. Retention — around 8% across their jobs — was scheduled to release at closeout across the board, so somewhere between $90k and $110k of earned profit sat locked up at any given time.
They rebuilt the FTC around the four-column structure, moved to a weekly light-touch reforecast during high-burn phases, staged retention releases against three milestones instead of one closeout event, and set simple amber/red escalation rules. Nothing exotic. Within about two billing cycles the recurring trough flattened — they still had dips, but the dips stopped crossing the line where they needed the credit facility. Freeing up staged retention alone put a meaningful chunk of working capital back in play, and joint PM-finance reforecasts meant slips got caught while there was still time to reshuffle procurement or billing around them.
Same jobs, same margins. They just started seeing the squeeze early enough to steer around it.
Pulling it together
A construction cashflow forecast-to-complete isn't a finance document you produce for someone else. It's the operational instrument that connects your schedule, your billing, your retention, and your working capital into one picture your team can actually act on.
Here's a simple workflow that shows how the four-column FTC updates, when reforecasts trigger, and who acts.
The four-column FTC gives you visibility. Cashflow smoothing gives you levers. Staged retention unlocks trapped profit. A matched reforecast cadence with event triggers keeps the picture honest. Clear governance rules make sure someone actually acts when the numbers move.
Miss any one of those and the others quietly compensate in the worst way — usually by hiding the problem until it's on your doorstep. Build them as one system, keep the data current in one place, and the shocks stop being shocks. They become dips you saw coming three weeks out and steered around while you still had options.
The four-column FTC gives you visibility. Cashflow smoothing gives you levers. Staged retention unlocks trapped profit. A matched reforecast cadence with event triggers keeps the picture honest. Clear governance rules make sure someone actually acts when the numbers move.
Miss any one of those and the others quietly compensate in the worst way — usually by hiding the problem until it's on your doorstep. Build them as one system, keep the data current in one place, and the shocks stop being shocks. They become dips you saw coming three weeks out and steered around while you still had options.
Ready to build smarter and faster?
Join 2,000+ construction teams using Projbrick to improve project visibility, reduce delays, and increase profitability.