Every salary range, demand curve, and skill ranking on diiirect is derived from real, public job postings — not surveys or self-reported figures. This page documents exactly how the numbers are built, where they come from, and how we label what's observed versus estimated.
Adzuna — aggregated public job postings across employers and regions, the primary source for active-posting counts, demand trends, and disclosed-salary observations.
BLS OEWS — the U.S. Bureau of Labor Statistics Occupational Employment and Wage Statistics program, used as an authoritative wage baseline when a role lacks enough disclosed-salary observations of its own.
We never present a number without telling you where it came from. Each comp figure carries one of four provenance tiers, surfaced as a labelled badge next to the numbers on every role page:
We only publish salary percentiles (p25 / median / p75) for a role once we have at least 30 disclosed-salary observations for it. Below that threshold, a handful of outliers can swing a “median” wildly, so we suppress the percentiles entirely rather than mislead.
The same gate governs indexing: a role page is only added to our sitemap and opened to search engines when it clears both 30+ active postings and a non-null headline median. Thin, low-signal pages stay out of the index.
Before computing percentiles, we remove statistical outliers using the median absolute deviation (MAD) method. Unlike a mean-and-standard-deviation filter, MAD is robust to the very outliers it's meant to catch — a single $5M typo or a mislabelled equity figure can't drag the cutoff with it. Observations that fall too many MADs from the median are dropped before the percentiles are calculated.
Postings arrive in many currencies. We convert every salary to USD using the exchange rate captured at the moment the posting was scraped, not today's rate. This keeps a historical posting's USD value stable over time and prevents currency drift from distorting trends. All figures shown on the site are annualized USD.
The demand curve on each role page counts new postings per week over the trailing window — a leading indicator of how hiring for that role is accelerating or cooling. The skills section ranks the skills that appear most frequently across that role's active postings, so the ranking reflects what employers are actually asking for right now.
Most salary tools blur observed data and estimates into one number you can't audit. We keep them separate and labelled so you can weight them yourself — whether you're negotiating an offer or setting a budget.