Cleaning Company Profit Margins: What's Normal and How to Improve Yours
TLDR
Commercial cleaning companies typically run 5-15% net profit margins. Residential runs higher (10-28%) but commercial is more stable. The main margin killers are underbidding labor, not tracking supply costs per site, and owner time that isn't accounted for in pricing. Companies with accurate ISSA-based bidding consistently hit 12-18% net.
- Gross Margin
- Revenue minus direct costs (labor and supplies), expressed as a percentage of revenue. Gross margin shows what's left to cover overhead and profit before fixed costs are applied. In commercial cleaning, healthy gross margins run 35-50% per account.
DEFINITION
- Net Margin
- Revenue minus all costs including overhead (insurance, vehicles, equipment, software, management time), expressed as a percentage of revenue. Net margin is what the business actually keeps. Commercial cleaning typically runs 5-15% net margin. Below 8% usually signals a pricing problem.
DEFINITION
- Fully-Loaded Labor Cost
- The true hourly cost of an employee, including wages, employer payroll taxes (FICA, FUTA, SUTA), workers compensation insurance, and any benefits. A cleaner earning $18/hour typically costs $23-$28/hour fully loaded. Using the wage alone in bid calculations means every bid is underfunded.
DEFINITION
- Account Profitability
- The gross or net margin generated by a single client account, calculated separately from overall business margin. Account-level profitability analysis identifies which clients make you money and which ones cost you. Healthy businesses review every account's profitability at least once per quarter.
DEFINITION
The Margin Problem Most Cleaning Companies Don’t Know They Have
You can run a cleaning company with 20 accounts and think you’re profitable until you do the math per account. When you look at the numbers by client, you usually find that 4-5 accounts are generating most of your profit and a handful are losing money or breaking even.
Aggregate margin hides this. Account-level margin exposes it.
The fix isn’t always raising prices across the board. It’s identifying which accounts are the problem, figuring out why, and addressing each one at renewal.
What Normal Looks Like
Commercial cleaning net margins typically land between 5-15%. Gross margins before overhead run 35-50%.
Those ranges are wide because the business model varies. A 3-person owner-operator company running lean overhead can hit 20%+ net. A company with a fleet, a dedicated admin, and full benefits may run 8-10%. Neither is wrong if the operator knows their numbers.
Residential cleaning margins run higher (10-28% net) but with more variability. A commercial contract locks in revenue for 12-24 months. A residential client cancels by text.
The companies that consistently hit 12-18% net in commercial work share one trait: they bid from labor calculations, not gut feel.
Step 1: Calculate Gross Margin Per Account
For every account, run this calculation:
Gross Profit = Monthly Revenue - Direct Labor - Supplies
Gross Margin % = Gross Profit / Monthly Revenue x 100
Direct labor must be fully-loaded, meaning it includes the cleaner’s wage, employer payroll taxes, and workers compensation. If a cleaner earns $18/hour and you’re using $18 in your calculation, your numbers are wrong by $5-10/hour.
Supply costs must be assigned per account, not pooled. If you can’t separate supply spend by account, your margin calculations are estimates at best.
Target gross margin: 35-50% per account. Below 30%, something is wrong.
Step 2: Calculate Net Margin After Overhead
Overhead covers everything that isn’t a direct cost:
- Liability insurance and bonding
- Vehicle payments, fuel, and maintenance
- Equipment depreciation
- Software (scheduling, invoicing, bidding)
- Your own time for administration, sales, and account management
- Any office or storage costs
Add up your fixed monthly overhead and express it as a percentage of total revenue. Apply that percentage to each account to calculate account-level net margin.
If overhead runs 25% of revenue and an account’s gross margin is 38%, that account’s net margin is 13%. That’s healthy.
If overhead runs 25% and gross margin is 22%, that account is losing money.
Step 3: Find the Accounts Below 10% Gross Margin
Pull the gross margin calculation for every account. Sort ascending. Look at the bottom.
Most cleaning companies find 2-4 accounts that are either below 10% or outright negative. These are usually the first accounts signed when the company was hungry, often bid without a real formula, and never adjusted for wage increases over the years.
For each underperformer, diagnose the cause:
- Is labor running over? Pull the actual hours worked vs. hours bid.
- Are supply costs unusually high for this account?
- Was the bid just too low at the start?
The diagnosis changes the fix.
Step 4: Fix Underperformers at Renewal
Contract renewal is your reset point. Use it.
Before renewal, rebid the account from scratch using current labor rates and actual hours from your records. If the real cost of service requires a 15% price increase, calculate that precisely and bring it to the conversation.
Most clients expect some increase at renewal if you give them proper notice. A professional letter explaining that wages and insurance costs have increased is a reasonable business conversation. Apologizing for your pricing is not.
Some accounts won’t accept the new rate. Let them go. An account that pays below your cost of service is a liability, not revenue.
Step 5: Track Supply Costs Per Site
Tracking supplies in aggregate is one of the most common accounting mistakes in cleaning businesses. When supply spend is one line on your P&L, you have no idea which accounts are the heavy consumers.
Some accounts run through twice the supplies as comparable accounts due to building type, cleaner behavior, or client requests. You can’t see this without site-level tracking.
In your job management or accounting software, assign supply purchases to individual accounts. Review supply cost as a percentage of account revenue quarterly. Target 5-10% for standard commercial accounts, up to 12-15% for medical or food service.
Step 6: Count Your Own Time
If you’re cleaning accounts yourself, your labor has a market rate. Price your time at what you’d pay a replacement cleaner, fully loaded.
If you’re not cleaning but spending 20 hours per week on admin, sales, and account management, that time has a cost too. An operations manager or admin hire to replace you costs money. That cost belongs in your overhead calculation.
Owner-operators who price their own time at zero systematically underestimate overhead. The margin looks fine until they try to step back from day-to-day operations and discover there’s no money to hire a replacement.
When to Walk Away From an Account
Not every account is fixable at renewal. Walk away when:
- The client refuses any rate increase but expects expanded scope
- The building conditions require significantly more labor than the contract allows
- The account has a history of late payment or disputes
Holding onto an unprofitable account because of revenue fear is the single fastest way to cap your growth. Every hour your crew spends on a money-losing account is an hour they’re not on a profitable one.
Q&A
What is a good profit margin for a cleaning company?
For commercial cleaning, target 10-20% net profit margin. Gross margin per account should be 35-50% before overhead. Residential cleaning runs higher net margins (15-28%) but with more volatility. Commercial contracts are lower margin but more predictable month-to-month. Companies using ISSA production rate bidding tend to hit the upper range of these targets.
Q&A
How do you calculate profit margin for a cleaning business?
Calculate gross margin first: take the account's monthly revenue, subtract direct labor (fully-loaded) and supply costs, divide by revenue. Then subtract your overhead allocation (typically 20-30% of revenue for insurance, vehicles, equipment, and admin) to get net margin. Do this per account, not just for the business as a whole.
Q&A
What is the biggest reason cleaning companies have low margins?
Underbidding labor hours is the most common cause. This happens when companies use wage-only labor rates instead of fully-loaded rates, estimate hours by square footage rather than task-level production rates, or bid accounts years ago without accounting for wage increases. The second most common cause is owner labor priced at zero.
Q&A
How do commercial cleaning profit margins compare to residential?
Residential cleaning companies typically run 10-28% net margin. Commercial runs lower, typically 5-15%, because contracts are more competitive and clients have more negotiating power. The tradeoff is stability: a commercial contract pays every month for the contract term. Residential clients cancel on short notice.
Like what you're reading?
Try SweepOps free — no credit card required.
Want to learn more?
What profit margin should a cleaning company have?
Why are my cleaning margins so low?
How do I increase profitability in my cleaning business?
Keep reading
Commercial Cleaning Rate Per Square Foot: 2026 Benchmarks by Region and Facility Type
Regional rate benchmarks and a step-by-step calculation method for pricing commercial cleaning by square footage. Covers office, medical, warehouse, retail, and school facilities.
How to Bid Commercial Cleaning Jobs: Step-by-Step Formula
A practical formula for bidding commercial cleaning contracts. Covers site walk-throughs, square footage, ISSA production rates, labor calculations, and proposal format.
How to Price Commercial Cleaning Services: A Practical Formula
Three methods for pricing commercial cleaning: hourly, per square foot, and task-based. Learn how to calculate labor costs, apply ISSA production rates, and set profitable rates.
Cleaning Bid Template: How to Price a Commercial Cleaning Job
A step-by-step cleaning bid template for commercial accounts. Covers property details, ISSA labor calculations, supply costs, overhead allocation, margin, and what goes in the final bid document.
Best Janitorial Bidding Software in 2026: Ranked by Accuracy
Compared 5 commercial cleaning bidding tools including dedicated software and spreadsheet methods. Which one produces the most accurate bids?
Best ServiceWorks Alternative for Commercial Cleaning Companies
Tired of ServiceWorks crashes and data loss? SweepOps is built for commercial janitorial companies — ISSA-standard bidding, GPS tracking, and no lost data. $20-$99/mo.