Why profitable jobs still leave you short on cash
Updated 4 min readWritten by the WIPKeep team
The short answer
Profit is recorded when work is earned; cash moves when money actually changes hands. Those two moments can be months apart. A contractor pays for materials and subs long before the customer pays the final invoice, so a genuinely profitable job can still drain the account while it runs. Profitability is a pricing question, cash flow is a timing question, and solving one does not solve the other.
Key takeaways
- You can be profitable and insolvent at the same time. They are different measurements.
- The four gaps that drain cash: materials paid up front, subs paid before you are, retainage held back, and slow-paying customers.
- A large bank balance in the middle of a job may be mostly customer deposits, which is money you owe in work.
- Deposits and progress payments are cash-flow tools, not profit tools. They change when the money arrives, not how much you make.
It is a specific and disorienting feeling: the books say the year was good, and you cannot cover next week. Nothing is broken. Profit and cash are simply two different measurements taken at two different moments, and on a contracting business those moments are unusually far apart.
The two clocks
| Profit | Cash | |
|---|---|---|
| Records revenue when | The work is earned | The customer's money arrives |
| Records costs when | The cost is incurred | You actually pay |
| Shows up on | Profit and loss statement | Bank balance and cash flow statement |
| Answers | Was this worth doing? | Can I pay people on Friday? |
The four gaps
1. Materials leave first
Cabinets, tile and fixtures are frequently the largest single cost of a job and are paid at the start. That money is gone weeks or months before the invoice that pays for it.
2. Subs get paid before you do
Your electrician invoices on net 15. Your customer pays on net 30, if you are lucky, after final walkthrough. You are financing the gap out of your own account, every job, all year.
3. Retainage
On contracts that hold retainage, a percentage of every payment is withheld until the job is fully complete and sometimes long after. That withheld amount is counted in your profit as soon as the revenue is recognized, and it is not in your bank account.
4. The customer who takes ninety days
One slow payer on a large job can consume the cash generated by three fast ones. The profit was real on the day the job closed. The money was not.
A worked example
An illustration, not customer data. A $24,000 kitchen with $16,000 of costs. Real gross profit: $8,000. Watch the bank account.
| Month | What happened | Cash effect | Running cash |
|---|---|---|---|
| November | $8,000 deposit received | +$8,000 | +$8,000 |
| November | Cabinets ordered and paid | -$7,300 | +$700 |
| December | Countertops paid | -$2,600 | -$1,900 |
| December | Plumbing and electrical subs paid | -$3,300 | -$5,200 |
| January | Helper labor paid | -$2,800 | -$8,000 |
| February | Job closes, $16,000 invoiced | no cash yet | -$8,000 |
| March | Customer pays | +$16,000 | +$8,000 |
The job made exactly the $8,000 the books said it would. It also had you $8,000 down at the deepest point, four months before you saw it. Run three of those at once and the arithmetic explains itself.
What actually helps
- Take deposits, and size them to your front-loaded costs. If materials are 45 percent of the job, a 20 percent deposit still leaves you funding the gap.
- Bill in stages on longer jobs rather than once at the end.
- Match your terms to your subs' terms. Paying subs on net 15 while billing customers on net 45 guarantees the gap.
- Invoice the day the job closes. Invoices sent a week late are paid a week late, forever.
- Watch the deposit balance separately. A comfortable balance that is mostly other people's deposits is not a cushion. It is work you owe.
- Keep the profit question separate. If the margin is thin, deposits will not save it. That is a pricing problem, and it is solved in markup vs margin.
Frequently asked questions
- How can a business be profitable and still run out of money?
- Profit is measured when work is earned and costs are incurred. Cash is measured when money moves. On a contracting job the costs usually move out months before the final payment moves in, so a profitable job can still leave the account empty while it runs.
- Do customer deposits count as profit?
- No. A deposit is a liability until the work is done. It improves your cash position without improving your profit. See how to record a customer deposit.
- What is the difference between the profit and loss statement and the cash flow statement?
- The profit and loss statement tells you whether the work was worth doing. The cash flow statement tells you whether the money to keep doing it actually arrived. A healthy business needs both to be true, and they can disagree for months at a time.
Keep reading
- Running the numbersMarkup vs marginThe two formulas, a conversion table, and the specific arithmetic mistake that quietly prices contractors below the margin they think they are earning.
- Journal entriesHow to record a customer depositA customer deposit is not income yet. Here is the exact journal entry, why it goes to a liability account, and what happens to it when the job finishes.
- Journal entriesHow to record a payment to a subcontractorThe journal entry for paying a sub, how it differs when the cost belongs to a job, and what you have to track during the year so 1099 time is not a scramble.
- Journal entriesHow to record materials bought for a specific jobThe journal entry for job materials, why the receipt should hit the job and not a general supplies account, and how to handle materials you buy but do not use.