
How to Price a Commercial Cleaning Quote From Your Own Stopwatch
Last updated: 2026-11-02 · Your payroll provider and your accountant are the authority on your own numbers, not this post.
To price a commercial cleaning quote, time how long the clean takes, multiply those hours by what an hour of labour really costs you, add supplies, overhead and profit, then multiply by the visits per month. The square-foot rate comes out at the end. It doesn't go in at the start. In Ontario the general minimum wage went to $17.95 an hour on October 1, 2026. In my view, a quote you wrote before then needs a fresh look.
That's the whole method. Below are the four steps in order, with every input shown. Then the page you hand the office manager.
Why a per-square-foot number from a guide is someone else's building
I get it: a rate per square foot feels like the industry answer, and an office manager will ask for one. But look at where the published rates come from. William Griffin, president of a cleaning consultancy, wrote his CMM piece in 2011, so treat his dollar figures as history. He put basic janitorial work at 9 to 14 cents per square foot per month. That figure was for office buildings over 300,000 square feet in a metro area. The same piece says a crew there needs 4,500 to 6,000 square feet an hour per worker to compete.
Picture a two-storey dental office on Hurontario Street instead. It isn't that building. Say it has stairs and four washrooms. The reception desk is covered in fingerprints. Griffin says so himself: in his opinion there's no accurate average cost per square foot or production rate that applies in all situations. He also writes that the only reliable numbers are the ones produced by the company doing the work. That's you.
Step 1: Time one clean before you write a number
How long will this office take you? If you can't answer that within a few minutes, you're guessing at the most expensive line on the quote.
Ben Walker, writing for CleanLink, says you don't need to hire an expert, or even be one, to work out your own cleaning times. His list is an open 1,000-square-foot space, a tape measure, painter's tape, and a stopwatch or video camera (he prefers video, which he says helps settle disputes), plus three different people if possible. He has you record at least three to five times per person, then determine an overall average. He notes that people tend to pick up the pace as they become used to their working space. That's why I wouldn't trust the first run alone.
Then turn your rate into minutes for the real building. ISSA's page on how to calculate cleaning times gives the formula: the square footage to be cleaned, divided by the production rate per hour, multiplied by 60 for minutes. Its mopping example asks how long it takes to mop 1,000 cleanable square feet: 1,000 square feet / 5,355 square feet x 60 minutes = 11.2 minutes. Do that for each task (vacuuming, washrooms, trash, dusting) and add them up.
Washrooms don't fit a square-foot rate well. ISSA's restroom method works from the number of fixtures instead: fixtures multiplied by a production rate in minutes. So count the fixtures on your walkthrough and time a washroom on its own.
Step 2: Put a real cost on each hour
The wage isn't the cost. If you have staff, the hour you pay them carries more than the rate on the cheque.
- The wage. Ontario's general minimum wage is $17.95 an hour from October 1, 2026 to September 30, 2027. Job Bank lists the median wage for light duty cleaners in Ontario at $19.00 an hour. That's a provincial median. It isn't a Georgian Bay figure.
- CPP. The CRA's 2026 table lists the employee and employer contribution rate (%) as 5.95.
- EI. The CRA says the employer's premium is 1.4 times the employee's.
- WSIB, vacation pay and paid travel time. They're different for every business. Get yours from WSIB and your payroll provider, not from a post.
Add those up per hour and you have your loaded labour cost. Multiply it by the hours from Step 1. If you clean alone, use the hourly rate you need to pay yourself; my hourly rate calculator works it out from your costs and the hours you can actually bill.
Step 3: Supplies, overhead and the margin
Treat Griffin's rough cost split as a check, not a target. He puts labour at 55 to 65 percent of the cost before supervision, supplies at roughly four percent and equipment at about two percent. Paper and soap can run upwards of seven percent on top, which matters a lot if the client expects you to stock the washrooms.
So ask one question on the walkthrough and write the answer down: who buys the paper towels? If it's you, it's a line on the quote. If it's them, say so in the scope.
Then the margin. Here's a simple napkin check, with every input shown. Take your loaded labour cost per visit (Step 2 times Step 1). Divide it by the share of the price you want labour to be (say 55 percent, the low end of Griffin's range). That's your visit price, with room left for everything else. One worked line, per hour on site: Job Bank's $19.00 median plus employer CPP at that 5.95 rate is about $20.13 before EI, WSIB and vacation pay. Divide $20.13 by 55 percent and you charge at least $36.60 for each hour on site. If the result looks high next to what the client pays now, check your timing before you cut your rate.
Step 4: Frequency turns a visit price into a monthly quote
Offices buy cleaning by the month, so quote it by the month. Visits per week, times 52, divided by 12, gives visits per month. Multiply that by the visit price. A three-nights-a-week office gets a different monthly number from a five-nights-a-week one, even if each visit takes the same time.
Two things move the price per visit, and both belong in the quote as their own lines rather than buried in the rate:
- After-hours access. Night work changes who you'll find to do it. Price what it costs you, and name it.
- Periodic work. Think carpet extraction or strip-and-wax. Quote these per job, not inside the monthly price, or you'll do them for free in month four.
What goes on the quote you hand over
A commercial client compares quotes line by line. Make yours easy to compare:
- The rooms and the tasks in each, and how often (nightly, weekly, monthly).
- What's excluded, in plain words. Interior windows? The fridge?
- Who supplies paper and soap.
- Access: who holds the keys, and who you call if the door's locked.
- The monthly price, the periodic jobs priced separately, and HST on its own line. Ontario's HST rate is 13% (see the CRA's rate table). Whether you register early is a separate decision, and my notes for when you start a cleaning business here in Ontario walk through it.
- How either side ends the contract, and the notice it takes.
If you've priced by gut feel until now, my six-month service business pricing experiment is worth ten minutes before you send the first commercial bid.
Is the walkthrough worth the drive?
Yes, almost always. A floor plan gives you square feet. That's all it gives you. It won't show you the boardroom carpet, or that the staff kitchen hasn't been wiped since Thanksgiving. Bring the tape measure, count the washroom fixtures, and ask when the last cleaner left and why. That last answer can tell you more about the job than the floor plan does.
Where FixyFlow fits, and where it doesn't
FixyFlow doesn't work out your price. You add the line items yourself. I'm not going to pretend the steps above are a feature.
What it does is the part after the math. Inside FixyFlow, the cleaning service software I built, you add the estimate to the job as line items with descriptions and amounts, and the client sees it on their tracking page with a large "Approve Estimate" button. When they approve, you get notified and the approved amount is recorded. On the first night, the same job can send the text that says you're on the way (my post on text for cleaning services has the wording for each one).
If you clean two offices and a spreadsheet works fine, you don't need any of this; keep the spreadsheet and use the steps above. If you want to see it, you can try it on one office with a free trial of field service software. The free plan gives you 5 jobs a month and 20 SMS. When you outgrow it, my field service software pricing page lists Starter at $19 USD (about $25 CAD) a month for 50 jobs and 200 SMS.
— Lasse
Built FixyFlow in Collingwood