What Is a Posting-Safe Salary Range? (And How to Generate One)
The Range You Post and the Range That Protects You Are Not Always the Same
Picture this: an HR generalist at a 70-person professional-services firm in California spends a Tuesday afternoon posting three open roles on four job boards. She pulls salary figures from last year's spreadsheet, types in a range that feels reasonable, and moves on. Three weeks later, a candidate flags that two of the postings look identical but show different pay ranges for what reads as the same title. Under California's rules, each posting is its own potential violation event — meaning those dozen total postings across platforms and roles could each carry a separate penalty.
She didn't post a bad salary range. She posted an unstructured one — and those are two different problems.
A posting-safe salary range is a range that satisfies your jurisdiction's disclosure requirements and is defensible because it flows from a documented compensation structure. The first quality keeps you out of regulatory trouble. The second keeps you out of internal trouble when candidates compare offers, employees compare paychecks, and auditors ask how you arrived at the number.
This article explains exactly what makes a salary range posting-safe, walks through a method for generating one, and flags the jurisdiction-specific rules you need to confirm before you publish.
What "Posting-Safe" Actually Means
The term isn't a legal standard — it's a practical one. A posting-safe salary range meets three tests simultaneously:
It satisfies the disclosure format required by applicable law. Different jurisdictions have different format rules. Some require a fixed minimum and maximum. Some prohibit open-ended ranges. Some require a "good-faith estimate" framing. A range that is valid in one state can still be non-compliant in another.
It reflects a genuine, documented compensation band. A range invented the morning a posting goes live is difficult to defend when a regulator asks whether it represents what you actually intend to pay. A range derived from a formal job band structure is far more defensible because it has an audit trail.
It is consistent across postings for the same role. Regulators and plaintiffs' attorneys look for inconsistency. If the same role appears on five platforms with five different ranges, you have either a process problem or a records problem — and under California law, each of those postings could be treated as a separate violation.
These three tests are the backbone of everything that follows.
What the Key Jurisdictions Actually Require
Pay-transparency requirements vary enough that a single posting template will not survive copy-paste across state lines. Below are the rules from jurisdictions currently covered by the available data; confirm current guidance with counsel before relying on any of these operationally.
California. California SB 1162 requires employers with 15 or more employees to include a pay scale in all job postings. SB 642, effective January 1, 2026, tightened the definition: "pay scale" must now be a good-faith estimate of what the employer reasonably expects to pay upon hire — not the full internal band, and not a number plucked from a survey. A vague or aspirational range is no longer sufficient. SB 642 also sets a three-year statute of limitations for pay-transparency civil actions (regardless of whether the violation is willful), with a six-year look-back period during which employees may recover relief for an ongoing violation. Civil penalties run from $100 to $10,000 per violation, and each job posting lacking a required pay range is its own separate violation. Verify current enforcement guidance with the California Civil Rights Department.
Under California law, each non-compliant job posting is a separate violation event. Posting the same role across five platforms without a valid pay range multiplies exposure fivefold.
Colorado. The Equal Pay for Equal Work Act imposes fines of $500 to $10,000 per violation, with each non-compliant posting treated as a separate violation. Verify current Colorado Department of Labor and Employment guidance for the most recent posting and notice requirements. See our pay-transparency laws by state guide for a broader overview.
Ontario. As of January 1, 2026, employers with 25 or more employees must include expected compensation or a salary range in publicly advertised postings — for roles up to $200,000. Critically, the salary range disclosed cannot exceed $50,000 in spread. A range of $55,000–$120,000 is too wide; you would need to tighten it before posting. Administrative fines under the Employment Standards Act can reach up to $500,000. Employers must also retain postings, application forms, and 45-day interview notifications for a minimum of three years after a posting is removed. Verify current ESA enforcement guidance with the Ontario Ministry of Labour, Immigration, Training and Skills Development.
British Columbia. Since November 1, 2023, all job postings by provincially regulated BC employers must include expected pay or a pay range. Ranges cannot be open-ended — "up to $30/hr" or "$20/hr and up" are explicitly not allowed. A valid BC range has a stated minimum and a stated maximum. Verify current requirements with the BC Director of Pay Transparency.
The practical implication: if you hire across California, Colorado, Ontario, and BC — a realistic scenario for any growing North American company — you need a range that satisfies all four rule-sets simultaneously. A posting-safe salary range is one you have tested against every jurisdiction where the role will be advertised. For full jurisdiction-by-jurisdiction detail, see our pay-transparency compliance hub.
The Anatomy of a Posting-Safe Salary Range
A compliant salary range for a job posting has four components. These are also the building blocks of a formal compensation band — which is why the posting problem and the structure problem are best solved together.
Minimum. The lowest amount you will genuinely offer a qualified hire for this role. Not a floor you set to discourage negotiation — the actual bottom of your intended range. In BC, this must be a real number (no "and up").
Maximum. The highest amount you will genuinely offer, including to an experienced hire coming in at the top of the level. For Ontario postings, your maximum minus your minimum cannot exceed $50,000. If your internal band is wider, you post a subset — typically the expected hiring range — not the full band.
Good-faith framing. Under California SB 642 (and as a general best practice everywhere), the range must represent what you reasonably expect to pay upon hire. That means it is anchored to the role as posted, not to the theoretical ceiling of a senior variation. If you are hiring a mid-level Accountant, the range reflects mid-level Accountant pay — not the full Accountant I–III band.
Internal anchor. The range must connect to a documented compensation band — a formal minimum, midpoint, and maximum for the role's level — so that if a regulator, an auditor, or an employee asks how the posted range was derived, you have a defensible paper trail. A range with no documented anchor is the spreadsheet problem dressed up as a compliance problem.
How to Generate a Posting-Safe Salary Range: A Worked Example
Here is a repeatable method. The inputs are your target midpoint (from a market benchmark), your chosen range spread, and your jurisdiction's format constraints. The output is a posting-ready minimum and maximum.
Step 1: Set a midpoint from market data. Use a published wage source for the relevant SOC (US) or NOC (Canada) code and geography. The BLS Occupational Employment and Wage Statistics program covers approximately 830 occupations across roughly 530 areas, drawn from a sample of about 1.1 million establishments — it is the reference standard for US public-sector benchmarking. For example, suppose BLS OEWS shows a national median of $72,000 for your target SOC code. Your local market premium might push your midpoint to $78,000. Use that as your anchor.
Step 2: Choose a range spread. A range spread (also called range width) is the percentage difference between the band minimum and maximum, calculated as: (maximum − minimum) ÷ minimum × 100. For professional roles, a spread of 40–60% is common; for hourly or entry-level roles, 20–30% is more typical. This is a design choice, not a legal one — but whatever spread you choose, document it and apply it consistently.
Step 3: Calculate minimum and maximum. With a midpoint of $78,000 and a 50% spread:
- Minimum = midpoint ÷ 1.25 = $62,400
- Maximum = minimum × 1.50 = $93,600
(Why 1.25? With a 50% spread, the maximum is 150% of the minimum. The midpoint sits halfway between them, which means midpoint = minimum × 1.25. Dividing the midpoint by 1.25 recovers the minimum.)
Step 4: Test against your jurisdiction's format rules. In this example: the Ontario spread test — $93,600 − $62,400 = $31,200 — passes the $50,000 cap. The BC open-ended test passes (both figures are stated). The California good-faith test passes if this is the genuine hiring range for the role as posted. If you are also posting in Colorado, the range meets that state's posting requirement as long as it is included in the posting itself.
Step 5: Document the derivation. Record the SOC code, the OEWS release date, the local adjustment rationale, the spread percentage, and the resulting min/mid/max. This is your audit trail. See how to create salary bands for a full walkthrough of the band-building process, and how to write a salary range in a job posting for the specific language you'll use once the numbers are set.
The Gap Between a Compliant Range and a Defensible One
Compliance and defensibility are related but not identical. You can technically comply with a disclosure law by posting any minimum and maximum — but if that range does not come from a documented structure, you expose yourself to:
- Internal equity claims. An employee in the same role discovers your posted range extends well above their current salary. Without a documented band, you have no framework to explain why.
- Good-faith scrutiny. Under California SB 642, a range that does not represent what you reasonably expect to pay upon hire is non-compliant even if it contains a minimum and a maximum. An outlier range with no documentation is hard to defend as "good-faith."
- Inconsistency across postings. Without a formal band anchoring each posting, ranges drift across postings for similar roles — exactly the pattern regulators flag.
A formal compensation band — built once, applied consistently — solves all three problems at once. It makes every posting-safe salary range you generate a direct output of a structure that already exists, rather than an ad hoc decision made under deadline pressure.
Generate a Posting-Safe Range Without Starting from Scratch
If your organization does not yet have formal compensation bands, building them from scratch can feel like a large project to undertake before the next role goes live. It does not have to be.
The Pay Transparency Job Posting Kit includes ready-to-use salary range templates formatted to the key disclosure requirements, a worked band-calculation worksheet, and jurisdiction-specific posting language for California, Colorado, Ontario, and BC. Download it and have a compliant first draft ready before your next posting. When you are ready to build a full band structure that keeps every future posting consistent, start a free trial of Job Band Builder — the tool generates BLS OEWS-anchored min/mid/max bands and exports them in a format your ATS and job-posting workflow can use directly.
A posting-safe salary range is not a compliance checkbox. It is the public-facing output of a compensation structure that protects candidates, employees, and your organization alike. The jurisdictions are watching. Build the structure first, and the compliant posting follows naturally. ```
Ready to go beyond the guide?
Build a defensible, BLS-benchmarked band structure in under 30 minutes.