Sign in

Blog · Territory, capacity and quota planning · Construction

Cash flow for a construction project: receipts and cash gaps

Build a construction project cash schedule from progress billings, retainage and payment exports. Work through the receipts, outflows and funding gap, with spreadsheet formulas and reconciliation checks.

The short answerCash flow for a construction project is customer cash received minus project payments in each period. Build it from expected collection dates, subcontractor payment dates, payroll, materials and retainage releases. Carry each period's closing cash into the next. The lowest balance shows the funding gap, even when total project receipts exceed total costs.

Cash flow for a construction project is cash received from the customer minus cash paid to deliver the job, organized by payment date. A project can produce a positive final cash result and still need funding while progress bills await approval or retainage remains unpaid. Build the schedule around those dates before deciding how much cash the job needs.

Start with payment events, not earned revenue

Collect the billing register, receivables aging, subcontractor commitments, accounts payable schedule and payroll calendar. Add the contract's billing milestones and retainage conditions. A job cost report tells you what the project has incurred; it does not establish when those costs leave the bank.

Keep one row for each expected receipt or payment. Use project ID, source document ID, event type, expected cash date, amount and status. Split a progress bill into its ordinary collection and retained amount. Split a subcontract invoice if its regular payment and retained balance have different dates.

Approval matters. For federal fixed-price construction, FAR 52.232-5 ties progress payments to approved work estimates and supporting information. Private contracts have their own terms. Read the applicable contract rather than assuming every invoice becomes collectible as soon as it is entered.

Use the general cash flow forecast for the company-wide schedule; this project view supplies the job's dated receipts and payments.

Put billings and retainage on separate dates

Consider an illustrative US contractor completing a warehouse fit-out. The contract bills total $1,000,000. This example assumes 10% retainage, ordinary collections in the month after billing, and collection of all retainage in June after acceptance. These are assumptions for this job, not industry-wide payment rules.

Billing month Gross progress bill (USD) Retainage withheld (USD) Ordinary receipt (USD) Expected ordinary receipt month
January 200,000 20,000 180,000 February
February 300,000 30,000 270,000 March
March 400,000 40,000 360,000 April
April 100,000 10,000 90,000 May
Total 1,000,000 100,000 900,000

Each ordinary receipt equals the gross bill minus retainage. The separate June receipt is $100,000, so ordinary collections plus retained collections equal the contract billings: $900,000 + $100,000 = $1,000,000.

Record the date a proper payment request reaches the customer and any outstanding approval. Federal construction rules distinguish progress, retained and final payments in FAR 52.232-27. The practical lesson for a schedule is to attach the expected receipt to the required approval event, then confirm the date with the person responsible.

Build the monthly schedule in a spreadsheet

On a sheet named Events, put project ID in column A, document ID in B, type in C, cash date in D and a positive amount in E. Use Receipt and Payment as the type values. Include either an actual payment or its remaining forecast amount; never keep both as separate cash events.

On the summary sheet, column A contains month-start dates, B receipts, C payments, D net cash, E opening cash and F closing cash. Put the project ID in H1. In B2, use:

=SUMIFS(Events!E:E,Events!A:A,$H$1,Events!C:C,"Receipt",Events!D:D,">="&A2,Events!D:D,"<"&EDATE(A2,1))

In C2, use:

=SUMIFS(Events!E:E,Events!A:A,$H$1,Events!C:C,"Payment",Events!D:D,">="&A2,Events!D:D,"<"&EDATE(A2,1))

Enter the cash calculations and carry the balance forward:

D2=B2-C2
F2=E2+D2
E3=F2

Copy the formulas down, with the opening balance supplied only for the first month. Here the contractor allocates $100,000 of existing cash to the job. Payments below include the job's labor, materials, subcontractors and allocated cash overhead; borrowing, financing costs and income taxes are excluded.

Month Receipts (USD) Payments (USD) Net cash (USD) Opening cash (USD) Closing cash before new funding (USD)
January 0 200,000 -200,000 100,000 -100,000
February 180,000 250,000 -70,000 -100,000 -170,000
March 270,000 220,000 50,000 -170,000 -120,000
April 360,000 100,000 260,000 -120,000 140,000
May 90,000 30,000 60,000 140,000 200,000
June 100,000 0 100,000 200,000 300,000
Total flows 1,000,000 800,000 200,000

All amounts are whole dollars; no rounding is required. Negative balances represent unfunded needs, not permission to overdraw a bank account.

Find the gap and prove the schedule

The lowest closing balance is negative $170,000. The month-end schedule therefore requires at least $170,000 beyond the opening allocation:

=MAX(0,-MIN(F2:F7))

Check daily or weekly payment order before choosing a facility amount. A payroll payment before a large receipt can make the actual gap deeper than the monthly closing balance shows. Financing costs and a management cash buffer must be added separately.

The closing identity is $100,000 + $1,000,000 - $800,000 = $300,000. Reconcile receipts to the billing and retainage registers and payments to the job's payment records. Explain every remaining unpaid balance rather than forcing it into the final month.

The project cash flow guide covers broader project comparisons. For an owner constructing an asset, construction in progress on the cash flow statement explains the separate accounting reconciliation.

Where it goes wrong

  • Billing treated as collection. Approval and collection dates can move after the invoice date.
  • Retainage counted twice. The retained amount appears in both the ordinary receipt and the release event.
  • Costs treated as payments. Accrued subcontractor costs enter cash before the payable is actually due.
  • Actuals added to forecasts. A paid invoice remains in the forecast and doubles the outflow.
  • Monthly gaps accepted without review. A positive month-end balance hides an earlier payroll shortfall.

Compare your project schedule in Covirage

Bring your progress billing, retainage and payment workbook to Covirage. Covirage maps the columns, and its tools compute receipts, outflows and cash balances and check their totals; the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.

See project cost control for the related work on project budgets and actual costs.

Questions people ask

Why can a profitable construction project run out of cash?

Labor, materials and subcontractors may need payment before the customer pays a progress bill. Retainage delays another part of the contract price. A positive final project result therefore does not prove that cash will cover obligations during construction.

Should retainage be included in a construction cash forecast?

Yes, but place it on its expected release and collection date. Keep the amount separate from ordinary progress receipts and record the approval conditions. Do the same for amounts withheld from subcontractors, using their actual contractual payment conditions.

How often should a contractor update project cash flow?

Update it when actual receipts, payment commitments or project milestones change. Use monthly periods for the overall project and a dated weekly view around tight cash periods. Keep the original assumptions so finance can explain differences between expected and actual cash.