(this article will be published on handpickedberlin.com after the dashboard is finished. It only needs final tweaks and should be there by the end of the week)

If you have a comment, let me know, I can still improve some things. 😎 Article starts:

The results of the first Berlin Salary Trends survey are in. We collected 1,061 responses, significantly more than expected. Thanks to everyone contributing data and supporting my guerilla marketing one way or another!

This is only the beginning.

🙇🏻 I would like to thank Akmal for his help with my Jupyter Notebook and Navid for implementing the dashboard. This was a lot of work, much more than I expected.

If you would like to make sure to participate in the next survey, you can leave your e-mail here or even better; you can subscribe to my Berlin and careers-related newsletter for free.

It’s impossible to produce all the relevant charts, so we created a dashboard; this way, you can explore the data yourself. I am excited to hear your feedback and suggestions for improvements.

The appendix contains more information on data, bias, challenges, and usage.

Please remember that this is a hobby project. I hope it helps, and see you soon! 👋

List of contents

(on blog only)

General overview

Out of 1,061 responses, I removed eight entries because the data looked extremely strange. We also had 83 entries of people who do not live or work remotely in Berlin; this leaves us with 970 valid entries. The survey was available in German (183 responses) and English (878).

Most respondents (878) were based in Berlin, while 92 worked remotely for Berlin-based organisations.

Men were overrepresented; this has to do with the tech bias of my distribution channels, especially on tech-oriented subreddits.

Online someone correctly told me off with “harter Bias,” and yes, the bias is hard. That’s most apparent in the distribution across industries where Tech & Software was in a strong lead, followed by Information & Communication, Finance & Insurance, Retail & Wholesale and others.

But still, better having skewed than no data?

Demographic details

In terms of age, more than 80% of respondents were between 25 and 39. This, again, is related to my guerilla marketing distribution channels. I wish we had higher numbers of more experienced people, but hey, we’ll be growing up together!

Over 85% of respondents have completed higher education (Bachelor and upwards):

Berlin is in Germany, but my newsletter is in English, and it shows. We only had 275 respondents with German passports (including dual combinations).

Companies and Experience

Most respondents work in private firms; the rest (government, NGOs, public sector, freelancers etc.) totalled 11%. It is unclear how many respondents worked in startups: maybe a possible addition next year?

Berlin is not a big industrial powerhouse: Over 60% of respondents were from smaller companies.

Over 65% have been in their current company only for up to 2 years. “How many different companies have you worked for? may also make sense as a data point in the future.

Roles and experience

Cleaning roles and grouping roles is hard work. For example, a generous engineering filter will reach 376 predominantly Software Engineers. I also found 63 people trying to herd cats: Project and Product Managers. Compare this with ten Architects, eight Working and two PhD Students. We also had plenty of interesting outliers: Musicians, Artists, and Tour Guides.

Let’s start with an easy one: total years of experience. Distribution correlates to age, and we did not have many newbies:

Fifteen freelancers were in the minority: most respondents worked full-time (93.0%):

If we were an organisation, we would have too many managers or leaders for my taste: 25 managers for 73 employees.

At last! Salaries!

The average total annual gross salary among all valid respondents is €71,470, which is, hmm, not bad at all? The median is €70,000.

A good third of respondents already received a raise in the last six months:

Only 25% of employees could count on a performance bonus. Almost 20% of the ones with bonuses also received an equity package.

Equity sounds nice, but it comes with conditions of vesting and is, by some, considered “paper money”, so I decided to consider Total Annual Gross Salary (before tax and deductions) in the rest of the charts.

Before you dig into the dashboard, check this histogram for orientation where you stand:

Total annual gross salary vs …

TL;DR: box charts are f**king amazing.

We used box charts because they are great for showing the distribution of salaries across different groups. They use a quartile, a box and 'whiskers'. The box represents 50% of the data (25th to 75th percentile), and the line inside indicates the median (a middle value separating the higher and lower half). Whiskers indicate minimum and maximum values within the calculated range. Data points outside the range are considered outliers. All charts have trimmed outliers (0.1/0.9) and a limit of 200k.

Data shows what everyone knew already—men get paid more. But I haven’t had time to do further analysis here: the next step would be to control for industry, age and experience.

Similarly, you don’t need to be Sherlock Holmes to understand that the longer you work, the more you’ll bring home. You can also see that the variability increases with time:

You can expect to have your best years from 40 onwards:

When we isolate higher education and simplify it extremely, a Bachelor’s seems the best business case if you want to optimise for money, providing the biggest pay for the least amount of studies. Could it be related to bachelors having more years of work experience than others who studied longer?

How about your passport? The data was somewhat surprising: Non-EU countries lead with the highest median, while Germany had the greatest variability.

And industries? The chart is crowded, but you will still clearly recognise the most paid industries: Finance/Insurance & Tech/Software, closely followed by Transportation & Storage and Information & Communication.

