---
schema_version: "1"
id: a6e773ddb2e1eb4e9063316395bc5f136190eccabe7cb7c6a5023e3a2ea88896
title: Applicability of Rewards for Consumer Goods Cloud Promotions
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/cg_concept_user_applicability_rewards.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.cg_concept_user_applicability_rewards.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 0248ed81478409f2b1264f2158777f683c50643efb81f0574c4d4761d19a75a6
description: A reward is applicable or selectable when either parent reward groups or linked hurdles are satisfied.
products:
  - Consumer Goods
release: "264"
---
# Applicability of Rewards for Consumer Goods Cloud Promotions

A reward is applicable or selectable when either parent reward groups or linked hurdles are satisfied.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: Lightning Experience in <strong>Professional</strong>, <strong>Enterprise</strong>, and <strong>Unlimited</strong> Editions that have Consumer Goods Cloud enabled</td></tr></tbody></table>

Hurdles can be:

- Reward Group Specific Hurdles
- Reward Specific Hurdles

## Reward Group Specific Hurdle Evaluation

To determine whether a reward group is satisfied, the hurdle evaluation engine considers the defined operator. The maximum time to evaluate a hurdle is 80 milliseconds.

The steps to determine reward group satisfaction are:

- Determine the sequence of the hurdles based on their sort value (H1,H2…Hn).
- Determine the operation (OP1, OP2, OP3…OPn) that's defined for the hurdles.
- Evaluate the expression by using bracket logic: (....(((H1 ‘OP2’ H2) ‘OP3’ H3) ‘OP4’ H4)….’OPn’ Hn).

If the returned expression value is true, then the hurdle evaluation engine considers the reward group as satisfied and all rewards are applicable.

For example, the hurdles for an evaluation are:

- Hurdle 1: Buy Cola Classic for more than €300.
- Hurdle 2: AND Buy Cola Light for more than €250.
- Hurdle 3: OR Buy Cola for more than €800.

By applying the bracket logic, a store receives a discount if it orders Cola Classic for more than €300 and Cola Light for more than €250 or Cola for more than €800.

## Reward Specific Hurdle Evaluation

Reward specific hurdles are additional hurdles that are specific to a reward within a reward group and are applicable only if the associated hurdle is satisfied.

The steps to determine hurdle evaluation for reward-specific record type are:

- Determine the type of promotion expression.
- Determine the expression result type that's defined in a promotion expression.
- Determine the operator (=, >=, >, <, <=, <>, PER) that's defined in the hurdle.
- Determine the threshold value that's defined in a reward for an expression result type.
- Evaluate the result of the promotion expression value and the threshold value of a reward by using the operator.

If the result of the returned expression value is true, then the system considers the hurdle as satisfied and the reward is applicable.

For example, the hurdle evaluation for a reward group with a reward-specific hurdle is:

- Promotion expression is sum of item quantities.
- Expression result type in promotion expression is numeric.
- Operator is >.
- Reward threshold value is numeric (100).

When you create an order for a promotion with the reward group and add 110 quantities for a product, then the expression result value is true because 110 > 100. So the hurdle is satisfied and the reward is applicable.

## Hurdle Evaluation for Free Item Rewards

The system determines hurdle evaluation for free item rewards based on the PER factor and the expression result type as numeric.

Here are the details of hurdle evaluation.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d86214e161">If the Expression Result Type is</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d86214e164">and the Threshold Value is</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d86214e167">then the PER factor is</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="If the Expression Result Type is" class="slds-cell-wrap" rowspan="2" style="vertical-align:top;" headers="d86214e161 ">= Numeric</td>

            <td data-label="and the Threshold Value is" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e164 ">&gt;0</td>

            <td data-label="then the PER factor is" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e167 ">Floor value of the ratio of actual value and threshold value. For example, if
              actual value is 110 and threshold value is 100, then the PER factor is floor
              (110/100) = floor (1.1) = 1</td>

          </tr>
          <tr class="">
            <td data-label="and the Threshold Value is" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e164 ">&lt;=0</td>

            <td data-label="then the PER factor is" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e167 ">0</td>

          </tr>
          <tr class="">
            <td data-label="If the Expression Result Type is" class="slds-cell-wrap" rowspan="2" style="vertical-align:top;" headers="d86214e161 ">&lt;&gt;Numeric</td>

            <td data-label="and the Threshold Value is" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e164 ">= Actual Value</td>

            <td data-label="then the PER factor is" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e167 ">1</td>

          </tr>
          <tr class="">
            <td data-label="and the Threshold Value is" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e164 ">&lt;&gt;Actual Value</td>

            <td data-label="then the PER factor is" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e167 ">0</td>

          </tr>
        </tbody>
      </table>

Hurdle is satisfied when PER Factor >=1, and free item rewards are applicable.

For applicable free item rewards, depending on the PER factor value, the system multiplies and shows these values:

- Default individual product quantity that's assigned to the reward
- Maximum quantity of a product that's allowed for a reward

For example, a reward with these free items PER $100:

- Product A: 4 Sales Unit
- Product B: 6 Sales Unit
- Maximum quantity of products allowed for reward (Threshold Value): 10 Sales Unit

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d86214e264">If you</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d86214e267">then PER factor is</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d86214e270">then the reward is marked applicable with free items as</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="If you" class="slds-cell-wrap" rowspan="3" style="vertical-align:top;" headers="d86214e264 ">Order $110</td>

            <td data-label="then PER factor is" class="slds-cell-wrap" rowspan="3" style="vertical-align:top;" headers="d86214e267 ">1</td>

            <td data-label="then the reward is marked applicable with free items as" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e270 ">Product A: 4 Sales Unit</td>

          </tr>
          <tr class="">
            <td data-label="then the reward is marked applicable with free items as" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e270 ">Product B: 6 Sales Unit</td>

          </tr>
          <tr class="">
            <td data-label="then the reward is marked applicable with free items as" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e270 ">Maximum allowed quantity for the reward: 10 Sales Unit</td>

          </tr>
          <tr class="">
            <td data-label="If you" class="slds-cell-wrap" rowspan="3" style="vertical-align:top;" headers="d86214e264 ">Edit the order for $200</td>

            <td data-label="then PER factor is" class="slds-cell-wrap" rowspan="3" style="vertical-align:top;" headers="d86214e267 ">2</td>

            <td data-label="then the reward is marked applicable with free items as" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e270 ">Product A: 8 Sales Unit</td>

          </tr>
          <tr class="">
            <td data-label="then the reward is marked applicable with free items as" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e270 ">Product B: 12 Sales Unit</td>

          </tr>
          <tr class="">
            <td data-label="then the reward is marked applicable with free items as" class="slds-cell-wrap" style="vertical-align:top;" headers="d86214e270 ">Maximum allowed quantity for the reward: 20 Sales Unit</td>

          </tr>
        </tbody>
      </table>

If the individual product quantity that's assigned to the reward is fewer than the maximum quantity of a product that's allowed for a reward, you can edit the individual product quantity. The edited product quantities are valid if the PER factor hasn't changed.