Fair and Transparent: A deep dive into compensation at Octopus Deploy

Over 10 years, we've crafted a highly transparent, systematic approach to compensation where fairness and equity happen “by design."

How much should you pay people? What should the difference be between juniors and seniors? Should all senior software engineers be paid the same? Is there a self-reinforcing, systematic way to ensure people are paid equally for the same role regardless of race or gender? How does geography factor in? Employers say they're being fair, but how can employees know beyond simply saying "trust me"? I heard another company has more than the usual number of vaction days, should we do the same?

Every company has different answers to these questions, and I suspect most of them default to "do what everyone else does." As a company full of engineering types, we naturally tend to be skeptical of blindly following what most companies do. We like to think about things from first principles, and we want to find thoughtful answers and to think systematically. We're now a 300-person software company, so getting these things "right" has always been extremely important to us —too important to be left to "what everyone else does."

Sharing the Octopus Compensation Philosophy

Over 10 years, we've crafted a highly transparent, systematic approach to compensation where fairness and equity happen “by design."

We call it our Compensation Philosophy. We treat it like a product - it has principles and opinions about the world and our obligations, it's clear about what we are trying to balance, and it's been crafted and edited over many years as we have grown. Every little feature and change is considered carefully as part of a bigger, harmonious design.

I've shared our approach with many people outside of Octopus in the last year. I consistently hear that it's one of the most competitive, transparent, fair, and well-designed compensation approaches they have ever seen. So, I thought it might be useful to share it more widely in case others find it useful. Maybe you can convince your company to adopt it!

Our 70-slide deck explaining the philosophy is embedded below. You can also view the Google Slides or download the PDF below.


If you'd like to hear the story around it and some discussion around the thinking, I recently did a podcast with Matt McFarlane:


TL;DR - the short version

The deck discusses much of the thinking and principles behind the philosophy and then walks through the system we use to bring it to life, piece by piece. You can start having never thought about it, and end with a complete picture of why and how it works. I'd suggest not skimming it, but making a coffee or tea and setting aside a few hours to walk though it and think critically.

That said, I thought this post could do with a short summary that jumps to the core of how it works, in case it makes you curious to learn more.

At the core of the system, there is an internal website that all Octonauts can use to view our salary tables. To make it concrete, here's what the actual page looks like for software engineering roles in Australia:

