Pricing

Cleaning Business Profit Margins: How to Price Services for Real Profit

CleanBossHQ Research Team
Mar 29, 2026
10 min read

This article contains affiliate links. If you purchase through these links, we earn a commission at no extra cost to you. We only recommend tools we’d use in our own operation.

Most cleaning business owners set their prices one of two ways: copy what the competitor down the street charges, or pick a number that “feels right.” Both methods have the same result — you work 50-hour weeks and can’t figure out why there’s nothing left after payroll.

The fix isn’t working harder. It’s doing the math before you quote.

This guide gives you the formula, the worked examples for every service type (standard clean, deep clean, move-out, commercial), and a pricing floor that protects your income. The target: 50% gross margin minimum. Below that, your overhead eats your salary. Above it, you actually build a business worth running.

The 50% Gross Margin Rule

What Gross Margin Actually Measures

Gross margin tells you what percentage of every dollar you collect is left after paying the direct costs of doing the job. Here’s the formula:

(Revenue - Direct Costs) / Revenue × 100 = Gross Margin %

Direct costs include:

  • Labor — the full employer cost, not just the hourly wage
  • Supplies — chemicals, microfiber, trash bags, anything consumed per clean
  • Drive time — yes, this counts

What’s NOT in direct costs: rent, software subscriptions, insurance premiums, marketing spend, vehicle payments, your salary. Those are overhead. Gross margin has to cover all of them and still leave profit.

Why 50% Is the Floor

According to Housecall Pro’s profitability analysis, residential cleaning businesses typically see gross margins between 30-50%. The problem is that 30-40% doesn’t leave enough after overhead for a real owner salary.

Here’s the math at $200K annual revenue:

  • At 45% gross margin: $90K gross profit. Subtract overhead (insurance, software, vehicle, marketing, admin time) — call it $50K. That leaves $40K for your salary. You could earn more managing a Chipotle.
  • At 55% gross margin: $110K gross profit. Same $50K overhead. Now you’re at $60K+ for owner compensation, with room to reinvest.

That 10-point swing in margin is a $20,000 difference in your pocket on the same revenue. And it’s entirely controlled by how you price.

Step 1 — Calculate Your True Labor Cost Per Hour

This is the section most pricing guides skip, and it’s the reason most cleaning businesses underprice. Your labor cost is not what you pay your cleaners per hour. It’s significantly more.

The Components

The IRS employer FICA rate for 2026 is 7.65% (6.2% Social Security + 1.45% Medicare). Workers’ comp for residential cleaning runs roughly $3.31 per $100 of payroll — that’s about 3.3%. Commercial janitorial is lower at around $2.43 per $100.

Here’s the full breakdown at a $16/hour base wage:

Cost ComponentCalculationAmount
Hourly wageBase$16.00
Employer FICA (SS + Medicare)7.65% of wage$1.22
FUTA (Federal unemployment)0.6% on first $7,000~$0.07 avg
SUTA (State unemployment)1-5%, varies by state~$0.32 avg
Workers’ comp (residential cleaning)~3.3% of wages$0.53
Supplies per labor hourAllocated~$0.50
Drive time allocation20% of labor hours$3.20
True labor cost per cleaning hour~$21.84

That $16/hour cleaner actually costs you nearly $22/hour once you account for everything. According to the Bureau of Labor Statistics, the median hourly wage for cleaning occupations was $17.27 as of their most recent data — so if you’re paying above median, your true cost is even higher.

The Drive Time Problem

Most owners calculate labor cost for cleaning hours only. They forget about drive time.

If your cleaners drive 90 minutes per day and clean for 6 hours, you’re paying for 7.5 hours but billing for 6. Your true labor cost per cleaning hour equals your total daily labor cost divided by cleaning hours worked — not total hours paid.

At $16/hour, a 7.5-hour paid day costs you $120 in wages alone. Spread across 6 billable cleaning hours, that’s $20/hour in base wage cost before taxes and insurance touch it.

