Today, we launched the Stack Overflow Salary Calculator, a tool that allows developers and employers to find typical salaries based on experience level, location, specific technologies, and education. We did this because we believe developers should be empowered with more information around job searches, careers, and salary. In fact, we know that developers want more salary information to make better choices about their careers; we have seen that ads for Stack Overflow Jobs that include salary information get 75% more clicks than ads without salary information. This salary calculator is based on the comprehensive data from the Stack Overflow Developer Survey. The inputs to our salary calculator are your
- location,
- education,
- years of professional coding experience,
- what kind of developer you are, and
- the technologies you use professionally.
The reason we built the calculator with these inputs is that we found these specific characteristics to be most predictive of a developer's salary, tabs or spaces notwithstanding. There are also more subjective ways that coders are evaluated and compensated. We at Stack Overflow have written publicly about how that happens here but we don't take that kind of skills assessment into account in this current model.
Geography
One of the biggest factors in how much a developer is paid is where she or he lives and works.
For our initial release of this calculator, we are reporting developer salaries in the United States, Canada, the United Kingdom, France, and Germany. These are countries that are important both for the Stack Overflow community at large and Stack Overflow Jobs in particular. We know there are other countries, such as India, where there are huge numbers of professional developers who contribute both to the Stack Overflow community and technology in the world in general; we are exploring the possibilities of expanding our calculator to more countries like these. Even within a given country, there are metro areas where developers make more than the national average. In the United States, for example, our survey results indicate that developers in San Francisco and Seattle have the highest salaries. (They have high housing prices to go along with those high salaries, but that's beyond the scope of our salary calculator.) We did not specifically ask about city or metro area on the 2017 survey, but we used IP addresses to geolocate survey respondents and delve into city-to-city differences. This is personally identifying information and therefore not available in the public release of the 2017 survey. Due to our statistical constraints, we only assigned separate predictions to cities that meet two conditions:
- There were many developers who responded there.
- Developer salaries there are unusually extreme compared to the national average.
We are committed to improving the accuracy and granularity of this calculator. You can help us improve the calculator by confidentially sharing your salary with us in the calculator. We will use your salary information in modeling, but your salary is 100% private and will never appear on your profile or be shared with employers.
Which types of developers make more?
Another important factor in how much developers are paid is what kind of specific work they do and what technologies they work with.
This plot shows how salary depends on developer role or type, but specific technologies also affect salary. Staying current with high-demand technologies can have a big impact on salary. For example, this year, we see a significant increase in salary for developers who tell us they use React.js or AWS in their professional lives. The flip side here is that some technologies are used so broadly that they do not increase or decrease salary significantly. For example, so many developers use JavaScript that identifying yourself as a JavaScript developer isn't a significant predictor of salary up or down.
Building a model
The kind of model we built to predict salaries for the calculator uses multiple linear regression. The salaries were modeled on a log scale, because we found the salary distributions were log-normal (as such distributions often are) with a long tail of very high salaries. In this salary calculator, we report a predicted salary for the location, education, experience, and other information you enter. We also report a 50% prediction interval. The specific statistical meaning of this interval is that we expect 50% of people with the same characteristics as you to have salaries within that range; it spans the 25th to 75th percentiles. The interval is just as important as the prediction itself (the 50th percentile), because it gives you an understanding of what the range of expected salaries could be. Another characteristic of the model that can help you understand its predictions are the model's residuals, the differences between the predicted salaries and the known salaries for the dataset we used for modeling. Let's look at these for the countries and individual cities that are supported in this initial release of our calculator.
The residuals for the model look pretty good. You might notice that the shape of the residuals for the United States isn't the same as the other countries; there is less variation in the residuals at high salary than at low salary. Another way to say this is that the variance of the residuals isn't constant. This is called heteroscedasticity (say that three times fast!) and means that our dataset doesn't quite meet the underlying assumptions of our model. That's modeling with real-world, messy data for you! We still feel comfortable with the results of our statistical modeling and the prediction intervals that we are reporting in the calculator. This plot shows residuals and fitted salaries on a log scale, but salaries in the calculator itself are reported in natural units and the appropriate local currency for each user.
Your turn
Check out the Stack Overflow Salary Calculator and learn more about what developers are earning! As a developer, you can estimate the range of potential salaries for your own skills and background, add your own salary to make the calculator better, and even see specific recommended jobs relevant for you. As an employer, you can learn more about industry salary ranges and the competitive marketplace for developers' skills. Questions? Comments? Head over to Meta now.