Insights/Salary benchmarks

Rate movement, quarter by quarter

Where offers moved this year across the three seniority bands.

[Author name], [Role] · 30 Jul 2025 · 2 min read
LEADSENIORMIDQ1Q2Q3Q4OFFER MOVEMENT THROUGH THE YEAR↑ HIGHER OFFER
Fig. 01 — Offer movement through the year
TL;DR
01Movement is not uniform across bands. The lead band moves first and furthest; the mid band is the last to reprice and the first to stall.
02What moves is the accepted offer, not the advertised range — ranges are revised long after the market has already decided.
03An annual survey cannot show you this. By publication it describes a market two to three quarters old.
04If your band was set more than two quarters ago, re-price before you brief, not after a candidate declines.

ates do not move the way budgets assume they move. A budget treats compensation as a level that is reset once a year; a market resets it continuously, unevenly, and in the bands where supply is thinnest first. This is the short version of what we saw across four quarters of live offers.

The percentages behind the plate are ours, drawn from accepted offers rather than advertised ranges, and they are bracketed in the figure until the current quarter closes. The pattern is the part worth your attention.

The bands move at different speeds

The lead band moves first. There are fewer people in it, the search is longer, and a single competing offer resets the number for everyone currently in process. When something moves at the top, it is visible within a quarter.

The mid band is the opposite. It has the deepest supply, it reprices last, and it stalls first when hiring slows — which is why a company that benchmarks only at mid level concludes that the market is flat while simultaneously failing to close a lead.

Senior sits between them and is where most of our volume is, so it is the band where the trend line is cleanest. It is also where the gap between advertised and accepted shows up most clearly.

Advertised ranges are a lagging indicator

A posted salary range is a document that has been through approval. By the time it changes, the thing it describes changed two quarters earlier.

Accepted offers are different. They are what someone was actually willing to pay to stop a candidate taking a different job, on a specific Tuesday, with full information about the alternatives. That is a price. Everything else is a plan.

This is also the honest limit of an annual survey. The Stack Overflow Developer Survey is the strongest public series there is on developer compensation — tens of thousands of respondents across most of the world — and it is fielded once, analysed, and published months later. It is excellent for direction and spread and structurally unable to tell you what happened last quarter.

What to do with this

Three things, in order of how much they save.

Re-price before you brief. The most expensive version of this conversation is a candidate declining at offer stage, because you lose the candidate, the two weeks and the position in the market all at once.

Set the band against the band, not against the role title. Titles inflate; years of relevant experience do not.

And if you are hiring at lead level, assume the number you were given last quarter is low. It usually is, and it is the band where being wrong costs the most time.

Source
Stack Overflow Developer Survey 2025
Stack Overflow · 30 July 2025

Year-on-year developer compensation by role and experience band, the same series this post tracks quarter to quarter.

Related reading