FacilityCare IQFacilityCare IQ
All free tools

Cleaning contract profitability calculator

A commercial cleaning contract is profitable when the monthly price covers labor with payroll burden, supplies, travel and a share of overhead, and still leaves a margin. Enter the numbers for one account below and the calculator shows what it earns per labor hour, where the money goes, and the price or minutes-per-visit change that would fix it.

Example — a 5-night office account. Change the numbers.
The contract
A month is counted as 52/12 weeks
Labor
Per cleaner
Employer taxes, workers' comp, PTO
Paid time, per cleaner
Other costs
Chemicals, liners, paper you provide
Optional: miles × rate, or fuel
Share of revenue for insurance, admin, software

This account is thin

It earns $33.08 per labor hour against an all-in cost of $27.85, which leaves $340 a month (16% net) after overhead.

Below $1,750/month it stops covering overhead. A 20% net margin needs $2,289/month, or fewer minutes on site.

Net profit / month$340
Net margin16%
Billed per labor hour$33.08
Break-even price$1,750
Monthly breakdown
Per monthAmount
Revenue21.7 visits$2,150
Labor (with burden)65.0 h on site + 7.2 h travel = 72.2 h paid$1,294
Supplies$85.00
Vehicle$108
Gross profit31% gross margin$662
Overhead allocation15% of revenue$323
Net profitCost per labor hour, all-in: $27.85$340

What would fix it

  1. Raise the price by $139 to $2,289/month. That is the number that reaches a 20% net margin at today's hours and wages.
  2. Cut 7 minutes per visit per cleaner (to about 1.38 h) and the account reaches 20% at the same price. Time the visit for a week before you decide whether that is real.
  3. Offer 4 visits a week at the same price. Many clients accept a lighter schedule with a same-day response promise over a price increase.
  4. Travel costs $238/month on this account. Pair it with another building nearby, or start the shift on site, and most of that returns to margin.
  5. Bill consumables (paper, liners, soap) separately: $85.00/month moves off your side and net margin goes to 20%.

How the math works

Visits per month = visits per week × 52 ÷ 12. Five nights a week is 21.7 visits a month, not 20; pricing on 20 quietly gives away a visit a month.

Labor = (hours on site + travel minutes) × cleaners × wage × (1 + burden). Burden is what a wage really costs you: employer payroll taxes, workers' comp, paid time off. 12% is a common floor for a small janitorial company; check yours against a recent payroll run.

Gross profit = price − labor − supplies − vehicle. Overhead is then taken as a share of revenue (insurance, admin time, software, the van, the phone) and what is left is net profit. Break-even is the price at which net profit is zero: direct costs ÷ (1 − overhead %). The "fix" numbers target a 20% net margin, a rule of thumb for a small commercial account that has to absorb call-outs and the occasional re-clean.

Billed per labor hour is the price divided by hours on site. It is the fastest way to compare accounts of different sizes: two contracts at $2,000 a month can be $22 and $41 per labor hour, and only one of them is worth keeping when a cleaner quits.

The one input this page cannot know is the real hours on site. Bids are written from an estimate; margins are made or lost on the actual minutes, and those drift. If you want the actual number, the crew app records a GPS check-in and check-out per visit, so the hours in this calculator can come from last month instead of the bid sheet. See also how to price a five-night commercial cleaning contract for the full bid walk-through.