I want to talk about one of the most demoralizing things that happens to small contractors, because it happened to me and I've watched it happen to plenty of guys I know. You're slammed. Work is lined up. You're billing more than you ever have. And somehow you still don't have enough in the account to make payroll on Friday without sweating it.
If you've been there, you know exactly what I'm describing. And if you haven't yet, you will — unless you understand why it happens first.
It's not a revenue problem. It's a timing problem.
Here's the thing most people miss: profitability and cash flow are two completely different measurements, and they almost never move in sync.
Profitability is what you have on paper. You did $40,000 in work last month. Your costs were $28,000. So you made $12,000. That math is real. The money exists — in theory.
Cash flow is what you can actually spend right now. And if that $40,000 in invoices is sitting net 30 with three clients who all pay slow, you might have $2,400 in your account while $37,600 is technically owed to you. Meanwhile payroll is Thursday.
The gap between when the work happens and when the check clears is what kills small contractors. Not bad jobs. Not slow seasons. The gap.
The math that nobody walks you through
Let me put some real numbers to this so it's not abstract.
Say you've got three active jobs right now. Job A is a $14,000 site prep that wrapped last week — invoice sent, client has 30 days to pay. Job B is a $22,000 excavation that's 60% done — you'll invoice on completion in about two weeks. Job C is a $9,000 driveway job that's halfway through materials already purchased out of pocket.
On paper: $45,000 in work in motion. Assuming normal margins, you're looking at solid profit. Exciting month.
In your bank account: you've already paid your crew, bought materials for Job C, fueled the equipment, and covered your fixed overhead. That money is gone. The $45,000 isn't. You're sitting on receivables while real expenses have already hit.
This is the float problem. And the longer your jobs, the bigger the float required, and the more capital you need to bridge it.
Four specific things that make it worse
Slow-paying clients. The standard net 30 payment term means you're financing your clients' projects for a month. On a $20,000 job, you're essentially giving them a $20,000 30-day loan with no interest. Multiply that across three or four open invoices and you've got significant capital tied up.
No deposit on startup. If you start every job without a deposit, you're absorbing all mobilization costs — materials, equipment fuel, labor for the first week — before a single dollar comes in. On a job that starts slow, that hole gets deep fast.
Retainage on bigger projects. On commercial work, GCs routinely hold 10% retainage until project completion and sometimes well beyond. That 10% adds up. I've talked to contractors carrying $30,000–$40,000 in retainage balances across multiple jobs. It's money they earned months ago that they still don't have.
Growth itself. This one surprises people. When business picks up, costs go up first — more crew hours, more materials, more equipment time. Revenue follows, but there's a lag. The faster you grow, the more capital you need to bridge that lag. Growing broke is a real thing.
What actually fixes it
There's no single answer, but here's what moves the needle fastest.
Get a deposit before you mobilize. Twenty-five to 50 percent up front is normal and reasonable for residential and small commercial work. A client who won't pay a deposit isn't a client who's going to be easy to collect from later either. The deposit is also a filter — serious clients don't blink at it.
Shorten your payment terms. Net 30 became standard because big companies with accounting departments pushed it onto smaller vendors. You are not a big company. Net 15 is reasonable. Due on completion is reasonable for smaller jobs. Put it in the estimate, not in a follow-up conversation.
Invoice the day the job finishes. Not the day after. Not when you get around to it. The day it wraps, pull out your phone and send the invoice. Every day you wait is a day added to an already long collection cycle.
Track receivables weekly. Know exactly what's outstanding, how old each invoice is, and when each client is past due. Set a reminder to follow up at 15 days on anything unpaid. Most late payments aren't disputes — clients are just busy and need a nudge.
Build a float reserve. Not exciting advice, but the most reliable fix. Keep two to three weeks of operating expenses in a separate account and don't touch it unless you're in a genuine crunch. Build it slowly during good stretches. It's your buffer against the timing problem.
The one number to know cold
Calculate your weekly operating nut — what it actually costs to keep the business running for seven days. Payroll, fuel, insurance, truck payment, phone, the works. Know that number.
Then look at your receivables and figure out how many weeks of runway you have if no new invoices come in. If the answer is less than three weeks, you're running too tight. If it's less than one week, you've got a problem that needs attention right now — not next month.
The contractors I know who sleep well at night aren't the ones with the most work. They're the ones who understand exactly where their money is at any given moment and have built their business to keep cash moving instead of piling up in receivables.
It's not complicated. It just requires actually doing it.
Get the free Bid Protection Checklist + templates
15 things to check before you send any estimate — plus the job cost tracker and cash flow spreadsheet.
Disclosure: Some links on this site are affiliate links. I earn a commission at no cost to you if you sign up. I only recommend things I'd tell a contractor friend about.