Dataset

Disclosed compensation by role family

Percentiles of stated pay for postings that disclosed it, kept separate by currency and period because neither can be combined without an assumption the postings never made.

33 rows in release 2026-08-07.11.

  • Figures describe an observed sample of open postings, not the whole job market.
  • Permitted claim class for this release: SNAPSHOT_ONLY.

Columns

role_family
Role grouping assigned from the posting title by a fixed set of patterns. UNMATCHED means the title did not clearly belong to any family, not that the role is unusual. The classifier is deliberately conservative, so UNMATCHED is common.
comp_currency
Currency exactly as stated. Never inferred from a bare currency symbol, and never converted between currencies.
comp_period
Period the figure was stated in — yearly, monthly, hourly. Never annualized, because that assumes full-time year-round work the posting did not state.
disclosed_posting_count
Postings behind these percentiles. This is the sample size for the row and the number the suppression threshold is applied to.
open_postings
Postings in this family observed as open at the most recent complete measurement. A point-in-time count, not a flow: it does not say how many roles opened or closed.
disclosing_postings
Postings in this family that disclosed pay, across all currencies.
salary_disclosure_pct
Share of postings disclosing pay. Disclosure is not random — it correlates with jurisdiction and employer size — so it is a property of the sample, not of the market. Null where the family has too few postings for a percentage to mean anything.
p25
25th percentile of stated range midpoints. Null when the sample is too small to publish.
median
Median of stated range midpoints. Null when the sample is too small to publish.
p75
75th percentile of stated range midpoints. Null when the sample is too small to publish.
lowest_stated_min
Lowest bottom-of-range figure any posting stated. An extreme, not a typical value.
highest_stated_max
Highest top-of-range figure any posting stated. An extreme, not a typical value.
is_suppressed
True when the cell's sample is below the publication threshold. Suppressed rows are kept so the gap is visible, but their values are nulled rather than merely flagged.
suppression_reason
Plain-language statement of why a suppressed cell carries no value.
required_caveat
Text that must travel with any quoted figure from this row. Carried on the row rather than on the page so it cannot be separated from the number.
computed_at
When this row was calculated, which is the release build time rather than when the underlying postings were observed. For the period observed, see earliest_observation_at and latest_observation_at in the observation window dataset.

Cite this

Analytics Engineering Observatory, release 2026-08-07.11 (August 7, 2026). https://www.analyticsengineering.com/market/data/compensation-snapshot

Release 2026-08-07.11, published August 7, 2026. Newest observation August 7, 2026.

Figures are pinned to this release, so the numbers on this page match the downloadable dataset exactly. Both change only when a new release is promoted.