How to Price Commercial Cleaning Services: Forget Cents Per Sq Ft

Price any account from loaded labor cost, production rate and target margin, and name your walk-away number before the client asks for a discount.

CleanTrack360 Team
June 25, 202611 min readUpdated August 1, 2026

Ask ten cleaning contractors what they charge and eight will answer in cents per square foot. Ask the same ten what their fully loaded labor cost per hour is, and the room gets quiet.

That gap is where janitorial companies quietly lose money for years without knowing it. The bid looks competitive, the client signs, the crew shows up, and twelve months later there is revenue but no profit.

Commercial cleaning is priced from hours, not area. Estimate the labor hours a scope actually takes, multiply by your fully loaded labor cost, add overhead absorption and supplies, then divide by one minus your target net margin. Square footage only exists to help you estimate those hours.

Below are the four beliefs that do the most damage to janitorial pricing, what actually holds instead, and the specific action to take on your next walk-through.


Myth 1: Commercial cleaning is priced at so many cents per square foot

Cents per square foot is an output, not an input. It is the number you calculate after you have priced the job so you can compare it to your other accounts.

The reason it fails as a starting point is that two 24,000 sq ft buildings can differ by four hours a night. A single-tenant open office with six restrooms and one breakroom is not the same job as a medical suite with 18 exam rooms, and no per-foot rate can tell them apart.

Frequency breaks the logic too. Cut a building from five nights a week to three and your monthly price does not drop 40 percent, because soil load per visit rises and the fixed tasks per visit do not change.

What to do instead: build hours from the scope, then check the per-foot number

Walk the building and record measurable quantities: carpet area, hard floor area, number of restrooms and fixtures, number of private offices, breakrooms, stairwells, entrances, elevators.

Then apply a production rate to each area type to get planned hours per visit. The ranges below are planning starting points that many operators use before they have their own timed data. They are not data. Time your own crew in your own buildings and replace them.

Area typeIllustrative planning rangeWhat moves it
Open office, carpet, trash and vacuum and spot dust3,000 to 4,500 sq ft per cleaner hourCubicle density, trash cans per person
Private offices, full detail2,000 to 3,000 sq ft per cleaner hourDoor count, desk clutter, glass
Corridors and lobbies, hard floor, dust mop and damp mop4,000 to 6,000 sq ft per cleaner hourObstacles, entrance matting, weather
RestroomsPrice per restroom or per fixture, not per sq ftFixture count, traffic, dispenser types
Medical exam rooms1,000 to 2,000 sq ft per cleaner hourDisinfectant dwell time, waste handling
Open warehouse floor8,000 to 20,000 sq ft per cleaner hourRider vs walk-behind, rack density
Source: ISSA publishes task-level cleaning times in its Cleaning Times reference ("540 / 612 Cleaning Times"). If you bid regularly, buy the current edition rather than relying on numbers passed around in forums.
馃挕 Tip: Restrooms are where per-foot pricing does the most damage. A 24,000 sq ft building with 12 restrooms and one with 4 restrooms will price identically on a per-foot basis and differ by roughly two hours every single night.

Myth 2: Your labor cost is the hourly wage you pay the cleaner

If you pay $17.00 an hour, $17.00 an hour is not what that hour costs you. Payroll taxes, workers compensation, paid time off and non-productive time all land on the same hour, and none of them are optional.

Employer FICA alone is 7.65 percent of wages, split between Social Security at 6.2 percent and Medicare at 1.45 percent. Workers compensation for janitorial class codes varies enormously by state and by carrier, so pull your own rate off your policy instead of guessing.

Source: IRS, Publication 15 (Circular E), Employer's Tax Guide, for FICA and FUTA rates. U.S. Bureau of Labor Statistics, Occupational Employment and Wage Statistics, Janitors and Cleaners (SOC 37-2011), for local wage benchmarks.

What to do instead: build one loaded labor rate and use it in every bid

The table below is an illustrative build-up. The base wage, the state unemployment percentage, the workers compensation rate and the paid time off accrual are all assumptions you must replace with your own figures.

ComponentAssumption used hereCost per hour
Base wageIllustrative$17.00
Employer FICA7.65% (statutory)$1.30
FUTA and state unemployment2.5% assumed, varies by state$0.43
Workers compensation$6.00 per $100 of payroll assumed$1.02
Paid time off and holidays5 days per year on 2,080 hours$0.41
Subtotal, wage plus burden$20.16
Non-productive time8% for travel, setup, supply runs, trainingdivide by 0.92
Loaded labor rate$21.90

Overhead is the second layer, and it is the one most small operators skip entirely. Add up your monthly non-billable costs: office rent, admin and supervisor salaries, general liability and vehicle insurance, phones, software, fuel, equipment repair.

Divide that total by your monthly billable field hours. If overhead is $9,000 a month and your crews bill 1,400 hours, you absorb $6.43 of overhead per field hour. Add it to the loaded labor rate and you get a true cost per hour of $28.33 in this example.

馃挕 Tip: Recalculate your overhead absorption rate whenever your billable hours move more than about 15 percent, up or down. Winning a large account lowers your absorption rate. Losing one raises it, and a bid priced on last year's number is now underpriced.

Myth 3: The lowest competing bid tells you the market rate

A bid spread of two to one on the same building is normal, and it almost never means the market has spoken. It usually means the two bidders priced two different scopes.

Run the arithmetic backwards on the low bid before you believe it. Take Maple Ridge Professional Center, an illustrative 24,000 sq ft building: 18,000 sq ft of open carpeted office, 3,000 sq ft of hard floor corridor and lobby, a 1,000 sq ft breakroom, six two-fixture restrooms, cleaned five nights a week.

