Bidding & Ops

Labor and chemical markup math: building a defensible bid rate from cost to price

Most janitorial bids that lose money in year two were priced correctly on paper. The math was not wrong. The inputs were wrong. The operator built the bid from base wage rather than loaded wage, priced chemicals as a fixed dollar amount ...

10 min read 2251 words Updated Jun 03, 2026 Reviewed by Opora Editorial Team

By the Opora Editorial Team

Most janitorial bids that lose money in year two were priced correctly on paper. The math was not wrong. The inputs were wrong. The operator built the bid from base wage rather than loaded wage, priced chemicals as a fixed dollar amount rather than as a percentage of scope, and applied an overhead multiplier that reflected last year's operations rather than this contract's actual overhead burden. The bid looked like it had a 20% gross margin. The account ran at 9%.

This article walks the markup math from the ground up: loaded labor cost, direct chemical and supply cost, overhead allocation, and the markup that converts total cost into a bid rate. Every step is sourced and traceable. The goal is a bid you can defend to a client who pushes back on price and to your own P&L when the account is three months old.

Step 1: Loaded labor cost per hour

The bid rate starts with what one hour of labor actually costs you — not what you pay the worker, but what that hour costs the business after all statutory and discretionary burdens are applied.

The Bureau of Labor Statistics put the median hourly wage for janitors and building cleaners at $17.27 as of May 2024, per BLS Occupational Employment and Wage Statistics for SOC 37-2011. That is the starting point for the national benchmark example below. Your actual base wage may be higher or lower depending on your metro and your pay structure; substitute your own figure.

The burden builds on top of base wage through four statutory components:

FICA: 7.65%. The employer matches 6.2% for Social Security and 1.45% for Medicare on every wage dollar, per IRS Publication 15 (Circular E). At $17.27, FICA adds $1.32 per hour.

FUTA: 0.6% net in most states. Federal unemployment tax has a gross rate of 6.0% on the first $7,000 of wages, but employers who pay their SUTA on time receive a 5.4% credit, leaving an effective rate of 0.6%, per IRS Topic No. 759. The annual FUTA cost at the 0.6% net rate is $42 per employee, or approximately $0.02 per hour spread over 2,080 full-time hours.

SUTA: 1% to 5.4% depending on state and experience rate. State unemployment tax is set by state law. The U.S. Department of Labor publishes each state's taxable wage base and rate schedule. A new employer is assigned a starting rate, typically the industry average, until three to five years of claims history generate an experience-rated modifier. For a janitorial operation with average turnover — historically 75% to 200% annually per industry data — SUTA rates tend to move toward the higher end of a state's schedule over time. A 2.5% midpoint on $17.27 adds $0.43 per hour.

Workers' compensation: 2% to 10%+ of payroll depending on state. Workers' comp is the largest and most variable burden component for cleaning operations. Most states use the National Council on Compensation Insurance NCCI rate for janitorial contractors, classified under NCCI Class Code 9014. The class 9014 rate varies by state. California's Workers' Compensation Insurance Rating Bureau set the advisory pure premium rate for class 9014 at $5.74 per $100 of payroll for 2026. Lower-rate states may run $1.50 to $2.50 per $100. This rate is then multiplied by your experience modification rate (EMR), which adjusts the premium up or down based on your claims history. At a moderate state rate of $5.73 per $100 and a neutral 1.00 EMR, workers' comp adds $0.99 per hour at the $17.27 wage.

PTO and discretionary burden. Ten days of paid time off represents 80 hours of cost spread across approximately 2,080 worked hours — about 3.8% of labor cost, or $0.66 at $17.27. Equipment, uniform, and PPE allowances add $0.35 to $0.60 per hour depending on the program.

A fully-loaded rate at these midpoint assumptions:

Component Rate Cost per hour
Base wage $17.27 $17.27
FICA (7.65%) $1.32
FUTA (0.6%, annualized) $0.02
SUTA (2.5% midpoint) $0.43
Workers' comp (NCCI 9014, moderate state, 1.00 mod) ~$5.73/$100 $0.99
PTO (10 days) 3.8% $0.66
Equipment/uniform/PPE (light program) flat $0.40
Loaded labor cost $21.09

This is the cost before overhead. The burden is 22% above base wage at these assumptions. In a high workers' comp state (California, New York) with a debit EMR, the same base wage loads past $24 per hour. The labor burden true cost methodology walks through each component in full.

