For commercial cleaning companies
What it shows
Every job from the last twelve months, sorted into the types below — whatever your records happen to call them — then costed against the hours each type consumed. The output is a profit figure per type, an hourly return per type, and a defensible price range for each.
Recurring janitorial contracts
The bulk of most books. Priced once, often years ago, and rarely re-costed against the wage schedule that has moved since.
Day porter and staffed hours
Effectively labor resale. The margin is the spread between the bill rate and the loaded cost, and it is the easiest one to check.
Floor care and specialty work
Equipment, chemicals and skilled hours. Usually priced as an add-on when it deserves its own rate.
Post-construction and turnovers
Unpredictable scope, heavy overrun risk. The type most likely to look profitable on the ticket and not on the hours.
One-off deep cleans
Quoted job by job, so the spread inside the type is wide. Worth seeing what your own quoting has actually been returning.
Supplies and consumables
Passed through at cost or marked up, and either way worth separating from the labor so neither is hiding the other.
The list is not fixed. If your records carry a type that isn't here, it gets its own row — the classification follows your work, not a template.
What drives your costs
Commercial cleaning is the trade where the floor under your wage is most often somebody else's decision. State and city minimums move on their own schedule and rarely in step with each other; a company operating across a state line can be paying two different rates for identical work, on two different review dates, and pricing both contracts off one number.
Contracted work adds a second schedule on top. Federal service contracts carry prevailing wage and fringe determinations that are revised periodically and are not yours to negotiate; some state and municipal contracts carry their own. When a determination is revised mid-term, the labor cost of that contract changes on a date you did not choose, and a contract priced against last year's schedule quietly stops covering itself.
The report costs each contract type against the wage you actually pay it, not a company-wide average — so a contract sitting on a higher schedule shows up as a higher cost per hour rather than being smoothed away. If your rates differ by site or by determination, tell us and they are carried separately.
The arithmetic
The report's central number is your floor rate: the lowest hourly rate at which an average hour covers its own cost. Here it is at figures typical of a firm with 8 field staff and 3 vans. Yours will differ — the method won't.
$17.00 × (1 + 14.65%) = $19.49
FICA 7.65%, unemployment (FUTA + SUTA) 1.50%, workers' comp 2.50%, paid time off 3.00%. Rates vary by state and by carrier; use your own.
$19.49 ÷ 80.0% = $24.36
You pay for 40 hours and invoice 32. The other 8 — drive time, estimates, the supply house, the no-show — still get paid for, so every invoiced hour carries them. Skipping this step is the most common way a rate ends up too low.
$70 × 3 × 52 = $10,920/yr ÷ 13,312 hrs = $0.82
$4,000 × 12 = $48,000/yr ÷ 13,312 hrs = $3.61
Illustrative figures, not a benchmark. Cleaning runs a higher share of invoiced hours than the trades that drive between short jobs, which is why the floor lands where it does — but a company on a prevailing-wage determination, or one paying two state minimums, will not recognize these numbers and should not try to. The method is written out in full on the floor rate page.
And what it does when you get busier
| Invoiced hours a week, each | Utilization | Floor becomes |
|---|---|---|
| 26 | 65.0% | $35.43/hr |
| 29 | 72.5% | $31.77/hr |
| 32 — this example | 80.0% | $28.79/hr |
| 35 | 87.5% | $26.32/hr |
| 38 | 95.0% | $24.24/hr |
What we need
A spreadsheet export is fine. So is a messy one — reconciling records that disagree with each other is most of the work, and it is work you are paying us to do rather than work you have to do first.
Before you buy
If you run fewer than about three cleaners, there are not enough comparable jobs for the analysis to be sound. If a franchisor sets your prices, you cannot act on the half of the report that matters. If you need it tomorrow, five working days is five working days. The full list, with the reasoning, is on who it's not for — and the comparison page sets out when a spreadsheet or your existing software answers this better.
Your cleaning year, costed and checked.
$650 / £500 · 12 months of your jobs · 5 working days · refunded in full if nothing material is found
$650 / £500 · refunded in full if it finds nothing material.