How to Build Ramps

Ramps are a common feature of many commission plans.  Many companies also call ramps "guaranteed commissions."  Typically companies will structure ramps to allow commissioned employees to receive a gradually diminishing amount of guaranteed commission.  So in month 1, a new hire might receive $2,000 of salary and $2,000 of guaranteed commissions.  In month 2, they might receive $2,000 of salary and $1,000 of guaranteed commissions.  In month 3, they might receive $2,000 of salary and $0 of guaranteed commissions.  The idea is that that although the reps guaranteed commissions are ramping down, their actual commissions should increase.

Ramp Recipe Steps

How do you build ramps in Spiff?   Well stepping back to think about it, we basically need to a few things:

  1. Establish a list of ramp rates for each rep.  Let's assume that we do this by creating a list of ramp rates for each Plan.  We can then infer a rep's ramp by looking at their plan.
  2. Then we need to determine how far into a ramp a rep should be.  Usually this is determined by the number of months since a rep has been hired. 
  3. Lastly we need to multiply this ramp rate by some number that will tell us what that rep's guaranteed commission should be.

Let's tackle this in steps.

1. Establish a List of Ramp Rates for Each Rep

We can create lists easily in a couple of ways using Spiff Designer.  We could use a list table

But for this example, we'll just use an array.  An array is just a list inside brackets.  It looks like this: [100%, 32%, 21%, 10%].  We can then assign an array like this to the Plan object.  This means that we can reference it on any reps commission statement.

Let's start by adding a Custom Field to every plan called Ramp.  You can do this by clicking on Admin > Settings > Plans (below Custom Fields).  Then click on the Add Custom Field button here:

Now create a new custom field on Plans.  You can give this custom field a name.  In this case, I suggest "RampRates".  Use valid formula syntax for the name.  Give the custom field a description that will help you remember what this new custom field is for. 

For the Field Type select "Expression."   

Now on every plan, you will have a new editable field called Ramp.  You can enter an array of ramp values by month since hire on the plan by clicking "Modify" on the field.

Now we can make a new Variable that references this ramp rate to create the Ramp or Guaranteed Commission amount for your reps depending on the time that has elapsed since their hire date. 

2.  Determine Months Into Ramp

To get months into ramp, we need to reference the Statement Period object.  Spiff creates commission statements for each user.  Each commission statement has a Statement Period. 

So you can always reference a statement_period in your Spiff formulas. 

Similarly, every user has a date at which they are assigned to a given commission plan.  We call these assignments "Plan Assignments."  (We are phasing it out but in earlier version of Spiff we used the word "Line" instead of "plan assignment" so in formulas, you still have use the word "line.")

So you can always reference a plan_assignment or "line" in your Spiff formulas.  

Lastly, Spiff has a specific function that identifies the number of months that have elapsed between two dates.  This function is called months_to.

So we will build find Months Into Ramp by building a variable like this:

This will return the number of months that have elapsed between the time a user was assigned to their plan and the time of the current statement date.

3.  Calculate Guaranteed Commission

To get the Ramp Rate, we need to use the previous variable we created, MonthsIntoRamp, combined with the custom field we created on the plan object.  The MonthsIntoRamp will tell you how many months the rep has been on the plan.  Let's say she's been on for 2 months. 

The Custom Attribute on Plan gives us a list of ramp rates like this [100%, 66%, 33%].  So how do we know which of the rates we should use?  We built the list so that the first rate corresponds to the first month ramp rate, the second rate corresponds to the second month and so forth.

So we already know we want the second ramp rate, 66%.  We get this by using the at function.

We do this by building the following variable

Guaranteed Commission

The last step is to create the actual Guaranteed Commission.  To keep it simple, let's just say Guaranteed Commission is reps OTE  times their RampRate.  Let's assume the rep's OTE is $60,000

So creating this variable is very easy.  We just create a Variable that looks like this:

Did this help answer your question?

thumbs up
thumbs down

Thanks for the feedback! 🙏🏽