Step 2: Labor hours for the account

Once you have the loaded rate, the bid requires converting the account's cleaning scope into labor hours. ISSA's production rate formula is: cleanable square footage divided by production rate (square feet per hour) equals labor hours for that task. Sum across all tasks in the scope to get total hours per cleaning event, then multiply by service frequency to get monthly hours.

Example: 20,000 cleanable square feet of office space. Standard ISSA production rate for vacuuming commercial carpet: 3,000 to 5,000 square feet per hour (rate varies by carpet type and furniture density). At 4,000 square feet per hour, vacuuming alone is five hours per event. Add restrooms at the fixture method (approximately 20 minutes per restroom unit at standard load), floor mopping, trash removal, and spot-cleaning, and a typical 20,000-square-foot office might require nine to twelve labor hours per cleaning event.

Real-world production rates commonly run 15% to 30% below ISSA standards in complex buildings. The ISSA 447 production rates and real-world variance explainer documents where and why that gap occurs. Apply a variance factor when working from a building you have not cleaned before. If you have cleaned a comparable building in your portfolio, use your actual clocked hours as the production data.

Monthly labor hours × loaded rate = direct labor cost per month. If the account requires 50 labor hours per cleaning event, cleans five days per week, and loads at $21.09 per hour:

  • Monthly labor hours: 50 × 4.33 weeks × 5 events/week = 1,083 hours per month
  • Monthly direct labor cost: 1,083 × $21.09 = $22,840

This is before overtime. DOL FLSA overtime rules require 1.5x pay for all hours beyond 40 per workweek for covered non-exempt employees. A schedule that regularly puts an employee at 45 hours per week adds a 12.5% premium on the five overtime hours. Model overtime probability before finalizing labor cost.

Step 3: Direct chemical and supply cost

Chemical and supply cost is typically 3% to 6% of contract revenue in a standard commercial cleaning account. Healthcare, industrial, and food service accounts with higher disinfection requirements run higher. The cost breaks into three categories:

Cleaning and disinfection chemicals. Products used at every service event: all-purpose cleaner, disinfectant, glass cleaner, restroom cleaner/disinfectant, bowl cleaner. These costs scale with the number of service events and the size of the account. Dilution ratio discipline matters here — a properly calibrated dispenser system reduces chemical cost significantly versus product applied by guesswork. Track actual product usage by account to build real cost data.

Floor care chemicals. Floor finish, stripper, neutral cleaner, and carpet cleaning products for periodic work. Floor care chemicals have a lower frequency than daily chemicals but a higher per-application cost. Build floor care into a separate line item at the estimated number of applications per year rather than folding it into a flat monthly chemical cost.

Consumables. Microfiber, mop heads, and liners have a finite lifespan. A microfiber cloth laundered according to manufacturer specifications lasts approximately 200 to 500 wash cycles before performance degradation. These replacement costs belong in direct cost, not overhead.

Establish chemical and supply cost as a dollar amount per month based on actual usage, not as a percentage of labor. The percentage approach works as a sanity check (3% to 6% of revenue is the range to verify against), but the bid should price from actual product quantities and cost per unit.

Step 4: Overhead allocation

Overhead is every cost of running the business that does not sit directly in one account's cost structure: management salaries, office rent, accounting, insurance (business auto, general liability, umbrella), equipment depreciation, marketing, and technology. The total overhead burden as a percentage of total revenue determines the overhead rate applied to each account.

A simple overhead allocation method: divide total monthly overhead by total monthly labor hours billed across all accounts. The resulting overhead cost per labor hour is then applied to each account proportionally. If total overhead is $12,000 per month and the company bills 1,500 labor hours per month, the overhead rate is $8 per labor hour.

Applied to the 1,083-hour example account: $8 × 1,083 = $8,664 in allocated overhead per month.

Overhead allocation rates vary by company size and structure. A sole operator with minimal infrastructure runs 10% to 15% of revenue in overhead. A company with a full administrative team, multiple supervisors, vehicles, and a warehouse runs 25% to 35%. Know your actual overhead rate before applying a generic percentage.

Step 5: Markup to bid rate

Total cost is direct labor plus direct chemicals plus allocated overhead. Markup is applied on top of total cost to generate gross margin.

