·Bidding Guides

How to Bid on Commercial Cleaning Contracts — Complete 2026 Guide

Learn how to create accurate, profitable bids for commercial cleaning contracts. Step-by-step guide covering ISSA production rates, labor burden calculation, supply costs, and professional proposal creation.

How to Bid on Commercial Cleaning Contracts — Complete 2026 Guide

Bidding on commercial cleaning contracts is the single most important skill in the janitorial business. Get it right, and you build a profitable company with recurring revenue. Get it wrong, and you either lose bids to competitors or win contracts that slowly bleed money.

Most BSC (Building Service Contractor) owners spend 2-4 hours per bid using spreadsheets and Word documents. Many skip the math entirely and just "eyeball it" based on gut feeling. That's how cleaning companies end up working 60-hour weeks and wondering why there's nothing left at the end of the month.

This guide walks you through the entire bidding process — from facility walkthrough to final proposal — using the same methods and production rates that the largest cleaning companies in the country rely on.

What You'll Learn

  • How to conduct a proper facility walkthrough
  • How to calculate labor hours using ISSA production rates
  • How to compute your true labor cost (not just wages)
  • How to estimate supply and equipment costs
  • How to set a profitable margin
  • How to present your bid as a professional proposal

Step 1: The Facility Walkthrough

Before you calculate anything, you need to see the building. A facility walkthrough is non-negotiable — never bid blind.

What to measure and document

Square footage by area type. Don't just get the total square footage from the client. Break it down:

  • Carpeted areas vs. hard floor areas (different cleaning rates)
  • Restroom count and size
  • Kitchen/break room count
  • Entrance/lobby areas
  • Office areas vs. open areas
  • Specialty areas (server rooms, labs, gyms)

Floor types. This matters because different floors require different cleaning methods and take different amounts of time:

  • Carpet (commercial loop, plush, tile)
  • VCT (vinyl composition tile) — requires periodic strip and wax
  • Polished concrete
  • Ceramic tile
  • Hardwood

Building condition. Is the building new and well-maintained, or older with deferred maintenance? A poorly maintained building takes 10-20% longer to clean.

Occupant density. A building with 1 person per 300 sq ft generates much less mess than one with 1 person per 100 sq ft. Higher density means more trash, more restroom use, more floor traffic.

Special requirements. Ask about:

  • Security clearance or badging
  • Alarm codes and key management
  • Restricted areas
  • Green cleaning requirements
  • Specific chemical restrictions (healthcare, food service)

Pro tip: Take photos

Walk the building with your phone camera. Photograph every area, every restroom, every floor type. You'll refer back to these when calculating — and they help you remember details that notes miss.

Step 2: Calculate Labor Hours Using ISSA Production Rates

This is where most BSC owners go wrong. They guess how long the building will take to clean based on "feel." Professional estimators use ISSA 612 production rates — the industry standard for how many square feet a trained cleaner can clean per hour for each specific task.

What are ISSA production rates?

ISSA (International Sanitary Supply Association) publishes standard cleaning times that represent how fast a trained, experienced cleaner works at a normal pace using proper equipment. These rates have been developed over decades from real-world data.

Key production rates you need to know

Vacuuming:

| Task | Production Rate | Notes | |------|----------------|-------| | Vacuum carpet (upright) | 3,000-3,500 sq ft/hr | Standard commercial carpet | | Vacuum carpet (wide-area) | 5,000-7,000 sq ft/hr | Open spaces, wide-area vacuum | | Vacuum hard floor | 4,500-5,500 sq ft/hr | Backpack or upright |

Mopping:

| Task | Production Rate | Notes | |------|----------------|-------| | Damp mop (flat mop) | 4,000-5,500 sq ft/hr | Standard damp mopping | | Wet mop (string mop) | 3,000-4,500 sq ft/hr | Traditional wet mopping | | Auto scrub (walk-behind) | 8,000-15,000 sq ft/hr | Large areas |

Restrooms:

| Task | Production Rate | Notes | |------|----------------|-------| | Full restroom clean | 8-15 min/restroom | Fixtures, floor, restock | | Quick touch-up | 4-8 min/restroom | Spot clean, restock |

Trash and recycling:

| Task | Production Rate | Notes | |------|----------------|-------| | Empty trash can | 2-3 min/container | Reline with new bag | | Trash removal to dumpster | 5-10 min/trip | Walk to exterior dumpster |

Dusting:

| Task | Production Rate | Notes | |------|----------------|-------| | High dusting | 4,000-6,000 sq ft/hr | Vents, ledges, partitions | | Surface dusting | 6,000-8,000 sq ft/hr | Desks, tables, windowsills |

Glass:

| Task | Production Rate | Notes | |------|----------------|-------| | Interior glass | 200-400 sq ft/hr | Partitions, interior windows | | Glass entrance doors | 3-5 min/door | Both sides |

How to calculate hours per visit

The formula is straightforward:

Hours per visit = Square footage / Production rate (sq ft/hr)

For unit-based tasks (restrooms, trash cans):

