How we work

How we calculate salary estimates

We believe in being honest about what we do and don't know. This page explains where our salary data comes from and how we model it.

The short version

Our salary estimates are based on public benchmarks and structured modelling. We do not use real-time company data feeds or proprietary salary databases. Our numbers are designed to give you a directional signal — not a legally precise figure.

Government wage dataIndustry benchmarksExperience modellingLocation adjustments

Where the data comes from

We do not have access to live company salary databases, proprietary HR platforms, or real-time job posting data. We want to be upfront about that.

Instead, our salary estimates are built from government earnings surveys and community compensation platforms, normalized into a single structured pipeline:

  • Government earnings surveys — ONS ASHE (UK), Eurostat SES (EU-wide), Destatis VSE (Germany), and INE EES (Spain). These are the most statistically reliable sources available — large samples, consistent methodology, published under open data licences.
  • Levels.fyi compensation data — manually curated from publicly visible salary ranges on the platform, used as a directional signal for tech roles in major cities. Self-reported data with known upward bias — treated as an upper-market signal, not a market median.
  • Structured modelling — for role/location combinations where we have no direct source data, we fall back to a calibrated model using location and experience multipliers derived from the survey data above.

All records are normalized into a unified schema and explicitly tagged with their source, geographic scope, seniority level, and freshness. Estimates are only produced from this pipeline — we do not use synthetic data.

How we estimate salaries

When you query a role and location, we run a 3-tier geographic search against our normalized record set:

  1. City-level records — the most specific and highest-weighted data. For example, ONS London regional data or Levels.fyi London records.
  2. Country-level records — national-level survey data (e.g. UK ONS ASHE national, Germany Destatis VSE national).
  3. Pan-European fallback — Eurostat SES aggregate data, used only when no country-specific records exist for a combination.

Each record is weighted by four factors: source reliability (government surveys weighted highest), data freshness (decaying ~15% per year), geographic specificity (city > country > Europe), and role normalization confidence (how well the raw occupation code maps to our role definition).

If the available records don't match the queried seniority exactly, we apply an experience curve — a smooth non-linear function (Hermite spline) calibrated from observed European tech market data. Entry level is approximately 58% of mid-level market rate; 15 years of experience is approximately 148%.

Where no pipeline data exists for a combination, the estimate falls back to a calibrated multiplier model using location premiums derived from our survey data.

The result is a low / median / high range (weighted P25/P50/P75 across the contributing records) and a percentile estimate for where your salary sits.

Country data integrity

We apply a strict country-to-source mapping. UK data is never used to estimate EU salaries, and EU data is never used to estimate UK salaries.

  • London and UK estimates are calibrated from ONS ASHE data (UK government survey). Eurostat data is not used for these locations.
  • US estimates (San Francisco, New York, Seattle, Austin, Los Angeles) are calibrated from BLS Occupational Employment and Wage Statistics (OEWS) data. European data is not used for these locations.
  • Canadian estimates (Toronto, Canada) are calibrated from Statistics Canada Labour Force Survey data.
  • Continental European estimates (Germany, France, Spain, Netherlands, Ireland) are calibrated from Eurostat Labour Cost Survey data. ONS data is not used for these locations.
  • Tech-role estimates in major cities (London, Berlin, Amsterdam, Paris, Dublin) are additionally cross-referenced with Levels.fyi community compensation data, which has strong European tech coverage.

This mapping is maintained explicitly in our data layer and validated at build time to prevent accidental cross-country mixing.

Named data sources

Our salary pipeline draws on the following publicly available sources, each tagged with its geographic scope and ingestion method:

  • BLS Occupational Employment & Wage Statistics 2024 (bls-oews) — US Bureau of Labor Statistics city-level wage data. SOC occupation codes. Covers 8 metropolitan areas (San Francisco, New York, Seattle, Austin, Boston, Chicago, Los Angeles, Miami) and national averages. Hourly wages annualised at 2,080 hours. Public domain. US locations only.
  • UK ONS ASHE 2025 (ons-uk) — Annual Survey of Hours and Earnings. SOC 2020 occupation codes. Covers UK national and London regional gross annual pay by occupation for full-time employees. Open Government Licence v3.0. UK locations only.
  • Eurostat Structure of Earnings Survey 2022 (eurostat-ses) — EU member state earnings data by ISCO-08 occupation, enterprise size, and country. Covers DE, NL, ES, FR, IE and other states. Published every 4 years; next edition 2026. Continental European markets.
  • Destatis Verdienststrukturerhebung 2024 (destatis-vse) — Germany's national earnings structure survey. KldB 2010 occupation codes. Includes Berlin federal state breakdown. Data licence Germany dl-de/by-2-0. Germany only.
  • INE Encuesta de Estructura Salarial 2024 (ine-ees) — Spain's national wage structure survey. CNO-11 occupation codes. Includes Comunidad de Madrid and Cataluña regional breakdown (used for Madrid and Barcelona). Attribution to INE required. Spain only.
  • INE-PT Inquérito à Estrutura de Ganhos 2024 (ine-pt-ieg) — Portuguese national earnings structure survey. Covers gross annual pay by occupation. Portugal only.
  • BFS Lohnstrukturerhebung 2024 (bfs-ch) — Switzerland's Federal Statistical Office wage structure survey. Covers gross monthly and annual earnings by occupation. Switzerland only.
  • SCB Lönestrukturstatistik 2024 (scb-se) — Statistics Sweden earnings survey. Covers gross annual pay by occupation. Sweden only.
  • Istat Indagine Retribuzioni 2024 (istat-it) — Italy's national institute of statistics labour earnings survey. Italy only.
  • GUS Struktura Wynagrodzeń 2024 (gus-pl) — Poland's Central Statistical Office wage structure survey. Poland only.
  • Statistics Canada Labour Force Survey 2024 (statscan-lfs) — Canadian median and average hourly wages by NOC occupation group. Covers national-level data for major occupation families. Statistics Canada Open Licence. Canada only.
  • Levels.fyi 2024 (levels-fyi) — Manually curated from publicly visible salary ranges on the platform. Representative of larger tech companies and above-market-median employers. Self-reported data has known upward bias — used as an upper-market signal for engineering, product, and data roles in major tech hubs. Not used for non-tech roles.