There are a lot of things to note here that may not be obvious:

  1. Anybody in the company can view these salary tables
  2. You can view the table for your career path, or any other career path (e.g., software engineers can see the ladder for sales people, and vice versa)
  3. The rows of the table are the levels - junior through to the most senior
  4. There are separate individual contributor and manager tracks - you aren't forced to become a manager to earn more
  5. There are only three possible salaries for each level - maturing, performing, and exceeding, and we outline these in our handbook.
  6. We pay very competitively. We aim for Maturing to be at the 50th percentile of the benchmarks and Performing to be at the 75-85th percentile. We usually hire people at the Performing level. What this means is that if you received 10 job offers, ours might not be the top offer (large banks for example might pay more, but won't be as interesting to work at), but it will be the same or higher than about 8 of them.
  7. Importantly, those are specific numbers, not ranges. A senior software engineer in Australia who is Performing is paid exactly $165K, not a cent more or less.
  8. We do vary compensation by currency, but not by city or state. An engineer in Outback Australia is paid the same as an engineer in Sydney, but an engineer in New Zealand will be paid differently, though we try to minimize these differences.
  9. Some roles also receive a 5% bonus for being part of our on-call roster, usually 2-3 weeks per year. So the senior engineer above would actually be on $165K + 5% = $173,250.
  10. We work hard to benchmark those values to the best available benchmarks we can find, and use multiple sources for benchmarks. Our sources include Mercer Comptryx, Pave, and a variety of surveys that recruiting firms publish depending on the role. We also share the raw benchmark sources with our employees so they can hold us accountable.
  11. Our HR team gathers benchmarks and makes adjustments every 6 months. I brace myself every time this happens, because they tend to go up, not down, over time, and affording them usually means some change of plans. But we go into these reviews with two key thoughts: "It's only a philosophy if you stick with it even when it's inconvenient," and "If we can't afford to pay people competitively, we definitely can't afford to find replacements!"
  12. Hyperlinks take you to the detailed expectations for each role (at least for roles where we tend to have lots of people, and have taken the time to standardise the expectations). For R&D roles, you can read these descriptions in our public GitHub repository.

This system puts a lot of information into the hands of employees!

An Octonaut can look at this table and see exactly what they are supposed to get paid, and what they will be paid when they are promoted. They can look at the same benchmark data we see and know how competitive it is. They can also feel confident that someone doing the same work as them with the same skill will be paid the same.

This creates a self-reinforcing system. Rather than saying, "Just trust us," we give them the information they need to judge for themselves. And if we have made a mistake—which as humans, we sometimes do—it empowers them to ensure it's fixed.

Although this system is extremely transparent, there is still a degree of privacy. All employees know the level of every other employee (it's in their job title). But the maturity (maturing, performing, exceeding) is only known by themselves and their management chain; it's not shared company-wide. So, from someone's job title and location, you can probably guess what they might be paid, but it will be one of three numbers.

I would also add that managers love this model, because it makes questions about pay much easier. Suppose an Octonaut comes to a manager and says, "I think I'm not being compensated enough and should have a raise". It can be deconstructed:

  • Do you think you are in the wrong level/maturity rating? Let's discuss why, and fix it if it should be fixed.
  • Do you think that what we pay for a given level/maturity is below market? If so, the HR team would love any data you have to support it.

Fairness in progression

Although the system guarantees two people doing the same job at the same skill are paid the same, it doesn't guarantee they get promoted equally, or progress through the table at the same pace. Gaps and unfair outcomes can still happen because of differences in managers - e.g., one manager might be "tougher" than another and be less likely to give a promotion than another, and the system alone can't combat that.

To solve that, following every performance review (6 months or so), we look at a few reports:

  • We pull a report of people whose compensation hasn't changed for 2 years and double-click why. This ensures nobody is left behind for too long. In practice this is always a surprisingly tiny number of people.
  • We look at the balance of positive and negative reviews given, and the balances of promotions given, along the lines of department and gender.

Negotiation during hiring

The other limitation that comes up with our system happens during the hiring phase. Essentially, it doesn't allow us room to negotiate to meet a candidates expectations.

During the interview process we assess the level/maturity of the candidate, and that results in a salary, and that's the salary we offer. Because our offers are in the 75th-85th percentile and very competitive, usually this is never an issue. But occasionally, we find a candidate who expects more. Ultimately, having a fair and transparent system requires that we "stick to our principles" and can't negotiate.

However, if we often make offers that "aren't clearing the market" (e.g., we have multiple candidates tell us the salary is too low, or they accept better offers elsewhere), we take it as another strong signal for our benchmarking. Multiple times, we have learned that to get the candidates we want, we need to increase what we are offering – and then we do it for all the existing Octonauts doing that job as well. For roles we hire for often, like software engineers, this "first hand" experience with the market is a stronger signal than the benchmarking alone.

Merit increases and budgets

One surprise people have is that we don't do some of the things most companies do.

Many companies have some small automatic increase each year. For us, this makes no sense. A few years later, employee A is being paid more than employee B for doing the same job, the only difference is A started two years ago and so has had two automatic increases.

Realistically, what tends to happen is that in a strong economy like the one we had up until 2022, salaries were rising much faster than inflation. Every time we benchmarked, we found we needed to raise our salaries across the board, often by a lot. We also feel it firsthand when making offers when hiring, and we will re-evaluate our job table quickly if needed. In a tough economy, like the one we have right now, benchmarking does still seem to show a small rise. I don't think we have ever pulled two benchmarks 12 months apart that were "down."

Another common practice is merit increases, in which managers are given the ability to award extra salaries to a limited number of people who have "earned it". To me, this is silly. People should be doing a great job regardless, and if not, there are conversations to be had about how that can change. If they are doing more than others in their role, they may need to be promoted! By not allowing merit increases, we prevent favoritism from creeping in and stick to the principle of same job/skill/country = same salary.

The third surprise is for managers. In every other company, managers are given a "budget" for promotion. When you ask to be promoted and you are told "there is no budget this year to promote you", this is where it comes from. It's the biggest footgun a company can have!

When we start a performance cycle, a new manager will ask what their budget is. They are surprised when they are told there is no limit.

If Jo has consistently performed at the level of a senior engineer for the last year, there is no universe in which it makes sense to say, "We would promote Jo to a senior engineer, but we ran out of budget." It's immoral and bad business sense. If we can't afford to pay Jo more, we also can't afford to hire her replacement when she takes the well-deserved senior engineer job somewhere else.

When we plan our financial budget each year, we do bake in some assumptions about salaries increasing each year – based on how it has happened historically. But it's not a cap. If the performance review cycle completes and the promotions turn out to be more expensive than we expected, even a lot more, we suck it up. Maybe we need to change our hiring plans for the rest of the year or cancel a software subscription, but this part is not negotiable because it makes no sense in the long run.

That said, when the cycle completes, we'll tend to look across departments. It would be pretty weird if every individual on a team was being promoted, or if no individuals on another team were. Over the years we have built an idea of what "normal" looks like, and tend to 🤔 and speak to managers to find out more when we see something that doesn't fit the pattern. Sometimes there's a good reason, and sometimes there's a misunderstanding to clear up.

A note on our principles...

The deck outlines the principles behind many of these decisions and also takes a much broader look at issues like leave and other benefits, and is honest about how we think about them. It even touches on topics like DEI and gender pay gap. Some of the points may be controversial or not align with people's political beliefs on either side of politics. If I'm honest, this is the scariest part about sharing it widely, because anyone can probably find something to disagree with.

If you are a committed Marxist, you might think lowly of us because we pay software engineers differently than marketers. If you are a rampant capitalist, you might think we're foolish for not paying less to people who aren't good at negotiating. If you are an advocate for closing the societal gender pay gap where roles that employ women predominantly are paid less than roles that employ men predominantly, you might disagree with our stance that we have an obligation to pay men and women doing the same job equally, but not to pay people who do different jobs equally, and that the math of this when combined with the shape of roles we hire means we'll likely always have some gap at the whole-company level, though the system guarantees it will never be a gap at the job level.

Every company has beliefs behind how they compensate people - even if they have never thought much about it - but they don't share them or talk about them publicly for the same fear that they might be criticised by at least some percent of the population. At Octopus we treat people like adults and extend a lot of trust, so we think it's important to share ours and be honest, so people can decide for themselves.

We know not everyone will agree with every slide in that deck, but what's important is we respect you enough to be honest about what we really think, and we're open to being convinced by good argument otherwise. I'd happy have an open and civilised debate with anyone about any topic in that deck, because I care a lot more about finding and retaining great Octonauts and building a great product, than I care about being right!

For now, we make the actual compensation tables available only to Octonauts, though I included a screenshot of what we pay today for software engineers in Australia. There are different job families for data engineers, cloud engineers and security engineers. I haven't really thought through the pros and cons of sharing the actual tables publicly. Someday, if there is some interest, we may share more of it.