Every year, somewhere in this country, a contractor has their best revenue year ever but can’t make payroll.

The contractor has more jobs than they've ever run and/or bigger contracts. Their crew is busy, leadership is proud, and the income statement looks like a success story, but the cash runs out.

It's not usually bad luck. Most of the time it's a predictable consequence of how construction accounting works and it happens to contractors of every size, in every trade, every single year.

Here's a few reasons why:

 1. Revenue isn’t cash

I can’t stress this enough! Under percentage-of-completion accounting, you recognize revenue as you earn it, NOT when you get paid. That's the right way to account for long-term contracts (using a WIP schedule), but it creates a dangerous gap between what your income statement says and what's actually in your bank account.

A contractor can show $8 million in earned revenue for the year and have $500,000 in the bank on December 31st. The income statement says you had a great year but the bank account says something very different.

These are two separate conversations, and most contractors (and frankly, some accountants) only focus on one of them.

When you bill ahead of your percent complete on a job, cash comes in fast. The owner pays the pay app, the money hits your account, and it feels like the job is going well. For a few months, overbilling feels like good cash management.

BUT THE CASH ISN’T YOURS YET!

Billings in excess of costs (overbillings) is a liability on your balance sheet that is calculated on your WIP schedule. It represents money you've been paid for work you haven't done yet. You owe work to the owner, whether that’s work done by your own employees or subcontractors. Until you complete it, that cash belongs to that specific job, not to your general operating account.

The problem: contractors spend it anyway.

Overhead, equipment purchases, owner distributions: the cash is there, so it gets used. Then the job catches up to the billings. Costs accelerate in the back half of the project. The pay apps get smaller because you've already billed ahead. Suddenly there's no cash coming in but plenty going out, and the overbilling that felt like a cushion turns into a cash crisis.

The bank account was never as healthy as it looked.

2. Growth can hurt cash flow

Every new job requires cash before the first dollar of billing comes in for various costs (e.g., mobilization costs, material deposits, the first few weeks of labor before the first pay app is even submitted, etc.). On a $2 million job, you might be $150,000 in the hole before you've billed a dollar.

Now multiply that by five new jobs in one year. It’s a great problem to have but if cash is not management properly, you can hit a real cash crunch.

A contractor who doubles their revenue doesn't double their cash right away. In fact, they consume cash faster than they can generate it, often for six months or more before the new work starts producing billings. The faster you grow, the bigger the hole gets before the billings catch up. You need to be careful.

3. Retainage compounds everything

On top of the first two points, if the job requires retainage, 5–10% of every pay app you submit is being held back.

On a $10 million backlog, that's $500,000 to $1 million sitting in retainage! This is money you've earned, money the income statement includes, but money that does NOT exist in your bank account. It won't exist there until each job closes out, which can be months or years after the work is complete.

Most contractors know retainage exists but few actually track it as a cash flow variable. It shows up vaguely on the balance sheet as a receivable and gets mentally lumped in with other receivables that actually pay on 30-day terms.

When you're forecasting cash 60 or 90 days out and you're not accounting for when retainage actually releases, your forecast is wrong.

What to actually watch:

The fix isn't complicated. It's discipline around a few specific things:

  • Keep a cash flow forecast updated monthly across every active job. Not just an income statement projection but an actual cash in, cash out model that accounts for billing cycles, pay app approval timelines, retainage release schedules, and subcontractor payment obligations. If you don't know what your bank balance will look like in 90 days, you're flying blind.

  • Treat overbillings as untouchable. When your WIP schedule shows billings in excess on a job, that amount should be mentally segregated from your operating cash. It's not yours yet. Build the discipline or the internal controls to treat it that way.

  • Track retainage separately and know when it's expected to release. Every active job should have a projected retainage release date. Roll those up to a company-level retainage receivable schedule and review it monthly.

  • Get a working capital line of credit before you need it. Banks and bonding agents want to lend to contractors who don't need the money. If you wait until you're in a cash crisis to call your banker, you're already too late. The time to establish a line of credit is when your balance sheet is strong and your bonding capacity is solid.

The Bottom Line: The contractors who survive aren't the ones who won the most work. They're the ones who understood that revenue and cash are two completely different things and built their financial process around that reality.

Keep Reading