Skip to content
Back to blog

Construction Cash Flow Forecast Excel: S-Curve Draw Schedule That Lenders Approve

11 min read·May 12, 2026
Editorial illustration of a construction project S-curve cumulative spend chart on a clean spreadsheet grid

The day a small general contractor learns the difference between cash flow and profit is usually the day a $2.4 million project runs out of money in week 11. The job is profitable. The schedule is on track. Subs are billing on time. And the GC cannot make payroll Friday because the lender funded the last draw three weeks ago and the next one is still 18 days out. The accountant says the project shows a $312,000 gross profit. The bank account shows negative $44,000.

A construction cash flow forecast in Excel is the document that prevents this exact scenario. Done right, it tells you week by week how much money goes out, how much comes in from draws, and where the gap is. Done wrong, it is a budget renamed and printed on Tuesday because the loan officer asked for one. The lender will not catch the difference until your project is the one bleeding.

This article walks through how to build a construction cash flow forecast Excel model that an actual lender will accept. We will use a $2.4 million ground-up commercial project as the example: a 14,800 SF medical office on a 9-month schedule, 75% loan to cost, 5 monthly draws plus a final retainage release. The same structure works for a $400,000 spec home or a $40 million multifamily build.

Why Lenders Demand an S-Curve and Why Builders Hand Them a Line

Construction lenders underwrite projects in two stages. They underwrite the deal: appraised value, loan to cost, sponsor net worth, market rents. Then they underwrite the draw mechanics: how the money flows out and back. The first stage gets attention. The second is where deals fall apart on a Wednesday at noon.

The lender wants an S-curve cash flow forecast because that is how construction spending actually behaves. Month 1 is slow: site work, foundation, permits cleared. Months 3 through 6 are heavy: framing, mechanicals, exterior envelope. Months 8 and 9 taper: finishes, punch, certificate of occupancy. Plot cumulative spend against time and the curve looks like an elongated S. A linear forecast (10% per month for 10 months) hides the spike and gives the lender bad information about peak exposure.

Consider what happens when a GC submits a linear forecast on the $2.4M project. The lender approves the loan and disburses on the projection. Real spend hits 22% in month 4 because mechanical rough-ins were paid faster than expected. The GC needs a $528,000 draw. The lender's last draw was $240,000 (the linear amount). Now the GC has $288,000 of subs invoices that the project budget supports but the draw cycle does not. The subs go unpaid for three weeks. The framer pulls his crew. The schedule slips 11 working days. The carry cost on that slip alone is $14,000 in additional loan interest.

The math on a missed S-curve looks like this:

ScenarioCost of Friction
Sub crew pulled, schedule slips 11 days$14,000 carry interest
Sub charges 2% late payment fee$5,760
Backfilling the framer with a premium crew$18,000
GC bridge loan for 3 weeks at 14%$3,400
Total cost of a bad forecast$41,160

That is the cost of a spreadsheet built in 20 minutes. A real construction cash flow forecast Excel model takes two hours the first time and prevents this every time after.

The Six Buckets of a Construction Cash Flow Forecast

A cash flow forecast for a construction project is not a budget. A budget is a static document that lists categories and dollar amounts. A cash flow forecast is a time-phased schedule that maps every dollar to a week or month. Six logical blocks live on the sheet:

  1. Schedule of values: every cost code with budget amount and the months it spans
  2. Spend curve: monthly outflow per cost code, summed to total monthly spend
  3. Draw schedule: monthly draw amount, retainage withheld, draw timing offset
  4. Cumulative position: running balance of spend versus draws received
  5. Carry costs: interest on cumulative drawn balance, property tax, insurance
  6. Output dashboard: peak exposure, total carry, draw-versus-spend gap by month

Build these as horizontal blocks across columns C through O (months 1 through 12, with two months of pre-construction and one of close-out). Cost codes live in column B. The format is unforgiving: every formula must reference the assumptions block at the top of the sheet, never a hard-coded number.

