Percent value distribution

Learn more about campaign based on the percent value distribution.

Percent value distribution

The percentage distribution is an Effect function that allows you to create ranges on the units that can be granted to members.

percent_value_distribution(event.body.progressChanges[0], [array thresholds], [array thresholdPercentValues], event.body.progressStatuses[0].currentPeriodValue - event.body.progressChanges[0])

  • percent_value_distribution - Function

  • event.body.progressChanges[0] - Value of the current order

  • [array thresholds] - Thresholds on the basis of which values will be calculated

  • [array thresholdPercentValues] - The values that will be used for the calculation. In the order corresponding to thresholds

  • event.body.progressStatuses[0].currentPeriodValue - event.body.progressChanges[0] - Current progress value without the current order

To understand this function, we can use the following example: If you want to give a member a reward that is calculated based on a percentage of the value of their transaction, but the amount of the percentage/ratio depends on the amount of the transaction total:

in the range of: 0 - 5000 → 1% in the range of: 5000 - 7500 → 1.2% in the range of: 7500 - 10000 → 1.5% in the range of: 10000 - Inf → 0%

You should use the following expression:

percent_value_distribution(event.body.progressChanges[0], [5000, 7500, 10000], [0.01, 0.012, 0.015, 0], event.body.progressStatuses[0].currentPeriodValue - event.body.progressChanges[0])

1. Create an Achievement - this is needed to calculate the total value of orders in a member's account

  • Over: 1 month - progress will be calculated in the span of one month

  • Goal: 10000000 - a distant goal used to store the value of the calculation

  • Formula: transaction.grossValue - We want to keep track of the Gross Value of the transactions

  • Occurrence: consecutive month - Prograss will be calculated monthly

  • Achievement counting: Sum of the event attributes - we will calculate attributes of the transaction

  • Direct / transaction - Achievement will be based on the transaction

2. Create a Campaign

  • Direct campaign

  • Internal event: Achievement progressed

  • Conditions: expression: event.body.achievementId == '<ACHIEVEMENT_ID>'

  • Fffect Add Units: percent_value_distribution(event.body.progressChanges[0], [5000, 7500, 10000], [0.01, 0.012, 0.015, 0], event.body.progressStatuses[0].currentPeriodValue - event.body.progressChanges[0])

3) After making a transaction, the achievement will track members’ progress and issue units based on the following formula: a monthly spend of up to $10K members get: $5K x 1% Cashback + next $2.5K x 1.2% + next $2.5K x 1.5%

Last updated