Hours per visit = Number of units × Minutes per unit / 60

Worked example: 20,000 sq ft office building

Let's say you're bidding on a 20,000 sq ft general office cleaned 5 nights per week. The building has 12,000 sq ft of carpet, 8,000 sq ft of hard floor, 6 restrooms, 40 trash cans, and a glass entrance with interior partitions.

| Task | Quantity | Rate | Hours/Visit | |------|----------|------|-------------| | Vacuum carpet | 12,000 sq ft | 3,250 sq ft/hr | 3.69 | | Damp mop hard floors | 8,000 sq ft | 4,750 sq ft/hr | 1.68 | | Restroom clean (6) | 6 restrooms | 12 min each | 1.20 | | Trash removal (40 cans) | 40 cans | 2.5 min each | 1.67 | | Dusting | 20,000 sq ft | 7,000 sq ft/hr | 2.86 | | Glass/partitions | 200 sq ft | 300 sq ft/hr | 0.67 | | Total | | | 11.77 hrs |

At 22 visits per month (5 nights/week × 4.33 weeks), that's 258.9 hours per month.

Adjustment factors

The ISSA rates assume standard conditions. Adjust for reality:

  • Building condition: Well-maintained = multiply by 0.9. Poorly maintained = multiply by 1.1-1.2.
  • Occupant density: Low density = 0.85. High density = 1.15.
  • Furniture density: Open plan = 0.9. Cubicle-heavy = 1.1.
  • Add 10-15% for transition time: Walking between areas, getting supplies, setup/breakdown.

Step 3: Calculate Your True Labor Cost (Burden Rate)

Here's where most cleaning companies leave money on the table. You know your cleaners' hourly wage. But the wage is not your cost.

A cleaner earning $15/hour actually costs you $17-$22/hour when you add all the employer-side costs. If you bid based on wage alone, you're underpricing every contract by 15-45%.

What is a burden rate?

The burdened rate is the true, all-in cost per hour of labor. It includes:

1. FICA taxes — 7.65% (mandatory)

Every employer pays 6.2% for Social Security and 1.45% for Medicare. No exceptions. On $15/hour, that's $1.15/hour you're paying that doesn't show up in the wage.

2. Federal unemployment (FUTA) — 0.6%

Paid on the first $7,000 per employee per year. Small per-hour cost (~$0.02/hr for full-time) but it adds up across your crew.

3. State unemployment (SUTA) — varies wildly

This is the one that catches people. SUTA rates range from 0.1% to 12% depending on your state and your claims history. Cleaning companies typically have high turnover (200-400% annually), which means more unemployment claims, which means higher SUTA rates.

A new cleaning company in Texas might pay 2.7% on the first $9,000. An established company in California with high turnover might pay 5%+ on $7,000.

4. Workers compensation — 3-5% of payroll

Janitorial services fall under NCCI class code 9014. Workers comp rates vary by state and your company's Experience Modification Rate (EMR). A typical rate is $3-$5 per $100 of payroll.

On $15/hour, that's $0.45-$0.75/hour in workers comp alone.

5. Benefits (if you provide them)

Health insurance, paid time off, sick leave, uniforms. Most small BSCs provide minimal benefits (state-mandated sick leave plus uniforms), but even those add up:

  • Uniforms: $20-50/month = ~$0.17/hr
  • Paid sick leave: ~$0.15-$0.30/hr
  • Health insurance (if offered): $300-600/month = $1.73-$3.46/hr

Putting it all together

Here's a real example for a $15/hour cleaner in Texas at a small BSC:

Base wage:                     $15.00/hr
FICA (7.65%):                   $1.15/hr
FUTA:                           $0.02/hr
SUTA (2.7% on $9,000):         $0.12/hr
Workers comp (3.5%):            $0.53/hr
Uniforms ($30/mo):              $0.17/hr

True cost per hour:            $16.99/hr
Burden multiplier:              1.133x

For a $17/hour cleaner in California with health insurance:

Base wage:                     $17.00/hr
FICA (7.65%):                   $1.30/hr
FUTA:                           $0.02/hr
SUTA (3.4% on $7,000):         $0.11/hr
Workers comp (5.2%):            $0.88/hr
Paid sick leave:                $0.20/hr
Health insurance ($400/mo):     $2.31/hr
Uniforms ($30/mo):              $0.17/hr

True cost per hour:            $21.99/hr
Burden multiplier:              1.294x

That California cleaner costs 29.4% more than their base wage. If you bid based on $17/hour instead of $21.99/hour, you're losing almost $5 per hour worked — on a 259-hour/month contract, that's $1,294/month in unaccounted costs.

Step 4: Calculate Supply Costs

Cleaning supplies (chemicals, paper products, trash liners, equipment parts) are a smaller but real cost that needs to be in your bid.

Three ways to estimate supply costs

Method 1: Percentage of labor cost (simplest)

Industry standard: 4-8% of total labor cost.

  • General office: 5-6%
  • Medical facility: 7-8%
  • Restaurant: 8-10%

