Methodology

How a SpotSalary estimate is built

Every report follows the same pipeline: anchor to external evidence, fill gaps carefully, validate deterministically, and publish the uncertainty. This page explains each step and its limits.

Last updated October 25, 2026

The pipeline

A report is generated on demand and refreshed on a schedule. The pipeline has seven stages:

  • 1. Resolve the query. Match the job title to a canonical occupation (with aliases) and the location to a country or city in the imported world-cities dataset.
  • 2. Load market signals. GDP per capita PPP, inflation, wage growth, cost-of-living index, demand index, automation exposure, FX and the country tax profile.
  • 3. Gather observations. Where research is enabled, search and fetch public salary sources, keep quoted observations with their URLs, and classify their quality. If local evidence is too thin, use the nearest comparable markets and adjust for cost of living and income levels.
  • 4. Synthesise. The configured AI provider proposes salary bands and a summary, constrained by the market signals and the research observations.
  • 5. Validate. Deterministic checks reject implausible bands (ordering, ranges, negative values, impossible growth) and fall back to the deterministic wage model when a response fails.
  • 6. Forecast. Build 1, 3 and 5-year base, optimistic and conservative scenarios from inflation, real wage growth, demand and automation risk.
  • 7. Score and cite. Assign a confidence score from source coverage and data tiers, attach citations, and publish the report.

Data sources

The catalogue is CSV-driven so a feed can be swapped without a code change. Current source families include:

Source family Used for Typical tier
World Bank / IMF GDP per capita PPP, inflation, wage growth Official
OECD / national tax tables Progressive brackets, effective rates, deductions Official / derived
ILO modelled estimates Labour-market and wage context Official
Numbeo / OECD composite Cost-of-living indices (country and city) Derived
Open exchange rates Currency conversion at report time Official
SimpleMaps world cities Country and city catalogue, population, coordinates Reference
O*NET / ESCO-style taxonomy Occupation families, SOC codes, aliases Reference
Public salary pages and reports Quoted observations for research-enabled reports Reported
SpotSalary deterministic model Fallback bands where evidence is thin Estimate

Each report lists the specific source names it used. A source name does not imply endorsement by that organisation.

Confidence scoring

Confidence is a summary of how much official, local and recent evidence supports the number. It is not a probability that the number is exactly right. The hierarchy is:

Tier Meaning Effect
Official Published by a statistical agency or official table Raises confidence
Reported A real salary observation from a named public source Raises confidence, weighted by source quality
Derived Calculated from official inputs (for example a cost-of-living composite) Neutral to slightly lower
Estimate Modelled or imputed where direct evidence is thin Lowers confidence and widens ranges

City-level reports usually carry lower confidence than country-level reports because local samples are thinner. Forecast confidence narrows as the horizon extends.

Forecasts and scenarios

Forecasts are not single predictions. Each report shows a base scenario plus optimistic and conservative bands. The base scenario combines inflation, real wage growth, demand trend and automation exposure. The bands widen with the horizon because compounding uncertainty grows.

Every forecast states nominal and inflation-adjusted (real) growth. A role can receive nominal pay rises and still lose purchasing power. That distinction is visible on the report rather than buried in a footnote.

Take-home pay

Take-home estimates use imported national tax profiles. Where progressive brackets are available, SpotSalary applies them with the standard deduction and any verified rebate. Where only an effective rate is available, it uses that rate and labels it. Where only the top marginal rate is known, it does not apply that rate flat, because that would overstate tax at lower incomes.

Social contributions, local levies and individual deductions are not included. The page always states which method was used and links the source where available.

Update cadence

  • Stale report bands are refreshed by a daily scheduled command.
  • Forecasts and outlooks have their own refresh cadence so bands stay stable while scenarios update.
  • Published reports newer than the freshness window are reused instead of regenerated.
  • Every page shows an updated date; report pages also show a forecast refresh date.

Known limits

  • Salary data is sparse and inconsistent across countries; city-level evidence is thinner than country-level evidence.
  • AI synthesis can be wrong even when validation passes. Confidence and sources are the guardrails, not a guarantee.
  • Tax estimates exclude social contributions and personal circumstances.
  • Exchange rates move; converted figures reflect the rate at report time.
  • Occupations are not perfectly comparable across countries, even when titles match.
  • Forecasts are scenarios, not promises. Structural shocks are not modelled.

Corrections

If a figure, source or citation looks wrong, email [email protected] with the report URL and the evidence. Corrections that change a published figure are reflected in the report refresh date. Read the editorial and AI policy for how we handle accuracy and AI disclosure.

Common questions

How a SpotSalary estimate is built — FAQ

Does SpotSalary use AI to calculate salaries?

AI is used to synthesise bands and summaries, but it is constrained by imported market signals and research observations. Deterministic validation rejects implausible outputs, and every report carries a confidence score and sources.

Why does a report show a wide salary range?

A wide P10–P90 range usually means evidence is thin, the role varies a lot by seniority or company, or the location has a dispersed market. A wide range is more honest than a false point estimate.

Why do city and country figures differ?

City reports use local cost-of-living and demand signals where available. Country reports aggregate a broader market. If local evidence is too thin, the city report may be imputed from nearby markets and is labelled accordingly.