Methodology

Every figure on this site comes from one published formula applied to sourced inputs. This page explains the formula, the sources and the rules that decide what is published.

What is counted

The site reports total employer cost (everything an employer pays for one hire in a year), not salary. Salary is one line; the others are employer contributions (social security and payroll taxes the employer pays on top of salary), mandatory benefits such as a 13th salary, voluntary benefits where two sources support a figure, equipment and tooling, recruiting, and the onboarding ramp (the weeks before a new hire works at full productivity).

Formula

Formula v1.0 is shown below exactly as it is applied. How each component is computed.

version: 1.0

total_annual_cost =
    base_salary
  + employer_contributions        # statutory rates applied to base with caps; per country
  + mandatory_benefits            # 13th or 14th salary, paid leave value above base, mandatory insurance; per country
  + voluntary_benefits            # health, pension top-up, meal and transport; market survey medians per country and level; shown as a separate line
  + equipment_and_tooling         # laptop amortised over 3 years, licences, test devices for mobile roles; per level and role
  + recruiting_cost_amortised     # recruiting cost / expected tenure years; per country, role and model
  + onboarding_ramp               # ramp_weeks x weekly cost x (1 - productivity_factor); per level

first_year_cost = total_annual_cost - recruiting_cost_amortised + recruiting_cost - onboarding_ramp_amortised + onboarding_ramp
monthly_cost = total_annual_cost / 12
hourly_equivalent = total_annual_cost / productive_hours

# Defaults (overridable per country in data with a source)
expected_tenure_years: 2.5
productive_hours: 1,700 per year, adjusted by statutory paid leave per country
ramp_weeks: junior 10, mid 6, senior 4
productivity_factor_during_ramp: 0.5
equipment_amortisation_years: 3

# Hiring models
employee: full formula
contractor: contractor_rate x hours + platform_or_eor_fee; no employer_contributions, no mandatory_benefits unless the EOR passes them through (sourced); recruiting as for employee; ramp as for employee
outsourced: published vendor monthly or hourly rate per role and region; no recruiting, no ramp, no equipment; show typical minimum engagement from sources

# Output per combination
p25, median, p75 for each component and for the totals, in local currency and USD at fx.json date; confidence grade; source ids; computedOn

Ranges

Each input carries a p25 (the value a quarter of the data falls below), a median and a p75. The p25 and p75 columns on cost pages apply the formula to the low and high ends of each input; they are scenarios, not statistical percentiles of the total.

Sources and the two-source rule

A salary figure needs two independent sources with a role and level match, no older than 18 months; three sources within 15% make confidence A. An employer contribution needs one statutory source (a tax authority, social security agency, statute or a major tax summary). Other components need two sources, or one source plus a default named in the formula and marked as default on the page. 1,534 sources were collected; 266 of them stand behind published figures. Source classes · Confidence grades.

Verification

A second pass checks every source behind a published figure: it opens the page and checks that the page states the figure, role, level, period, currency and date recorded. Where a page blocks automated access, the second pass checks the search engine's snippet of that page instead. Of the 266 sources behind published figures, 230 were checked by opening the page and 36 by search snippet. A figure the second pass cannot find is dropped, and its combination is checked against the threshold again. A collected source that has not had the second pass is not used for any figure.

What is published

A breakdown page needs base salary at confidence B or better and sourced employer contributions. Page thresholds v1.1: a role page in a country needs at least 1 published level and a country page at least 1 published role (inputs/thresholds.md as amended on 8 October 2026; the change is in the changelog). 35 country breakdown pages across 20 countries meet the thresholds, plus 6 city role and level combinations on 4 city role pages in 1 city (Chicago). 1,443 routes are withheld, each with a reason on the not-published list.

Independence

This site is a personal project of the publisher. It sells nothing, takes no placements and names no vendor as a recommendation. Figures are computed from public sources by the published formula.

Versions

Dataset v1.0, computed 17 October 2026, exchange rates of 7 October 2026. Updated quarterly. Changelog (1 version).