Market rate is the median of bad negotiators
What a salary benchmark is actually measuring.
Nobody is suggesting that every penny a company makes should go to its employees. The suggestion is narrower and harder to dismiss.
It’s that companies might be paying people considerably less than they could and that developers might not be getting a good deal even though wages look high next to other industries. Those two things can both be true at once. A salary can be excellent compared to what a nurse earns and still be well below what the person is worth to the business, and pointing at the first comparison doesn’t answer the second.
The usual reply is to ask why anyone should expect more than the market rate for their labour. That sounds like it settles the matter and it only works if you don’t look at what market rate means. It’s the median negotiated salary for similar roles. That’s it. It’s a description of what other people managed to agree and it gets treated as though it were a price discovered by a market.
Prices work the way people expect when both sides have roughly comparable information and roughly comparable leverage. That isn’t the situation here. The employer knows what everyone in the building earns, what the budget for the role is, what the last three candidates asked for and what they eventually settled at. You know what you currently earn and whatever you managed to piece together from people willing to talk about it, and one side of that table is negotiating with data and the other is negotiating with a feeling.
Follow that through and the benchmark starts looking strange. If most developers negotiate badly, and most do because it’s an unpleasant thing to do occasionally against people who do it constantly, then the median of what they agreed is the median of a lot of bad outcomes. Getting the market rate means you did as well as the other people who didn’t do very well and it feels like a floor and functions like a ceiling.
Which means using market rate to set a salary might be holding wages down rather than discovering where they should sit. Every company benchmarks against the same surveys, every survey is built from what people accepted, and what people accepted was shaped by the previous round of the same exercise. The number reproduces itself and everyone involved can honestly say they’re paying the going rate.
I’m not claiming to have proved any of that. It’s a challenge to an assumption rather than an argument with numbers behind it and the assumption is doing an enormous amount of unexamined work in these conversations. Price theory is being applied to a market that doesn’t obviously have the properties price theory needs.
None of which changes anything on Monday and it’s fair to point out that this is mostly futile speculation, and nobody is going to restructure how developer salaries are set because of a comment on a forum. It’s still worth knowing that market rate is a description of what happened rather than a measure of what anything is worth, particularly at the moment somebody quotes it at you as though it settles the question.
The practical version, if you’re on the receiving end of it, is to notice what you’re being told when somebody quotes the figure at you. You’re being told what other people settled for, by a person who knows a great deal more about the distribution than you do and the implication that this is what the role is worth is doing work the number cannot support.
That doesn’t hand you any leverage on its own. It does mean you can stop treating the number as a fact about the world and start treating it as an opening position which is what it always was.