Case Study, SMB Tier
How a specialty HVAC contractor survived their first large commercial job
A residential HVAC contractor won their biggest contract: a $2M commercial building installation. Between weekly prevailing-wage payroll and the 50-60 day labor-to-cash cycle on this commercial contract, they were facing roughly $300K of peak cash float. They thought they needed a $500K line of credit. They needed something different.
~$300K
Peak cash gap, modeled before the first payroll
$180K
Right-sized LoC (vs. $500K they were going to take)
$320K
Unused line capacity not requested ($500K ask minus $180K line)
13 wk
Rolling cash forecast updated weekly through completion
The Challenge
From residential HVAC service to a $2M commercial contract
Prevailing-wage payroll requirements
The project carried a prevailing wage requirement, meaning HVAC technicians had to be paid the applicable wage determination for their classification. On this project that put weekly payroll 30-50% above the contractor's residential rates. The uplift varies by jurisdiction, trade and classification. The labor cost was underpriced in the original bid because the owner hadn't modeled it.
50-60 day labor-to-cash cycle on this contract
This contractor's residential customers paid on the spot or within 30 days. On this contract, the first monthly draw went to the GC after about four weeks of work, and the GC paid approved draws about 30 days after billing. Effective cycle: 50-60 days from the first labor outlay to cash arriving. GC payment terms vary by contract, so read your own draw-approval and payment clauses.
5% retainage withheld
GC contract held back 5% of every payment as retainage, released at substantial completion. On a $2M contract billed in full, that's $100K ($2,000,000 x 5%) held by the GC until release, which on this contract meant retainage from early draws stayed out for 6+ months after that work was performed. It shortens every draw from the first one onward and is easy to miss until it bites.
Bookkeeper said 'ask your accountant'
Standard pattern. The bookkeeper records the past. The accountant files taxes. Neither one builds a forward cash forecast. The owner asked 'what can we afford next month?' and got a shrug.
What We Did
Modeled the cash gap. Right-sized the LoC. Built the weekly forecast.
Four steps over the first 10 days of the engagement. The owner never saw a cash crunch on the project, because we saw it before they started.
Mapped the prevailing-wage payroll cycle against the GC draw schedule
Crews get paid weekly. The GC pays approved draws on a 30-day-after-billing cycle. The billing workflow also takes time before the payment clock starts. We mapped every dollar of labor and materials against expected cash inflow week by week.
Modeled the peak cash gap
Week 1: payroll out, no money in. Week 4: first invoice goes to GC, still no money in. Week 8: first GC payment lands. Modeled peak working-capital float at roughly $300K. Retainage enters the model from draw #1 onward: each GC payment arrives 5% short, and that 5% stays out until substantial completion.
Sized the line of credit as one component of funding the modeled gap
The $180K line was one financing component, compared with the $500K request. A line alone cannot cover a roughly $300K cash gap: committed available cash plus borrowing must cover the dated peak and buffer. This public case does not publish those cash and buffer inputs, so it cannot reproduce the complete funding bridge. Interest depends on the amount drawn; any unused-line fees depend on the actual term sheet.
Set up a weekly cash forecast through job completion
13-week rolling forecast updated every Friday. Tracks actual labor cost vs. budget, material spend vs. budget, GC payment timing, retainage release projection. When the forecast drifts, the owner sees it the same week, not at year-end.
Results
What they actually got
~$300K
peak cash gap, modeled before any payroll went out
Without the model, the owner was guessing. With the model, they could see week-by-week when cash was projected to get tight, when it recovered, and what each scenario looked like if labor or materials ran over.
$180K LoC
right-sized vs. the $500K they were about to ask for
The $180K line was one financing component, compared with the $500K request. A line alone cannot cover a roughly $300K cash gap: committed available cash plus borrowing must cover the dated peak and buffer. This public case does not publish those cash and buffer inputs, so it cannot reproduce the complete funding bridge. Interest depends on the amount drawn; any unused-line fees depend on the actual term sheet.
$320K
unused line capacity not taken on
Interest accrues only on drawn balances, so the extra $320K of capacity ($500K minus $180K) costs interest only if it is drawn. Hypothetically, drawing all of it at 8% would cost about $2,133/month ($320,000 x 8% / 12). The avoided cost of not opening it is the unused-line or commitment fee. At an illustrative 0.25% annual fee, that is about $67/month ($320,000 x 0.25% / 12). Check your own term sheet for the actual fee rate. We sized the line to the modeled borrowing need.
Weekly forecast
13-week rolling cash view, updated every Friday
Tracks labor cost vs. budget, materials, GC payment timing, retainage release. The single change that flips an owner from 'flying blind' to 'I know what's coming.' That forecast was the core deliverable in this engagement.
Do we really need a $500K line to be safe, or do we need to know how much cash this job will tie up, week by week, and when it comes back?
The question at the start
Paraphrased owner question, not a verbatim client quote
What the Data Showed
The pattern behind the cash gap
Weekly payroll vs. a 50-60 day labor-to-cash cycle needs funding
This isn't a sign of a poorly run job. Subcontractors on weekly-payroll public work can face this gap, and its size depends on draw terms, retainage and how early you can bill. Any commercial subcontractor on prevailing-wage work should size it before bidding. The question isn't whether you'll need to float cash, it's how much, for how long, and whether you've planned for it. The model surfaces the answer before the bid goes out where possible. In this engagement, it was built after award and before the first payroll.
Size the credit request from the dated cash forecast
Owners ask for "as much as I can get" because nobody has modeled the actual gap. Bigger lines can carry more unused-line fees, may take longer to underwrite, and can hide the cash discipline that should be baked into the project plan. A right-sized LoC is the second-best forcing function for cash discipline. The first is a real forecast.
Prevailing wages need to be priced into the bid, not absorbed after
First-time commercial subs can underbid on labor when they don't model the prevailing wage scale plus weekly payroll cycle. On this project the labor uplift was 30-50% above the contractor's residential rates for the same work, and uplift varies by jurisdiction, trade and classification. The subsequent bid priced that math in from the start, using the wage determination attached to the bid.
Based on a real Level engagement. Names are withheld and exact figures are adjusted to protect client confidentiality, the same discretion we bring to your data.
Simple pricing
Three tiers, one ladder.
$500+/mo
Bookkeeping
The clean data layer: monthly books, reconciliations, and organized financials AI can work with.
$1,500-$5,000/mo
Scale
The full AI operating layer: custom agents, weekly actions, and benchmarks to grow margin per hour.
Custom
Platform / Multi-Office
Multi-branch benchmarking and scorecards for PE-backed and multi-location groups.
Grow without losing control of the numbers
Drop your info and we’ll show your real margin across jobs, crews, products, and customers, where profit leaks to rework or hidden costs, and how much cash is sitting in unbilled work or inventory.
No commitment. Real numbers, not generic advice.