# How to Create an Accelerator

Accelerators are common features of many incentive compensation or commission plans.  Accelerators typically involve paying reps commission at an increasing rate as the rep closes more.  They typically involve tiers and look something like this:

In the example above, the company has created a 4-tier accelerator.  In this case, if the rep sells between -Infinity (under 100) and 100 they would qualify for a 10% commission rate.  if they close between 100 and 150, they would qualify for a 12% commission rate.  If they close between 150 and 200, they would qualify for a 14% commission rate.  If they sell between 200 and +Inifinity (over 200), they would qualify for 16%.

In Spiff, there are several ways to create accelerators.  The easiest is to build a Range Table and then referencing the table in an accelerator function.  Spiff supports two accelerator functions out of the box:

1. The Tier Payout function, or
2. The Marginal Payout function

## Tier Payout Accelerator

The Tier Payout function returns a single commission rate that applies to all of the deals the rep has closed.  So, using the table above (let's assume we named it TierPayoutRangeTable), let's say a rep has closed \$125 in sales this month,   When combined with the table above, the Tier Payout function will return 12%.  You can then multiply 12% against \$125 to get the commission owed to the rep.  The formula would look like this:

``tier_payout(125, TierPayoutRangeTable)``

## Marginal Payout Accelerator

Some companies commission on "marginal" or "tax bracket" basis, where they grant commission different revenue amounts at different rates.  Spiff handles these situations with the Marginal Payout function.

The Marginal Payout function uses multiple commission rates and applies the right commission rate to the right amounts based on the table used.  Because of it's unique capabilities, we have to build marginal payout tables a bit differently than Tier Payout tables.

Let's assume we use the table above and we named it MarginalPayoutRangeTable).  Now let's say a rep has closed \$125 in sales this month,   When combined with the table above, the Marginal Payout  function will return 10% *100 + 12% * 25 = 13.  The word "allocation" is a special keyword that Spiff uses to return just the amount of the revenue that falls into that particular category.  So after creating the table above, creating a marginal accelerator is as easy as doing this:

``marginal_payout(125, MarginalPayoutRangeTable)``

# Did this help answer your question?

Thanks for the feedback! 🙏🏽