Residential remodelers

California makes you finance the job. Then you add your own delay on top.

California design-build remodeling firms, roughly $2M to $15M in revenue, running fixed-price home improvement contracts with your own crews and a bench of subcontractors.

On a $150,000 kitchen you collect about $1,000 up front. California caps the down payment on a home improvement contract at the lesser of 10 percent or $1,000, and Business and Professions Code §7159.5 forbids cumulative billing above the value of work in place. There is no legal cushion anywhere in the contract. You finance the job and recover it in arrears, by statute.

That is the floor the law sets. What sits on top of it is your own lag: a milestone physically reached and never papered, an approved change order that never became a draw line, a cabinet deposit paid at order against a 6 to 12 week lead time with no materials-delivered milestone to recover it. Percent-complete lives in job costing, the payment schedule lives in the contract, and nothing watches the gap between them.

The same gap runs the other way through margin. Scope changes get discovered in the field by people whose job is keeping the crew moving rather than papering contracts, so dry rot and the homeowner’s small asks get absorbed. Under §7159 an oral change order is unenforceable, so you lose the revenue and the legal position together. On any single job none of it reads as a loss. Across the book it reads as fade: 32 percent estimated closing at 24, against an industry net margin near 6.3 percent.

$1,000
The most you can legally collect up front on a $150,000 kitchen. The down payment is capped at the lesser of 10 percent or $1,000, so you fund the rest.

California Business and Professions Code §7159

$50K to $200K+
Working capital tied up in one active large job. Starting three in a month can consume more cash than a full quarter of net profit.

Remodeling cash flow practice

8 points
Job fade in the worked case: 32 percent gross margin estimated, 24 percent at closeout. Unbilled change orders are among the named causes.

Remodeling job costing practice

Three places this pays for itself first.

Each one is fixed scope, ships in weeks, and either recovers money already earned or removes the thing blocking the work after it. Start wherever it hurts most. None of them requires you to sell more or change what you do.

01

Draw trigger and package assembly

What breaks

A milestone was physically complete nine days ago and no invoice has gone out, because someone has to assemble the photos, the completion statement, and the lien releases first, and that work sits behind production. An approved change order never became a draw line. A cabinet deposit went out at order against a 10-week lead time with no milestone to recover it. Every one of those days is float you are funding against a deposit the state capped at $1,000.

What gets built

Watch cost-to-date, schedule milestones, and approved change orders against the contract’s payment schedule, and raise a signal the moment a draw becomes legitimately billable. Then assemble the package so the invoice goes out the same day rather than whenever someone gets to it. Every proposed draw is hard-gated against the two California rules: the deposit at or below the lesser of 10 percent or $1,000, and cumulative billing at or behind value in place. This does not accelerate revenue and does not change a price. It removes your own lag on cash you already earned.

What already solves this

Buildertrend, JobTread, CoConstruct, and Contractor Foreman all hold a payment schedule and send the invoice, and Buildertrend Payments collects by card or bank transfer. None of them derives the billing action from cost data: the payment schedule is a static list a person ticks off. Knowify does progress billing and Sage 100 Contractor computes true work in progress, but both take percent-complete as an input a person enters, which is the step that does not happen weekly at a firm this size. QuickBooks progress invoicing bills off an estimate and has no concept of percent complete. Nothing in the residential stack says job 12 is $47,000 underbilled and milestone 3 was earned nine days ago. The invoice is solved. The trigger is not.

Opens onto: A first pass runs read-only over the last twelve months of closed and active jobs and returns specific underbilled amounts before any integration is built, which is the checkable number everything after it gets scoped against.

WHAT THE JOB KNOWSCOST-TO-DATEMILESTONESAPPROVED COSTRIGGER§7159.5 gatedPACKAGE OUTON JOB 12 TODAYearned$312Kbilled$47K gap
The gap is not a margin problem. It is money you already earned.

5 to 15 days

Clearing lag from work done to cash in the account, before any internal billing delay. Lender-inspected draws add 2 to 4 weeks on top.

Remodeling cash flow practice

02

In-flight scope change detection

What breaks

The lead carpenter finds knob-and-tube behind the plaster and keeps the crew moving, because that is the job. The homeowner asks for one more thing on a Tuesday and gets a yes, because saying yes is how the relationship stays good. Neither becomes a written change order before the work proceeds, so you spend the money and never bill it. Under §7159 an oral change order is unenforceable and is a common licensing board finding, so you lose the argument at closeout as well as the revenue.

What gets built

Read the field record you already produce, meaning daily logs, jobsite photos, the client message thread, and subcontractor texts, and flag work that looks outside the contracted scope or driven by a concealed condition while it is still happening. Then draft the priced change order from the estimate’s own cost data and put it in front of the project manager before the crew keeps going. The same signal feeds subcontractor backcharges, which run through the identical evidence and are lost for the identical reason.

