The Target Pay Range, Triangulated From Public Market Data
You can produce a floor, target, and walk-away pay range for your exact role, level, and metro, backed by two independent sources with their spread recorded.
Before you apply or say a number out loud, you need to know what your role actually pays in your metro, at your level, from sources you can defend. This guide is for a job seeker deciding what to aim for, and it treats pay research as a data-provenance problem: which sources to trust, how to triangulate them, and how to read a posted range under transparency law and tell whether it is a real signal or a meaningless band. The deliverable is a three-number target range - floor, target, and walk-away - backed by at least two independent sources with the variance between them written down.
Most pay advice starts with a number already in hand. This one does not. It gives you the procedure to build the number.
Why triangulate instead of trusting one number
Every pay source lies in its own direction, so a single number is never defensible; the fix is to pull at least two independent source types and treat the gap between them as information. There is no regulator-set count of sources. Combining several helps triangulate a more accurate market range, and the variance itself is signal.
The reason no single source works is that each type is biased differently. Government establishment data lags and uses broad occupation codes. Scraped job-ad data reflects what employers advertise, not what they pay. Self-reported aggregators skew high because higher earners self-report more frequently, pulling averages upward. If you stack three sources that all share the same bias, you have not triangulated anything - you have amplified one error.
Transparency coverage has tripled over several years, but a quarter of covered listings still hide pay. That is exactly the gap where a triangulation method earns its keep. You cannot rely on "just read the posting" when a quarter of postings that should carry a range do not.
The variance between your sources is not noise to average away. It is the confidence signal you build the range around.
Rank your sources before you read them
Pay-data sources fall into a clear provenance hierarchy, and you should weight them in that order rather than treating every number as equal. Government establishment data and structured employer surveys sit at the top; scraped job ads are middle-tier; anonymous self-reported aggregators rank lowest for precision.
At the top is the BLS Occupational Employment and Wage Statistics program, or OEWS. Its estimates are built from a sample of about 1.1 million establishments collected over a three-year cycle, drawn from the database of businesses that report to state unemployment-insurance programs. It covers roughly 830 occupations across about 530 metro and nonmetro areas. Because it draws from mandatory UI records rather than volunteers, it does not suffer the self-selection problem that plagues crowdsourced data. Its weakness is the opposite: it pools three years, so a hot market is understated, and its occupation codes are broad.
Alongside it sit structured proprietary surveys. A compensation benchmarking tool that collects data through direct HRIS integrations or structured employer submissions, and applies a validation methodology, produces defensible benchmarks. These are what employers themselves buy.
Scraped job-ad data reflects what employers advertise, not what they pay. Useful for live signal, weak for actual comp.
Self-reported aggregators rank lowest for precision. Every submission is anonymous and unverified, so there is no way to check whether the salary is accurate, whether the title reflects the real role, or whether the named employer is where the person actually works.
Pay-data provenance hierarchy
- Government establishment data (OEWS)Mandatory UI-based sample, ~1.1M establishments, defensible but lags 3 years
- Structured employer surveysValidated HRIS or survey submissions, what employers actually buy
- Scraped job-ad dataReflects advertised pay, not paid pay; good for live signal
- Self-reported aggregatorsAnonymous, unverified, skews high; useful only for common titles at scale
What the numbers say about posted-pay coverage
Two independent trackers agree that pay information in postings has climbed sharply, which tells you when a live posting is worth reading and when you still need to triangulate. The exact share depends on who measured it and how they defined "pay information."
| Source | Metric | Value | Date |
|---|---|---|---|
| Indeed Hiring Lab | any pay info | 57.8% | Sept 2024 |
| Indeed Hiring Lab | any pay info | 52.2% | Sept 2023 |
| NY Fed / Lightcast | any pay info | ~53% | since Jan 2024 |
| NY Fed / Lightcast | any pay info | ~15% | pre-Jan 2018 |
The Lightcast series shows the underlying shift most starkly: the monthly share of postings with pay information rose from about 15 percent before January 2018 to roughly 53 percent since January 2024. As of July 2026, 27 US jurisdictions had enacted pay-transparency laws, while 34 states still have no statewide law. So coverage is high in some metros and near zero in others. Check whether your metro is covered before you assume a posting will carry a range.
One more caution from the same data: point-salary postings, where the advertised minimum equals the maximum, plateaued at about 15 percent. A single number in a posting is not a range - it is either a firm point or a compliance shortcut, and you should read it as one data point, not a band.
Reading a posted range without being fooled by it
A posted range is only a signal if it is narrow enough to carry information and specific enough to match your role and location; a wide or open-ended band tells you about the employer's legal caution, not their pay. Transparency laws require a good-faith range, but they do not cap how wide it can be.
The sharpest legal constraint comes from New York: the range for each posting must be for a single opportunity and a single geographic region, and if a posting spans multiple locations or seniority levels, multiple ranges are required. New York also bars open-ended ranges like "$17 an hour and up." Colorado's labor department has fined and warned firms for overly broad ranges. That is the ceiling on abuse, and it is not tight. A documented posting advertised $116,000 to $268,000 - a span over $160,000 wide - which carries almost no information about what the role pays.
So read every posted range through two filters. First, is it for your metro and your level specifically, or is it a blended multi-location band? Second, how wide is it relative to a normal spread? A standard range usually spreads about 40 to 50 percent from minimum to maximum. Anything much wider should down-weight that source, not anchor your target.
There is a second trap inside posted ranges. Employee-reported actual pay skews toward the lower half of posted bands. The posted floor is not "typical" pay - it is where employers keep negotiating room. Anchor on the floor and you undersell yourself by roughly 10 to 25 percent. Aim above it.
The procedure, start to finish
Run these seven steps in order; the whole pass takes roughly two and a half to three hours and ends with three traceable numbers. Do not reorder them - geography must be fixed before level, and every source must be on the same basis before you triangulate.
Build the target range
- Define the exact targetFix one role title, one seniority level, and one metro area. Done when you can state a single occupation that maps to a government occupation code plus one metro.
- Pull the government anchorGet the BLS OEWS 25th, 50th, 75th, and 90th percentiles for that occupation in your metro. Done when you have all four numbers written down.
- Pull one structured or aggregator sourceGet a role-and-metro median from a second, independent source type. Done when you have a second median and have logged which provenance tier it came from.
- Read live posted ranges under transparency lawCollect five to ten current postings for your role and metro that show a range. Done when you can list floor and ceiling for each and have flagged suspiciously wide bands.
- Adjust figures to your metro and levelApply a geographic differential to any national number and pick the percentile matching your experience. Done when every source sits on the same metro and level basis.
- Triangulate and record varianceLay the sources side by side and compute the spread between them. Done when max-minus-min across sources is written down as a single number.
- Build the three-number rangeSet target at your blended midpoint, floor at 80 to 85 percent of midpoint, walk-away below the lowest credible source. Done when floor is less than target is less than ceiling and each is traceable.
From all pay data to one defensible number
- 4 percentilesGovernment anchor (OEWS)
25th, 50th, 75th, 90th for your metro
- 1 medianSecond source type
Structured survey or self-reported, tier logged
- 5-10 bandsLive posted ranges
Filtered for metro, level, and normal width
- 1 spreadTriangulated midpoint
Max-minus-min recorded as confidence signal
- 3 numbersTarget range
Floor, target, walk-away, each traceable
Where the level percentile comes from
OEWS gives you the level bands directly. The entry, upper-entry, and experienced wage rates are defined as the 10th, 25th, and 75th percentiles respectively, with the median at the 50th. Pick the percentile that matches your actual experience, not the one you wish described you. An experienced hire benchmarks against the 75th; a first job in the field against the 10th to 25th.
Turning percentiles into a floor, target, and walk-away
Once you have a blended midpoint, two documented conventions turn it into a range, and you must pick one and state which. The simple convention sets a typical range at about 80 percent and 120 percent of the midpoint. The midpoint-anchored convention uses an explicit spread: minimum equals midpoint divided by one plus half the spread, maximum equals midpoint times one plus half the spread.
Here is the same $100,000 midpoint under three conventions so you can see how much the math itself moves the endpoints.
| Convention | Floor | Midpoint | Ceiling | Implied spread |
|---|---|---|---|---|
| Simple 80/120% | $80,000 | $100,000 | $120,000 | 50% |
| Midpoint-anchored, 40% spread | $83,333 | $100,000 | $120,000 | 40% |
| Midpoint-anchored, 30% spread | $86,957 | $100,000 | $115,000 | 30% |
A worked example from the source math: an $80,000 midpoint at a 50 percent spread produces a minimum of $64,000 and a maximum of $100,000. Note the healthy compa-ratio band, where compa-ratio measures your pay against the midpoint, runs 80 to 120 percent, with 100 percent meaning "at market."
For a job seeker, map the conventions onto your three numbers like this:
- Target is your triangulated blended midpoint, adjusted to your metro and level.
- Floor is 80 to 85 percent of that midpoint, or the midpoint-anchored minimum. This is the number below which you start negotiating hard, not the number you offer first.
- Walk-away sits below the lowest credible source in your triangulation. If an offer lands under that, no adjustment of the story makes it a fair number.
ROLE / LEVEL / METRO: ____________________ Source 1 (OEWS) median: ______ 25th: ______ 75th: ______ tier: government Source 2 (____________) median: ______ sample count: ______ tier: ____________ Posted ranges (5-10) low band: ______ high band: ______ wide bands flagged: ______ Metro differential applied: ______% Level percentile chosen: ______ Blended midpoint (TARGET): ______ Spread across sources (max - min): ______ <- confidence signal FLOOR (80-85% of midpoint): ______ WALK-AWAY (below lowest credible source): ______ Convention used: [ ] simple 80/120 [ ] midpoint-anchored, spread ____%
Fill one row per source, then compute the three numbers at the bottom. Keep it in your search tracker.
Adjusting for metro and level
Fix geography before you touch level, because metro adjustment dwarfs percentile choice; use cost of labor, not cost of living. This is the single most common way a range comes out wrong.
Cost of labor is what competing employers pay for your role in your metro. Cost of living is what it costs to live there. 89 percent of firms set geographic pay differentials using salary surveys, which is cost of labor, and only 11 percent lead with cost of living. A common blend weights 70 percent on market data, 20 percent on cost-of-labor indices, and 10 percent on cost-of-living factors. If you inflate a metro figure by rent indices, you bias your own target.
The size of the geographic effect is easy to underestimate. Federal GS locality pay ran from +16.82 percent in Corpus Christi to +42.74 percent in San Francisco. That spread is larger than the entry-to-experienced gap in many occupations. Employers commonly group locations into three to five tiers - for example, Tier 1 metros like San Francisco, New York, and Seattle at +15 to 25 percent, Tier 2 like Boston, LA, and DC at +5 to 10 percent, and a Tier 3 national baseline at zero.
The practical move: if your best figure is a national median, apply a documented differential for your metro before comparing it to anything local. If you can pull OEWS directly for your metro, you have already skipped this problem.
Which adjustment to make first
How this goes wrong
Most bad target ranges come from a small set of repeatable mistakes, and each has a check that catches it. Treat this section as the part you reread before you name a number.
Trusting one self-reported median. A clean-looking $145k "average" can be eight high earners. Self-reported data is most reliable for common titles at large employers with high submission volumes, and useless for thin cells. Check: require a sample count and discard anything without one.
Reading a wide posted band as a real signal. A $50k-to-$140k range is not a target. The good-faith law does not cap width, and a documented $116,000-to-$268,000 posting proves how empty a wide band can be. Check: compare the band width to the normal 40 to 50 percent spread and down-weight anything far wider.
Anchoring low on the posted floor. Actual pay clusters in the lower half of posted ranges, so the floor feels typical but is not. Check: aim toward the upper half of credible bands, not the floor.
Confusing cost-of-living with cost-of-labor. Inflating a metro figure with rent indices overstates the market. Check: use survey-based cost-of-labor sources, since that is what 89 percent of employers price on.
Using a national median for a specific metro. National medians hide 15 to 40 percent-plus differentials. Check: pull metro-level OEWS, or apply a tier differential before comparing.
Title mismatch across sources. Two "engineers" with different scope get averaged together. Check: verify against a level definition, not just the title string.
Ignoring survey lag. OEWS pools three years, so a hot market is understated. Check: cross-check the anchor against live postings.
Sanity-checking your method against people who do this for a living
When your numbers feel off and you cannot tell which source is lying, the fastest correction is talking to people who build these ranges professionally or who hold your exact role in your metro. In Refolk's index of professional profiles, there are 4,605 US compensation professionals across Compensation Manager, Compensation Analyst, and Total Rewards Manager titles - the people who assemble employer-side benchmarks.
Here is how that sample breaks down by title.
| Title | Sample count | Sample share |
|---|---|---|
| Compensation Manager | 14 | 56% |
| Compensation Analyst | 10 | 40% |
| Total Rewards Manager | 1 | 4% |
That is a small sample from a large base, so read the shares as directional, not precise. The point is that these people exist and are reachable, and so are peers in your own role and metro who can validate a specific number. Refolk writes your outreach from your own history, so a message to a same-role peer or a comp analyst takes minutes instead of an afternoon.
To validate the number rather than the method, aim one level sideways: find same-role peers in your exact market. A search for senior engineers in your metro, or experienced marketing managers in your city, surfaces people whose real pay you can ask about and check your OEWS anchor against.
Before you name a number
Run this checklist before you put a number in a screening call, an application field, or an offer conversation. If any item fails, you are not done.
Range-ready checklist
- The role, level, and metro are each a single, specific value.
- I have an OEWS anchor with 25th, 50th, 75th, and 90th percentiles for my metro.
- I have a second median from a different provenance tier, with its tier logged.
- I collected 5 to 10 live posted ranges and flagged any that are far wider than a 50% spread.
- Every source is adjusted to the same metro and level basis, using cost of labor not cost of living.
- The spread between my sources is written down as a single number.
- My target is the blended midpoint; floor is 80 to 85% of it; walk-away is below the lowest credible source.
- Each of the three numbers traces back to a named source.
Keeping the range current
A target range decays, so re-run the light version of this method whenever the market or your situation moves. OEWS updates on a lagging cycle and pools three years, so its number drifts slowly. Live postings move faster and are your early-warning signal.
Re-check when any of these change: your metro, your level after a promotion or a title change, the transparency law status in your target state, or a run of postings whose ranges have shifted noticeably off your recorded bands. You do not need to rebuild from scratch each time - pull a fresh set of live posted ranges, compare them to your recorded floor and ceiling, and only redo the full OEWS-and-second-source triangulation if the postings have moved more than your recorded spread. The number you can defend today is not the number you can defend in six months, and the discipline that keeps it honest is the same one that built it: two sources, different tiers, spread written down.
Questions job seekers ask
How many salary sources do I actually need before I name a number?
At least two independent source types, and write down the spread between them. No regulator sets a hard count, so this is a working standard rather than a published rule. The point is provenance diversity: a government anchor plus a structured survey or a set of live postings tells you more than three self-reported medians, which all share the same upward skew. The variance between your sources is the confidence signal, so recording it matters as much as the numbers themselves.
Should I ask for the top of the posted range?
Aim above the floor and toward the upper half, but treat a very wide band with suspicion. Employee-reported actual pay clusters in the lower half of posted ranges, so anchoring on the floor undersells you by roughly 10 to 25 percent. A range like $116,000 to $268,000 carries almost no information, so do not treat its ceiling as a real target. Use the band to bound your ask, then set your specific number from your triangulated midpoint and level.
Is Glassdoor or a similar self-reported source good enough on its own?
No, not as a single source. Every submission is anonymous and unverified, so you cannot confirm the salary, the title, or the employer. Self-reported medians drift high because higher earners submit more often. They are most reliable for common titles at large employers with high submission volumes, and even then you should require a sample count and discard thin cells. Use one as your second source, never as your only one.
What's the difference between cost of labor and cost of living for setting pay?
Cost of labor is what competing employers actually pay for your role in your metro; cost of living is what it costs to live there. 89 percent of firms price geographic pay on cost of labor, and only 11 percent lead with cost of living. If you inflate a metro figure using rent indices instead of market pay data, you will mis-set your target. Anchor on cost-of-labor sources like OEWS and structured surveys, and treat living costs as a personal budget input, not a benchmark.
Why not just use the national median for my role?
Because national medians hide metro differentials of 15 to 40 percent or more. Federal locality pay ran from +16.82% in Corpus Christi to +42.74% in San Francisco, a gap larger than the entry-to-experienced spread in many occupations. Fix geography before you fix level. Pull the OEWS figures for your specific metro area, or apply a documented differential to a national number before you compare it to anything else.
Put this to work
Reading about the job search is not the job search.
Paste your career in once. I write the resume, then every week I rank the live openings against your history, tailor a resume and a cover letter to the best of them, and keep going until you land. You press send, and that is the whole of your part.
- 140+ curated roles a week, found, written, and scored for you.
- Every bullet stays inside what your history actually supports.
- Queued, submitted, interviewing, offer, all in one place instead of a spreadsheet.
500 free credits on sign-up. No card.