Revenue is up sharply over last year. The backlog is strong. The crews are busy. And there is less cash in the operating account than there was twelve months ago, with no obvious reason why.
This is the most common cash problem in contracting, and it hits good operators hardest. Nothing is being stolen. No job has gone badly wrong. The jobs are profitable. The business is growing faster than its working capital can support, and nobody warned the owner that growth costs money.
Here is why it happens and what to do about it. Every number below is worked out in full so you can run the same math on your own jobs.
Growth consumes cash before it produces any
Every job you start requires you to spend money before you collect any. You buy material. You make payroll every week or two. Your suppliers invoice you on 30-day terms. Meanwhile you bill the general contractor monthly, they withhold retainage, and they pay you somewhere between 45 and 90 days later.
That cycle works when your job count is flat. Money goes out one end and comes back in the other at about the same rate. Add jobs and the arithmetic changes. Each new job opens another cash cycle that has to be funded, and the only place the funding can come from is profit on work you already finished.
Grow fast enough and finished-job profit can’t keep up with what the new work requires. Revenue climbs, profit climbs, and the bank balance falls. That’s not a sign of a broken business. It’s what growth looks like on a cash basis, and it’s why fast-growing contractors fail more often than shrinking ones.
Put a number on it
Take a $400,000 subcontract with $320,000 of estimated cost. That’s $80,000 of gross profit at a 20% margin. Two months in, the billing position looks like this:
| Line | Amount | How it is calculated |
|---|---|---|
| Contract value | $400,000 | Given |
| Estimated cost at completion | $320,000 | Given |
| Costs incurred to date | $112,000 | Given |
| Percent complete | 35% | $112,000 ÷ $320,000 |
| Revenue earned | $140,000 | $400,000 × 35% |
| Billed to date | $120,000 | Given |
| Billing position | ($20,000) | $120,000 − $140,000 |
You performed $140,000 of work and invoiced $120,000 of it. That $20,000 of underbilling is your money funding the project.
Now apply the payment terms. Retainage takes a slice of what you did invoice, and on 60-day terms only the first month’s draw has actually landed:
| Line | Amount | How it is calculated |
|---|---|---|
| Billed to date | $120,000 | Two monthly draws of $60,000 |
| Retainage withheld at 5% | ($6,000) | $120,000 × 5% |
| Collectible once both draws are paid | $114,000 | $120,000 − $6,000 |
| Actually collected on 60-day terms | $57,000 | Month 1 draw only: $60,000 × 95% |
| Costs incurred to date | $112,000 | Given |
| Working capital this job is carrying | $55,000 | $112,000 − $57,000 |
You’ve spent $112,000 and collected $57,000 on a job that is going according to plan. Now multiply it:
| Concurrent jobs | Revenue in progress | Working capital carried |
|---|---|---|
| 1 job | $400,000 | $55,000 |
| 3 jobs | $1,200,000 | $165,000 |
| 6 jobs | $2,400,000 | $330,000 |
The profit on those additional jobs won’t arrive until they close out and retainage releases, which can be months after your last crew leaves the site.
That’s the whole answer to why a growing contractor has no cash. The money isn’t missing. It’s sitting in work you’ve performed, invoices you haven’t sent, invoices you’ve sent but not collected, and retainage someone else is holding.
You are financing the general contractor
Subcontractors working for small commercial GCs end up acting as a lender, usually without ever deciding to. The GC bills the owner, waits to get paid, and passes that wait down to you. Retainage compounds it. You’re extending credit at zero interest to a business whose finances you’ve never seen.
That credit has a price you can calculate:
| Line | Amount | How it is calculated |
|---|---|---|
| Working capital carried across 6 jobs | $330,000 | From Table 3 |
| Line of credit rate | 10% | Assumption |
| Annual interest cost | $33,000 | $330,000 × 10% |
| Annual revenue volume | $2,400,000 | Six jobs at $400,000 |
| Annual gross profit | $480,000 | $2,400,000 × 20% |
| Interest as a share of gross profit | 6.9% | $33,000 ÷ $480,000 |
Roughly seven cents of every dollar of gross profit is going to interest on money you already earned. Most contractors have never run that number. Run it before your next bid, because it should change what you’re willing to accept.
Know the Oklahoma retainage rules before you sign
Oklahoma limits retainage to 5% of the payment due, and that ceiling applies to subcontracts, not just prime contracts. On public work it drops further: once your scope is more than 50% complete and progress is satisfactory, retainage is reduced to 2.5%.
If a subcontract in front of you calls for 10% retainage on an Oklahoma project, that number is worth questioning before you sign it. Here is what the difference is worth on the $400,000 job above:
| Line | At 5% (Oklahoma ceiling) | At 10% | Difference |
|---|---|---|---|
| Withheld on billings to date of $120,000 | $6,000 | $12,000 | $6,000 |
| Withheld on full contract value of $400,000 | $20,000 | $40,000 | $20,000 |
| Annual cost to carry it at 10% | $2,000 | $4,000 | $2,000 |
Two more provisions worth knowing. Retainage is to be released within 21 days after a certificate of substantial completion is issued, and once the prime contractor receives it, they have 10 days to pass your share down. And when a prime fails to pay a subcontractor on time, the late payment carries interest at 1.5% per month. That’s 18% a year, and almost no subcontractor ever asks for it.
These are general rules and how they apply depends on the specific contract and whether the project is public or private. Have a construction attorney review the terms in front of you rather than relying on a summary.
Fix the terms during bidding, not at signing
Payment terms are negotiable before you sign and nearly impossible to change afterward. Once the subcontract is executed you have no leverage. Read these before you price the work:
- Payment timing. Find out whether you get paid a fixed number of days after invoice, or only after the GC collects from the owner. Those are very different risks. Contingent payment clauses move the owner’s credit risk onto you, and courts read them differently from state to state.
- Retainage release trigger. Ask whether release comes at your scope completion or at final completion of the whole project. Trades that finish early wait longest. Your money can sit for months while someone else finishes punch list work you had nothing to do with.
- Billing cutoff dates. If the GC’s pay application is due on the 20th and you invoice on the 30th, you’ve built a 30-day delay into every draw for the life of the job. This costs nothing to fix and almost nobody checks it.
- Change order pricing and approval. Work performed on a verbal approval is work you may not be able to bill. Get the process in writing and follow it every time.
- Mobilization or stored material payments. On material-heavy scopes, ask for them. The worst answer is no.
When a GC won’t move on terms, price the carrying cost into the bid. Tying up $55,000 for an extra 90 days at 10% costs you $1,356, or about 0.34% of the contract value. Put it in the number. Contractors price material escalation and labor risk as a matter of course, then treat payment terms as a fixed condition of doing business. They aren’t. They’re a cost, and costs belong in the bid.
Some GCs pay in 30 days and release retainage at scope completion. Others take 90 days and hold everything until the building opens. Those two customers should not be getting the same price from you.
Clean accrual financials lower what you pay to borrow
If you’re going to carry receivables and retainage, you’ll need a line of credit. What you pay for that line depends on how well your banker can read your financial statements.
A contractor who hands the bank cash or tax-basis financials with no WIP schedule is asking that banker to lend against numbers nobody can verify. Reported profit might be real or it might be a billing artifact. There’s no way to tell from the statement. Banks respond to that uncertainty the way they respond to any uncertainty, by charging more for it, lending less, or asking for additional collateral.
Accrual financials with your billing positions properly stated fix that. Underbillings appear on the balance sheet as an asset, costs in excess of billings. Overbillings appear as a liability, billings in excess of costs. Together with a WIP schedule they let a banker see what you actually earned, what you actually owe in work, and what your equity really is.
| Line | Cash or tax basis | Accrual with WIP |
|---|---|---|
| Average balance drawn on the line | $330,000 | $330,000 |
| Rate the bank offers | 10% | 8% |
| Annual interest cost | $33,000 | $26,400 |
| Annual saving | — | $6,600 |
Two points of rate difference on a $330,000 average balance is $6,600 a year, which will go a long way towards paying for a monthly accounting engagement. The second effect is usually larger. Banks size credit lines off working capital and net worth, and on cash-basis statements your underbillings don’t appear anywhere. A real asset is invisible, and you qualify for a smaller line than your business actually supports.
Contractors who show up with current accrual statements and a clean WIP schedule get treated as a lower credit risk, because they are one. The statements are also what a surety will ask for the first time you need a bond.
Read the billing position job by job
Underbilling is only half the picture. Some jobs run the other way. When you’ve invoiced more than you’ve earned you’re overbilled, and that money is a liability. You’ve been paid for work you still owe.
Both numbers come off your WIP schedule and both depend on accurate job costing underneath them. The calculation is three lines per job:
- Percent complete = Costs to date ÷ Estimated cost at completion
- Revenue earned = Contract value × Percent complete
- Billing position = Billed to date − Revenue earned
Run it on every open job on the same day each month, then resist the urge to look only at the total. Take a contractor with six jobs open:
| Job | Overbilled | Underbilled | Net position |
|---|---|---|---|
| Job A | $85,000 | — | $85,000 |
| Job B | $40,000 | — | $40,000 |
| Job C | — | $30,000 | ($30,000) |
| Job D | — | $95,000 | ($95,000) |
| Job E | $22,000 | — | $22,000 |
| Job F | — | $18,000 | ($18,000) |
| Total | $147,000 | $143,000 | $4,000 |
The net is $4,000 overbilled, which looks like a business in balance. Underneath that number is $290,000 of gross movement and one job carrying $95,000 of unbilled work. The total conceals the exposure. Read the column, not the sum.
Watch out for stale estimates
Percent complete divides by your estimated cost at completion. If that estimate is out of date, every number below it is wrong.
Go back to the $400,000 subcontract and assume labor productivity has been worse than planned. The foreman revises estimated cost from $320,000 to $355,000. Costs to date and billings don’t change:
| Line | Original estimate | Revised estimate | Change |
|---|---|---|---|
| Estimated cost at completion | $320,000 | $355,000 | $35,000 |
| Costs incurred to date | $112,000 | $112,000 | — |
| Percent complete | 35.0000% | 31.5493% | (3.4507%) |
| Revenue earned | $140,000 | $126,197 | ($13,803) |
| Billed to date | $120,000 | $120,000 | — |
| Billing position | ($20,000) | ($6,197) | $13,803 |
| Gross profit at completion | $80,000 | $45,000 | ($35,000) |
Your billing position improved while your gross profit at completion fell from $80,000 to $45,000, a margin of 11.25% instead of 20%. Never read the position without the current estimate sitting beside it.
What to do
- Calculate the working capital each new job requires before you take it. Costs incurred ahead of collection, plus retainage held. If you can’t fund it, you can’t take the job, no matter how good the margin looks.
- Check retainage against the 5% ceiling on every Oklahoma subcontract you’re handed.
- Review payment terms during bidding. Price the carrying cost when the terms won’t move.
- Run the billing position monthly on every open job, with cost-to-complete updated first.
- Track retainage receivable as its own line. Most contractors are owed more retainage than they realize, and some of it is on jobs that closed a year ago.
- Get accrual financials and a line of credit in place before you need them. Both are much easier to obtain in a good year than in a tight quarter.
The takeaway
Profit and cash answer two different questions. A contractor can be genuinely profitable and still run out of money, and growth makes that outcome more likely rather than less. Your billing position, retainage balance, and payment terms tell you where the money actually is.
Most contractors in this position aren’t doing anything wrong. They’re growing without a forecast, taking work without pricing the payment terms, and learning about cash problems from the bank balance instead of from their numbers. All three are fixable.
We work through billing positions, retainage, and job-level cash requirements every month with residential home builders, remodeling contractors, and other trades and field-service businesses across Oklahoma, including Tulsa and Oklahoma City. If your revenue is up and your cash isn’t, book a free discovery call.
Free Tool: Contractor Cash Flow Model
Every calculation in this article is built out in a working Excel model. Put in your own contract value, cost estimate, retainage rate, payment terms, and borrowing rate, and it will show you what each job is really costing you to carry.

Leave a Reply