I already mentioned the pain of grouping roles, but here we go. I filtered the data as best as I could, and it is clear that a very distinct group of Solutions Architects were paid the best. I was positively surprised by the Product Managers: compared with the comparably much worse situation of Project Managers. Employers of Architects have it easy: a big passion means a big supply, which lowers their pay. Web Designers are victims of my filters because, surely, some are hiding in Frontend Engineers (grouped under Software Engineers).

How about size? Bigger companies pay more. And this clearly shows when looking at the next chart:

And that was it from my side.

“Hey, what about…”

Yes! You’re right; plenty of other charts could also be interesting. You can also contribute because the cleaned data will be published in CSV format. It has been years since I studied statistics… and don’t even get me started on Python. 😅

If you plan to do additional analysis, please let me know: I would love to include it or link it to the Resources section.

😎 How do you use this data?

It would be tempting to look at some numbers and go to your boss or HR and say, “See, THIS is what the benchmark is!” Well, it’s more complicated than that, as this data does not account for performance; plenty of unknowns are hidden in it.

Use it as an orientation only, and please, when comparing yourself:

  • consider years of experience and age brackets (35 and 39 is a big difference),

  • take industry, years in the role and the actual role (team leads, managers etc.) into account,

  • note that I adapted some really specific roles as described in the appendix,

  • use common sense, and be kind to other people.

🙏 And finally: I need your support

I haven’t measured the exact time spent on the survey design, promotion and report. But the data cleaning and this report alone were several days of work: I felt like I was doing a poor master's thesis again!

You can support this project in several ways:

  • Enrich my basic report with additional charts and analysis (contact me!),

  • share the report on your blog, socials or with friends,

  • do the same survey for another city or region,

  • leave your email to get a reminder about the next survey, probably next year,

  • send feedback (e.g. additional questions, charts suggestions),

  • or subscribe to my newsletter.

Or you can show your support with a donation and, as a bonus, get supporter access for handpicked for Berlin; it is €5 monthly or €30 annually.

Thank you so much! ❤️

🧑🏻‍💻 Dashboard

The dashboard is built in Looker: I am using it for the first time; let's see how it performs. Suggestions/tips are welcome.

It seems simple enough. (short description on how to use)

(fancy dashboard comes here)

👋 Thanks! I hope you enjoyed this report, and don’t forget to give feedback!

Resources

(links)

  • GitHub

Appendix: On data and cleaning

This was the first survey, hopefully of many. I wish we had a more diverse dataset, but it is what it is. On to a few comments.

  • Bias. I am unsure if avoiding it with an anonymous ONLINE survey is even possible. Many of the respondents were highly educated tech workers. In Berlin, according to the Office for Statistics Berlin-Brandenburg (🇩🇪), you are considered wealthy if your monthly net is at least €3,803. In 2022, nearly 9% of Berliners met this threshold. At €70k median, half of the respondents land only €300 under this threshold at Steuerklasse I.

  • Promotion. I promoted the survey everywhere I could, mostly through my handpicked for Berlin newsletter and on Twitter, Reddit, Facebook and Instagram (with a small amount of paid ads). I also asked for help everywhere I could.

  • Responses. The data is self-reported, and I live with the assumption that not many people take the time to go and lie in a survey. Some charts are without “na” or “prefer not to say” responses. I have also cleaned up typos and taken other measures to improve data quality.

The survey was open for responses in June 2023.

Mandatory fields were:

  1. Are you currently employed in Berlin or by a Berlin-based organization?

  2. Gender

  3. Age

  4. Type of organisation

  5. Industry

  6. Job Position/Title

  7. Total annual gross salary in EUR (before taxes and deductions)

While promoting the newsletter, I received dramatic feedback about GDPR compliance and running it via Google Forms. Ok, so since it is anonymous, it isn’t in the scope of GDPR. Theoretically, it would be possible to single out a person, but if you look at the data, you will quickly realise it’s impossible because there are at least five or more people with similar characteristics living in Berlin.

Still, I did my best to mitigate the risk of singling out:

  • I generalised job titles that were company-specific (e.g. Software Engineer III -> Software Engineer, Graduate → Junior, Principal -> Senior or Intern, Working Student -> Student). The data quality loss was insignificant because you can use compensation and years of experience as additional orientation.

  • I renamed most of the “Developers” to “Engineers”; I just needed to decide on something, engineers considering themselves developers, please do not feel offended.

  • I rounded the salaries up or down (eg. €33,750 rounded up and €42,370 rounded down).

  • Industries with less than five respondents were set to “prefer not to say”.

  • I removed self-declared nationalities (<10).

  • I removed the timestamp and reordered the entries randomly.

  • I amended annual gross salary submissions in cases when the submission was monthly instead of annually (<20).

  • I did several other data-cleaning measures, which are too boring to list.

Reply

Avatar

or to participate

Keep Reading