Construction Cash Flow Problems: Why a $1.2M Year Ended With $12,000 in the Bank
A $1.2M year ended with $12,000 in the bank. Here is where the cash goes when you grow, and how to see it coming.
Construction cash flow problems do not usually show up in a slow year. They show up in your best year, and that is exactly why they blindside so many contractors. Picture this: $1.2 million in revenue, the busiest year the company has ever run. The owner bought a new truck and hired 2 guys. Then January hit: $47,000 owed to suppliers and subs, a truck payment due, payroll for the new hires, and $12,000 in the bank to cover all of it.
The best year of his career became the worst cash position in his company's history. If you run a construction or trades business and that story makes your stomach drop, this post walks through where the cash actually went, the 3 drivers behind it, and what you can do this week.
The Best Year on Paper, the Worst January in the Bank
Here is the part that gets every growing contractor. His profit and loss statement for the year showed $1.2 million in revenue and $115,000 in net income. On paper it was the best year he had ever run. He paid himself more than he ever had.
Then January arrived: $47,000 owed from December's work, the truck payment, payroll for the 2 hires brought on in November, and $12,000 in the bank.
The P&L told him he made money. The bank account told him he was 30 days from missing payroll. Both reports were correct. They were measuring different things.
Cash Flow vs Profit in Construction: 2 True Reports, 2 Different Stories
Revenue is not cash. Net income is not cash. And the gap between them is biggest in the year you grow the most.
Your P&L shows revenue minus expenses on an accrual basis: what you earned. Your bank account shows what actually arrived and left. In construction those 2 numbers drift apart constantly, because costs go out weeks or months before the customer's payment clears.
So where did the $115,000 of net income go? It did not disappear. It went into the next job's materials. It went into the truck's down payment. It went into 6 weeks of payroll for 2 hires before their first dollar of revenue came back. And it went into 90-day-old invoices for work that was already finished and billed.
The 3 Drivers of the Growth Cash Gap
Every contractor who has gone broke in a great year hit at least 2 of these at once.
Driver 1: Progress billing lag
On a 90-day job, you pay your materials supplier on day 10. You pay your crew every Friday. But you do not bill the customer until you hit a milestone: 30% complete, 60% complete, final. And the customer does not pay that invoice for another 30 to 60 days. The cost goes out before the cash comes in. Every job, every time.
Driver 2: Retention
On commercial jobs and plenty of residential remodels, the customer holds back 10% until the punch list is signed off. That 10% is often your profit, and it sits in someone else's bank account for 30 to 90 days after the job is done.
Driver 3: Fixed costs that don't unwind
A new truck is a 60 to 72-month commitment. A new hire is at least a 90-day commitment by the time you have trained them. You can stop bidding new jobs the day you realize cash is tight, but the truck payment and the payroll keep coming.
The multiplier: accounts receivable aging
Underneath all 3 sits AR aging. The bigger you grow, the bigger the dollar amount sitting in unpaid invoices at any moment. A 60-day average collection cycle on $300,000 in revenue is $50,000 of your money in someone else's bank. The same 60-day cycle on $1.2 million is $200,000. Same problem, 4 times the cash impact.
The 3 Cash Runway Numbers Every Contractor Should Track
These are the 3 numbers worth knowing off the top of your head every week; the SBA's guide to managing your finances covers the underlying reports.
- Days cash on hand. Take your cash balance and divide it by your monthly burn. That tells you how long you can run if revenue stopped tomorrow.
- Collection rate (DSO). The average number of days from sending an invoice to getting paid. If it creeps up, your cash gap is widening.
- Backlog months. Total signed work not yet built, divided by your monthly capacity. If you just hired 2 guys and backlog is dropping, you added cost faster than revenue.
Know those 3 numbers and you will see a cash crunch coming 3 months out, not after it lands.
How to Fix Construction Cash Flow Problems This Week
A quick reality check first: watching cash is the owner's responsibility, not the bookkeeper's. The bookkeeper produces the reports; you are the one who reads them and makes the call. Here are 3 moves that cost nothing.
Step 1: Work your AR aging report. Pull it tomorrow morning. Look at anything over 60 days, pick up the phone, and call those customers. Most overdue invoices are just stuck and need a nudge. This frees up cash you already earned.
Step 2: Calculate your runway. Add up your fixed monthly costs: rent or shop overhead, truck payments, insurance, and payroll for everyone who gets paid whether jobs are running or not. That total is your monthly burn. Divide your bank balance by it. If your runway is under 2 months, slow down on growth until it is back over 3.
Step 3: Set up a line of credit before you need it. Banks lend to contractors who are stable, not contractors who are scrambling. Open the line while cash is fine, and use it as a bridge only, never as a way to live. The SBA's loan programs are a good place to start.
The lever most contractors miss: how you bill the job. Progress billing lag works against you, but billing structure is the single biggest thing you control about your cash timing. A deposit is cash in your account before you have spent a dollar, and a slow-paying customer can never touch it. Progress payments pull the rest of your money forward through the job instead of leaving it all in the final invoice.
A warning on deposits: a deposit is not operating cash. Say a customer hands you a $15,000 deposit on a kitchen remodel 3 weeks before the job starts. That money is pre-payment for materials you have not bought and labor you have not paid. Spend it on this week's payroll and the money is gone the day the job starts. Earn it before you spend it.
The contractor in this story had a P&L and a bank statement, and he had to do the math in his head. That visibility gap is the problem Best Decision Project Tools was built for. Its CFO Dashboard puts Days Cash on Hand, Collection Rate, and Backlog Months on color-coded cards and gauges: green is fine, yellow is slowing down, red is act now. An Unearned Deposits card shows how much of your bank balance is deposit money you have not earned yet, and it turns red when that number exceeds your cash on hand. A Cash Forecast page projects your runway 13 weeks out, week by week, and pulls receivables, payables, and recurring invoices live when QuickBooks Online is connected. The decision is still yours, but you cannot make good decisions on numbers you cannot see.
Worked Example: Where the $115,000 Went
Run the year back with the actual numbers from the episode:
| What the reports said | Amount |
|---|---|
| Revenue for the year | $1,200,000 |
| Net income on the P&L | $115,000 |
| Owed to suppliers and subs in January | $47,000 |
| Cash in the bank in January | $12,000 |
The $115,000 of profit was real. It was just already spoken for: tied up in the next job's materials, the truck down payment, 6 weeks of payroll for 2 new hires before their first revenue, and 90-day-old invoices for finished work. At a 60-day collection cycle, $1.2 million in revenue means roughly $200,000 sitting in unpaid invoices at any given moment. That alone explains most of the gap between the P&L and the bank account.
If you want to go deeper on the mechanics, start with our Cash Flow 101 guide, and make sure each job is priced right in the first place with the Job Cost Calculator.
FAQ: Construction Cash Flow Questions Contractors Ask
Why is my construction business profitable but I have no cash?
Profit is recorded when you earn it; cash arrives when the customer pays. On a typical job you pay for materials and labor weeks or months before the final invoice clears, so a profitable year can still leave the bank account thin. The faster you grow, the wider that gap gets, because every new job ties up more cash before it pays you back.
What is the difference between cash flow and profit in construction?
Profit is revenue minus expenses on your profit and loss statement, measured when the work is earned. Cash flow is what actually moves through your bank account, measured when money arrives or leaves. Both reports can be correct at the same time and still tell opposite stories, because they measure different things.
How much cash should a contractor keep in the bank?
A practical floor is 2 months of fixed costs, and 3 or more is safer. Add up rent, truck payments, insurance, and payroll for everyone who gets paid whether jobs run or not; that total is your monthly burn. Divide your bank balance by that number, and if the answer is under 2 months, slow growth until it is back over 3.
Why do construction companies run out of cash when they grow?
Growth ties up cash in 3 places at once: progress billing lag (costs go out before milestone payments come in), retention (often 10% held for 30 to 90 days after the job is done), and fixed commitments like trucks and new hires that keep costing money even when work slows. A bigger revenue number also means a bigger pile of unpaid invoices at any moment. That is why the squeeze usually hits hardest in the best year.
How can a contractor improve cash flow fast?
Start with money you have already earned: pull your accounts receivable aging report and call every customer past 60 days. Then change how you bill: take a deposit before work starts and add progress payments so cash moves through the job instead of waiting in the final invoice. Set up a line of credit while your numbers are healthy, and use it as a bridge only.
Run Your Own Numbers Before the Next Job Starts
You do not need to guess. The free Cash Flow Stress Test takes about 2 minutes: plug in your monthly revenue, overhead, crew size, and how long it takes you to get paid, then set your deposit and progress draws. The sliders let you simulate a 30% revenue drop or customers paying 60 days late, and you see your months of runway, your danger zone, and your break-even point.
Want the full story with the dashboard walkthrough? Watch the episode on YouTube.
And if you would rather have a professional watching these numbers with you, talk to a bookkeeper who actually understands construction. Find us at BestDecisionBookkeeping.com and BestDecisionBusiness.com.
About Best Decision Bookkeeping
Best Decision Bookkeeping provides bookkeeping and fractional CFO services for contractors and trades, and produces Behind the Books, the YouTube channel for owners who want their books to actually help them run a better business. Learn more at BestDecisionBookkeeping.com and BestDecisionBusiness.com.
Joe Mackovic, Founder
Joe founded Best Decision Bookkeeping to help contractors and service businesses turn financial data into growth. Twenty-plus years of business ownership, a podcast, and a strong opinion that your books should work as hard as you do.
Read Joe's story →Related resources.
Cash Flow Stress Test
Simulate a slow month or a late-paying customer and see your real months of runway.
Run the stress test →Cash Flow 101 Template
A plain-English starter for tracking the cash moving in and out of your business.
Download →Job Cost Calculator
Check that each job is priced right before it ever puts pressure on your cash.
Use the calculator →See your cash crunch coming 3 months out, not after it lands.
Run your numbers through the free Cash Flow Stress Test in about 2 minutes, then book a free call if you want a second set of eyes on the runway.