Quick Links
- Busy and profitable are not the same number
- A typical scenario MyWorkbelt clients uncover
- Why “book more work” makes this worse, not better
- What Budget vs Actual looks like at the contract level
- Q&A: Cleaning company profit
- The next step
Full calendar. Every account is covered. Crews out the door every morning. And the bank account still looks thin at the end of the month.
If that sounds familiar, the problem isn’t your booking rate. It’s that a busy schedule tells you nothing about which of those jobs are actually making you money.
A cleaning company running at capacity can still lose money on individual contracts, and most owners don’t find out until tax season, when it’s too late to fix the quote that’s been bleeding for a year.
Busy and profitable are not the same number
Revenue tells you how much work went out the door. It doesn’t tell you what that work costs you to deliver. Those are two different questions, and most scheduling software only answers the first one.
Here’s where the gap usually hides in a cleaning business:
Recurring contracts priced years ago. A commercial account quoted at $180 for a visit in 2022 is still $180 for a visit today. Supply costs are up. Wage rates are up. The contract hasn’t moved.
Crews are running long on jobs quoted for less time. A visit estimated at 90 minutes that actually takes 110 minutes isn’t a rounding error. Multiply that gap across a full recurring book, and it adds up to real, unbilled labor.
Supply costs absorbed instead of tracked. Chemicals, paper products, and equipment wear get bought in bulk and never assigned back to the specific accounts, consuming them the fastest.
None of this shows up on schedule. They only show up when someone tracks estimated cost against actual cost by contract every month.
A typical scenario MyWorkbelt clients uncover
Picture an 18-account commercial cleaning route. Every contract is priced by estimated labor hours per visit, the way most cleaning businesses quote.
The owner assumed the pricing was being held. It wasn’t. Crews were averaging 34 minutes longer per visit than the contracts were quoted for, across most of the route. Over two quarters, that added up to 612 hours of labor the business paid for but never billed or budgeted, worth $15,912 in absorbed cost.
The schedule looked full the entire time. The margin disappeared 34 minutes at a time.
Buyers researching field service software independently flag the same gap. Capterra’s Field Service Management buyers guide lists scheduling, dispatch, and billing as the features most reviewers shop for first. Job-level cost tracking rarely makes that list, which is exactly why it goes unmanaged.
Why “book more work” makes this worse, not better
The instinct when a cleaning business feels tight is to add another account. More revenue should fix a revenue problem.
But if the underlying contracts are underpriced, or the crews are consistently running over on time, adding volume just scales up the loss. A tenth underpriced account doesn’t dilute the nine unprofitable ones. It adds a tenth leak to the bucket.
The fix isn’t more jobs. It’s knowing which jobs, or which contracts, are actually worth keeping at their current price, and which ones need a conversation with the client before renewal.
What Budget vs Actual looks like at the contract level
This is where job-level tracking matters more than a full calendar. Budget vs Actual compares what a contract was quoted to cost against what it costs to deliver, visit by visit, contract by contract.
For a cleaning business, that means:
Every recurring contract gets an estimated labor and supply cost when it’s set up. Every completed visit log actual time and materials against that estimate. The gap between the two surfaces automatically, by account, instead of getting buried in a general ledger at year-end.
In the monthly Growth Review, a named Client Success Manager walks through which contracts are running on target, which are running over, and what to do about the ones that aren’t. That’s not a report nobody reads. It’s a 30-to-60-minute conversation that turns into a decision: reprice the account, adjust the crew’s size, or let it go at renewal.
Q&A: Cleaning company profit
Can a fully booked cleaning company still lose money?
Yes. A full schedule reflects demand, not margin. If contracts are underpriced or crews are running over the quoted time, more volume increases revenue without increasing profit.
How do I know if a cleaning contract is underpriced?
Compare the hours and supplies you quoted for the job against what your crews actually log on to that account, over at least one full quarter. If actual time consistently runs past the quote, the contract is underpriced for the work it requires today.
What’s the fastest way to find a margin leak in a cleaning business?
Look at your longest-running recurring contracts first. Pricing set two or three years ago is the most likely place of labor, and supply costs have outpaced the quote.
The next step
You don’t need a new booking system. You need to see which of your current contracts are actually paying for themselves.
See what Budget vs Actual finds in your own recurring accounts with a demo built around your job types, not a generic dataset. Every plan includes the monthly Growth Review with a named CSM, and a 60-day money-back guarantee if it doesn’t turn up at least one hidden profit opportunity.
More from MyWorkbelt: What the Monthly Growth Review Actually Finds · My Workbelt Pricing
