Commercial cleaning owner reviewing cleaning contract pricing for an office, comparing quoted price per square foot against actual labour hours

Cleaning Contract Pricing: Why Per-Square-Foot Is the Wrong Place to Start

Pricing

There's no correct commercial cleaning pricing per square foot, and treating one as a starting point is how contracts get underpriced. Cleaning contract pricing runs the other way. You build the number from your own measured hours and wages, then divide by square footage to see where you landed. The per-foot figure is an output. Reading it as an input means quoting a benchmark built on somebody else's production rate, in somebody else's market, on a building you've never walked.

I've signed a bid at nine cents a foot because nine cents sounded like the going rate. It was, for somebody. Not for my crew, at that wage. I own ProCleanings in New York and Verdant in Texas, and the same nine cents means two different things in those markets. The number wasn't wrong. My use of it was.

A price per square foot is a receipt, not a recipe. It records a decision about hours and wages that somebody already made. When you borrow it, you're inheriting their assumptions without ever seeing them.

Why is price per square foot the wrong place to start?

Because it's the last number in the calculation, not the first. Anyone teaching you how to price a commercial cleaning contract from a per-foot figure has it backwards, and running the maths in that direction leaves every assumption underneath invisible.

Think about what a per-foot price is. Somebody costed a building — hours, wage, burden, supplies, overhead, margin — got a monthly number, and divided by square footage. Every decision is compressed into it, none legible from outside.

Now you apply it to your building. You've imported their crew's speed, their wages, their scope, their equipment, and decided none of it. You copied a conclusion, skipped the argument.

Clients love it because it's comparable. One figure, two bidders, easy. But comparability isn't accuracy — a client comparing nine cents against fourteen is comparing two definitions of clean.

What does a per-square-foot benchmark actually assume?

Three things, all of which vary enormously between operators: a production rate, a wage, and a scope of work.

Start with wages, because that one's measurable. US Bureau of Labor Statistics data put the median hourly wage for janitors and building cleaners at $17.27 in May 2024, the bottom tenth under $13.26 and the top tenth above $23.58 — a 78% spread. A single per-foot benchmark can't be right for an operator paying $13 and one paying $24 at once. If you want the published ranges anyway, commercial cleaning rates per square foot lays out where they hold and where they fall apart.

Production rate is the second assumption, the one nobody states out loud, and it's why janitorial contract pricing goes wrong so quietly. Published rate sets are useful. What's striking is what their publishers say about them. ISSA describes its 612 Cleaning Times as a bidding and estimating guide rather than a time-motion study, and recommends developing rates specific to your own buildings. The body that sells the benchmark tells you to measure your own.

Scope is the third, and it's the sneakiest. Two bids on the same building can differ widely because one includes the glass and the other doesn't. There's no commercial cleaning pricing formula that survives a fuzzy scope. Pin the scope down before the quote goes out, while it's still a negotiation and not an argument.

What did a nine-cent quote actually cost?

On a 15,000 square foot office cleaned twice a week, a bid priced at 9.3 cents a foot ran a $341 monthly loss once the crew's real speed showed up.

Picture how this plays out. These figures are illustration, not a real account, and the wage sits inside the BLS range above.

15,000 sq ft office, 2 nights per week, $19.25 base wage + 26% burden
LineWhat the bid assumedWhat happened
Hours per visit4.56.5
Implied production rate3,333 sq ft/hr2,308 sq ft/hr
Labour hours per month39.056.3
Monthly cost$1,245$1,741
Monthly revenue$1,400$1,400
Result11% margin$341/month loss

Now rebuild that bid at the crew's real speed, target a 20% margin, and the price comes out at $2,176 a month. Divide by 15,000 and you get 14.5 cents a foot.

Nine point three cents. Fourteen point five cents. Same building, same scope, same crew. The only thing that changed was which production rate the number stood on. Neither is a market rate. Both are arithmetic wearing a disguise.

How do you find your own production rate?

You time real shifts on your own buildings with your own people, then divide cleanable square footage by the hours it actually took. Published janitorial production rates are a starting point, but the only rate that prices your contract is the one you measured.

