By the Opora Editorial Team
A building service contractor bidding commercial accounts in Boston and Phoenix with the same labor cost assumption is wrong in at least one market. The Bureau of Labor Statistics set the national median hourly wage for janitors and building cleaners at $17.27 as of May 2024, per the BLS Occupational Outlook Handbook. That figure is the midpoint of a distribution that runs from $12.39 at the 10th percentile to $23.18 at the 90th percentile nationally — a near-2-to-1 spread within a single occupation code. At the metro level, the spread is wider still. Operators expanding to a new market or bidding multi-city accounts who use the national median as their labor assumption are building a systematic error into every bid in their highest-cost and lowest-cost markets.
The source for metro-level correction is the BLS Occupational Employment and Wage Statistics (OEWS) program, which publishes wage estimates for over 800 occupations across 600-plus metropolitan and nonmetropolitan areas annually. The most recent metro-level OEWS release contains May 2025 data, published through the BLS metropolitan area data page in May 2026. That data is the primary source for any BSC labor rate assumption in a specific market.
This article explains how to read and apply the BLS OEWS metro data, identifies the variables that move metro wages above or below the national median, and builds a framework for incorporating local wage data into your fully loaded rate calculation.
How the BLS OEWS metro data is structured
The BLS OEWS program surveys employers across all major industries every six months, with May and November as the primary survey periods. The occupational wage estimates published each May reflect the May survey period for the prior year. The May 2025 estimates (published May 2026) are the most current available for SOC 37-2011 (Janitors and Building Cleaners).
For each metropolitan statistical area (MSA), the BLS publishes a standard set of wage statistics for each covered occupation:
- Hourly mean wage (the average across all workers in the MSA)
- Hourly median wage (the 50th percentile)
- 10th, 25th, 75th, and 90th percentile hourly wages
- Annual mean and median (the hourly figures multiplied by 2,080)
The BLS OEWS metropolitan area data lists every MSA with a link to its occupational wage estimates. Navigate to your target market, find SOC 37-2011, and read the median. That figure — not the national median — is the benchmark for a specific-market bid.
Important methodological caveat: BLS OEWS metro estimates carry relative standard errors (RSE) that reflect sampling uncertainty. Estimates for small occupational employment concentrations in small MSAs can have RSEs of 20% or more, meaning the published figure should be treated as an estimate with a meaningful confidence interval, not an exact count. BLS flags high-RSE cells in its data tables. For major metros with large janitorial employment, the RSE is typically low (under 10%).
The variables that drive metro wage divergence
Three structural factors explain most of the variation in janitorial wages across metro areas.
State minimum wage floors
The DOL state minimum wage data shows that as of 2026, many states have minimum wages above the federal $7.25 floor. California, Washington, Oregon, Massachusetts, New York, and New Jersey all have state minimums at or above $16 per hour. In these states, the effective floor for any janitorial wage is the state minimum, which compresses the low end of the local wage distribution. The national 10th percentile of $12.39 does not exist as a labor market reality in California, where $12.39 is below the state minimum.
High minimum-wage states also have higher medians. When the floor rises, the middle of the distribution follows — both because direct compliance raises low-end wages and because workers at wages just above the old minimum demand pay adjustments when the floor moves. An operator competing in a high-minimum-wage state who is using a national median assumption is systematically underestimating labor cost.
Cost of living and local labor market tightness
Metro areas with higher overall costs of living tend to have higher nominal wages across most occupations, including janitorial. This effect is not mechanical — OSHA and BLS do not publish cost-of-living-adjusted wage data — but it is observable in the data. The San Francisco-Oakland-Hayward, CA MSA; the San Jose-Sunnyvale-Santa Clara, CA MSA; and the Seattle-Tacoma-Bellevue, WA MSA consistently show janitorial median wages above $22 per hour in BLS OEWS data, driven by the combination of high state minimums and labor market tightness.
At the other end, MSAs in the South and parts of the Midwest with lower costs of living and lower state minimums show janitorial medians closer to $14 to $16 per hour. The same building, at the same production rate, costs materially less to clean in terms of direct labor.
Industry mix and union penetration
Some metros have higher concentrations of unionized janitorial work than others. Union contracts typically set wage floors above market rates for covered workers. MSAs with high concentrations of large Class A commercial real estate — New York, Chicago, San Francisco — have historically had stronger janitorial union presence (SEIU Local 32BJ in New York, SEIU Local 87 in San Francisco, for example) that sets wage expectations even for non-union operators competing in the same market. This is a market condition, not a regulatory one, and BLS OEWS wages reflect it in the metro medians.
Applying metro wage data to your fully loaded rate
The metro median is the input to your wage assumption; the fully loaded rate is the number that matters for the bid. The burden calculation adds statutory costs that partially but not entirely scale with local wages. The fully-loaded labor cost calculation for cleaning operators provides the framework; here is how the metro wage flows into it.
FICA (7.65% employer share) is a fixed percentage, per the Social Security Administration, so it scales proportionally with the local wage. A $20/hour wage carries a higher FICA burden in absolute dollars than a $15/hour wage. FUTA (0.6% net effective rate on the first $7,000 of wages) is capped and does not scale above a low dollar threshold — it is approximately the same absolute cost regardless of whether the worker earns $15 or $25 per hour.
Workers' compensation, calculated as a rate per $100 of payroll, does scale with wages. At a 9014 rate of $5.74 per $100 (California's 2026 advisory rate, per the California Department of Insurance via WCIRB), a $22/hour worker generates more premium than a $15/hour worker in the same classification and same state. But the rate itself varies by state — so the workers' compensation component of burden varies both with the wage and with the state rate, making multi-state comparison complex.
SUTA rates vary by state and employer experience, per DOL state UI law data. In high-minimum-wage states, both the SUTA rate schedule and the taxable wage base affect the effective burden — some states with high minimums also have higher SUTA wage bases, which means the SUTA cost scales further than in low-wage-base states.
A simplified multi-market comparison:
| Component | Market A ($15/hr metro) | Market B ($21/hr metro) | Difference |
|---|---|---|---|
| Base wage | $15.00 | $21.00 | $6.00 |
| FICA (7.65%) | $1.15 | $1.61 | $0.46 |
| FUTA (0.6%, annualized) | $0.02 | $0.02 | $0.00 |
| SUTA (2.5% estimate) | $0.38 | $0.53 | $0.15 |
| WC (example: $3.50/$100, 1.00 mod) | $0.53 | $0.74 | $0.21 |
| PTO (10 days) | $0.57 | $0.80 | $0.23 |
| Fully loaded | $17.65 | $24.70 | $7.05 |
The $6.00/hour wage difference becomes a $7.05/hour fully loaded cost difference because burden costs scale with wages. An operator who uses a national-average loaded cost figure in both markets underestimates cost in the high-wage market and may overestimate it in the low-wage market — the direction of error depends on the national figure used. At 2,000 labor hours per FTE per year, a $7.05/hour loaded cost gap represents $14,100 in annual cost per employee. Across five employees on an account, that is $70,500 in misestimated annual cost.
How to access and read the BLS OEWS metro data
The practical steps for using BLS OEWS metro data in a bid:
- Go to the BLS OEWS metropolitan area data page and select the relevant MSA.
- On the MSA page, find SOC 37-2011 (Janitors and Building Cleaners).
- Record the median hourly wage and the 25th-percentile wage. The 25th percentile is relevant for operators who compete on price and are likely hiring below-median workers; the median is the appropriate benchmark for competitive hiring.
- Note the relative standard error if reported. High-RSE estimates (over 25%) should be supplemented with state-level estimates from BLS OEWS state data for a more stable figure.
- Cross-reference against DOL state minimum wage data to confirm the market's effective wage floor.
The Quarterly Census of Employment and Wages (QCEW) provides county and metro-level employment and payroll data for NAICS 561720, which can supplement the OEWS occupational data with establishment-level payroll context for a specific market.
The strategic applications of metro wage benchmarks
Expansion decisions. Operators evaluating entry into a new market need a loaded cost estimate for that market before assessing whether competitive bid prices in that market generate acceptable margins. A market where competitors are pricing at $0.18/sqft per service may be highly profitable if local loaded wages are $16/hour but barely viable at $23/hour loaded. The loaded cost comparison must precede the pricing assessment.
Multi-city bid responses. A single corporate client with facilities in Atlanta, Denver, and Seattle represents three distinct labor markets. A bid that uses a single national wage assumption misprices at least two of the three. Use BLS metro medians for each city, load them separately, and present a per-city cost structure that reflects actual market conditions.
Competitor analysis. When a competitor bids significantly below your price in a specific market, the metro wage data provides a reality check. If your loaded cost at the local median wage is $22/hour and the competitor's implied labor cost suggests $17/hour, either they are paying below the local median (and have a turnover problem) or they have a fundamentally different cost structure (fewer supervisory hours, lower WC rate from a better modifier). Neither possibility is sustainable indefinitely; the data helps you assess which is more likely.
The commercial cleaning bid generator accepts a custom wage input so you can run the metro-specific loaded cost without recalculating the entire burden manually. The turnover and retention playbook for janitorial operations covers what happens to your effective cost per productive hour when turnover is high — a risk that varies with how close your wages sit to the local market competitive level.
What to verify yourself
- The most current metro wage data. The BLS OEWS metro release for May 2025 was published May 2026 and is the most recent available as of this writing. BLS releases updated metro data annually. Before using any figure for a bid, verify it is from the most recent release at the BLS OEWS metro page.
- State minimum wage. State minimum wages change frequently. Confirm the current floor for your market at DOL's state minimum wage page before finalizing any bid.
- Your actual hiring wage. The BLS median is the market benchmark, but your actual wage offer is the cost input. If you are hiring at the 25th percentile, use that figure — adjusted upward for the burden components — rather than the median. If you are hiring above the median to compete for quality workers, use that figure.
- Workers' compensation rate for the state of performance. Verify your NCCI 9014 rate or state fund rate for each state in which you operate, since the rate component of burden varies independently of the wage.
- Collective bargaining agreements. In markets with active union contracts (New York, Chicago, San Francisco, others), the prevailing wage for covered accounts may be set by a collective bargaining agreement rather than the BLS median. Check the applicable agreement before bidding covered accounts.
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 Workforce & Labor hub. Hub pillar slug: [INTERNAL: workforce-labor-hub-pillar].
Primary sources
- BLS Occupational Employment and Wage Statistics, Janitors and Building Cleaners (SOC 37-2011), May 2024
- BLS OEWS — Metropolitan and Nonmetropolitan Area Data, May 2025
- BLS Occupational Outlook Handbook, Janitors and Building Cleaners
- DOL Wage and Hour Division — State Minimum Wage Laws
- BLS — Quarterly Census of Employment and Wages (QCEW), NAICS 561720
- U.S. Census Bureau — 2022 SUSB Annual Data, NAICS 561720