Average Profit Margin for a Cleaning Business: The Real Math

Gross vs. net margin, line-item benchmarks, labor burden done properly, and a per-account P&L worked out on a 50,000 sq ft office contract.

CleanTrack360 Team
·June 25, 2026·14 min read·Updated August 1, 2026

Ask ten people what a cleaning business should earn and you will get ten answers between 5% and 40%. Every one of them is technically defensible, because they are all measuring different things at different levels of the business.

That vagueness costs real money. Operators who anchor on a single blended number end up pricing accounts against a benchmark that came from a residential maid franchise, a $40 million union contractor, or a one-truck floor care outfit with no payroll at all.

Your margin is not a single company-wide statistic you look up. It is built account by account, from production rates, wage rates, burden, supply consumption and how much overhead each contract has to carry. This article walks through how to calculate it properly, what target ranges to plan against, and where the money usually leaks out.


Why "average" is the wrong question

NAICS 561720 (Janitorial Services) covers everything from a solo house cleaner to a national contractor staffing hospitals around the clock. Averaging that group tells you nothing about your own 12-account book of business.

Three structural differences swamp any industry average:

  • Labor intensity: Recurring commercial janitorial is a labor pass-through business. Labor and burden typically consume the majority of every dollar billed, so a two-point swing in productivity moves net income more than a whole year of overhead cuts.
  • Owner compensation treatment: A company where the owner cleans three nights a week and takes no salary will show a beautiful net margin that vanishes the moment you pay a market-rate manager to replace them.
  • Service mix: Strip and wax, carpet extraction, post-construction and window work carry very different cost structures than nightly office cleaning. Blending them hides which one is funding the other.
Key Takeaway: Stop looking for the industry average. Build a per-account gross margin report, then judge each contract against a target range you set from your own wage rates and production data.

The three margins you need to keep separate

Most disagreements about cleaning company profitability are really arguments about which line of the P&L someone is quoting. Pin down the vocabulary first.

MetricFormulaWhat it tells you
Job / contract gross margin(Revenue - direct labor - burden - supplies - equipment - site supervision) ÷ RevenueWhether this specific account is priced correctly. The single most useful number in the business.
Company gross margin(Total revenue - all direct field costs) ÷ Total revenueWhether your pricing model as a whole covers overhead with room left over.
Operating margin(Gross profit - G&A - sales - admin payroll - insurance - software - vehicles) ÷ RevenueWhether your overhead structure fits your revenue base.
Net marginNet income after taxes, interest and depreciation ÷ RevenueWhat the accountant reports. Useful for lenders, weak for operating decisions.
Owner earnings (SDE)Net income + owner salary + owner perks + one-time costsWhat the business actually returns to you, and what a buyer would value.

If you only track one of these, track contract gross margin. Overhead problems are annoying. Underpriced contracts are fatal, and they get worse as you grow.

Line-item benchmarks for a commercial janitorial P&L

The ranges below are planning targets used widely in commercial cleaning operations, not survey results. Use them as guardrails: if one of your line items sits well outside the range, that is where to look first.

Line itemTypical planning range (% of revenue)Notes
Direct labor (wages only)38% to 48%Cleaners, day porters, floor techs. Includes travel time you pay for.
Payroll burden8% to 12%Employer taxes, workers' comp, PTO, holiday, training time.
Supplies and consumables3% to 6%Higher when you supply paper, liners and soap; lower on labor-only contracts.
Equipment and repairs1% to 3%Vacuums, autoscrubbers, pads, burnishers, replacement cycle.
Site supervision and QC3% to 6%Working supervisors, inspection visits, callback labor.
Contract gross margin30% to 45%Below 25% on a recurring account, the contract cannot carry overhead.
G&A and overhead15% to 25%Admin payroll, office, insurance, software, vehicles, marketing, accounting.
Net margin (owner paid a salary)5% to 15%Small books skew low. Mature operations with dense routes skew high.
💡 Tip: Add "unbilled labor" as its own tracked line: callbacks, no-shows covered by a supervisor, quarterly deep cleans buried in the contract, and paid training. Operators who don't track it usually discover it is worth several margin points.

Labor burden: the number most operators get wrong

If you price at wage plus a guess, your margins are a guess. Burden has to be calculated from your own rates, and it changes every year.

  • Employer FICA: 6.2% Social Security plus 1.45% Medicare on covered wages, per IRS Publication 15.
  • FUTA: 6.0% on the first $7,000 of each employee's wages, reduced to 0.6% in most states after the standard credit.
  • SUTA: Varies by state and by your experience rating. High turnover raises this rate, which is a hidden cost of churn.
  • Workers' compensation: Varies by class code, state and loss history. In janitorial it is usually the largest burden item after taxes.
  • Paid time off and holidays: Every paid non-productive hour has to be spread across the productive hours you actually bill.
  • Training and compliance time: OSHA's Hazard Communication standard (29 CFR 1910.1200) requires training on chemical hazards and access to safety data sheets. That time is real payroll against zero billable output.
  • Overtime premium: The half-time premium on overtime hours is pure margin erosion. Budget it as a separate line so you can see it.