That's the whole method. Unglamorous, takes a quarter, and it's the only number in this post that belongs to you.

The obstacle is rarely willingness. Most operators just can't reconstruct what happened. Ask an owner how long the Tuesday crew spent at the medical plaza six weeks ago and you'll get a shrug, and the guess will be generous, because memory rounds in your favour. A record doesn't. Whatever commercial cleaning software you run, ask it one thing: when did they arrive, and when did they finish?

ProTeams records both. A check-in carries a timestamp, service completion carries one, and Proof of Service photos come back flagged verified when captured on-site or unverified when uploaded from somewhere else. What it won't do is turn that into a production rate for you. There's no labour-utilisation reporting and no custom report builder. You'll be exporting timestamps into a spreadsheet and doing the division yourself, which is honest work and takes about ten minutes a month.

What if the client insists on a per-square-foot price?

Give them one. Just make sure it's yours, derived from your hours, and be ready to show the arithmetic underneath it.

Property managers and RFPs keep asking for cents per foot, and refusing looks evasive rather than rigorous. So answer. The whole of how to price a janitorial contract comes down to this: report a number you built, don't match one you found.

That distinction has teeth in a negotiation. When a client says fourteen cents is high, an operator who derived it can say which hour disappears at twelve. One who copied it can only shrug and shave — and shaving a number you don't understand is how the next $341 goes missing. If you want the full walkthrough, how to quote a commercial cleaning job works the labor math step by step.

Frequently Asked Questions

How much should I charge per square foot for commercial cleaning?

There isn't a number worth giving you. A per-square-foot price is what you get after costing the hours, not before. Work out labor hours from your own production rate, add burden, supplies, and overhead, apply your margin, then divide by square footage. That result is your per-foot price for that building.

Is there an industry standard production rate for office cleaning?

Published rate sets exist, including ISSA's 612 Cleaning Times, APPA's custodial staffing guidelines, and BSCAI's production rate recommendations. ISSA itself describes them as an estimating guide rather than a time-motion study, and says the best practice is developing rates specific to your own buildings.

Why do two cleaning companies quote different prices for the same building?

Mostly production rate and wages. US Bureau of Labor Statistics data for May 2024 put the median wage for janitors and cleaners at $17.27 an hour, the bottom tenth under $13.26 and the top tenth over $23.58. Two honest bidders in different markets can be 78% apart on labor alone.

What do I say to a client who wants a price per square foot?

Give them the number, then show the hours underneath. A per-foot figure you derived is defensible, and you can name exactly which hour comes out if they want it lower. One you copied can't be defended, because you don't know what it assumed.

Does ProTeams price contracts or calculate margin?

No. There's no bidding tool, no labor-utilization reporting, no per-account profitability, no custom report builder. ProTeams records when a cleaner checked in and when the service was marked complete. Turning that into hours and comparing against your estimate is your job.

The number under the number

Every per-foot price you've been quoted is a story about somebody's crew — how fast they move, what they're paid, what they touch. Borrow it and you're betting your margin their story is yours too. You won't know until month nine, and by then the only lever left is the one you should have pulled before signing.

Measure your own building. Then quote whatever cents that comes to.

Find out in week two, not month nine

Your bid assumed a number of hours. Your crew is spending a different number of hours. The gap between those two figures is your margin, and it's invisible until somebody writes down when the shift started and when it ended.

ProTeams.io helps commercial cleaning companies centralize the systems that keep field operations moving:

  • Crew scheduling and shift check-ins
  • Field communication between office staff, supervisors, and cleaners
  • Issue tracking and service requests
  • Attendance visibility and field accountability
  • Checklists and task completion follow-up
  • Operational reporting across clients and locations

Get the hours on record, and your next bid stands on something you measured.

Start your free trial or schedule a demo.

Related reading

Damon Cleveland
Founder, ProTeams · Owner-operator, ProCleanings (NYC & NJ) and Verdant (TX)

13 years running commercial cleaning operations; building software since 1995. He builds ProTeams from problems he's lived on real job sites.

More from Damon Cleveland →
Real time visibility, proof of service, and no-show alerts
Book Your Demo