Getting to 50 / 50 - the data behind sales compensation

Pave Data Lab
August 2, 2021
6
min read

Operating the sales motion at an early stage company is one of the hardest startup jobs out there. The team is fighting an uphill battle to sell product vision while grappling with the cold-hard truth that the plane is being built during take off.

In order to make sure the sales team is properly motivated, founders have an even harder job to design a compensation structure that balances the need to reward performance while leaving enough room for reps to navigate the ambiguity of a not-yet-solidified sales process.  

The standard components of sales compensation are base (cash) and commission pay. These roll up to your on-target earnings (OTE) and set the stage for what is expected of your reps.

So how much of OTE should come from base salary?

We looked at the compensation of thousands of Account Executives across the United States. The answer is clear as day.

A 50 / 50 split between base compensation and variable commission is the most common sales compensation structure. 

This result isn’t surprising. Companies want to leave enough room for high achieving reps to blow through their quota and make some real money, but without cleaning out the company entirely.

Word travels fast when your sales team is getting rich, fueling the go-to-market flywheel as you attract better and better talent.

But at the same time, if there’s a tough quarter, you want them to be able to put food on the table with that 50% base salary buffer. 

But does this structure still hold for the early stage? What if your only experience selling comes from the founder-led sale?

Do early-stage companies stick to the 50 / 50 compensation structure? 

50 / 50 is the gold standard everywhere.

Except in the early stages of a start-up.

Base salary frequently represents over 50% of OTE.

Why in the world would an early stage company pay more base salary than variable?

  1. Quotas are a shot in the dark: It’s extremely challenging pre-product market fit or pre-revenue to determine what a reasonable quota should be.
  2. Lower risk for the rep: A sales rep could fall below 50% of their quota given the company might still be finding product-market fit, but that rep might still be a stellar performer. 
  3. Lower risk for the company: On the other hand, if a rep blows out the number, it produces an unnecessary strain on cash and souring of a relationship if a quota increase is warranted.
  4. Focused on the right deals: Signing bad deals is the death of an early stage company. By taking the pressure of 50% variable off the rep, the interests are more properly aligned to avoid signing deals that take the product in the wrong direction

Overall, it takes a few cycles to figure out the sales motion. And quotas should be set thoughtfully given the well-being of the company and rep are at stake.

What does this mean for you? 

Two main takeaways:

  • Most of the time, 50/50 is the magic number. If you’re not there yet, know that most of your peers are on their way to a 50 / 50 split in base vs variable compensation. 
  • More base if you’re launching a new company or even a new product. Many companies launching new products will put reps on flexible ramp schedules so they can focus on building the business and finding product-market fit. It’s not a permanent solution, but it helps you get to the final number.

In general, neither 0% variable nor 100% variable are viable long-term options for most SaaS companies. You’ll probably end up close to 50 / 50 for most AE roles, but the path to land there might not always be straight forward.

Learn more about Pave’s end-to-end compensation platform
Pave Data Lab
The Pave Data Lab
The only data-driven blog powered by real-time HRIS & Equity integrations.

Become a compensation expert with the latest insights powered by Pave.

(function (h, o, t, j, a, r) { h.hj = h.hj || function () { (h.hj.q = h.hj.q || []).push(arguments) }; h._hjSettings = { hjid: 2412860, hjsv: 6 }; a = o.getElementsByTagName('head')[0]; r = o.createElement('script'); r.async = 1; r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv; a.appendChild(r); })(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv='); !function () { var analytics = window.analytics = window.analytics || []; if (!analytics.initialize) if (analytics.invoked) window.console && console.error && console.error("Segment snippet included twice."); else { analytics.invoked = !0; analytics.methods = ["trackSubmit", "trackClick", "trackLink", "trackForm", "pageview", "identify", "reset", "group", "track", "ready", "alias", "debug", "page", "once", "off", "on", "addSourceMiddleware", "addIntegrationMiddleware", "setAnonymousId", "addDestinationMiddleware"]; analytics.factory = function (e) { return function () { var t = Array.prototype.slice.call(arguments); t.unshift(e); analytics.push(t); return analytics } }; for (var e = 0; e < analytics.methods.length; e++) { var key = analytics.methods[e]; analytics[key] = analytics.factory(key) } analytics.load = function (key, e) { var t = document.createElement("script"); t.type = "text/javascript"; t.async = !0; t.src = "https://cdn.segment.com/analytics.js/v1/" + key + "/analytics.min.js"; var n = document.getElementsByTagName("script")[0]; n.parentNode.insertBefore(t, n); analytics._loadOptions = e }; analytics.SNIPPET_VERSION = "4.13.1"; analytics.load("0KGQyN5tZ344emH53H3kxq9XcOO1bKKw"); analytics.page(); } }(); $(document).ready(function () { $('[data-analytics]').on('click', function (e) { var properties var event = $(this).attr('data-analytics') $.each(this.attributes, function (_, attribute) { if (attribute.name.startsWith('data-property-')) { if (!properties) properties = {} var property = attribute.name.split('data-property-')[1] properties[property] = attribute.value } }) analytics.track(event, properties) }) }); var isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); if (isMobile) { var dropdown = document.querySelectorAll('.navbar__dropdown'); for (var i = 0; i < dropdown.length; i++) { dropdown[i].addEventListener('click', function(e) { e.stopPropagation(); this.classList.toggle('w--open'); }); } }