All articles

Why profitable contractors run short of cash (and 6 ways to fix it)

By Xavier Benoit 6 min read

Your statements say you made a healthy profit last year. So why are you moving money between accounts to cover Friday's payroll?

You're not bad at business. You're running into the way construction money moves, and once you see it, it's fixable.

In short: profit and cash are two different things. Your profit is counted when you invoice a job. Your cash only shows up when the client pays, minus any holdback, and after you've already paid your crew, your suppliers and the government. For trade contractors, that gap is often 60 to 120 days. A busy, profitable season can be exactly what drains your bank account.

Profit is an opinion, cash is a fact

Your income statement records revenue when you earn it, usually when you invoice. It records costs when you incur them. So a job can show a profit on paper the day you send the invoice.

Your bank account doesn't care about any of that. It only sees money that actually came in and money that actually went out. And in the trades, the money almost always goes out first.

A simple example

Hypothetical numbers, to show the timing.

An HVAC contractor takes on a $50,000 install (before tax):

  • Equipment and materials: $22,000, paid to the supplier within 30 days
  • Labour: $13,000, paid every two weeks while the job runs
  • Profit on the job: $15,000

On paper, that's a great job. Now look at the timing:

  • Days 1 to 30: you pay out $35,000 for labour and materials. Nothing has come in yet.
  • Day 30: you send the invoice. The HST on it is generally owed to the government on your next filing date, whether or not the client has paid.
  • Day 75: the client pays, minus a 10% holdback ($5,000) that stays with them for months.

For roughly two and a half months, you financed that job out of your own pocket. And part of your profit sits in a holdback you can't touch.

Now run three or four jobs like that at the same time. That's why a growing contractor can be profitable and broke in the same month.

The six usual suspects

1. Holdbacks

In Ontario, the Construction Act requires the payer to hold back 10% of the value of the work until the lien period ends. On the Quebec side, holdbacks are usually set by the contract, and 10% is common. Either way, a slice of every job's profit arrives months after the work is done. If holdbacks aren't tracked separately in your books, it's easy to forget how much money is tied up there, and to chase it late.

2. Slow invoicing

Every day between finishing the work and sending the invoice is a day added to your cash gap. On progress-billed jobs, work that's done but not yet billed is money you've spent and haven't asked for. Invoicing is often the job that gets done Sunday night, when the owner finally has time.

3. Clients who pay late

Thirty-day terms often turn into 60 or 90 days in practice, especially with general contractors and larger commercial clients. If nobody follows up on receivables every week, late payers quietly become your bank, for free.

4. HST, payroll and WSIB don't wait

You owe HST on what you invoice, not on what you've collected. Payroll source deductions are due on fixed dates. WSIB (or CNESST in Quebec) premiums come due on their own schedule. None of these deadlines move because a client is late. Many owners spend the HST money without realizing it, then get caught when the filing comes due.

5. Equipment and loans

When you buy a truck or a machine, the cash leaves right away, but only a portion of the cost shows up as an expense each year through depreciation. And loan principal payments never appear on your income statement at all. Both drain cash without reducing your "profit."

6. Growth itself

More jobs means more labour and materials paid upfront, before any client pays. Growth is a good problem, but it's still a cash problem. A contractor who doubles their volume without planning for it can run out of cash in their best year.

What to do about it

  1. Invoice the same week the work is done. On longer jobs, agree on a progress billing schedule before you start, and stick to it.
  2. Track holdbacks as their own line in your books. Know at all times how much is owed to you, by whom, and when it should be released, and follow up on the day it's due.
  3. Put HST aside as you collect it. A separate bank account for sales taxes takes ten minutes to open and prevents the most common nasty surprise.
  4. Ask for a deposit on large jobs, at least enough to cover the materials you have to order.
  5. Review your receivables every week. A short list of who owes what and since when, with a follow-up call for anything past due.
  6. Look ahead, not just back. A simple 13-week forecast of what's coming in and going out shows a cash crunch while you can still do something about it.

None of this requires a finance degree. It requires books that are up to date every month, not cleaned up once a year at tax time, and a clear view of which jobs actually make money.

The bottom line

If your statements say you're profitable but your bank account disagrees, the problem usually isn't how much you're making. It's when the money comes in. Get your invoicing, holdbacks and tax money under control, and most of that gap closes.

Check your own cash gap

Pull five numbers from your books and enter them below. You'll see how much of your profit is sitting with clients, and how much cash you can actually use over the next 30 days.

Cash gap calculator

Five numbers from your books, two minutes. Nothing you type is sent or saved.

Enter your numbers to see your cash gap.

Want help closing the gap? Bring these numbers to a free 15-minute fit call.

Book a Fit Call

If the result surprises you, bring those numbers to a free 15-minute fit call. We'll show you which of the six fixes above would free up the most cash first. Do it before the winter slowdown: that's when the gap hurts most, and when there's still time to close it.

Want a second set of eyes on your books?

Book a free 15-minute fit call. We'll look at how your books are handled today and agree on next steps.

Book a Fit Call