·Business Growth

5 Pricing Mistakes That Kill Cleaning Company Profits

The most common pricing mistakes commercial cleaning companies make when bidding on contracts — and how to fix each one. Based on ISSA rates and real-world examples.

5 Pricing Mistakes That Kill Cleaning Company Profits

Every cleaning company owner has had that moment: you win a contract, celebrate, start the work — and then realize three months in that you're barely breaking even. Or worse, losing money.

Most unprofitable contracts aren't caused by bad luck. They're caused by pricing mistakes that happen before the bid is even submitted. Here are the five most expensive ones.

Mistake 1: Using Wage Instead of Burdened Cost

This is the most common — and most expensive — pricing mistake in the industry.

What it looks like: You pay your cleaners $16/hour, so you use $16/hour in your bid calculations.

Why it's wrong: $16/hour is what the cleaner takes home. It's not what you pay. On top of that wage, you owe:

  • FICA: 7.65% ($1.22/hr)
  • FUTA: 0.6% ($0.10/hr)
  • SUTA: 2-4%+ depending on state ($0.32-$0.64/hr)
  • Workers' compensation: 3-5% ($0.48-$0.80/hr)
  • Benefits: if applicable

Your $16/hour cleaner actually costs you $18-$20/hour depending on your state.

The impact: On a contract requiring 132 labor hours per month (a typical 15,000 sq ft office cleaned 5x/week), using wage instead of burdened cost means your labor calculation is off by $264-$528 per month. That's $3,168-$6,336 per year in margin you thought you had but don't.

The fix: Calculate your burdened labor rate for your state. Use that number — not the raw wage — in every bid. If you operate in multiple states, calculate burden separately for each one.

Mistake 2: Estimating Labor Hours By "Feel"

What it looks like: You walk a building, look around, and think "My crew can probably do this in about 4 hours." You bid based on that gut estimate.

Why it's wrong: Human estimation of cleaning time is consistently optimistic. We underestimate how long tasks take because we think about the "happy path" — a clean building, experienced cleaners, good equipment, no interruptions.

The ISSA 612 standard exists specifically because gut estimates are unreliable. A 15,000 sq ft medical office with 8 restrooms, carpeted common areas, and hard-floor treatment rooms requires 12-13 hours of cleaning per visit when you break down each task by production rate.

Walk that same building and most owners would estimate 6-8 hours. That's 40-50% low.

The impact: Underestimating by even 2 hours per visit × 22 visits/month × $18.25 burdened rate = $803/month in unaccounted labor cost.

The fix: Use ISSA 612 production rates (or your own tracked rates) to calculate hours task by task:

| Task | Area/Count | Rate | Hours | |------|-----------|------|-------| | Vacuum carpet | 10,000 sq ft | 3,250 sq ft/hr | 3.08 | | Damp mop | 5,000 sq ft | 4,750 sq ft/hr | 1.05 | | Restrooms | 8 restrooms | 12 min each | 1.60 | | Trash | 30 cans | 2.5 min each | 1.25 | | Dusting | 15,000 sq ft | 7,000 sq ft/hr | 2.14 |

This takes 15 minutes with a calculator. It saves you from bidding 40% below cost.

Mistake 3: Confusing Markup With Margin

What it looks like: Your total cost is $4,000/month. You want a "25% profit," so you add 25%: $4,000 × 1.25 = $5,000. You think your margin is 25%.

Why it's wrong: Your margin is actually only 20%.

  • Markup is profit as a percentage of cost: ($5,000 - $4,000) / $4,000 = 25% markup
  • Margin is profit as a percentage of price: ($5,000 - $4,000) / $5,000 = 20% margin

When your accountant reports margins at year-end, they're using the margin formula, not markup. So that "25% profit" you thought you were making on every contract is actually 20%.

The impact: On $50,000/month in revenue, confusing markup and margin means you think you're making $12,500/month in profit when you're actually making $10,000. That's $30,000/year less than you think.

The fix: Always use margin, not markup, to set your prices:

Price = Cost / (1 - Margin%)

For a 25% margin: $4,000 / 0.75 = $5,333/month (not $5,000).

The industry standard for commercial cleaning is 10-28% margin depending on facility type and contract size. Know your target and use the margin formula.

Mistake 4: Ignoring Supply Costs

What it looks like: You calculate labor cost carefully, add your margin, and submit the bid. Supplies come out of "overhead" — you don't break them out per contract.

Why it's wrong: Supply costs vary significantly by facility type:

| Facility Type | Supply Cost (% of labor) | |---------------|-------------------------| | General office | 3-5% | | Medical/healthcare | 7-10% | | School/education | 5-7% | | Industrial | 4-6% | | Retail | 3-5% | | Restaurant/food service | 8-12% |

A medical facility might need specialty disinfectants, biohazard supplies, and EPA-registered products that cost 2-3x what you'd spend on a standard office.

The impact: On a $5,000/month medical cleaning contract, ignoring the difference between "standard" supplies (3%) and "medical" supplies (8%) means you're missing $250/month in cost. Over a 3-year contract, that's $9,000.

The fix: Estimate supply costs explicitly for each bid, based on facility type. Three approaches:

  1. Percentage of labor cost (simplest): Use the facility-type percentages above
  2. Per-square-foot estimate: $0.03-$0.08/sq ft/month depending on type
  3. Itemized estimate (most accurate): List each supply category and estimate monthly cost

Even the simple percentage method is far better than ignoring supplies entirely.

Mistake 5: Not Accounting for Transition and Travel Time

What it looks like: You calculate cleaning hours based on task production rates and get a clean total. You bid based on that.

Why it's wrong: Production rates measure how fast a task is performed — not the total time a cleaner spends on site. Between tasks, your crew:

  • Moves between areas and floors
  • Fills and dumps mop buckets
  • Retrieves supplies from the closet
  • Sets up and breaks down equipment
  • Signs in/out at security desks
  • Waits for elevators in multi-story buildings

This transition time typically adds 8-15% to the calculated task hours.

Additionally, if your crew drives between buildings during a shift, that travel time is on your dime.

The impact: A building that calculates at 10 task hours actually takes 11-11.5 hours when you include transitions. That's 1-1.5 unaccounted hours per visit. At 22 visits/month and an $18.25 burdened rate, you're eating $401-$602/month in unbilled labor.

The fix: Add a transition factor to your calculated hours:

  • Single-floor, simple layout: add 8%
  • Multi-floor or complex layout: add 10-12%
  • Multi-building campus: add 12-15%

Build this into your bid as a line item so you don't forget it.

The Compound Effect

These mistakes don't happen in isolation. A typical bid that makes all five mistakes might look like this:

| Source | Monthly Under-Bid | |--------|------------------| | Using wage instead of burdened cost | -$400 | | Underestimating labor hours | -$600 | | Markup vs margin confusion | -$300 | | Ignoring supply costs | -$200 | | Missing transition time | -$300 | | Total | -$1,800/month |

On a contract you thought would make $1,500/month in profit, you're actually losing $300/month. And you won't discover it until the quarterly review, by which point you've bled $900 on a contract you can't easily exit.

Fix All Five at Once

Each of these mistakes has a straightforward fix. The challenge is remembering to apply all of them, every time, on every bid.

BidLoom handles all five automatically:

  • Burdened labor cost calculated from your state-specific rates
  • ISSA 612 production rates for accurate hour estimates
  • Margin-based pricing (not markup)
  • Supply cost defaults by facility type
  • Transition time factor built into the calculation

Create up to 3 bids free and see the difference accurate pricing makes.


Related: How to Calculate Labor Costs for Cleaning Bids | Commercial Cleaning Bid Template

Built for cleaning companies

Create accurate bids in 15 minutes, not 4 hours

BidLoom uses ISSA 612 production rates and full labor burden calculations to price your bids correctly — then generates a professional PDF proposal you can send immediately.

Free tier includes 3 bids. No credit card required.