Use advertised salary data without manufacturing precision
Preserve salary ranges, currency, period and role context while reporting how much of the job sample actually discloses compensation.
In this article
THE KEY IDEA
An advertised range is not an employee's actual pay. Report the range, the disclosure coverage and the assumptions behind any normalisation.
01Keep observed compensation separate from estimates
A job advertisement may publish a range, a minimum, a maximum or no salary at all. Preserve that shape instead of forcing every listing into one point value. A midpoint can be a derived analytical field, but it should not replace the original bounds or be labelled the offered salary.
Separate base pay from bonuses, commission, equity and benefits when the source makes those distinctions. A phrase such as total compensation can have a different meaning from salary. If the wording is ambiguous, retain the original text and flag the interpretation.
02Normalise only with stated assumptions
Currency and pay period are essential. Annualising an hourly rate requires assumptions about hours and weeks that may not be given in the advert. Record those assumptions as part of the derived calculation, or leave the annual value unavailable when a defensible conversion is not possible.
If you convert currencies, retain the original amount and identify the exchange-rate source and date used. A converted value is an analytical convenience, not a change to the employer's published compensation.
| Field | Why it belongs in the dataset |
|---|---|
| Lower and upper bounds | Preserves the advertised range |
| Currency and period | Makes the amount interpretable |
| Compensation type | Separates base pay from broader packages |
| Role and seniority | Supports like-for-like cohorts |
| Location eligibility | Explains geographic applicability |
| Disclosure status | Shows which listings actually supplied pay |
03Build comparable role cohorts
Job titles alone are weak categories. Similar titles can describe different responsibilities and seniority, while different titles can describe similar work. Use a documented role taxonomy and preserve the source title. Review ambiguous classifications instead of making them appear certain.
Location matters even for remote roles. A published range may apply only to particular jurisdictions or applicant locations. Keep those restrictions with the observation so a global summary does not combine incompatible compensation contexts.
04Report missingness and sampling bias
Show how many collected listings disclose salary and how that coverage varies by source, region and role. The disclosed subset may not represent all jobs. Do not fill every missing salary with a model estimate and then present the combined distribution as observed market pay.
Deduplicate reposts and multi-board advertisements according to a documented policy. Otherwise one widely syndicated role can influence the benchmark many times. Keep the original source observations so the deduplication decision can be reviewed.
05Use the result as one input, not a compensation decision
Advertised pay can support market research and identify areas for further investigation. It does not establish actual employee earnings or determine appropriate compensation for an individual. Keep analysis at the relevant aggregate level and avoid drawing conclusions about protected or sensitive personal characteristics.
Deliver cohort definitions, dates, counts, range handling and conversion assumptions with the report. A transparent interval with clear limitations is more useful than a precise-looking figure built from undisclosed guesses.
References & further reading
Put it into practice.
Try a public-page workflow, or scope a maintained dataset with our team.