A Fully-Booked Month That Barely Covers Payroll -

A Fully-Booked Month That Barely Covers Payroll

A Fully-Booked Month That Barely Covers Payroll

A Fully-Booked Month That Barely Covers Payroll

Any cleaning company can fill a schedule. The ones that last know which contracts actually make money. Here’s why cleaning business profit lives at the level of the individual site — and the labor hours behind it.

There’s a particular kind of frustration in the commercial cleaning business. Your schedule is packed. Crews are out at sites all day, every day. Contracts are being serviced, clients seem happy, revenue is coming in. And yet, at the end of the month, once payroll and supplies and everything else has come out, there’s barely anything left. You’re as busy as you could possibly be, and it’s somehow not translating into money. This is one of the most common traps in the industry, and it comes down to a simple truth most owners never confront: being busy isn’t the same as being profitable. Cleaning business profit is decided contract by contract, in the labor hours behind each one — and if you’re not looking at that level, you can’t see where your money is going. Here’s how to fix it.

Why a full schedule can lose money

Here’s the thing that catches cleaning owners out. A cleaning business isn’t one profit engine — it’s a collection of separate contracts, each with its own economics. Every site has its own revenue (what the client pays) and its own costs (mainly the labor hours to clean it, plus supplies). Some contracts are healthily profitable. Others, whether through underpricing, scope creep, or simply taking more hours than expected, make little or even lose money.

When you look only at your overall numbers, these cancel out into a blur. Your profitable sites subsidise your unprofitable ones, and the total looks like “busy but not very profitable” without ever telling you why. So you can be fully booked — every hour of your crews’ time sold — and still barely profit, because a chunk of that work is being done at little or no margin. Adding more of the same kind of work doesn’t help; it just makes you busier at the same thin overall margin. The full schedule isn’t the achievement it feels like if the contracts filling it don’t individually pay.

Profit by site: where the loss-makers hide

The fix is to look at profitability per contract, not just overall. When you calculate each site’s revenue minus its labor and supply costs, you get its real profit and margin — and the picture that emerges is often surprising and immediately useful.

Almost every cleaning company that does this discovers at least one contract that’s quietly losing money, and frequently it’s a big-name one — the impressive client everyone’s proud of, that turns out to be underpriced or over-serviced to the point of unprofitability. That contract has been hiding inside your overall numbers, dragging down everything, and you couldn’t see it because you were looking at the total. Per-site profitability drags it into the light.

And once you can see it, you can act. A loss-making contract has clear options: renegotiate the price at renewal, adjust the scope or the hours to bring it into profit, improve the efficiency of how it’s cleaned, or — if none of that works — let it go. Any of these beats unknowingly subsidising it forever. Meanwhile, seeing which contracts are your most profitable tells you exactly what kind of work to pursue more of. Profit-by-site turns “we’re busy but broke” into a specific list of which contracts to grow, fix, or drop.

Labor is where profit is won or lost

Dig into why a contract is or isn’t profitable, and you’ll almost always land on labor. In commercial cleaning, labor is typically the dominant cost — often something like half to two-thirds of the entire business. That makes it the single most important number to control, and the place where the difference between a profitable contract and a losing one is usually decided.

The trouble is that labor cost is easy to lose track of. A contract is priced assuming it takes a certain number of hours. But hours have a way of creeping: a site takes longer than expected, a crew is a bit slower, extra tasks get absorbed without extra pay. Because you’re paying for hours worked regardless of what you quoted, that creep comes straight out of your margin — silently, since nobody’s comparing actual hours against the assumption. A contract priced for four hours that quietly takes five is losing a quarter of its labor budget every single visit, and you’d never know without tracking it.

This is why logging hours by cleaner and by site, and turning them into actual labor cost automatically, is so powerful. It makes your biggest expense visible at the level it’s actually incurred. You can see which sites are eating more hours than they should, catch the creep, and protect the margin on every contract. Control your labor, and you control your profitability; ignore it, and it quietly bleeds you no matter how full your schedule is.

Win on price, keep on margin

The deeper principle is that a cleaning business is won and kept on two different numbers. You win a contract on price — competitive enough that the client chooses you. But you keep it profitably only on margin — the price actually covering the labor and costs with enough left over. Plenty of owners are good at the first and blind to the second: they win contracts, fill the schedule, and never check whether each one is actually making money once serviced. Knowing both — bidding competitively and tracking whether each contract stays profitable in reality — is what separates cleaning companies that grow from ones that just get busier and more exhausted.

An important note

To be clear, because this is a real business with real obligations: this is about organising and understanding your own numbers — it is not financial, tax, accounting, legal, insurance, or business advice, and it guarantees no result. Any rates or figures here are illustrative examples, not benchmarks; your real numbers depend on your contracts, wages, and situation. Commercial cleaning carries serious requirements — you must follow the licensing, bonding, insurance, employment, and health-and-safety rules that apply where you operate, and those are your responsibility. Consult a qualified professional for tax, payroll, and accounting decisions.

If you want per-site profit calculated for you

I built profit-by-site and automatic labor costing into my commercial cleaning business tracker in Google Sheets — enter each contract’s revenue and log crew hours by site, and it shows the labor cost and net margin of every contract, so loss-makers can’t hide, alongside invoicing, scheduling, and a full dashboard:

👉 Commercial Cleaning Business Tracker for Google Sheets & Excel

Whether you use mine or build your own, stop judging your business by how full the schedule is and start looking at what each contract actually earns. The loss-making site hiding in your overall numbers is the reason a busy month barely covers payroll — and you can only fix it once you can see it. Win the contract on price, keep it on margin, and know both. That’s how a cleaning company grows instead of just running faster to stand still.

This reflects my own perspective and is an organising tool — not financial, tax, accounting, legal, insurance or business advice, and it guarantees no result; figures are examples, and licensing/bonding/insurance/employment/health-and-safety are your responsibility. Cleaning owners: have you ever found a big contract was secretly losing you money? Tell me in the comments.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top