Report · 6 min read
Tech salary benchmarks from published job bands
Every role published on Jobs by CareerBuddy is required to disclose a salary band. This report aggregates those bands into medians and quartiles by role and geography. The numbers below are posted employer commitments for live roles, not recollections collected in a survey.
Published
No group currently clears the five-role publication threshold, so no figures are shown. The method below is how they are produced once they do.
Method
Each live, published role contributes the midpoint of its salary band as a single observation. Observations are grouped by role family and geography, and reported as 25th, 50th and 75th percentiles.
A group reports in local currency when a single currency covers at least 70% of its observations; otherwise it reports in USD using normalised values. This keeps a Lagos naira figure readable as naira rather than flattened into dollars.
Geography widens only when the finer level is too thin to publish: role and city first, then role and country, then role and region, then worldwide. Each figure states the level it was computed at.
Suppression
Any group with fewer than five observations is not published — no figure, no page, no entry in this report. With a small enough group, a median can expose an individual person's pay, and that is not a trade we make for coverage.
This is why widening the geography, rather than lowering the threshold, is the mechanism for thin data. A country-level figure drawn from twelve roles is honest; a city-level figure drawn from three would not be.
Where a coarser figure would simply duplicate a finer one — because a single city supplies all the country's data — only the finer one is published.
What this dataset is good for, and what it is not
It is good for setting an offer. These are the bands you are competing against for candidates who are looking right now, dated and specific, which is exactly the comparison an offer needs to survive.
It is good for sanity-checking an existing band. If your band sits below the 25th percentile for the same role and geography, that is a retention risk with a delay on it, whether or not anyone has resigned yet.
It is not a picture of what everyone in a market earns. Advertised bands come from roles that are open, at companies willing to publish, which skews toward employers competing actively for talent. Long-tenured staff at companies that never advertise are invisible here.
It is not a substitute for internal equity work. Two people doing the same job at your company should be paid the same regardless of what either could have negotiated, and no external benchmark tells you whether that is true.
Why bands beat surveys for this particular job
Survey data asks people to recall what they earn, months after the fact, and the people who answer are not a random sample of the market. Response bias, recall error and the base-versus-total confusion all push in unpredictable directions.
A published band is a commitment. An employer has decided what it will pay, written it down, and attached it to a real role with a real start date. It can be wrong about the market, but it cannot be misremembered.
The cost of that precision is volume. There are always fewer open roles than there are employed people, which is why suppression and geography-widening matter so much here — and why every figure on the site carries its sample size in plain sight rather than in a footnote.
How to read these figures
Read the sample size before the median. A figure from six roles indicates an order of magnitude; a figure from forty supports setting a specific band.
These are advertised bands, so they represent what employers commit to pay for open roles. That makes them forward-looking and current, which is what you want when setting an offer, and it makes them a poor proxy for what an entire existing workforce earns.
The 90-day movement figure, where shown, compares the median of the last 90 days against the preceding 90. It is only computed when both windows independently clear the sample threshold.
Questions
- Where does this salary data come from?
- From the published salary bands of live roles on Jobs by CareerBuddy. Salary disclosure is mandatory for every posting, so the dataset is made of employer commitments rather than survey self-reports.
- Why is my role or city not listed?
- Because fewer than five published roles matched it. Groups below that threshold are suppressed entirely, since a median over a very small group can reveal an individual's pay. Where possible the figure appears at a wider geography instead.
- Are these figures base salary or total compensation?
- They are the advertised salary band, which is base compensation. Equity and bonuses are not included.
- How current are the numbers?
- They are regenerated from live roles on every build, and each figure carries the date of its most recent contributing role.
Browse salary pages by role and country