For national wage context, look up your own metro in the BLS Occupational Employment and Wage Statistics release for Janitors and Cleaners (SOC 37-2011) rather than using a national median. The spread between metros is wide enough to flip an account from profitable to underwater.

Sources: IRS, "Publication 15 (Circular E), Employer's Tax Guide"; U.S. Bureau of Labor Statistics, Occupational Employment and Wage Statistics, SOC 37-2011; BLS, "Employer Costs for Employee Compensation," which reports benefits at roughly 30% of total compensation for civilian workers on average, with a lower share in service occupations.

A worked example: 50,000 sq ft office, three nights a week

Numbers make this concrete. Take a 50,000 square foot suburban office building, cleaned Monday, Wednesday and Friday, with your crew handling trash, restrooms, vacuuming and spot mopping. Say you bill $5,800 per month.

First, get the hours right. Use 4.33 weeks per month, not 4. Three visits a week is about 13 visits a month, and the extra visit most operators forget is worth roughly 8% of the labor on the account.

At a planned production rate of 4,000 square feet per cleaning hour, the building takes 12.5 hours per visit, or about 162 labor hours per month.

LineCalculationMonthly% of revenue
RevenueContract price$5,800100%
Direct labor162 hrs × $17.00$2,75447.5%
Payroll burden20% of wages$5519.5%
Supplies and consumablesPaper, liners, chemicals$2905.0%
Equipment allowanceVacuums, pads, repairs$1101.9%
Supervision and QC6 hrs × $25 loaded$1502.6%
Gross profit $1,94533.5%
Overhead allocation20% of revenue$1,16020.0%
Contribution to net $78513.5%

That is a healthy account. It sits inside the target gross range and it pays its share of the office.

What happens when the production rate slips

Now assume the building is more congested than you scoped: heavy cubicle density, two restroom cores, and a break room that takes 20 minutes on its own. Actual output is 3,200 square feet per hour instead of 4,000.

The same building now needs 15.6 hours per visit, or about 203 hours a month. Labor plus burden goes from $3,305 to $4,144. Gross profit falls to roughly $1,106, or 19.1%, and after the same overhead allocation the account contributes about negative $54.

Nothing changed except the production rate. No wage increase, no scope creep the client asked for. A 20% productivity miss turned a 13.5% contributor into a loss.

💡 Tip: Run the same sensitivity in reverse before you discount. Cutting price 10% on this account removes $580 a month from a $1,945 gross profit. You would need to cut roughly 34 labor hours a month to hold margin, which means changing the scope, not "being more efficient."

The 15-minute problem

Small overages hide well. If four cleaners each stay 15 extra minutes per shift on this account, that is one extra labor hour per visit, 13 hours a month, roughly $265 burdened.

Across ten accounts of similar size, that is over $30,000 a year of margin, invisible in a monthly P&L that only shows total payroll.

Where production rates and scope standards come from

Two published references do most of the heavy lifting for scoping decisions, and both are worth owning.

  • ISSA cleaning times: ISSA publishes standardized task times and production rates for cleaning tasks. Use them as your starting point for bids, then validate against your own timed observations, because building layout, density and specification change results significantly.
  • APPA cleanliness levels: APPA defines five levels of appearance, from Level 1 (orderly spotlessness) through Level 5 (unkempt neglect), with Level 2 commonly treated as the standard for well-maintained space. Levels are a staffing decision. Writing a specification that implies Level 1 while pricing Level 3 hours is one of the most common ways contracts go underwater.
Sources: ISSA, cleaning times and production rate standards; APPA, "Custodial Staffing Guidelines" appearance levels 1 through 5.

Margin by service line

Service mix is the fastest lever on company margin, because specialty work carries a different cost shape than nightly recurring labor. Ranges below are planning targets, not published averages.

Service lineGross margin planning rangeWhy it differs
Recurring commercial janitorial30% to 45%Labor-dominated, predictable, but priced against competitive bids.
Day porter / staffed positions25% to 35%Priced close to a loaded hourly rate with little room to compress hours.
Floor care (strip, wax, burnish)45% to 60%Equipment and skill carry the value, so revenue per labor hour is much higher.
Carpet and upholstery extraction40% to 55%Same logic, with meaningful chemical and equipment cost.
Post-construction cleanupHighly variableScope risk is the whole game. Price on a walk-through, not a square-foot rate.
Residential / maid service35% to 50%Higher revenue per hour, but drive time and cancellations eat productive hours.