Planned hours per visit, using the middle of the ranges above:

  • Open office: 18,000 sq ft at 3,500 sq ft per hour = 5.14 hours
  • Corridor and lobby: 3,000 sq ft at 4,000 sq ft per hour = 0.75 hours
  • Breakroom: 1,000 sq ft at 2,500 sq ft per hour = 0.40 hours
  • Restrooms: 6 restrooms at 20 minutes each = 2.00 hours
  • Prorated periodics: high dusting, vent wipe-down, carpet edging = 0.46 hours
  • Total planned: 8.75 hours per visit

Five nights a week is 21.67 visits a month, so 189.6 labor hours. At the $21.90 loaded rate that is $4,152 of labor, plus $1,219 of overhead absorption at $6.43 per hour, plus $150 in chemicals and liners. Total cost: $5,521.

At a 15 percent target net margin, $5,521 divided by 0.85 gives $6,495. Bid $6,500 a month. That works out to $300 a visit and $0.27 per square foot per month, but you only learned those two numbers after you priced the job.

What to do instead: convert the competitor's number into their hours

Suppose the incumbent is at $4,200 a month. That is $194 a visit. At a billable rate of $33 an hour, they are staffing roughly 5.9 hours a night against your 8.75.

They are not cheaper. They are doing a different job, and the client has three hours a night of work being skipped somewhere. Your proposal should say what those three hours buy, restroom by restroom.

Then write down your walk-away number before you enter the room. At Maple Ridge it is $5,521 a month, the point where you have covered labor and overhead and earned nothing. Any discount conversation happens between $6,500 and that floor, never below it.

馃挕 Tip: Discount frequency or scope, never rate. Dropping Maple Ridge to three nights a week gives back real hours: about 9.6 per visit because soil load rises, 13 visits a month, roughly $4,300. Notice the per-visit price went up to $331 while the monthly price fell 34 percent.

Myth 4: The margin on the proposal is the margin you keep

The 15 percent in the Maple Ridge example is a bid-time margin. It survives only if the crew actually finishes in 8.75 hours.

Say the two-person team clocks 5.1 hours each instead of 4.375, so 10.2 hours a night against 8.75 planned. That 1.45 hour overrun costs $31.75 a visit at your loaded rate, which is $688 a month.

Bid net profit on that account was $979. The overrun quietly removed 70 percent of it, and nothing on the invoice or in the bank balance tells you which account it happened in.

What to do instead: reconcile planned hours against clocked hours every week

You need three numbers per site, per week: planned hours, actual clocked hours, and the variance in dollars at your loaded rate. Set a threshold, something like 8 percent, and investigate anything past it before the month closes.

Weekly account margin reconciliation

  • Planned labor hours for the week, straight from the bid worksheet
  • Actual clocked hours, by person, by site
  • Variance in hours, converted to dollars at your loaded labor rate
  • Overtime hours, flagged separately, since they cost about 1.5 times base plus burden
  • Supply draws against the monthly allowance you built into the price
  • Callbacks or rework visits, with the hours they consumed
  • Scope creep noted by the crew: new tenant suite, added kitchen, extra event cleanup

Overruns have only four causes, and each has a different fix. The bid was wrong, so reprice at renewal. The scope grew, so issue a change order. The method is wrong, so retrain or change equipment. Or the hours are not real, so tighten your time capture.

Scope creep is the most common and the easiest to bill. A tenant moves in, a kitchen appears, the crew absorbs it silently for eight months. Nobody bills for work they never recorded.


What actually holds true about pricing commercial cleaning

Five things survive every market condition and every building type.

  1. Hours drive price. Square footage, fixture counts and frequency are inputs to an hours estimate, nothing more.
  2. One loaded labor rate, used everywhere. Wage plus taxes plus workers compensation plus paid time off, divided by your productive-time factor.
  3. Overhead gets absorbed per field hour. If it is not in the hourly rate, it comes out of your net.
  4. Margin is a divisor, not an add-on. Cost divided by (1 minus target margin), because a 15 percent markup on cost yields about 13 percent margin, not 15.
  5. The walk-away number exists before the negotiation. Write it on the worksheet, then negotiate scope instead of rate.
Key Takeaway: Price = ((loaded labor rate x planned hours) + (overhead per hour x planned hours) + supplies) / (1 - target net margin). Everything else in commercial cleaning pricing is a way of estimating planned hours more accurately.

The operators who hold margin are not the ones with a secret rate card. They are the ones who know, on any given Thursday, whether the Maple Ridge crew is running 8.75 hours or 10.2.


Where CleanTrack360 fits

The math above works on a spreadsheet, and plenty of good companies run it that way. The friction is keeping the bid assumptions and the actual hours in the same place: CleanTrack360's quoting calculator prices on square footage, frequency, labor and supplies, then turns the result into a branded PDF proposal with open tracking so you know when a prospect has read it. Geofenced GPS clock-in and clock-out runs in the crew's phone browser, with a default 150 m radius you can configure per location, which gives you the actual hours to set against the planned hours from the bid. Reports export to CSV when you want to do the variance analysis your own way.

Plans are Starter at $99 a month for up to 5 team members, Pro at $199 for up to 20, and Business at $249 for up to 50, priced per plan rather than per user. There is a 14-day free trial and no credit card required, which is enough time to reprice one account and reconcile it against a real week of clocked hours.

Ready to see it in action?

Start your free 14-day trial. No credit card required.