What already solves this

Buildertrend, JobTread, CoConstruct, and Houzz Pro all have change-order modules with pricing, signature, and status tracking, and two of them will age an unsigned change order for you. Every one assumes a person has already decided a change order is needed and opened the form. CompanyCam stores the geotagged photo evidence and generates a daily log recap without ever comparing what it sees to a contracted scope. Procore has more machinery and is priced and shaped for commercial work. The commercialized category is change-order administration. The absent category is change-order detection. One limit: if your daily logs are empty there is nothing to read, and this dies on your data rather than on the market, which is why I ask whether logs get written the same day before quoting it.

Opens onto: Subcontractor backcharge capture, and then the estimating corrections hiding inside your change-order causes, which is where the next contract gets priced properly.

FIELD RECORDDAILY LOGSITE PHOTOSSUB TEXTSDETECTvs. scopeSIGNED TODAYABSORBEDMARGIN AT CLOSEOUTbid32%closed24%
One discovery, two paths. Only one of them gets billed.

10 to 15%

Contingency carried on a whole-house or structural job, 10 to 20 percent on pre-1940 work. That is the pot that quietly absorbs undocumented discoveries.

Remodeling estimating practice

03

Allowance calibration from closed jobs

What breaks

The tile allowance in your proposal came from the estimator’s memory, and it was set low because a lower allowance makes the total look better against a competing bid. The consequence lands twice. The homeowner faces a stack of overage change orders and feels deceived, and you absorb whatever you do not have the appetite to bill. California requires allowance amounts to be stated in the contract and overages reconciled by written change order, so a lowball allowance manufactures the exact paperwork you are worst at producing.

What gets built

Mine your own closed jobs for what homeowners selected in each allowance category, at each price tier and job type, and turn that into the allowance figures the next proposal carries. Flag any allowance in a live estimate sitting below what comparable clients chose, before the contract is signed. The deliverable is small and concrete: a calibrated allowance table plus a pre-signature check. The effect is a different number printed in the contract.

What already solves this

Buildertrend and CoConstruct carry the deepest selections module in the segment: categories, allowances, priced choices, homeowner approval, and automatic change-order generation on overage. JobTread, Contractor Foreman, and Houzz Pro all track allowances against selections. Every one of them administers the allowance after it has been set. None tells the estimator what it should be, because that needs your own historical selection actuals joined back to job type and price tier, and no vendor has a reason to build a feature whose only input is one customer’s private cost history. Clear Estimates ships a national cost database by postal code and Buildxact imports supplier price files, but a supplier price file tells you what tile costs, and nothing about which tile your clients pick. The free substitute here is the estimator’s memory, which is what produces the current numbers.

Opens onto: The same closed-job extract recalibrates the whole price book, which is the margin conversation on every job you have not sold yet.

WHAT 20 CLIENTS PICKEDset at proposalwhat they pickedPRE-SIGNATURE CHECK
Your own closed jobs already know where the line belongs.

3 to 5%

Total-job variance at firms with job-costing discipline. Firms without it routinely run 10 to 20 percent over.

Remodeling estimating practice

I know the shape of this. I don't know your version of it.

These are the questions that decide whether any of the above is worth building at your firm, and they get asked before anything is scoped. Several of them can kill the project, which is the point.

  1. Walk me through the last draw you sent. How many days passed between the milestone being physically complete and the invoice going out?
  2. How many of your active jobs right now carry an approved change order that never made it onto the payment schedule?
  3. What do you pay a cabinet deposit against, and which specific draw recovers it?
  4. Are daily logs written the same day, and what share of days have one?
  5. Think about the last job that closed. How much work did you do that you never billed? Put a number on it.
  6. On your last five kitchens, what did the client end up spending on countertops against what you allowed?

A first win buys the right to the bigger one.

Start here

Allowance calibration or the draw trigger, whichever hurts more. Both run off one historical pull, need no behavior change from the crew and no new tool for the homeowner, and return a number you can check against your own experience inside weeks.

Then the field record

In-flight scope change detection, which needs a live feed from wherever field information lives. Its quality is bounded by your daily logs, so it runs second and only if those logs are real.

Then the numbers underneath

Cost code reconciliation across the project management platform and QuickBooks, which is what makes earned value trustworthy, and then the full estimating catalog rebuilt from actuals. Both are a second engagement, sold to fix something the first one uncovered.

Every figure on this page comes from industry research. None of it comes from my own engagements. I have not put a client's results here, because I am not going to dress up someone else's benchmark as my track record. When there is a delivered number worth showing, it will appear here with the client's name on it or not at all.