If your recurring janitorial book runs thin, adding periodic floor work to existing accounts is usually faster than winning new nightly contracts. You already have the relationship, the keys and the building knowledge.

Build a per-account margin report this week

  • List every account with its monthly billing, converting weekly or per-visit pricing at 4.33 weeks per month.
  • Pull actual clocked hours per account for the last full month, not scheduled hours.
  • Multiply actual hours by each employee's real wage, not an average wage.
  • Calculate your true burden percentage from last year's payroll tax filings, workers' comp premium and PTO paid.
  • Allocate supplies by account. If you cannot, split by square footage cleaned as a temporary proxy.
  • Add supervisor and manager site time, including callback visits.
  • Add an equipment allowance per account rather than expensing purchases in one month.
  • Compute gross margin percentage per account and sort ascending.
  • Flag anything under 25% for repricing, rescoping or exit.
  • Compare each account's actual hours to the hours you bid. That variance is your scope creep report.

Common mistakes that quietly erase your margin

  • Using 4 weeks per month: Twelve months of four weeks is 48 weeks, not 52. This single error understates labor on every recurring account by roughly 8%.
  • Treating owner labor as free: If you clean, supervise or do quality checks, book a market wage for those hours. Otherwise you are subsidizing accounts with your own unpaid time and calling it profit.
  • Averaging wages across a crew: One senior cleaner at the top of your scale on a tight account can consume the entire margin. Cost accounts with the people actually assigned.
  • No escalation clause: Multi-year contracts without an annual price adjustment tied to wage or CPI movement guarantee margin decay. State minimum wage schedules are public. Price for them in advance.
  • Absorbing scope creep silently: The extra conference room, the added restroom, the "can you also do the break room fridge." Each one is small. Together they are a rescope conversation you never had.
  • Chasing revenue with thin bids: A 15% gross margin account does not become profitable at scale. It just consumes more of your supervision capacity.
  • Ignoring turnover cost: Every replacement hire means recruiting time, onboarding, training payroll, lower productivity for weeks and eventually a worse SUTA rate. Turnover shows up in margin, not in a line item.
  • Overtime as a scheduling habit: The half-time premium is margin you never billed. If overtime is chronic on one site, the site is understaffed or overscoped.
  • Supply leakage: Unlogged closet pulls and over-dilution of concentrates can push a 4% supply line to 7% without anyone noticing.

How often to review each number

Margin management is a cadence, not an annual event. Review too rarely and you find out about a bad account eleven months in.

FrequencyWhat to reviewTrigger for action
WeeklyActual vs. budgeted hours by siteAny site over budget two weeks running
Each payrollOvertime hours, unbilled and callback hoursOvertime above your internal cap
MonthlyGross margin by account, supplies by account, inspection scoresAny account under 25% gross margin
QuarterlyOverhead as a percentage of revenue, service mix, contracts due for escalationOverhead climbing while revenue is flat
AnnuallyWage benchmarks against BLS data, workers' comp renewal, burden recalculation, full contract repricingBurden percentage changed by more than a point
💡 Tip: Pair margin review with inspection scores. An account with strong margin and falling scores is being underserved and will churn. An account with high scores and weak margin is overserved and needs a rescope conversation, not a discount.

What good actually looks like

For an established commercial cleaning company where the owner takes a real salary, a contract gross margin in the 30% to 45% band with overhead held between 15% and 25% of revenue produces a defensible net margin. Route density, service mix and low turnover are what move you toward the top of that band.

The operators with the best numbers are rarely the ones with the cleverest pricing. They are the ones who know the hours actually worked on every site, every week, and who fix a variance while it is still small.


Where CleanTrack360 fits

Everything above depends on one input: accurate hours by account. CleanTrack360 captures geofenced GPS clock-in and clock-out in the phone browser, with a default 150 m radius you can configure per location, so the hours in your margin report are the hours worked at the building rather than the hours on the schedule. Reports export to CSV, which is usually the fastest way to drop actual hours next to contract billing in a spreadsheet and get a per-account gross margin in an afternoon. Quality inspections with custom checklists, photo evidence and automatic scoring give you the other half of the picture, so you can tell an underserved account from an overserved one.

On the pricing side, the quoting calculator builds proposals from square footage, frequency, labor and supplies, which keeps new bids anchored to your real cost structure instead of a competitor's number. Plans start at $99 per month for up to 5 team members, $199 for up to 20 and $249 for up to 50, priced per plan rather than per user, with a 14-day free trial and no credit card required.

Key Takeaway: There is no useful industry average to copy. Build the per-account gross margin report, use 4.33 weeks, cost labor at real wages plus real burden, and review hours weekly. The accounts that need attention will name themselves.

Ready to see it in action?

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