Busy trucks, empty account: diagnosing a good-revenue, bad-cash month

Your best revenue month of the year just closed. You booked more work than any month since you opened the doors. The techs were slammed, the schedule was full, the invoices went out. And the checking account went down. Not up. Down.

That feeling has a name in most shops, and the name is dread. You did everything right and the bank says you’re going backwards. So you start second-guessing: the pricing, the ads, the guy you just hired. Before you touch any of that, know this. “Revenue up, cash down” is not a paradox and it’s not a bookkeeping mistake. It’s the most common divergence in a trades business, and it always decomposes into one of four causes. Your job this week is to find which one, not to guess.

Why every tool shows you a different symptom

Here’s the trap. Jobber or Housecall Pro shows a record month, because it counts the work you booked. QuickBooks shows a shrinking balance, because it counts the money that landed. Your ad account shows leads flowing. Each number is true. None of them, alone, tells you why the account is empty. The cause lives in the gap between the tools, and no single dashboard is looking at the gap.

So you feel it as anxiety instead of seeing it as a diagnosis. The reading you need isn’t inside any one app. It’s a comparison across three of them.

The four usual suspects, each with a tell

Almost every good-revenue, bad-cash month is one of these:

  • A/R aging. The work is done and invoiced, the money just hasn’t come in. Its tell: your accounts receivable balance in QuickBooks grew this month while revenue grew too.
  • Timing. You paid for a big parts order or ran an extra payroll this month, and you’ll collect the matching revenue next month. Its tell: a large bill or an unusual cash-out event in the register, with the receivables still healthy.
  • Mix shift. You booked more low-margin work than usual, so the top line rose but less of each dollar stuck. Its tell: revenue up, average ticket or margin down when you slice by service line.
  • Callbacks and rework. Jobs got done twice for one paycheck, so labor and parts went out the door with no new revenue behind them. Its tell: a cluster of return visits on the same addresses in your job history.

Four causes. Four different fingerprints. You don’t need to check all four in a panic; you need to check them in order.

The decision path, in likelihood order

Diagnose the way your best tech diagnoses a no-cool call. Run the cheapest, most-likely test first, and let each result send you to the next question. This is a decision path, not a checklist you work top to bottom.

Start with the A/R aging report in QuickBooks. It’s the most common cause and the fastest to confirm. If the balance you’re owed jumped this month, especially into the 31–60 and 61–90 day buckets, you’ve found it. Stop here and go read how to chase overdue invoices without burning your Fridays. The money exists; it’s in someone else’s account.

If receivables are flat, check timing next. Open the register in QuickBooks and look for a large parts order, an equipment purchase, or a third payroll run that landed this month. If cash went out for work you’ll invoice later, the account will refill on its own. Note the date you expect it and move on.

If timing looks normal, slice revenue by service line. In Jobber or Housecall Pro, break the month into maintenance, repair, and install. If the top line rose because you ran a stack of low-margin tune-ups, that’s mix shift, and it’s a strategy question, not an emergency. The pattern and the fix are laid out in when your average ticket is quietly drifting.

Only if the first three come back clean do you look at rework. Pull job history and count return visits by address and by tech. A cluster of callbacks means you paid twice to earn once, which is the quietest margin leak of the four. Callbacks eating your margin walks the trace.

Four questions, asked in the order they’re most likely to pay off. Most months, you never reach question four.

A worked example: Northside Comfort

Here’s what that looks like on real numbers. Northside Comfort is our labeled sample shop, so these figures are a sample, not a customer.

Northside had its strongest booking month on record and watched the balance fall anyway. Question one: the A/R aging report in QuickBooks. Total owed had climbed to $11,700, and $7,300 of it sat in the 61–90 day bucket, concentrated in just two accounts. That concentration is the tell. A big balance spread across thirty customers is a normal Tuesday; $7,300 stacked in two invoices at 61–90 days is the whole story.