Cost component Monthly amount
Direct labor (loaded) $22,840
Direct chemicals and supplies $950
Overhead allocation $8,664
Total cost $32,454
Target gross margin (25%) $10,818
Bid price (monthly) $43,272

Target gross margin for a commercial janitorial account typically falls in the range of 25% to 35% of revenue, with the margin dependent on account type, contract duration, and competitive intensity. A healthcare or industrial account with higher compliance requirements and lower competitive density may sustain 30% to 35% gross margin. A commodity office building in a highly competitive market may compress to 20% to 25%.

Expressed as a markup on cost (rather than a margin on revenue), a 25% gross margin equals a 33% cost markup. The distinction matters when you are quoting a percentage to a client or discussing pricing internally. Gross margin of 25% and a 25% markup on cost are not the same number.

Once the monthly bid price is established, translate it to a dollar-per-square-foot benchmark to verify competitiveness. At $43,272 per month for a 20,000-square-foot office: ($43,272 × 12) / 20,000 = $25.96 per square foot per year. Run the bid through the commercial cleaning bid generator to pressure-test margin at different production rate assumptions before submitting.

Markup vs. profit margin: the pricing conversation

When a client pushes back on your price, the conversation usually conflates margin and markup. Understand both:

  • Gross margin = (Revenue − Direct Cost) / Revenue. A 25% gross margin on $43,272 monthly revenue means $10,818 covers overhead and contributes to EBITDA.
  • Net margin = (Revenue − All Costs including overhead) / Revenue. After allocating overhead, net margin in the example above before tax is ($43,272 − $32,454) / $43,272 = 25%, because overhead was included in the cost build above.

In practice, EBITDA margins for commercial janitorial operations typically run 8% to 15%, with healthcare and specialized accounts at the higher end. If your bid is producing an estimated EBITDA below 8%, either the account is underpriced or your cost structure requires examination.

The bid break-even calculation framework identifies the minimum price at which an account covers its direct costs. The markup-to-bid-rate math above determines the price at which the account is profitable. The break-even is the floor; the markup price is your target.

What to verify yourself

Before finalizing a bid:

  • Confirm your state's NCCI 9014 workers' comp rate. The national midpoint used above may not match your state. Verify with your insurer or NCCI's rate lookup for your specific state.
  • Confirm your SUTA rate from your state workforce agency. Your experience-rated SUTA rate may differ materially from the 2.5% midpoint used here. Refer to the DOL state UI laws comparison for your state's wage base and rate schedule.
  • Verify FUTA credit-reduction status. In states with outstanding federal unemployment loans, the effective FUTA rate is higher than 0.6%. Check IRS Topic 759 and the current Form 940 instructions.
  • Price chemicals from actual current distributor pricing, not a percentage assumption. Chemical costs fluctuate with raw material costs and supply chain conditions that no benchmark can anticipate.
  • Recalibrate your overhead rate quarterly. Overhead percentage changes as revenue grows or shrinks. A rate calculated on prior-year revenue may significantly underallocate overhead to new accounts.
  • Model overtime probability. Use your actual scheduling data to estimate overtime likelihood before finalizing the labor cost.

Disclaimer — Bidding & pricing content

Benchmark figures, price ranges, labor rates, and markup assumptions in this article reflect industry data and stated methodological assumptions as of the data vintage disclosed in the article. They are reference benchmarks, not quotes, not market guarantees, and not professional bid recommendations.

Actual costs, margins, and competitive pricing in your market depend on local labor rates, your specific overhead structure, chemical costs at the time of bid, account-specific scope, and competitive conditions that this content cannot anticipate.

Before submitting a bid based on figures from this Site: Verify current local wage rates against BLS Occupational Employment and Wage Statistics for your metro area and NAICS code. Verify chemical and supply costs with your current distributor pricing. Apply your actual overhead and margin requirements. Have a qualified business advisor review the bid structure for contracts above your organization's risk threshold.

Opora Supply does not guarantee contract profitability and is not liable for financial outcomes resulting from pricing decisions informed by Site content. Information current as of publication date; verify current regulations and rates with the issuing authority before relying on this information. If you spot an error in this article, contact us.

This article links up to its hub pillar, the Bidding & Business Operations hub. Hub pillar slug: [INTERNAL: bidding-operations-hub-pillar].

Primary sources

Part of these field guides
BiddingBidding & business operationsBidding-operationsBuying-smartTier-bWorkforceWorkforce-and-labor