Methodology

Every number on Pay by Role comes from a public source listed below. This page explains exactly which source feeds which figure, what we calculate ourselves, and where the numbers are weaker than they look.

Dataset last refreshed November 1, 2026. Exchange rates as of Sun, 01 Nov 2026 00:02:31 +0000.

Sources

The dataset currently covers 27 careers in 17 countries and 418 cities, built from 132 country-and-career medians.

How medians are computed

United States: 9 national medians are taken directly from the U.S. Bureau of Labor Statistics Occupational Employment and Wage Statistics (OEWS) tables for the mapped occupation code. We round them for display; we do not adjust them.

Everywhere else (and U.S. roles BLS does not map): 123 medians come from SalaryByRole’s public salary API, which reports a national median per role in U.S. dollars. We convert that figure to local currency with the ExchangeRate-API USD rate on the refresh date and round it. We do not survey employers ourselves, and we do not blend or re-weight SalaryByRole’s numbers.

A career only appears for a country when one of these sources returns a value. There is no synthetic fallback: if neither source covers the pair, the page does not exist.

Percentiles and city figures

Observed: for 187 city-and-career combinations across 21 U.S. metro areas, the 10th, 25th, 50th, 75th and 90th percentiles are BLS OEWS metropolitan figures, used as published. When BLS omits the 25th or 75th percentile we leave it blank rather than inventing it. These pages are labelled “observed”.

Modelled: for the other 397 cities, and for national percentile bands outside the U.S., we compute an estimate. The median is the real national median times a metro pay index. The pay index is the median ratio of observed metro to national pay across all mapped occupations. Where no metro data exists it is 1.0, meaning the city shows the national figure. The 10th–90th percentile band is a fixed spread per career around that median. These pages are labelled “modelled estimate” and are not submitted to search engines as primary pages.

Take-home pay and tax figures come from simplified national tax rules in our calculators, not from payroll data. Monthly and hourly figures are the annual median divided by 12 and by 2,080 hours.

Update cadence

An automated pipeline re-fetches every source on the 1st of each month and commits the result. Exchange rates and World Bank indicators are refreshed in the same run. BLS OEWS itself is published once a year, so U.S. figures only change when a new OEWS release is out. The “last updated” dates in our sitemap reflect when the data or the page content actually changed, not when the site was rebuilt.

Regional pages and quality gates

State, metro and region pages use published tables only: BLS OEWS state and metropolitan-area (MSA) estimates for the U.S. and ONS ASHE Table 15 (full-time, region by SOC 2020) for the UK, and the MHLW Basic Survey on Wage Structure (賃金構造基本統計調査, general workers by prefecture and occupation, via the e-Stat API) for Japan, with places from GeoNames. Japan figures are averages, not medians, and MHLW publishes no per-cell sampling error, so Japan confidence scores use the estimated worker count and year-on-year stability instead; estimated annual earnings (12 × regular monthly pay + annual bonus) are labelled Derived. Canada pages use ESDC Job Bank wages by province and economic region (NOC 2021); we keep only cells Job Bank sources from the Labour Force Survey and drop cells it fills from small-area models or the Census, so every figure shown is a published survey wage. Job Bank’s low and high wages are usually the 10th and 90th percentiles. Eurostat’s Structure of Earnings Survey publishes earnings by NUTS region only for all occupations combined, and by occupation only at country level for broad ISCO groups, so we do not publish EU region-by-role pages. Figures copied from those tables are labelled Observed; rankings, ratios and differences we calculate from them are labelled Derived. Nothing on these pages is modeled.

A region-and-role page is only built when its confidence score (from the published sampling error and job count) is at least 60, it has at least six observed figures, and it differs meaningfully from the national figure (we merge it into the region page when more than 85% of its pay figures or text match the national page). New pages are released for indexing in batches.

Limitations

  • Outside the U.S., each figure is one national median from one source. It is not checked against official statistics such as ONS ASHE or Destatis.
  • Converting from U.S. dollars at a single day’s exchange rate means local-currency figures move with the currency, even when wages have not changed.
  • Modelled city figures for cities without observed data equal the national median. City-level variation is only real for the 21 observed U.S. metros.
  • Cost-of-living indices are currently neutral (100) for every city, so “buying power” views are not yet a real local comparison.
  • Medians mix every seniority, employer size and industry under one title. Bonus, equity and benefits are excluded.
  • Percentile bands outside observed U.S. metros are modelled, not measured.

Found a figure that looks wrong? Email hello@paybyrole.com with the page link.

Attribution & licences

National medians for most countries are from SalaryByRole and are reused under CC BY 4.0. SalaryByRole is a separate data source. Its figures are presented here as published, apart from currency conversion and rounding. U.S. figures are BLS OEWS (public domain). Country context uses World Bank Open Data (CC BY 4.0), countries.dev / GeoNames (CC BY 4.0) and Nager.Date. Figures are for information only. See the disclaimer and about page.