Talo

How to Price a Commercial Cleaning Job (with formulas and worked examples)

May 3, 2026 · 9 min read · By Talo Team

Most cleaning bids miss because the owner picked a number that "sounded right" instead of building it from the actual minutes the job will take. The fix is a repeatable bottom-up estimate. This post walks through the formula, gives you productivity rates you can use today, and ends with a worked example for a 12,000 sqft medical office on a 3×/week recurring schedule.

The pricing formula in one line

Price per visit = (Hours × Fully-burdened labor cost) + Supplies + Equipment amortization + Overhead allocation + Target margin.

Everything else in this article is just how to fill in those five numbers honestly.

Step 1 — Estimate hours from a productivity rate

A productivity rate tells you how many cleanable square feet one cleaner can complete per hour at a given service level. ISSA publishes industry-standard productivity rates in their Cleaning Industry Management Standard. Use them as a starting point and calibrate against your own time-tracked jobs.

Reasonable starting rates (mixed routine cleaning, including restrooms and trash):

  • General office, open plan: 3,500–4,500 sqft / hour
  • General office, lots of cubicles: 2,500–3,500 sqft / hour
  • Medical office (exam rooms, EPA disinfectant dwell time): 1,500–2,200 sqft / hour
  • Retail: 4,000–5,500 sqft / hour
  • Restrooms (per fixture, deep clean): 4–6 minutes per fixture
  • Hard-floor mopping: 3,000–4,000 sqft / hour
  • Vacuuming, upright: 4,000–5,500 sqft / hour

Hours per visit = Cleanable sqft ÷ Productivity rate. Round up — a rate-card hour is faster than the real thing once you account for setup, restocking, and travel between rooms.

Step 2 — Calculate fully-burdened labor cost

Wages are not your real labor cost. Burden multiplies the wage by payroll taxes, workers' comp, paid time off, training, and any benefits. The U.S. Bureau of Labor Statistics Employer Costs for Employee Compensation release is the authoritative reference; for service-sector small-business cleaners a 1.25× to 1.40× burden multiplier is a reasonable planning number, depending on your state's workers' comp rates.

So if you pay $18/hour and your burden is 1.30×, your fully-burdened labor cost is $23.40/hour. Use that number, not $18, in every estimate.

Step 3 — Supplies and equipment

For routine janitorial, supplies (chemicals, liners, paper goods if you provide them, microfiber, gloves) typically land between 3% and 6% of revenue. Track this monthly; if you drift above 7%, either supplies are walking off-site or you're under-pricing.

Equipment (vacuums, auto-scrubbers, burnishers) gets amortized. A $600 commercial upright vacuum used on three accounts for three years adds roughly $0.18/hour to each job. Don't skip this — it's how owners "make money" on paper but never have cash for replacement gear.

Step 4 — Overhead and margin

Overhead is everything that isn't tied to a specific job: insurance (general liability + janitorial bond), software, vehicle, phone, the owner's pay if the owner isn't on-site cleaning, and admin time. Add up annual overhead, divide by billable hours per year, and you have an overhead rate per hour. For a small crew this is often $4–$8 per billable hour.

Then add target margin. Healthy commercial cleaning gross margins run 35%–50%; net margins after overhead are 10%–20%. If your bid lands below 30% gross, you're buying the contract — which is fine occasionally, but not as a strategy.

Step 5 — Sanity-check against a rate card

After the bottom-up number, divide by square footage and check against a rough rate card:

  • General office, weekly: $0.05–$0.12 per sqft per visit
  • Medical office, 3×/week: $0.10–$0.22 per sqft per visit
  • Retail, 5×/week: $0.04–$0.09 per sqft per visit

If your bottom-up number is far outside this band, double-check the productivity rate and the scope. The two most common errors: forgetting restrooms (huge time sink relative to area) and assuming one cleaner when realistically you need two for a same-night turn.

Worked example: 12,000 sqft medical office, 3×/week

Scope: lobby, 14 exam rooms, 2 restrooms (4 fixtures each), break room, 2 nurse stations, hallways. Mix of carpet and VCT. Trash + recycling. EPA-registered disinfectant on all touchpoints.

  1. Hours: 12,000 sqft ÷ 1,800 sqft/hr = 6.67 hours. Add 0.5 hr for the 8 restroom fixtures and 0.5 hr for setup/restock = 7.7 hours per visit. Round to 8.
  2. Labor: 8 hr × $23.40 = $187.20
  3. Supplies (5%): ~$15
  4. Equipment amortization: ~$2
  5. Overhead allocation: 8 hr × $6 = $48
  6. Subtotal cost: ~$252
  7. Target 40% gross margin: $252 ÷ (1 − 0.40) = $420 per visit
  8. Sanity check: $420 ÷ 12,000 sqft = $0.035/sqft. Below the medical-office band. Re-check: medical scope justifies $0.10–$0.22/sqft, so the bid is conservative and you have room. Consider $480–$540/visit.

That's the workflow. Build it once in a spreadsheet — or in a tool that does it for you.

Pricing checklist (use this on every bid)

  • ☐ Did I walk the space, not just take a square-foot number from the broker?
  • ☐ Did I count restroom fixtures separately from area?
  • ☐ Did I use a fully-burdened labor cost, not the wage?
  • ☐ Did I include supplies and equipment amortization?
  • ☐ Did I allocate overhead per hour?
  • ☐ Is gross margin at least 35%?
  • ☐ Did I sanity-check $/sqft against the rate-card band?
  • ☐ Did I write down what's not included (windows, carpet extraction, post-construction)?

Skip the spreadsheet

Talo's quote builder runs this same bottom-up math from a productivity rate, then turns the number into a branded e-signable proposal. Create a free account and try it on your next walk-through, or read our guide on winning more contracts for what to do once the price is right.