Salary Benchmarks from Job Postings

InfoTrie's salary benchmarks give the distribution of advertised pay by occupation and geography: for each SOC 2018 occupation (detailed, or its major group) in the United States as a whole or in a metro area, the 10th, 25th, 50th, 75th and 90th percentiles of annual pay, built from one day's job postings collected from employers' own career sites. A cell is published only when it rests on at least 10 postings from at least 3 employers, none above half of them, so no single company's pay grid can be read off it.

Status: In rollout — available on request

Request a sampleView as Markdown

Key facts

GrainOne row per occupation (SOC 2018, detailed or major group) and geography (United States, or a metro area)
MeasuresAnnual pay at p10, p25, median, p75, p90; median range bounds; postings and employers behind each cell
Disclosure ruleAt least 10 postings from at least 3 employers, none above 50 %; smaller cells are left out
PayUS postings in USD; a posting's pay is the midpoint of its annualised range; values outside 15,000 to 1,000,000 a year are discarded as errors
FrequencyOne edition per day
DeliveryInfoTrie console datasets (CSV editions) and the BI feed, on job postings plans

Sources

  • InfoTrie job postings, from employers' own career sites and applicant-tracking systems

Data dictionary

FieldTypeDescription
daydateDelivery day the benchmark is computed from
keystringThe cell: geo_level:geo_code:soc_level:soc_code
geo_level / geo_code / geo_titlestringus or cbsa; US or the CBSA code; its title
soc_level / soc_code / soc_titlestringdetailed or major; the SOC 2018 code; its title
postings / employersint64Postings with a usable annual pay in the cell, and distinct companies among them
top_employer_sharefloat64Share of the cell's postings from its largest employer
pay_p10 / pay_p25 / pay_median / pay_p75 / pay_p90float64Percentiles of annual pay, USD
range_min_median / range_max_medianfloat64Medians of the ranges' lower and upper bounds
share_from_descriptionfloat64Share of the cell's pay read from the description rather than the pay field
remote_sharefloat64Share of the cell's postings marked remote

Use cases

  • Compensation benchmarking. Compare an offer or a pay band with what employers advertise for the same occupation and metro area.
  • Location strategy. Compare advertised pay for an occupation across US metro areas.
  • Labour-market research. Follow advertised pay by occupation from the employers' own postings.

Delivery

  • InfoTrie console: one edition per day as CSV, its rows and quality status, on job postings plans
  • BI feed: OData v4 for Power BI, Excel and Tableau; JSON or CSV pages for Qlik, Google Sheets and Looker Studio

Frequently asked questions

Is this what the market pays?

It is the distribution of published pay ranges. Most published ranges come from postings in states that require them, so a benchmark describes advertised pay, not every salary paid.

Why are some occupations or metro areas missing?

A cell is left out unless it rests on at least 10 postings from at least 3 employers, none above half of them.

Is it a time series?

Each day is published as its own edition. Trends over months are not yet stacked into one series.

See also

Talk to us about Salary Benchmarks from Job Postings