Government surveys are weighted highest in our pipeline. Levels.fyi is weighted at approximately 0.65× vs 0.80–0.90× for national statistics sources. France, Netherlands, and Ireland are covered via Eurostat SES at broad occupation group level (ISCO 1-digit). Australia, Singapore, and UAE currently use calibrated multiplier estimates pending ingestion of local government data.

Confidence scoring

We assign a confidence level — High, Medium, or Lower — to each estimate, computed directly from the pipeline data used to produce it. This is not a heuristic label; it is derived from six measured factors:

  • Source diversity — how many distinct data sources contributed. One source = medium at best.
  • Record count — how many normalized records matched the query. Fewer records = lower confidence.
  • Freshness — how recent the contributing data is. Government surveys run every 4 years; freshness decays 15% per year from publication date.
  • Geographic specificity — city-level data is scored highest; pan-European fallback lowest.
  • Seniority match — whether records exist for the exact queried seniority, or whether we had to interpolate using the experience curve.
  • Fallback depth — whether we reached the Europe-wide fallback tier, which means no country-specific data was available.

High confidence requires a composite score ≥ 0.75 across these factors. Medium is 0.45–0.74. Lower confidence means the estimate is based on thin or indirect data — use it as a rough guide only.

Confidence is shown on each salary page and in calculator results. It is not a claim about accuracy — it is a measure of how much real evidence supports the estimate.

Coverage summary

We cover 34 role types across 50 locations. Coverage quality varies — here's an honest breakdown:

Strong coverage (high confidence)

Software Engineer, Frontend Developer, Backend Developer, Product Manager, Designer, Marketing Manager, Sales Manager, Data Analyst — in London, Berlin, Amsterdam, Paris, Dublin. Multiple independent sources available for these combinations.

Medium coverage

DevOps Engineer, Data Scientist, Business Analyst, HR Manager, Finance Analyst, Operations Manager, Customer Success Manager, Account Manager, Growth Manager, Performance Marketing Manager — in major cities. Reasonable market signals available but fewer cross-referenced sources.

Lower confidence

QA Engineer, Content Manager, Social Media Manager in any location. Any role in the generic "Europe" category. Fewer public benchmarks; use as a rough guide only.

Limitations

We think transparency here matters. There are real limitations to be aware of:

  • Not all industries are well represented. Our estimates are strongest for tech, product, marketing, sales, and operations roles. Legal, executive, finance advisory, and highly specialised roles are not well modelled.
  • We don't account for company size or stage. A senior engineer at a Series A startup and one at a FAANG company are not the same. Our estimates reflect a broad market average, not any specific company type.
  • We don't include equity, bonuses, or benefits. Total compensation can be significantly higher than base salary, especially in tech. Our tool only estimates gross annual base salary.
  • Data is not real-time. We update the model periodically, but salaries can shift quickly in fast-moving markets.
  • Currency values are not live FX rates. UK estimates are in GBP; European estimates are in EUR. We do not apply live exchange rates between them.

Why this is still useful

Despite these limitations, benchmarking your salary is genuinely useful — even with modelled estimates.

Most people have no external reference point for their salary at all. They accepted an offer, received annual increments, and have no idea whether they're at the 30th or 80th percentile for their role. That asymmetry favours employers.

Our tool gives you a directional signal. If our model puts your current salary in the bottom 25% for your role and location, that's a meaningful data point — even if the exact median is off by a few thousand euros. It tells you there's a conversation worth having.

For a more precise view, we recommend combining our estimate with:

  • Job listings for similar roles in your location
  • Conversations with recruiters who can share live market rates
  • Professional network salary discussions
  • National salary survey data published by government bodies

Our goal is to give you enough signal to start the conversation — with your manager, a recruiter, or yourself.

Ready to check your salary?

Takes 30 seconds. No email required. No signup.

Check my salary →