How to Price Commercial Cleaning Contracts Without Undercharging
Listen To This Article
Narrated from this CleanLog article.
A cleaning company wins a 20-site office contract. Six months in, the operations manager runs the numbers and realizes they're netting under 5% after accounting for actual labor hours, supply consumption, and supervisory time. They've been doing the work. They haven't been making money.
This situation is common enough that ISSA tracks it as an industry-wide problem. Labor accounts for 50-70% of costs in commercial cleaning, but pricing mistakes usually aren't in the labor estimate. They're in everything else.
If you're working on your bid strategy alongside your pricing model, How Commercial Cleaning Companies Win More Bids covers how to frame value alongside price.
What most pricing models miss
Most cleaning company pricing starts with hours and stops there. Cleaners needed, hours per visit, hourly rate, multiply, add a margin. The math looks right until you're six months in and wondering where the profit went.
Supplies are the first gap. Most companies estimate supply costs loosely and don't track actuals against estimates. If your chemical and equipment costs per visit are 15% higher than what you priced, you'll know eventually. By then you've lost that margin across dozens of visits.
Travel time is the second gap. Moving cleaners between sites has a cost. If your schedulers are filling gaps with cleaners who live 40 minutes from the site, you're paying for transit that wasn't in the bid.
Supervisory overhead is the third, and usually the largest. The time your operations manager spends visiting sites, handling client calls, dealing with complaints, and coordinating cover staff is real labor cost. It's almost never included in contract pricing.
Building a floor price
A floor price is the number below which you're losing money. It's not your quote. It's the lower bound your quote should never cross.
To build it, you need four inputs for each contract:
- Direct labor: Actual cleaning hours per visit at your fully-loaded hourly rate, including taxes, insurance, and benefits overhead. BSCAI data shows true employment costs typically run 20-30% above base wages.
- Supplies: Tracked actuals from comparable sites, not estimates. If you don't have comparable data, $0.04-0.08 per square foot per month is a reasonable starting point.
- Travel and logistics: Time for cleaners to get to site and between sites, priced at your operational hourly cost.
- Supervisory overhead: Budget 1-2 hours of management time per site per month for a well-run contract. More for new sites, high-touch clients, or locations with access complexity.
Add those together. That's your cost base. Your floor price is cost base divided by (1 minus your target margin). If you're targeting 15% net, your floor price is cost base / 0.85.
Pricing the variables most bids skip
| Variable | How to estimate it | Common mistake |
|---|---|---|
| After-hours premium | 10-20% uplift on labor rate | Treating evenings the same as days |
| Weekend and holiday rates | 1.25-1.5x multiplier | Forgetting to price into recurring contracts |
| Access complexity | +15-30 min setup per visit | Ignoring sign-in, security, escort requirements |
| Specialist tasks | Separate line item from base rate | Bundling floor care or window cleaning into hourly |
| Contract term risk | Shorter contracts need higher margin | Pricing a 12-month contract like a 36-month |
Reviewing contracts against actuals
Pricing a contract correctly at the start isn't enough. Costs change. Minimum wage increases. Supply prices shift. A contract you priced accurately in January may be underwater by October if you haven't reviewed it.
Commercial cleaning companies with healthy margins typically do a contract profitability review every six months. They compare actual labor hours and supply spend against the contract estimate, and they flag contracts where the variance is widening.
ISSA benchmarks put net margins on recurring commercial contracts at 10-28%. If your portfolio-level margin is below 10%, a pricing review will usually surface a cluster of contracts where the estimates don't match actuals.
When to walk away
Not every contract is worth taking. If a prospect's budget is below your floor price, you can't fix that by operating more efficiently. You can sharpen your estimates, but you can't create margin where the price doesn't allow for it.
Walking away from underpriced work is a pricing decision, not a failure to close. The cleaning companies that struggle to grow profitably are almost always the ones that prioritized revenue over margin when bidding.
CleanLog tracks site-level labor hours and operational time so you have the actuals you need to price accurately and catch contract drift before it compounds. See how it works.
Get the next post
Practical writing on scheduling, payroll, and daily ops. About once a month.