How to create salary bands, step by step
To create salary bands: choose a benchmark source, group roles into levels, set a band width around a market midpoint, adjust for geography, define overlap between adjacent bands, publish the ranges, and review them on a fixed cadence. Here is each step in detail.
The seven steps
- Choose your benchmark source. Every band needs a market anchor with percentiles, not a single average. Free options start with US BLS OES data; paid surveys and salary benchmarking software add freshness and role granularity. Pick one primary source, record its date, and stick with it so year-over-year changes mean something.
- Level your roles. Group every job into a small set of levels, for example junior, mid, senior, lead. Level by scope and responsibility, not by title inflation, and keep it to four to six levels for a company under 200 people. Each role-plus-level cell is one future band.
- Set the band width. Anchor the midpoint to your target percentile (P50 for most philosophies), then set a spread around it. Common widths run 30 to 40 percent for junior bands, where skills converge quickly, and widen with seniority to 50 percent or more, because senior impact varies more. Width is max over min: a 40 percent band with a $98,000 minimum tops out near $137,000.
- Handle geography. Decide between one national band per role or geographic tiers (for example national, tier-1 metro, tier-2 metro, remote). Tiers should be documented multipliers on the same anchor, not separately negotiated numbers, or your structure quietly dissolves.
- Decide your overlap policy. Adjacent bands normally overlap by 25 to 50 percent, so the top of the mid band sits inside the senior band. Overlap lets a strong mid-level employee earn more than a new senior hire without breaking the system. Zero overlap forces promotions to be raises; total overlap makes levels meaningless.
- Publish the ranges. At minimum, show every employee the band for their own role and level, and derive the range in each job ad from the band. Posted ranges are legally required in a growing list of states, and compliant salary ranges in job postings are much easier to produce when they are a slice of an existing band.
- Set a review cadence. Refresh bands against new market data at least annually, and every six months for fast-moving roles. A band built once and never reviewed is just last year's guess with better formatting.
A band is three numbers with a policy attached: minimum, midpoint, maximum, and the rules for moving through them.
Worked example: one band from P25/P50/P75
Say your benchmark data for a mid-level software developer, national market, shows $95,000 at P25, $118,000 at P50 and $142,000 at P75, and your compensation philosophy targets the median with a 40 percent band. Build the band like this:
| Step | Rule | Result |
|---|---|---|
| Market anchor | Midpoint = market P50 | $118,000 |
| Band minimum | Midpoint divided by 1.2 | $98,000 |
| Band maximum | Minimum times 1.4 (40% width) | $137,000 |
| Sanity check | Band should roughly cover P25 to P75 | $98,000 to $137,000 vs $95,000 to $142,000 |
| Posted range | Good-faith slice of the band | $98,000 to $130,000 |
The sanity check row is the point of using percentiles: a 40 percent band around P50 lands close to the P25 to P75 spread of the market itself, which is strong evidence your width is realistic. New hires normally start between minimum and midpoint; the top third of the band is for proven performance in the role.
Common mistakes
Three failure modes account for most broken structures. Bands copied from a single job posting instead of percentile data, which bakes one employer's guess into your whole company. Bands so wide they never constrain an offer, which is a structure in name only. And bands built once for a fundraise or an audit, then never refreshed. If you want the longer conceptual treatment, our guide to salary bands covers what they are and why they work, and how it works shows the exact methodology Wagelist uses to automate the steps above. Early-access pricing is built for teams doing this without a comp analyst.