Who this is for
This guide is for BSC owners and estimators building or reviewing their bid pricing methodology. It applies to new bids, contract renewals, and annual price adjustment negotiations. The formulas here apply to any commercial cleaning account — office, retail, industrial, institutional — scaled to the account's labor hour requirement.
Once you have your labor cost model, use the Bid Generator to assemble a complete bid with labor, supplies, overhead, and margin. Use the Production Rate Calculator to establish your hour estimate before you apply the cost model. Cross-check your final price against market data with the Bid Benchmarks tool.
Step 1: Establish burdened labor cost
Burdened labor cost is the true cost to the company of one employee-hour worked. The BLS Occupational Employment Statistics program (SOC 37-2011, Janitors and Cleaners) reports a national median hourly wage of approximately $16.50–$17.50 as of recent survey periods; metropolitan markets and states with higher minimum wages will run $18–$24 or more. Use your actual local market rate as the starting wage — BLS data is a benchmark, not a local substitute.
The standard burdened labor cost formula:
Burdened Rate = Base Wage × (1 + Burden Rate) Typical burden components: FICA (Social Security + Medicare): 7.65% Federal Unemployment (FUTA): 0.60% State Unemployment (SUTA): 2.00–4.00% (varies) Workers' Compensation Insurance: 3.00–8.00% (varies by state/class) General Liability Insurance: 1.50–3.00% Paid Time Off (vacation/sick): 2.50–4.00% Benefits (health, if offered): 5.00–12.00% Conservative total burden range: 22–35% Mid-market burden estimate: 28%
Worked example: Base wage $18.00/hr × 1.28 burden = $23.04 burdened rate. Every hour of labor in your bid costs the company $23.04 before a dollar of overhead or profit is applied. A BSC who prices at $18.00/hr plus a nominal margin is losing money on every shift.
Step 2: Calculate labor cost per month
From your production rate model (see the ISSA 447 production rate guide), you have a total crew-hours-per-event estimate. Convert to monthly:
Monthly Labor Hours = Crew Hours/Event × Services/Week × 4.33
Example: 8 crew-hours/night × 5 nights/week × 4.33 = 173.2 hrs/month
Monthly Labor Cost = Monthly Hours × Burdened Rate
= 173.2 × $23.04 = $3,991/month
Note: 4.33 is the average number of weeks per month (52 ÷ 12). Do not use 4.0 — that understates your labor cost by 8% annually, which is meaningful at scale.
Step 3: Add supply costs
Supply costs for routine commercial cleaning (chemicals, paper goods, liners, microfiber replacement) typically run $0.03–$0.07 per square foot per month for standard office accounts. Healthcare and food service accounts run higher ($0.06–$0.12/sq ft) due to higher disinfectant consumption and more frequent consumable restocking. Verify against your actual purchasing data — industry averages are a sanity check, not a substitute for your own cost history.
Monthly Supply Cost = Sq Ft × Supply Rate/Sq Ft Example: 25,000 sq ft × $0.05 = $1,250/month
Separate consumables you supply (liners, toilet paper, paper towels, soap) from consumables the client supplies. This boundary must be written into your SOW — ambiguity here creates recurring billing disputes.
Step 4: Allocate overhead
Overhead includes all costs not directly tied to a specific account: company vehicle and insurance, office and administrative labor, equipment depreciation, software subscriptions, and business insurance (above what is burdened into labor). For a BSC with $1M–$5M in annual revenue, overhead typically runs 12–18% of direct costs. Larger operations achieve lower overhead ratios through scale; smaller operators run higher ratios.
Overhead Allocation = (Labor Cost + Supply Cost) × Overhead Rate Example: ($3,991 + $1,250) × 0.15 = $786/month
Step 5: Apply profit margin
The correct formula for margin-based pricing uses margin as a percentage of revenue — not markup as a percentage of cost. These are not the same number:
Margin-based price: Price = Total Cost / (1 − Margin %) Markup-based price: Price = Total Cost × (1 + Markup %) A 20% margin ≠ a 20% markup: Cost = $6,027/month 20% margin: $6,027 / 0.80 = $7,534 (margin = $1,507 = 20% of revenue) 20% markup: $6,027 × 1.20 = $7,232 (margin = $1,205 = 16.7% of revenue)
BSCai member research indicates that well-run cleaning companies operate at 8–12% net profit margin after all costs. If your margin calculation results in less than 8% net, review your cost assumptions — not your margin target.
Full worked example
25,000 sq ft Class B office building. Nightly service, 5 days/week. 8 crew-hours/night. Base wage $18.00/hr. 28% burden. 15% overhead rate. 18% target margin.
Burdened rate: $18.00 × 1.28 = $23.04/hr Monthly labor hrs: 8 × 5 × 4.33 = 173.2 hrs Monthly labor cost: 173.2 × $23.04 = $3,991 Monthly supplies: 25,000 × $0.05 = $1,250 Direct cost total: $3,991 + $1,250 = $5,241 Overhead (15%): $5,241 × 0.15 = $786 Total cost: $5,241 + $786 = $6,027 Price at 18% margin: $6,027 / 0.82 = $7,350/month Price per sq ft/mo: $7,350 / 25,000 = $0.294/sq ft
At $0.294/sq ft/month this account prices into the mid-range for Class B office in most markets (see the Bid Benchmarks tool for current market ranges by facility type). If a competitor is bidding $0.18/sq ft, they are either running a materially lower wage, skipping burden components, or winning a money-losing contract.
When to walk away from a bid
Walk away when any of the following apply: the client's budget ceiling requires you to price below your burdened labor cost; the scope is ambiguous and the client refuses to clarify it before award; the account requires specialty services (hazmat, post-construction) at standard cleaning rates; or the travel distance makes your per-account overhead uneconomical. A lost bid costs nothing. A contract priced below cost costs you real money every month until you exit it.
Common mistakes
- Pricing at base wage, not burdened rate. The 28% burden gap is the most common source of margin erosion in BSC pricing. Every dollar of unburdened labor estimate overstates your actual margin by $0.28.
- Using 4.0 weeks/month instead of 4.33. An 8% labor cost understatement that compounds across a full account portfolio.
- Confusing margin and markup. A 20% markup produces a 16.7% margin. Know which number you are targeting and use the correct formula.
- Not separating client-supplied from BSC-supplied consumables. Include consumable responsibility in the SOW and price accordingly. Unexpected consumable costs are a common margin leak in the first year of a new account.
- Bidding on square footage alone without validating with a production rate model. Square footage is an input, not an output. The labor hours required to clean 25,000 sq ft vary dramatically by floor type, fixture count, and building configuration.
Quick checklist
- Is your base wage based on local market data, not the BLS national median?
- Does your burden rate include FICA, FUTA, SUTA, workers' comp, GL insurance, and PTO?
- Are you using 4.33 weeks/month in your monthly labor calculation?
- Is your supply cost estimate based on actual purchasing history or verified industry benchmarks?
- Are consumable responsibilities clearly defined in the SOW before pricing?
- Are you pricing to margin (revenue %) not markup (cost %)?
- Have you cross-checked your final price against market benchmarks for this facility type?
Bid Generator
Input your burdened labor rate, hours, supply cost, overhead, and margin — get a complete monthly bid price with a line-item breakdown you can share with the client or use for internal review.
Open Bid Generator