Why is my construction business profitable but broke?
7 min read
You closed the month with $210,000 of profit on the books and $18,000 in the operating account. Payroll is Friday. Nothing in your bookkeeping is broken, you are not being robbed, and you do not need a new accountant.
You need a different report. A profit and loss statement was never designed to answer the question you are actually asking, and on a contracting business it answers a slightly different question badly enough to be dangerous.
Here is where the money is.
What a P&L is actually telling you
A P&L covers a period — a month, a quarter, a year — and matches the revenue you earned in that period against the costs of earning it. Earned. Not collected.
That single word is the whole problem. On a construction job, the moment you earn revenue and the moment cash arrives can be sixty, ninety, a hundred and twenty days apart, and on retainage, a year apart. Your P&L records the first. Your bank account records the second. Both are correct. They are answering different questions.
So a contractor can be genuinely, durably profitable and still be unable to make payroll on Friday. That is not a contradiction. For a growing contractor it is close to the default condition, because growth makes the gap bigger, not smaller.
The gap, on one job
Take a single job and follow the money.
- Contract value: $400,000
- Your estimated total cost to build it: $340,000
- Estimated gross profit: $60,000, or 15%
- Cost incurred so far: $170,000
Percent complete on a cost basis is cost to date divided by total estimated cost: 170,000 divided by 340,000 is 50%. You have built half the job. That division looks trivial and is where most WIP schedules go wrong, which is why calculating percent complete on a construction job is its own piece.
If you have built half the job, you have earned half the contract: 50% of $400,000 is $200,000. That is the revenue your P&L will show for this job, and it is right to show it.
Now what have you actually invoiced? Say $140,000. You billed the first two draws, the third one is sitting half-drafted because the month got away from you, and there is $22,000 of change order work the owner verbally approved that nobody has written up.
- Earned: $200,000
- Billed: $140,000
- Underbilled: $60,000
That $60,000 is real work, already built, already paid for out of your account, that you have not asked anyone for. It shows on your P&L as revenue. It is not in your bank because you never sent the invoice.
Now subtract retainage
The contract holds 10% retainage. On the $140,000 you did bill, $14,000 is being held back. So the most cash this job could have produced is $126,000.
Against $170,000 of cost you have already paid out.
This job — a healthy job, on budget, running at its estimated 15% margin — has taken $44,000 out of your bank account so far. It is profitable and it is consuming cash, at the same time, for the same reason.
The retained $14,000 is the part people underestimate, because it does not come back when you finish. When retainage actually gets released sets out the sequence and how long it really takes.
Multiply by six jobs and you have your empty account. The $210,000 of profit is sitting in other people's buildings.
The other four places it hides
Underbilling and retainage are usually most of it. When they are not, it is one of these, and all four share a property: cash leaves and the P&L barely flinches.
The first is equipment bought outright. You paid $85,000 cash for a skid steer. That is not an expense — it is an asset, and the P&L only sees it as depreciation, maybe $14,000 in year one. Eighty-five thousand left the bank. Fourteen thousand appeared on the P&L. (Elect Section 179 and the expense lands all at once instead, which fixes the reporting and does nothing for the cash.)
The second is loan principal. Your truck note is $3,200 a month. Only the interest, perhaps $600, is an expense. The other $2,600 leaves your account every month and never touches the P&L. Over a year that is $31,200 of invisible cash burn.
The third is paying faster than you get paid. You pay subs and suppliers on net 15 because that is how you keep good ones. The GC pays you on net 45, and starts counting from when they process the pay application, not when you sent it. You are financing a month of everybody else's work, permanently, out of your own account.
The fourth is tax on money you have not collected. If you file on the accrual basis, you owe tax on that $210,000 of profit whether or not any of it arrived. The estimated payment is due on the paper number.
The report that shows it: WIP
Work in progress is the report that reconciles the two worlds. One row per open job, and the columns that matter are these:
- Contract value, including approved change orders
- Total estimated cost, updated to what you now think it will cost — not the original bid
- Cost to date
- Percent complete: cost to date divided by total estimated cost
- Earned revenue: percent complete times contract value
- Billed to date
- The difference between earned and billed
When earned is larger than billed, you are underbilled — that is your money in someone else's building, and it is the number this whole article is about. When billed is larger than earned, you are overbilled: you are holding cash for work you have not done yet. That feels good and is worth knowing, because you will have to build it eventually, and the cash to do it needs to still be there when you do.
Add the underbilled column down the page. That total, plus your retainage held, is the answer to "where did the profit go".
What to do this week
Not a system. Three things, in an afternoon.
Pick your largest active job and calculate the two numbers. Cost to date divided by estimated total cost gives you percent complete. Multiply that by the contract value. Compare it to what you have invoiced. If earned is bigger, you have found an invoice you can send this week — and that is the fastest cash in construction, because the work is already done and already paid for.
Total your retainage, on every job. Every open job, every closed job that has not released. Contractors are routinely surprised by this number, and the closed jobs are where it hides. Some of it is probably collectable today by someone simply asking.
Write up the verbal change orders. The $22,000 in the example is not unusual. Unsigned work is the easiest money to lose and the hardest to argue for six months later, when the person who approved it has moved to another project.
Do those three and run the WIP monthly, on the same day you look at the P&L. The P&L tells you whether the work is profitable. The WIP tells you where the profit currently is. You need both, and only one of them is in the standard report pack.
When none of this applies to you
If you run one or two jobs a year, bill on completion, and get paid within thirty days, you do not have this problem and you do not need a WIP schedule. Your P&L and your bank balance track each other closely enough that the difference is noise. A spreadsheet, or nothing at all, is genuinely fine.
The gap opens when the jobs get longer, the number of them goes past three or four, and retainage starts appearing in your contracts. That is the point where profitable and broke stop being a contradiction, and start being a Thursday.
PhurFriend does this part for you
Connect your bank and every cost lands on the right job automatically — budget against actual while the job is still running, not months after it closed.
See how it works