Geographic Pay Differentials: Why National Averages Aren't Compliant
Posting a national-average range in a high-cost metro can be non-compliant. Here's how geographic differentials from state-level data fix that.
Rovaryn Digital · May 15, 2026

The Problem with "National Average" in a Compliance Posting
Your recruiting coordinator posts the same Software Developer role on three job boards Tuesday morning. The range on the posting — pulled from a national salary summary the team found online — reads "$95,000–$130,000." By Friday afternoon, you have an inquiry from your employment attorney: a candidate in Colorado has filed a complaint with the Colorado Department of Labor and Employment, and the posted range doesn't look defensible.
The issue isn't that you failed to post a number. You did. The issue is that the number was built on a national aggregate, and the role is being hired into a specific labor market — one where state-level wage data tells a materially different story. A compliance officer, a plaintiff's attorney, or a pay-equity auditor won't compare your posting to the national average. They'll compare it to the market your employees actually work in.
By the end of this article you'll understand what geographic pay differentials are, why national wage averages systematically misrepresent local markets, how to locate and apply state- and metro-level BLS OEWS data, and what a defensible geographic adjustment looks like in a salary range posting.
What Geographic Pay Differentials Are — and Why They Exist
A geographic pay differential is the percentage difference between the wage for a given occupation in a specific location and a reference benchmark — usually the national median for that same occupation. If the national median for an occupation is $80,000 and the state median is $96,000, the location carries a +20% geographic differential. If the state median is $68,000, the differential is −15%.
Differentials exist because labor markets are local. Employers in high-cost metros compete against a denser pool of employers paying to the local cost of competition, not to a national aggregate. Cost of living matters, but it isn't the only driver — local industry concentration, unionization rates, remote-work penetration, and the depth of the talent pool in a specific occupation all push state and metro medians away from the national figure.
Three terms are useful here and worth defining precisely:
- Market median — the 50th percentile wage for a given occupation in a given geography: the wage below which half of workers in that role and location earn, and above which the other half earn. This is the anchor of a defensible range.
- Range spread — how wide the salary band is, expressed as a percentage of the midpoint or the minimum. A range of $72,000–$96,000 has a spread of roughly 33% of the minimum. Spread reflects seniority variation within the role, not geographic variation.
- Geographic salary adjustment — the multiplier or percentage applied to a national or state benchmark to arrive at the correct local anchor. A common method: divide the target geography's median by the national median to derive the adjustment factor, then apply it to the national midpoint for the role.
Geographic pay differentials and range spread are separate variables. You calibrate the spread for the role's internal seniority variance; you calibrate the geographic anchor for the market you're actually hiring in. Conflating them — or skipping the geographic step — is where most national-average postings go wrong.
Why National Averages Systematically Mislead
The BLS Occupational Employment and Wage Statistics (OEWS) program produces employment and wage estimates for over 800 occupations, constructed from a sample of approximately 1.1 million establishments (BLS, May 2025). The program publishes estimates at four geographic levels: national, state, metropolitan statistical area (MSA), and nonmetropolitan area.
The national estimate is a weighted average across all of those geographies. It smooths together the San Francisco Bay Area software developer labor market, the rural Midwest market, and every market in between. For occupations with heavy metro concentration, the national figure is structurally pulled upward by a handful of high-wage MSAs. For occupations with broad geographic distribution, the national figure may be pulled below the median of the states where you actually hire.
To see the distortion concretely, consider BLS OOH May 2024 national figures for two occupations:
- Software Developers (SOC 15-1252): national median $133,080 (BLS OOH, May 2024).
- Customer Service Representatives (SOC 43-4051): national median hourly $20.59 — equivalent to approximately $42,827 annualized at a full-time-equivalent of 2,080 hours (BLS OOH, May 2024; the annualized figure is a worked-example calculation, not a separate BLS assertion).
These national figures are accurate as national aggregates. They are not accurate as market anchors for a posting in Seattle, New York City, or Denver — or, for that matter, for a posting in a lower-wage rural market where the national figure overshoots local competition. Both errors create problems: posting too low in a high-wage market exposes you to a pay-transparency complaint and harms your ability to attract candidates; posting too high in a lower-wage market creates internal compression risk when you hire and then need to fit the new employee into your existing pay structure.
State- and metro-level OEWS data — published at the same time as national estimates — gives you the correct anchor for each location. The May 2025 national, state, and metro estimates were released on May 15, 2026 (BLS, 2026). For current figures, go directly to bls.gov/oes and pull the state or MSA table for your occupation's SOC code. If you need a primer on navigating that dataset before you apply geographic differentials, the guide How to Read BLS OEWS Data walks through the table structure step by step.
How Geographic Pay Differentials Work in Practice
Here is a worked example using the national software developer median as the anchor. This is arithmetic that demonstrates the method — treat the state differentials as illustrative placeholders until you pull your state's actual OEWS figures from bls.gov/oes.
Worked Example — Software Developers (SOC 15-1252), National Anchor: $133,080 (BLS OOH, May 2024)
| Geography | Illustrative State Median | Geographic Differential | Range Min (−20% spread) | Range Max (+20% spread) |
|---|---|---|---|---|
| National (anchor) | $133,080 | — | $106,464 | $159,696 |
| High-cost state (illustrative) | $152,000 | +14.2% | $121,600 | $182,400 |
| Mid-cost state (illustrative) | $120,000 | −9.8% | $96,000 | $144,000 |
| Lower-cost state (illustrative) | $98,000 | −26.4% | $78,400 | $117,600 |
Illustrative example only. Differentials and state medians are hypothetical placeholders. Pull actual state medians from the BLS OEWS state-level tables at bls.gov/oes before building a posting. The range spread of ±20% around the midpoint is one common methodology — your spread should reflect the seniority variance within the role.
The differential column is what geographic pay differentials actually measure: how far your target market sits from the national aggregate. Apply the state or MSA median as your midpoint, then build spread around it. The result is a range anchored to the market you're hiring in, not to the national smoothed average.
If the role is remote and you haven't established a location-based pay policy, the analysis becomes multi-jurisdictional. For a detailed framework on how to structure remote pay tiers — and which jurisdiction's data governs when an employee can work from anywhere — see Remote Pay Policy Tiers and Multi-State Hiring Compliance.
The Compliance Stakes of Getting Geography Wrong
Pay-transparency laws don't specify "use state-level data." What they require, jurisdiction by jurisdiction, is that the range you post reflect a good-faith estimate of what you will pay for the role. A "good faith" range is easier to defend when it is anchored to a publicly available, government-sourced wage dataset for the market where the role is performed — and when you have documentation showing how you built it.
A few jurisdiction-specific facts from the verified record:
- Colorado has assessed $238,000 in fines across 1,634 complaints filed as of July 1, 2024 (Trusaic citing Colorado CDLE, 2024). Each non-compliant posting is a separate violation, with fines of $500–$10,000 per violation (Colorado General Assembly, SB19-085, 2019). Verify the current enforcement guidance at the Colorado CDLE before acting.
- California SB 1162 carries a civil penalty of $100–$10,000 per violation, and posting the same non-compliant range across five platforms may be treated as five separate violations (Employment Law Aid, 2026). Verify the current interpretation with the California DIR or legal counsel.
- Washington State amendments effective July 27, 2025 authorize statutory damages of $100–$5,000 per applicant, plus attorney fees (Epstein Becker Green, 2025). Verify the current rule with Washington L&I.
The question a regulator, auditor, or attorney will ask is not "did you post a number?" It is "how did you arrive at that number, and is it appropriate for the location?" A national average with no geographic adjustment and no documented methodology is a harder position to defend than a range built from state-level BLS data with a clear audit trail. Always verify the current penalty amounts and thresholds with the issuing authority or with legal counsel before acting — these rules change, and the figures above reflect specific release dates noted in the sources.
For a state-by-state compliance overview — including which jurisdictions require ranges, which cover remote workers, and which have employer-size thresholds — see Multi-State Hiring Compliance.
Building a Geographic Pay Differential: Step by Step
The method below uses BLS OEWS data. If your role falls under a Canadian jurisdiction, see the Statistics Canada Employee Wages by Occupation (NOC) dataset at open.canada.ca — note that NOC and SOC are different classification systems and the two series should not be compared directly.
Step 1 — Identify the correct SOC code. Every BLS OEWS table is organized by Standard Occupational Classification (SOC) code. Match your job to the SOC code that best reflects the actual duties, not the job title. If you need guidance, the How to Build a Salary Range guide covers SOC matching in detail.
Step 2 — Pull the national median for your SOC. Go to bls.gov/oes, select the most recent national OEWS release, and record the median annual wage (or median hourly wage) for your SOC code, along with the reference year and the release date. Write these down — they are part of your documentation.
Step 3 — Pull the state (or MSA) median for the same SOC. From the same OEWS release, navigate to the state tables or the metropolitan area tables and record the median for your target geography. Name the geography exactly as BLS labels it (e.g., "Washington State" or "Seattle-Tacoma-Bellevue, WA MSA").
Step 4 — Calculate the geographic differential. Divide the state/MSA median by the national median. Subtract 1 and express as a percentage. Example: $152,000 ÷ $133,080 = 1.142 → +14.2% differential.
Step 5 — Apply the differential and build spread. Use the state/MSA median as your range midpoint. Apply your organization's chosen range spread — typically 20%–50% around the midpoint depending on role seniority — to derive the minimum and maximum. Document the spread methodology and the rationale.
Step 6 — Document everything. Record the SOC code, the BLS OEWS release date and geography, the state/MSA median you used, the geographic differential, the spread percentage, and the resulting min/max. This is the audit trail your employment attorney will ask for.
For organizations managing multiple locations or remote-eligible roles, building and maintaining separate location-based range sets manually becomes the constraint. The Location-Based Range Sets Guide covers how to structure those sets systematically.
Tools That Make Geographic Adjustment Defensible at Scale
Running this six-step process once for one role is manageable. Running it across ten open roles in five states — and keeping all of the methodology documented in a format you can hand to counsel — is where manual workflows break down.
If you're at the spreadsheet stage of this process and need a structured starting point, our Compensation Benchmarking Spreadsheet provides a pre-built framework for capturing BLS OEWS figures by state, computing geographic differentials, and deriving range min/mid/max with a documented spread. It won't pull live BLS data automatically, but it gives you a reproducible structure that an auditor or attorney can follow.
When you're ready to move to a workflow that pulls BLS OEWS state- and metro-level data directly, applies geographic adjustments per location, and exports compliance-formatted PDFs with the data vintage watermarked into the document, Salary Range Builder's Professional and Business plans include a geographic-adjustment calculator and the ability to produce multi-location range sets from a single role definition. You can explore the full feature set at /features.
Start a 14-day free trial — no payment information required at signup — and build your first location-adjusted range for a current open role before the trial ends. The trial includes access to the geographic-adjustment calculator so you can see how state-level BLS data changes the output compared to a national average.
The Bottom Line on Geographic Pay Differentials
A salary range is only as defensible as the data underneath it. National averages are accurate aggregates — they are not accurate market anchors for a specific state or metro. The BLS OEWS program publishes state- and MSA-level wage estimates for over 800 occupations at the same time as national estimates; those figures are free, public, and legally citable. Using them — and documenting the methodology — is the difference between a range that holds up in a compliance review and one that doesn't.
The six-step process above gives you a repeatable methodology. The documentation discipline — SOC code, BLS release date, geography, differential, spread rationale — gives you the audit trail. Together, they are what "good faith" looks like when a regulator asks how you built your range.
Geographic pay differentials aren't a nice-to-have for high-cost metros. For any role posted in a pay-transparency jurisdiction, they are the floor of a defensible methodology.
Get new guides in your inbox
One email when a new article goes live. Unsubscribe with one click.


