How to price commercial cleaning jobs
Most cleaning companies that struggle aren't short of work. They're short of margin, because the job was priced on a guess. Here's a step-by-step way to price commercial accounts so every contract pays you, plus a free worksheet to do it.
The three ways to price commercial cleaning
| Method | How it works | Best for |
|---|---|---|
| Per hour | You charge an hourly rate for each cleaner on site. | One-off deep cleans and jobs where the scope is hard to pin down. |
| Per square foot | You charge a rate per square foot cleaned, usually per month. | Large, simple spaces like open offices and warehouses with offices. |
| Flat monthly | One fixed price a month for an agreed scope and schedule. | Recurring office and facility contracts. Most clients prefer it. |
Whatever you show the client, work it out the same way underneath: how long the work takes, what that time costs you, and what you need to earn on top. A flat monthly price is just that calculation, packaged so the client sees one predictable number.
Step 1: Walk the building before you price it
Never price a commercial account from a phone call. Walk it, ideally at the time you'd clean it. Write down:
- Square footage, and how it splits into offices, restrooms, kitchens, hallways and storage.
- Fixtures that take time: toilets, sinks, urinals, glass doors, stairs.
- Floor types: carpet to vacuum, hard floors to mop, anything needing machine work.
- How often each area needs cleaning. The lobby might be daily and the conference rooms weekly.
- Access and timing: keys, alarm codes, after-hours only, parking.
- Extras the client mentions now and will expect later: interior windows, fridge clean-outs, high dusting.
Take photos of each area. They help you price, and they help you settle "that was always included" conversations later. For the full list of questions, counts and red flags, see what to check on a commercial cleaning walkthrough.
Step 2: Estimate the time per visit
Time is the biggest cost in cleaning, so this is where pricing goes right or wrong. Estimate how long each area takes, room by room, then add travel between floors, setup and lockup.
The best source is your own crew. If you've cleaned similar buildings, use what those really took. Trade groups such as ISSA publish standard cleaning times you can use as a starting point. Treat any published rate as a starting point and adjust for the building in front of you.
Then check yourself after the first month. Compare the time you priced with the time your crew actually clocks on site. If they don't match, fix the price at renewal, not five years from now.
Step 3: Work out what an hour of labor really costs you
The wage you pay is not your labor cost. Add everything an hour of work costs you:
- The hourly wage
- Payroll taxes
- Workers' compensation insurance
- Paid time off and any benefits
- Training, and time paid that isn't on site (driving between buildings, picking up supplies)
This "loaded" labor cost is often well above the wage. Ask your accountant or payroll provider for your real figures, and use those.
Step 4: Add supplies, overhead and profit
- Supplies and equipment: chemicals, liners, paper goods if you provide them, and wear on vacuums and machines.
- Overhead: your share of insurance, vehicles, software, phones, office and admin time. Many owners spread overhead as a percentage on top of labor.
- Profit: what you keep after everything is paid. Decide this on purpose. It's what pays for slow months, new equipment and growth.
Step 5: Turn it into a monthly price
For a recurring contract, convert visits per week into visits per month by multiplying by 4.33, the average number of weeks in a month. Then add it all up:
Monthly price = (labor + supplies + overhead) ÷ (1 − profit margin)
Dividing by (1 − margin) rather than adding a percentage makes sure your profit is a share of the price, which is how you'll see it on your books.
Worked example (example numbers only)
These figures show the method. They are not market rates. Use your own costs.
| Building | 5,000 sq ft office, cleaned 3 evenings a week |
| Time per visit | 2.5 hours |
| Visits per month | 3 × 4.33 = 13 |
| Labor hours per month | 13 × 2.5 = 32.5 hours |
| Loaded labor cost (example) | 32.5 × $24 = $780 |
| Supplies (example) | $60 |
| Overhead (example: 15% of labor) | $117 |
| Total cost | $957 |
| Target profit margin (example) | 20% |
| Monthly price | $957 ÷ 0.80 = $1,196, round to $1,200 |
Shown other ways, that's about $92 a visit or $0.24 per square foot per month. Quote whichever the client understands best. The math underneath stays the same.
Step 6: Check the price against the real world
- The client's budget: if your price is far above what they pay now, find out what their current cleaner leaves out before you cut anything.
- Your local market: ask other owners and suppliers what's typical in your area, and know where you sit.
- Your schedule: a building that fits between two of your existing routes is worth more to you than one across town.
If you have to come down, take things out of the scope rather than taking money out of your margin. Offer a less frequent schedule, or make extras like interior windows optional add-ons.
Common pricing mistakes
- Pricing from the wage instead of the loaded labor cost.
- Forgetting travel, setup and lockup time.
- Leaving extras undefined, so "while you're there" becomes free work.
- Never re-checking the time a building really takes.
- No price review in the contract, so costs rise and the price doesn't. See what to put in a commercial cleaning contract.
How JobTill helps
- Walkthroughs: walk the building room by room on your phone, with notes and photos per area, then turn it into a proposal.
- Proposals with options: offer weekly, every-other-week or monthly prices in one proposal, and the client picks online.
- Real times on every visit: crews clock in and out on each job, so you can compare the time you priced with the time it really takes.
JobTill does the arithmetic on your rates; the price is always yours to set. Start a 14-day free trial. No credit card needed.