The Schedule of Values Block

The schedule of values is the AIA-style document the lender will compare your draws against. It lists each cost code, the contract value, and the percent complete that triggers the draw. Build it in rows 8 to 45 with one cost code per row:

Cost CodeDescriptionBudgetMonths Active
02-100Site work and grading$148,0001 to 2
03-300Foundation and slab$172,0002 to 3
05-100Structural steel$215,0003 to 4
06-100Framing and rough carpentry$184,0003 to 5
07-500Roofing and waterproofing$96,0004 to 5
08-100Doors, frames, hardware$68,0005 to 7
08-400Storefront and glazing$112,0005 to 6
09-200Drywall and plaster$148,0005 to 7
09-600Flooring$84,0007 to 8
09-900Paint and coatings$42,0007 to 8
15-400Plumbing$186,0003 to 7
15-700HVAC$232,0004 to 7
16-000Electrical$248,0003 to 8
General conditionsProject management, supervision$168,0001 to 9
Overhead and profitGC margin$248,0001 to 9
Total contract$2,401,000

Note the "months active" column. This is where the S-curve starts. Site work happens early. Finishes happen late. General conditions spread across the entire project. A linear forecast ignores all of this.

Building the Spend Curve with SUMPRODUCT

The monthly spend per cost code is not a simple division. A $215,000 structural steel package spread across months 3 and 4 is not $107,500 per month. It is roughly 30% in month 3 (delivery and erection start) and 70% in month 4 (erection completion and decking). Build a weighting table to handle this:

Cost CodeM1M2M3M4M5M6M7M8M9
02-100 Site work60%40%0%0%0%0%0%0%0%
03-300 Foundation0%40%60%0%0%0%0%0%0%
05-100 Steel0%0%30%70%0%0%0%0%0%
15-700 HVAC0%0%0%15%30%30%25%0%0%
16-000 Electrical0%0%10%15%20%20%20%15%0%

The monthly spend for each cost code is then =Budget*Weight. The total monthly spend at the bottom of each column is =SUMPRODUCT(Budgets,Weights_For_That_Month).

For example, if budgets are in D8:D24 and the month 4 weights are in H8:H24, the formula for total month 4 spend is:

=SUMPRODUCT(D8:D24,H8:H24)

Run this across all 9 months and the cumulative spend curve emerges. On this $2.4M project the curve looks like:

MonthMonthly SpendCumulative% Complete
1$118,000$118,0004.9%
2$164,000$282,00011.7%
3$298,000$580,00024.2%
4$412,000$992,00041.3%
5$398,000$1,390,00057.9%
6$346,000$1,736,00072.3%
7$294,000$2,030,00084.5%
8$214,000$2,244,00093.5%
9$157,000$2,401,000100.0%

Plot the cumulative column against months and the S-curve is right there: slow start, steep middle, gentle close. The lender sees this and trusts the model. The lender who sees 11.1% per month for 9 months sends the file back with a request for revision.

The Draw Schedule and the Retainage Trap

Draws lag spend. The GC pays subs on the 30th, submits a draw request on the 1st, the lender processes for 5 business days, the funds hit the GC account on the 8th. That is a 9-day timing gap on every cycle. Layered on top is retainage: the lender holds 10% of every draw until substantial completion, which means a $412,000 month 4 spend yields a $370,800 draw.

Build the draw schedule with these formulas:

Draw_Amount = Spend_That_Month * (1 - Retainage_Pct)

For the month 4 example: =412000*(1-0.10) = $370,800

The retainage release happens at month 10 (post substantial completion): =SUM(All_Monthly_Spends)*Retainage_Pct = $240,100

Now layer in the timing offset. Spend hits month 4. Draw hits month 4 day 8 to 12. For cash flow purposes, the draw lands in the same month if your draw cycle is monthly and you bill on schedule. If you bill biweekly, half the draw lands in the current month and half in the next. Model whichever cycle your loan agreement specifies.