Warning: If you’re using contractors instead of W-2 employees, the direct cost calculation changes — but the margin target doesn’t. Contractors eliminate employer taxes, but you can’t control their methods without misclassification risk. See our guide on true labor cost by worker type before building your pricing around a contractor model.

The 50% Margin Formula Applied

For 50% gross margin, your price must be at least 2x your direct costs. The math is simple:

  • At $21.84/hr true labor cost: price floor = $43.68/hr revenue per cleaner
  • For a 2-person team working 3 hours: direct cost = $21.84 × 2 × 3 = $131.04. Price floor = $262.
  • Below that number, you’re losing money once overhead hits. Above it, you’re building a business.

This is the minimum. Not the target — the floor.

Jobber lets you store pricing by job type so every quote your team sends uses the same rate. No more field staff negotiating prices on the fly and destroying your margins. Pair it with scheduling software that enforces your rates and you’ve got a system, not a guessing game.

Step 2 — Price by Service Type

Now that you know your cost floor, here’s what it looks like across every common service type. These examples use the $21.84/hour true labor cost calculated above.

Worked Pricing Examples

Cleaning service pricing table showing costs and margins by job type

Service TypeTeamHoursTrue Labor CostMin Price (50% GM)Target Price (55% GM)
Standard 2BR/1BA1 cleaner2 hrs$43.68$87$97
Standard 3BR/2BA2 cleaners3 hrs$131.04$262$291
Deep clean 3BR/2BA2 cleaners5 hrs$218.40$437$486
Move-out clean 3BR/2BA2 cleaners6 hrs$262.08$524$583
Airbnb turnover1 cleaner1.5 hrs$32.76$66$73
Office clean (1,000 sq ft)2 cleaners2 hrs/visit$87.36/visit$175/visit$194/visit

These are floors, not ceilings. If your market supports $300 for a standard 3BR/2BA, charge $300. Higher margin means more room for callbacks, slow days, and growth.

Move-out cleans and Airbnb turnovers deserve their own pricing strategy — they have different scope, higher supply costs, and more unpredictability than a standard recurring clean. We cover those in detail in our move-out cleaning pricing guide and our Airbnb turnover checklist and pricing breakdown.

How to Price by Bedroom and Bathroom

For residential online booking — the kind of form ZenMaid runs — you need a per-room pricing model:

  • Base price for 1BR/1BA: Set at your minimum profitable clean (no job should go out below this number)
  • Increment per bedroom: $20-$30 additional
  • Increment per bathroom: $15-$20 additional

Example: Base $90 (1BR/1BA) + $25/BR + $15/BA = $90 + (2 × $25) + (1 × $15) = $155 for a 3BR/2BA standard

Always back-calculate: does $155 cover 50% gross margin at your true labor cost? If a 2-person team takes 3 hours for that home, your direct cost is $131. Your margin is ($155 - $131) / $155 = 15.5%. That’s terrible. You need to raise the base or the increments until you clear $262 minimum.

Pro Tip: Set your pricing increments to ensure margin holds at every room count, not just the average job. A 5BR/3BA on your base rate plus increments should still produce 50%+ gross margin. If it doesn’t, your per-room adders are too low.

Per Square Foot for Commercial Bids

Commercial pricing works differently. You’re bidding per square foot per clean, and the rates vary by facility type:

  • Office space: $0.07-$0.15/sq ft per clean
  • Medical office: $0.15-$0.25/sq ft per clean (biohazard protocol adds time and supplies)
  • Retail: $0.05-$0.10/sq ft per clean

Always add a 15-20% buffer for first-time commercial contracts. The learning curve on a new building is real — you’ll underestimate time on the first month of cleans. See our full guide on pricing commercial contracts for walkthrough templates and bid calculators.

ZenMaid’s booking forms price by bedroom count automatically, which keeps your residential pricing consistent without you manually quoting every job.

The Price Anchoring Technique

Why Three Options Work

