Stop invoicing Net-30 on completion. Move the payment trigger to the milestone, and require the funds to be committed before you demobilize — not billed thirty days after you've left the site.
Here's the problem in plain numbers. You finish a $40,000 job. You invoice on the last day. Under Net-30, the client legally owes you nothing for thirty days, and in practice pays on day 38 after a follow-up call. During that window you've already covered materials, subs, and payroll out of your own pocket. You didn't get paid on completion — you made the client a five-week, interest-free, unsecured loan. And you did it without a credit check, without collateral, and without asking.
That's the reframe that matters: Net-30 isn't a payment term. It's a financing product you're extending, and you're the lender carrying all the risk.
Why "invoice on completion" is the weakest possible position
The moment you finish the work is the moment your leverage evaporates. Before completion, the client needs you — they have an unfinished building, an exposed system, a deadline. After completion, they have what they wanted and you have a piece of paper.
Every day past completion, collection gets harder, not easier. The job goes cold. The project manager who approved the scope moves on. Accounts payable finds a punch-list item to dispute. Your invoice sits in a queue behind vendors who structured their terms better than you did.
Net-30 codifies this weakness. It hands the client the finished product first, then asks them to pay a month later out of goodwill and process. Goodwill and process are not cash-flow strategies.
If the money isn't secured before you pack up the truck, you're not collecting a payment — you're opening a case.— Commercial GC, on switching to milestone terms
The structural fix: fund the milestone before the work, release it on completion
The answer isn't chasing invoices faster. It's changing when the money becomes real. Break the contract into defined milestones — mobilization, rough-in, substantial completion, final. Before each phase begins, the client commits the funds for that phase into escrow.
The money is verified and locked before you start the phase. You do the work knowing the cash already exists and is earmarked for you. When the milestone is signed off, the funds release — on completion, not thirty days after it. No aging invoice, no float, no unsecured loan.
This flips the risk. Instead of you financing the client, the client demonstrates they can pay before you commit labor and materials. If they can't fund the milestone, you find that out on day zero — not after you've spent $12,000 on rough-in for a client who's quietly insolvent.
What this changes in practice
You stop being a bank. Your working capital stays yours instead of being tied up in receivables for weeks at a time. You underwrite fewer clients by accident, because a client who won't fund an escrow milestone is telling you something Net-30 would have hidden until it was too late.
Disputes shrink too. When the funds are already committed and release conditions are agreed in writing up front, a late punch-list item becomes a scoped conversation about that item — not a reason to hold your entire payment hostage.
The contractors who make this switch usually report the same thing: fewer collections calls, faster access to earned revenue, and a cleaner read on which clients are actually worth taking. The terms did the filtering for them.
If you're ready to restructure how and when your payments land — with milestone funding built in from the start — it's worth looking at how the contractor plans are set up to handle exactly this.