How to bid a commercial cleaning job
Price from labour hours, then add margin. Everything else is detail.
1. Walk the site with a checklist
Measure each area type separately (private offices, open plan, restrooms, break room, lobby, halls). Count restroom fixtures and trash cans. Write down floor types, access hours, and what is excluded. Every blank on your notes becomes a guess in your price.
2. Turn square feet into hours
For each area: hours per visit = square feet / production rate. A production rate is how many square feet one cleaner covers in an hour for that kind of space. Open areas go faster than break rooms or exam rooms. Add minutes per restroom fixture and travel/setup time per visit.
3. Multiply by the full labour cost
Labour cost = hours x wage x (1 + payroll burden). Burden covers employer payroll taxes, workers comp, insurance and paid time off. Get your real burden from your accountant or insurer.
4. Add supplies and overhead
Supplies and chemicals, any consumables you provide, equipment wear, admin and insurance. Many owners track these as a percentage of labour.
5. Price with margin, not markup
Price = total cost / (1 - margin). Cost $2,000 at 20% margin = $2,500. Adding 20% on top gives $2,400, which is only 16.7% margin.
6. Check your effective hourly rate
Divide the monthly price by monthly labour hours. If that number is below the minimum you accept, raise the price or cut scope. Don't cut the margin to win.
7. Monthly = weekly x 4.33
There are 52/12 = 4.33 weeks in a month. Using 4 under-prices every monthly contract by about 8%.
Try the free quick calculator, or get the Bid Kit with the room-by-room spreadsheet and proposal templates.