Now the cross-source read, the part no single tool does on its own. Those two QuickBooks line items trace to two specific Jobber jobs: a rooftop unit changeout for a commercial property manager at $4,200, and a multi-site filter-and-coil contract at $3,100. Both jobs show completed and signed off in Jobber. So the work is done, the customer isn’t disputing anything, the money is simply late. That’s not a pricing problem or an ad problem. It’s two phone calls. Tina, who runs Northside’s office, doesn’t need to cut anything; she needs to call two commercial accounts and ask when the check is cut.

Without the trace, that same month reads as “we’re bleeding” and someone starts talking about layoffs. With the trace, it reads as “$7,300 is two calls away.” Same numbers, opposite decision.

What not to do on one bad month

The temptation on a tight month is to grab the biggest thing you can move and yank it. Resist that. A single number is a reading, not an instruction, the same way one warm room isn’t a reason to replace the compressor. You test, you isolate, then you fix the actual fault.

Two moves in particular do damage on a one-month reading. Don’t cut your ad spend. It’s the slowest lever to reverse: the leads you skip this week are the jobs you don’t book in six, so a panic cut can stretch one tight month into two. And don’t panic-price. Raising rates across the board to “fix cash” punishes the customers who do pay on time for a problem caused by the two who don’t. Find the cause first. The cause tells you which small, specific thing to change, and it’s almost never the big one you reached for at 9pm.

Trend versus blip: the honest threshold

One month is noise. Genuinely. Cash swings on the timing of a single large invoice, and reading a business off one month is how good shops talk themselves into bad decisions. The honest threshold is two: two consecutive months moving the same direction, in the same cause, is a pattern worth acting on. One month is a diagnosis you file and watch. Build the habit of the check itself, not the reaction, which is the whole point of a weekly business review.

I’ve sat with owners walking through exactly this, and the relief when the number resolves into “two invoices, two calls” is the same every time. The anxiety wasn’t the money. It was not knowing which of the four it was.

The diagnosis is a cross-source read by nature

Notice what every step above required: a number from QuickBooks checked against a job in Jobber, in the same sitting. That’s the one thing none of these tools does for you. The field app knows the work happened. The books know the money didn’t. Nobody reads the two side by side except you, on a Friday, in a spreadsheet.

That’s the read Guidepost is built to do for you every Monday: A/R traced to the jobs behind it, revenue sliced by line, callbacks counted, each figure linked back to its source so you see which of the four it is before you decide anything. We’re onboarding the first handful of home-service and trades shops by hand. If you’d rather see the cause than feel the dread, get early access and I’ll bring the walkthrough to your own numbers.

Questions owners ask

Why is my revenue up but I have no cash?

In a trades shop it almost always comes down to one of four causes. The money is booked but not collected (A/R aging). You sold more low-margin work than usual (mix shift). You paid for parts and payroll this month but collect next (timing). Or jobs got done twice for one paycheck (callbacks and rework). The fix is to find which one, not to guess. Start with the QuickBooks A/R aging report, because a jump in what you're owed is the single most common cause and the fastest to rule in or out.

Busy but not making money in a trades business: what's going on?

Busy and profitable are two different measurements, and one bad month rarely means the business is broken. Revenue counts the work you booked; cash counts the money that actually landed. When they diverge, no single tool shows you the cause: the field-service app sees the jobs, QuickBooks sees the bank, the ad platform sees the leads. You have to read them together. Diagnose which of the four causes is in play before you touch a price or an ad budget.

Should I cut my ad spend if I had a tight cash month?

Not off one month. Cutting ads is the slowest lever to reverse: the leads you skip today are the jobs you don't book in six weeks, so a panic cut can turn one tight month into two. First rule out the faster explanations. If the cash gap is A/R sitting in the 61–90 day bucket, the ads did their job and the problem is collection, not marketing. Change spend on a trend you've confirmed over two or three months, not on a single reading.

Written by Guidepost

Guidepost reads the numbers a home-service shop already has across its tools, then sends the few that need attention, each traced back to its source. The whole job is telling a real signal from noise: the line between a number worth acting on and one that’s only worth a closer look. More about Guidepost →

See it watch your numbers

Guidepost reads your Jobber, Housecall Pro, and QuickBooks numbers and tells you what needs attention, in plain English. Want to see the output first? Look at a sample digest.