The Carry Cost Calculation That Bankers Verify

Loan interest on a construction loan accrues on the cumulative drawn balance, not the committed loan amount. This is where the linear-forecast builder loses thousands. The construction loan on this $2.4M project is $1.8M at 9.5%. The interest formula is:

Monthly_Interest = Cumulative_Drawn_Balance * (Rate / 12)

For month 4, cumulative drawn through month 3 is roughly $522,000. Interest in month 4 is =522000(0.095/12) = $4,132. By month 7, cumulative drawn climbs to $1.83M and monthly interest hits =1830000(0.095/12) = $14,488. Total carry interest over the 9-month build clocks in around $74,000.

The builder who used a 50% average balance shortcut to estimate carry would have projected =(1800000/2)(0.095/12)9 = $64,125. The S-curve model produces a number 15% higher. On a $2.4M project that is $10,000 of unaccounted carry. Repeat across four projects a year and the GC is leaving $40,000 on the table because nobody bothered to model the draw curve properly.

The Cash Gap Output and the Working Capital Decision

The output block at the bottom of the sheet tells the GC three numbers that decide whether the project is fundable:

OutputFormulaResult
Peak cash gap=MAX(Cumulative_Spend-Cumulative_Draws)$284,000
Month of peak gap=MATCH(MAX(Gap),Gap,0)Month 5
Total project carry=SUM(Monthly_Interest)$74,200
Working capital needed=Peak_Gap+1_Month_GC_Payroll$328,000
Owner equity required=Total_Cost-Loan_Amount$601,000
Total cash to close=Equity+Working_Capital$929,000

That last row is the conversation the GC needs to have with the owner before mobilization. The lender funds $1.8M. The owner equity covers $601K. But the project needs another $328K of working capital floating somewhere because the draw mechanics never close the gap to zero. If the owner shows up with $601K and no working capital line of credit, the project stalls in month 5.

This is the conversation that does not happen on most jobs until it is too late. The forecast forces it to happen on the day the loan term sheet gets signed.

Three Sensitivities Every Lender Asks About

The lender's underwriter will run three stress tests on your forecast. Build them as scenarios in columns Q through S:

  • Schedule slip 30 days: shift every monthly weight one column right, add a month of general conditions and carry, recalculate peak exposure
  • Cost overrun 8%: multiply every budget by 1.08, run the same spend curve, watch the peak gap widen
  • Draw cycle delayed 14 days: shift the draw schedule but not the spend schedule, watch the working capital number nearly double

If your peak cash gap under the worst of these three sits below your committed working capital line, the deal is bankable. If it does not, you negotiate a larger interest reserve, a higher loan-to-cost, or a smaller draw retainage. You negotiate from a position of knowing exactly what you need. The GC who walks into the lender's office with a linear forecast negotiates from the position of hoping nobody asks hard questions.

Build It Once, Reuse It Forever

A construction cash flow forecast Excel model that handles a 9-month commercial build also handles a 5-month spec home and an 18-month multifamily. The cost codes change. The number of months changes. The structure does not. Every project the GC bids gets fed through the same sheet. Pattern recognition kicks in. The peak gap on a $1.2M renovation should land near month 3. The peak gap on a $6M ground-up should land near month 5 or 6. If the model says otherwise, something in the inputs is wrong and the GC catches it before the bank does.

If you would rather not build this from scratch on a Tuesday afternoon, the SheetCraft Construction Budget Tracker ships with the schedule of values, S-curve spend engine, draw schedule, retainage logic, and lender-ready cash flow dashboard already wired. Drop in your cost codes, set your loan terms, and the forecast renders in 15 minutes instead of two hours. The math is the same. The work is already done. Spend the saved time on the conversation with the owner that the forecast just made possible.

Related template

Construction Budget Tracker

Track every line item, change order, and payment across your entire project. Spot a $23K billing discrepancy before it hits your bottom line — not after.

Get the Template — $49