Home  ›  Blog  ›  Pricing

How to Bid a Commercial Cleaning Contract

Pricing  ·  8 min read  ·  Updated July 2026

Bidding is where you either win the account or leave money on the table. I have priced and closed a lot of commercial contracts, and the method never changes. I do not charge the client by the hour. I price the job. But in my head I always work it out by the hour, because that is how you protect your margin. Here is exactly how I do it.

Tour the property before you quote

Never bid a commercial job off a phone call. Go see the building. You need to know what you are working with. On that walk you are gathering a few things.

  1. The square footage. Measure it yourself or ask the customer for their floor plans.
  2. The frequency. How many days a week, which days, after hours or during the day.
  3. The scope of work. What exactly they want cleaned, and how detailed.
  4. Who provides the supplies. Are they giving you product, do they have supplies on site you can use, or is it labor only.
  5. The things that add time. Hard floors take longer than carpet because you sweep and mop. A lot of glass means wiping smudges. Heavy foot traffic means more mess. An older building is usually dirtier than a newer one.

Pay attention to the customer too. By how someone talks about their building you can usually tell if they are going to be a heavy complainer. That is not a reason to walk away, just go in prepared.

Set your production rate

Your production rate is how much square footage you can clean in one hour by yourself. Say your max is 4,000 square feet an hour. If the building is 20,000 square feet, that is 5 hours for one person to clean it. A heavier scope lowers that rate, so adjust it to what they are actually asking for.

The CleanOS Bid Calculator carries a production rate for each type of facility and it is adjustable, so you start there and tune it to the job in front of you.

Mark up your labor

Take what you pay your cleaner and multiply it by 200 to 210 percent. If you pay a cleaner 16 dollars an hour, you charge 32. You never tell the client an hourly rate. You price the job. But you always know your hourly in your head, so you know your margin before you ever send the number.

Build the monthly, and always use 4.33

Now you build the monthly price. Stay with the 20,000 square foot example. 5 hours a night times 5 days a week is 25 hours a week. 25 hours times 32 dollars is 800 dollars a week. Then you multiply the weekly by 4.33, the true average number of weeks in a month.

The one number most owners get wrong. Always use 4.33 weeks, never 4. Some months run longer, and if you multiply the weekly by four you undercharge every single month and lose real money over a year. This one number protects your margin.

What it should actually come out to

That math is your floor. In the real world a 20,000 square foot office on basic janitorial commonly closes around 5,100 to 5,200 dollars a month. That is what I have closed in California. Your state moves the number, Florida runs different, but the model is the same. Use the calculator to tune the production rate and the scope until you land on a number that fits your market.

The takeaway

Price the job, not the hour. Tour first, set your production rate, mark up your labor, and always build the month on 4.33 weeks. Do that every time and you stop guessing and start winning accounts at a price you can actually run.

Price your next bid in minutes

CleanOS has the walkthrough tool, the Bid Calculator, and the proposal generator built in, so you can price a job and send a proposal the same day you tour it.

Start free