Skip to content
Buzzed Leads

Guide

How to bid and price a commercial cleaning contract

Most losing bids are not lost on price. They are lost because the contractor never built a number and therefore could not defend one. Here is the arithmetic, in order.

In short

A commercial cleaning bid is built by measuring cleanable square footage by area type, applying a production rate to each to get labour hours, loading those hours with the fully burdened labour cost, adding supplies, equipment, supervision and periodic work, then applying margin. Pricing from a competitor's assumed rate rather than from production rates is the most common cause of unprofitable contracts.

Last updated
July 14, 2026
Length
About 3 minutes to read

Start with cleanable square footage, not the lease number

The figure on the lease is gross. It includes lifts, risers, plant rooms, sometimes unoccupied floors, and often a share of common areas you are not touching. Bidding against it means bidding for space you will never clean.

Measure or estimate the space you will actually service, then break it into area types, because a square foot of restroom and a square foot of open office are not comparable units of work.

Area typeRelative labour intensityNotes
Open officeLowestVacuuming and bin runs dominate; scales well.
Cellular officesHigherDoors, corners and individual bins slow it dramatically.
RestroomsHighest per square footFixture count matters far more than floor area.
Kitchens and break roomsHighSurfaces, appliances and complaint-prone.
Lobbies and entrancesHigh visibilitySmall area, disproportionate impact on perception.
Hard floorVariesDaily maintenance is modest; periodic restoration is not.

Production rates turn area into hours

A production rate is how much of a given area type one person cleans in an hour at your standard. It is the heart of the bid, and it must be yours rather than a number from a manual.

Derive your own by timing real crews on real buildings you already service. Then adjust for the site in front of you.

  • Congestion slows everything. A dense cellular floor cleans far slower per square foot than an open plan of the same size.
  • Restroom fixture count drives restroom time more than restroom area does. Count fixtures, not square feet.
  • Travel inside the building is real work. Multiple floors, long corridors and lift waits all consume paid hours.
  • Occupancy at cleaning time slows crews, because they work around people.
  • Your quality standard is a variable. A higher standard is a lower production rate, and pretending otherwise is how contracts get underbid.

Load the labour cost properly, or the bid is fiction

Bidding on the bare hourly wage is the fastest route to a contract that looks profitable and is not. The true cost of an hour of cleaning includes everything you pay to have that hour available.

  • Payroll taxes and statutory contributions.
  • Workers' compensation, at your actual rate for this classification.
  • General liability and bonding.
  • Paid time off, holiday and any benefits.
  • Non-productive time — travel between sites, set-up and pack-down, supply collection, training and cover for absence.

Work out your own loaded multiplier from last year's real payroll numbers, apply it consistently, and revisit it annually. A contractor who knows their multiplier can bid confidently at a price a guessing competitor cannot beat profitably.

Periodic work is a separate line, always

Floor restoration, carpet extraction, high dusting and window work are scheduled projects, not something absorbed into a nightly rate. Absorbing them makes the monthly figure look competitive and then quietly consumes the margin the moment the work is actually due.

Quote them as scheduled lines with defined frequencies. It makes the nightly rate honest, it gives the client a visible reason for the total, and it makes your invoice defensible when the finance director asks what changed in a given month.

Use price per square foot only as a check

Once you have built the number, dividing by square footage gives a per-square-foot figure you can compare against what you know of the market. That comparison is useful. Deriving the price from it is not.

If your built number lands far above the market, something is wrong with your production rates or the spec is heavier than the incumbent's — find out which before discounting. If it lands far below, you have missed something, and the contract you are about to win is one you will want to lose.

FAQ

Questions people ask about this

Not covered here? Email hello@buzzedleads.com.

Measure cleanable square footage by area type, apply your own production rates to get labour hours per clean, multiply by the frequency in scope, load the hours with fully burdened labour cost, add supplies, equipment and supervision, quote periodic work as separate scheduled lines, then apply margin. Use price per square foot only as a final sanity check against the market.

Related

Start here

Tell us your area. We'll tell you your price.

Three questions, about ninety seconds. If we can't get you leads that fit in your area, we'll say so straight away.

Get your price per lead