Pricing commercial cleaning is a labor estimate wearing a suit. Labor is the biggest cost in almost every janitorial price, so if your hours are right and your loaded wage is right, the rest is arithmetic. If either is wrong, no amount of clever presentation will save the contract. In CMM's 2024 survey of building service contractors, 39% named maintaining profitable margins as a challenge to a large extent. Most of that pain starts at the bid.
This guide walks through the three ways to quote (per square foot, hourly and per visit), then one method that produces all three from the same numbers. The worked example is hypothetical. Use the method with your own wages, production rates and overhead.
What are the three ways to price commercial cleaning?
Commercial cleaning is priced per square foot, per hour or per visit, and all three should come from the same labor estimate.
| Method | How it is quoted | Best for | Watch out for |
|---|---|---|---|
| Per square foot | A rate per square foot, usually turned into a monthly figure | Large, uniform space: offices, warehouses, schools | Restroom counts, break rooms and hard floors change the hours a lot at the same square footage |
| Hourly | A rate per labor hour, billed on hours worked | Small jobs, one-off deep cleans, clients who want to control scope | Clients see every hour and may push to cut them; you are not rewarded for working faster |
| Per visit | A flat fee per service visit | Small offices, retail units, medical suites cleaned two or three times a week | Easy to underprice if the visit length is guessed rather than timed |
Most recurring contracts are presented as a fixed monthly price. Buyers like it because it is predictable. You like it because an efficient crew keeps the difference.
How do you estimate the labor hours a building needs?
Estimate hours by dividing the cleanable square footage of each area by a realistic production rate, then adding time for fixtures like toilets and sinks.
ISSA's method puts it simply: cleaning time equals square footage divided by the production rate per hour, multiplied by 60 to give minutes. ISSA's own example is mopping 1,000 square feet at 5,355 square feet per hour, which comes to about 11.2 minutes. Restrooms are often better timed per fixture; ISSA's example uses 10 fixtures at 3 minutes each for 30 minutes.
Three rules keep the estimate honest:
- Split the building by area type. Open office, private offices, restrooms, break rooms, lobbies and hard floor corridors all clean at different speeds. One blended rate for a whole building is the fastest way to underbid.
- Use your own timed rates when you have them. ISSA publishes its Cleaning Times as a benchmark, not a promise. Time your crew on a similar building and use that.
- Count what the walk-through shows. Fixture counts, trash receptacles, desk density, carpet versus hard floor, and whether the client wants dusting of high surfaces every night or monthly. Our commercial cleaning walk-through checklist lists what to record.
What does a cleaner actually cost you per hour?
Your real hourly cost is the wage plus payroll taxes, workers' compensation, unemployment insurance, paid time off and any benefits, and it is always well above the wage on the paycheck.
Start from local wage data, not a guess. The U.S. Bureau of Labor Statistics reports a national median of $17.71 an hour for janitors and building cleaners in 2025, and a median of $17.21 in the services to buildings and dwellings industry, which is where contract cleaning companies sit. Your city may be well above or below that, and BLS publishes state and metro wage data you can check.
In Canada, the Job Bank reports a national median of $19.74 an hour for light duty cleaners (NOC 65310) for 2023 to 2024, with provincial medians ranging from $17.00 in Manitoba to $20.47 in Quebec among the provinces.
Then add the burden. Some parts are fixed by law. The IRS sets the employer share of Social Security at 6.2% and Medicare at 1.45%. Others vary by state and carrier: state unemployment insurance, workers' compensation class rates, general liability allocated per hour, and paid leave where your state or province requires it. Ask your payroll provider and insurance agent for your actual numbers. A burden figure copied from a blog is a guess about someone else's business.
How do you turn hours into a price?
Multiply monthly hours by your loaded hourly cost, add supplies, then divide by one minus your overhead and profit percentage to get the monthly price.
Written as a formula:
Monthly price = (monthly labor hours × loaded hourly cost + monthly supplies) ÷ (1 − overhead and profit as a share of revenue)
Dividing, rather than multiplying by 1 plus a markup, is deliberate. A 35% markup on cost is not a 35% margin on the price. If you want overhead and profit to be 35 cents of every dollar the client pays, you divide by 0.65.
What does a full commercial cleaning price look like? (hypothetical example)
Here is a hypothetical example using round, clearly assumed numbers. It is not a quote, a market rate or a recommendation. It shows the method.
The building (hypothetical): a 20,000 square foot office, cleaned five nights a week.
Assumptions for this example only:
- Blended production rate after splitting the areas: 3,500 square feet per hour
- Wage: $18.00 an hour, close to the BLS national median
- Burden: 20% on top of wages, giving a loaded cost of $21.60 an hour
- Supplies: $150 a month
- Overhead and profit target: 35% of the price
- Visits per month: 5 × 4.33 weeks = 21.65
| Step | Calculation | Result |
|---|---|---|
| Hours per visit | 20,000 ÷ 3,500 | 5.71 hours |
| Hours per month | 5.71 × 21.65 | 123.7 hours |
| Labor cost per month | 123.7 × $21.60 | $2,672 |
| Direct cost per month | $2,672 + $150 supplies | $2,822 |
| Monthly price | $2,822 ÷ 0.65 | about $4,342 |
Now express that one price three ways, purely as a check:
- Per square foot per month: $4,342 ÷ 20,000 = about $0.22
- Per visit: $4,342 ÷ 21.65 = about $201
- Per labor hour billed: $4,342 ÷ 123.7 = about $35.10
If the per square foot figure looks far out of line with what you know wins in your market, go back and check the production rate and scope before you touch the margin. The usual culprit is hours, not profit.
When should you use per visit pricing for small accounts?
Use per visit pricing for small accounts where the visit length is short and predictable, and set a floor so no visit costs you money.
A small dental suite or retail unit cleaned twice a week might take an hour and a half per visit. The per square foot method breaks down at that size, because drive time, parking and setup are a bigger share of the job. Build a minimum visit charge that covers travel time, a minimum paid shift if your crew is guaranteed one, and supplies. Then quote either the minimum or the calculated price, whichever is higher.
For small accounts, also look at route density. A 90 minute job next door to three existing clients is worth more to you than the same job 40 minutes away, even at the same price.
What costs do cleaning companies forget to price in?
The costs most often left out are supervision, travel between sites, training time, equipment wear and the extra hours of the first month.
Use this checklist before any price leaves your desk:
- Supervisor or quality inspection time, charged to the account
- Drive time and mileage between sites on the route
- Start-up hours: the first two to four weeks usually run long while the crew learns the building
- Periodic work in scope: carpet extraction, strip and wax, window washing, high dusting. Price it separately or build it into the monthly figure, and say which in writing
- Equipment depreciation: vacuums, auto scrubbers, carts
- Paper and liners, if you supply them, priced against headcount
- Holidays the building is closed, if the price is per month rather than per visit
- Minimum wage changes due in the next 12 months in your state, province or city
- An annual price adjustment clause in the agreement
How do you check your price against the market without racing to the bottom?
Check your price against the buyer's budget and the incumbent's price where you can learn them, but never lower your price by cutting hours you know the building needs.
Ask on the walk-through what they pay now and what is wrong with the service. Many buyers will tell you. If you are well above the incumbent, ask yourself whether the incumbent is underpricing hours (common, and often the reason they are being replaced) or whether your production rates are too cautious.
If the numbers still do not work, change the scope rather than the hours. Offer a lower frequency for low-traffic areas, move some tasks to weekly, or split day porter work from night cleaning. That keeps the cleaning honest and gives the buyer a real choice. Our guide on janitorial bidding mistakes covers the traps in more detail, and how to bid a janitorial job walks through the bid itself.
How should you present the price in a proposal?
Present one fixed monthly price, a clear scope with frequencies, and the assumptions the price rests on, so the buyer can compare you fairly.
Put the monthly figure near the top, the task and frequency schedule in a table, and state what is excluded or quoted separately (periodic floor work, paper products, event cleanups). Include the square footage you priced from. If a competitor quoted a smaller building, the buyer will see it. Our commercial cleaning proposal template gives you a structure to copy.
Where does lead cost fit into your pricing?
The cost of winning the contract belongs in your overhead, because every contract you close has to pay for the ones you bid and lost.
Work out how much you spend on marketing, lead buying and sales time per contract won, then spread that across the contract's first year. A contract that looks healthy at 35% overhead and profit looks different if it took ten bids to win. The cost per lead calculator helps you put numbers on it, and our guide to the cost of commercial cleaning leads explains the pricing models you will meet.
If you would rather spend your time pricing walk-throughs than chasing prospects, LeadWharf finds the person who signs off on cleaning in your area, confirms they want recurring work, and sends you the contact to quote. You pay per qualified lead. You can see how it works or book a call to check whether your area is open.
- U.S. Bureau of Labor Statistics, Occupational Outlook Handbook: Janitors and Building Cleaners
- ISSA, How to Calculate Cleaning Times (June 2022)
- IRS, Topic no. 751 Social Security and Medicare withholding rates
- Job Bank (Government of Canada), Light duty cleaner wages, NOC 65310
- CMM, 2024 Building Service Contractor Survey Report