Using our 20,000 sq ft example: $4,400.88/month labor × 6% = $264.05/month in supplies.

Method 2: Per square foot

Use $0.01-$0.03 per sq ft per cleaning visit.

20,000 sq ft × $0.015 × 22 visits = $6,600/year = $550/month.

Method 3: Task-based estimate

Price out each supply item based on consumption rates. Most accurate but most time-consuming. Best for large or specialized facilities.

For most bids, Method 1 (percentage of labor) is sufficient and what experienced BSCs use.

Step 5: Set Your Target Margin

Now you know your costs. The final step before pricing is deciding how much profit you need.

Margin vs. markup — know the difference

This trips up more BSC owners than anything else:

  • Markup = Profit / Cost (percentage of your cost)
  • Margin = Profit / Price (percentage of the selling price)

A 50% markup is only a 33% margin. A 30% margin requires a 43% markup. These are very different numbers, and confusing them can cost thousands.

| Markup | Equivalent Margin | |--------|------------------| | 20% | 16.7% | | 30% | 23.1% | | 40% | 28.6% | | 50% | 33.3% | | 75% | 42.9% |

What margin should you target?

| Scenario | Target Gross Margin | |----------|-------------------| | Standard office (competitive) | 28-33% | | Medical/healthcare | 25-30% | | Industrial/warehouse | 30-40% | | New BSC (first contracts) | 30-35% | | Project work (deep clean) | 35-50% |

The golden rule: never go below 20% gross margin on recurring contracts. Below that, one callback, one employee injury, or one equipment failure wipes out your profit for the month.

Pricing formula

Monthly price = Total monthly cost / (1 - Target margin)

Using our example:

Monthly labor cost:     $4,400.88
Monthly supply cost:      $264.05
Monthly equipment:        $150.00 (allocated)

Total monthly cost:     $4,814.93
Target margin:               30%

Monthly price:          $4,814.93 / (1 - 0.30) = $6,878.47
Rounded:                $6,900/month

That's $82,800/year for cleaning a 20,000 sq ft office 5 nights a week. Your gross profit: $2,085/month or $25,020/year from this single contract.

Step 6: Create a Professional Proposal

Your calculation is done. Now you need to present it in a way that wins the contract.

What the proposal should include

  1. Cover page — Your company name, logo, client's name, date
  2. Executive summary — 2-3 sentences about your approach
  3. Scope of work — Every task, every frequency, every area. This protects you from scope creep.
  4. Cleaning schedule — Days and times
  5. Pricing — Monthly price (never show your cost breakdown to the client)
  6. Terms — Contract length, cancellation policy, price adjustment terms
  7. About your company — Brief background, insurance info, references

What NOT to include

  • Your hourly labor rates
  • Your burden rate calculation
  • Your margin or markup
  • Your supply costs

The client only needs to know: what you'll do, when you'll do it, and how much it costs. Your internal math stays internal.

The proposal is your first impression

A professional, branded PDF proposal sets you apart from the competitor who sends a handwritten quote on a napkin (yes, this still happens in 2026). Clients evaluate you based on your proposal before they evaluate your cleaning.

Common Bidding Mistakes

1. Not accounting for burden rate

Bidding based on wage instead of burdened rate. This underprices every contract by 15-45%.

2. Guessing instead of using production rates

"I think two people can clean it in 4 hours" is not a calculation. Use ISSA rates. Be systematic.

3. Forgetting transition time

Your cleaners don't teleport between tasks. Add 10-15% for walking, setup, and breakdown.

4. Ignoring building condition

An older building with deferred maintenance takes significantly longer to clean. Adjust your hours upward.

5. Bidding below 20% margin to "win the contract"

You won the contract but lost money. A $5,000/month contract at 15% margin gives you $750/month — one callback or one employee issue and your profit is gone.

6. Not having a scope of work

Without a documented scope, "cleaning the building" means whatever the client decides it means. Scope creep kills margins faster than anything else.

Speed Up the Process

Following this guide manually takes 2-4 hours per bid when you factor in the math, the research, and the proposal formatting. That's fine for your first few bids — you need to understand the numbers.

But as you grow, the math doesn't change. The ISSA rates, the burden calculation, the margin formula — it's the same every time. The variable is the facility, not the method.

BidLoom automates this entire process. Enter the facility details, select the tasks, and the system calculates labor hours from ISSA production rates, computes your burdened labor cost, adds supply costs, applies your margin, and generates a professional PDF proposal — in about 15 minutes instead of 4 hours.

The free tier lets you create 3 bids to try it out. No credit card required.


This guide is part of our series on commercial cleaning business management. Next: ISSA Cleaning Times Explained and Commercial Cleaning Bid Template.

Built for cleaning companies

Create accurate bids in 15 minutes, not 4 hours

BidLoom uses ISSA 612 production rates and full labor burden calculations to price your bids correctly — then generates a professional PDF proposal you can send immediately.

Free tier includes 3 bids. No credit card required.