Never quote a single price. Always present three:

  1. Standard Clean (maintenance): Your baseline recurring service
  2. Deep Clean: 40-60% premium over standard — more time, more detail, inside appliances, baseboards
  3. Recurring Maintenance Plan: Slight discount from Standard in exchange for a commitment (weekly or biweekly)

The Psychology

When a client sees one price, they evaluate it as “expensive” or “cheap.” When they see three, they almost always pick the middle option. Your Deep Clean price makes the Standard look reasonable. Your Recurring Plan captures budget-conscious clients who would otherwise shop three more companies before deciding.

Quote Format That Converts

Lead with the Recurring Plan at the top of your quote — not the bottom. Then Standard. Then Deep Clean (for first-time clients who need it before starting recurring service).

This order makes the commitment option feel like the premium choice, not the bargain bin. Most prospects who came in asking about a one-time clean will ask about recurring pricing when it’s positioned first.

When and How to Raise Prices on Existing Clients

The Signal That You’re Overdue

Three signs your prices are too low:

  • You’re booked past 85% capacity. No room for new clients means no room to grow — and no buffer when a cleaner calls out.
  • You haven’t raised prices in over a year. Your insurance went up. Gas went up. Your cleaners’ wages went up. Your rates should follow.
  • Your hardest clients are your cheapest. The clients you’re most reluctant to raise prices on are usually your least profitable — and your most demanding.

The Notification Template

Don’t overthink this. Send an email 30 days before the increase takes effect:

“Hi [Name], starting [date], our rates will increase to [new rate]. We’ve invested in better-trained staff, higher-quality supplies, and improved quality systems over the past year — this adjustment reflects the level of service you’ve been receiving. Thank you for being a valued client.”

Don’t apologize. Don’t offer to negotiate. Expected attrition: 5-10% of clients. And the clients who leave are almost always your most price-sensitive, most demanding accounts — the ones your crew dreads.

The Revenue Math on Raising Prices

Here’s what an 8% increase actually looks like:

Before: 60 clients × $140/clean × 2 cleans/month = $16,800/month

After 8% increase: 60 clients × $151.20/clean. Lose 5% of clients (3 accounts) = 57 clients × $151.20 × 2 = $17,237/month

Net gain: $437/month with fewer clients and the same crew. That’s $5,244/year for sending one email.

Track the impact in QuickBooks so you can see the margin change in real time, not three months later when you wonder where the money went.

Keeping Margin Consistent as You Scale

Pricing is one problem. Keeping prices consistent across a growing team is a different one.

The Scheduling Tool as a Pricing Enforcement Tool

Quote templates in Jobber or ZenMaid store your pricing by job type. Every quote uses the same rate. This prevents two failure modes that kill margins as you scale:

  • Field staff negotiating discounts. When a client asks a cleaner for a deal, the answer is “our rates are set in the system — I can have the office reach out.” No ad-hoc discounts.
  • Inconsistent quoting. If you have two people sending quotes, they need to quote the same price. A quote template guarantees it.

Reviewing Margin Monthly

Pull revenue and labor cost by job type each month. If any service type is consistently below 50% gross margin, you have two options: raise the rate or stop offering that service.

QuickBooks integrates with Jobber for this reporting — you can see margin by job category without building a spreadsheet. For the full payroll cost breakdown, including how to track these numbers per employee, see our payroll guide.

The Bottom Line

Pricing isn’t a feeling. It’s arithmetic. Know your true labor cost per hour (not just the wage), apply the 50% gross margin floor, and back-calculate every quote against that number.

The cleaning businesses that grow past $200K revenue and actually pay the owner well aren’t doing magic. They’re doing the math first and quoting second.

Grab our free pricing calculator — plug in your hourly labor cost, team size, and hours per job type to see exactly what to charge for every service to hit your margin target.


Sources referenced in this article:

More Pricing Guides

Get the Cleaning Business Scaling Playbook.

Join 4,500+ cleaning business owners receiving weekly operational deep-dives, free templates, and software reviews.

No spam. Just systems. Unsubscribe anytime.