Skip to main content

Loyalty Offers

Purpose of this document

This document provides details at the business, technical, and implementation levels for specific features within the ES Loyalty feature set. It covers a subset of functionality centered on the Promo Engine and Offer Management.



Offer details

Unique offer identifier

Used for offer search, lookup, and reporting within the ESI system. Provides a unique name that you can search for in the Console and use for reporting.

The unique identifier that you enter in the Offer ID field must use 3 to 128 alphanumeric characters and underscores only.

Implemented in the Console on the offer creation page.


Offer copy and creative

Customer-facing offer text and images, configured to match the front-end look and feel for offers (that is, the Offer Gallery and Email).

Offer Copy and Creative is a section that appears in the Console when you build a new offer. It provides standard information in offers that members view, including headlines, short and long descriptions, Terms and Conditions (T&C), and thumbnail images.

Fields have different character limits. Inline error messages appear when content violates the acceptable limits. You must also be able to render the copy and creative in another language -- currently French.

Offer copy fields are passed through as plain text only. No special formatting is passed through to the front end. Instead, the front end is responsible for applying formatting.

Image URL fields are used to retrieve images from the client-hosted image repository. Clients are responsible for ensuring that the referenced images are available and correct.

Implemented in the Console on the offer creation page.


Sort logic (simple, ranked)

A ranking capability used to control the offer presentation sequence and priority on the front end.

The Offer Gallery provides access to offers available to the Console user for deployment. The ranking sets the position of the offer within the gallery. A higher number means a higher position -- 1 is the highest. The number can be 1-9.

For sort ranking details, see Member Dashboard and Offer Gallery.pptx.

Implemented in the Console on the offer creation page.


Offer scheduling

Evergreen scheduling

Enables offers that are available for an indefinite period with no end date.

Offers that don't expire are set to "evergreen scheduling." A client might prefer a fixed start date but no end date for specific offers.

You must be able to set an offer to have a specific start date but no end date when creating the offer.

Implemented in the Console on the offer creation page.


Fixed start/end date (timeframe/time of day)

The start and end time that defines when member behavior is eligible for the offer.

Both the start date and the end date are set for the offer.

You must be able to set both the start date/time and the end date/time of the offer when creating the offer.

Implemented in the Console on the offer creation page.


Display date

Indicates when members can first view the offer. Set this date on or before the start date.

If left blank, this field defaults to match the start date.

You must be able to set a date on which members can view the offer -- either a few days before the start date, or on the start date (by leaving this field blank).

Implemented in the Console on the offer creation page.


Triggered scheduling (one-time trigger)

Enables observed events to initiate one-time targeting of an offer (for example, firing a welcome offer when a member enrolls).

Triggered event offer types are limited to the loyalty event data that is integrated into or originates from the ES Platform. A triggered event (referred to as an "activity" in the Console) can be system-defined (such as Partner Card Link, First Time Login, Member Registration, Tier X Achieved, or Profile Completion) or defined by the business or client.

  • Event-Triggered Offer Enhancements PRD: Event-Triggered Offer Enhancement.docx
  • Event-Triggered Offers Enabled Using the Activity Feed PRD: Triggered Offers using the Activity Feed_103020.docx

Implemented in the Console on the offer creation page.


Triggered scheduling (multiple triggers)

Enables observed events to initiate multiple occurrences of offer targeting. Triggered event offer types are limited to the loyalty event data that is integrated into or originates from the ES Platform.

The triggered offer enhancement introduces the ability for a triggered offer to fire multiple times for a given member, as well as the ability to cap the number of times it can fire for that member.


Offer end date extension (hold over)

Lets you edit the end date of an offer to give all members who were targeted with it more time to complete it and earn points.

As an Offer Administrator, you must be able to extend a live offer's end date in order to extend promotional campaigns.

Criteria:

  • Offers can be extended only if the feature is enabled. The default behavior is disabled.
  • Only a live offer's end date can be extended.
  • When editing a live offer, the End Date input box is editable.

Restrictions:

  • The Start Date can't be edited. The End Date can't be changed to a date before the Start Date or before the current End Date -- only extensions are allowed.
  • The End Date can be set to "Offer does not expire", which sets the end date to the year 3001.
  • Last-minute changes (within 24 hours of the current offer end date) aren't possible.
  • If the targeted offer has already been created, the End Date of the targeted record must be updated.
  • The End Date of a completed offer can't be changed.

For the related Jira ticket, see WIZ-4928.


Offer required behaviors

Transaction spend amount

Lets you set up offers that require the member to spend a specific dollar amount.

You must be able to set the spending threshold that the member has to meet to qualify for the offer reward, and the resulting reward. You must also be able to set the spend amount for one transaction or across multiple transactions.

Set the spend amount and reward in the Console for a single transaction or across multiple transactions.


Transaction spend on product hierarchy (SKU, category, and so on)

Lets you set up offers that require the member to spend a specific dollar amount on items from a specific product category, brand, SKU, and so on.

You must be able to select a specific spend amount and reward, and then filter the offer by either including a query for specific products or uploading a list of applicable product data.

You can set up the product query or upload the list in the Details section when creating an offer in the Console.


Quantity purchase on product hierarchy (SKU, category, and so on)

Lets you set up offers that require the member to purchase a specific quantity of items from a specific product category, brand, SKU, and so on.

You must be able to select a specific product quantity and reward, and then filter the offer by either including a query for specific products or uploading a list of applicable product data.

You can set up the product query or upload the list in the Details section when creating an offer in the Console.


Exclusion logic on full product hierarchy (SKU, category, and so on)

Lets you exclude specific products that aren't eligible to contribute toward the required behavior of the offer.

Allow products to be excluded from an offer using query logic and a NOT IN operator.

When creating an offer in the Console, in the Details section, select Logic to set up the query that defines the products included in the offer. Then use the NOT IN operator to exclude specific product categories, subcategories, brands, GTINs, SKUs, and so on.


Global exclusions on pre-set product hierarchy (SKU, category, and so on)

Lets you exclude a universal set of products that aren't eligible to contribute toward the required behavior of the offer.

Selecting Yes for the global exclusions option means that pre-defined global exclusion products aren't eligible to contribute toward the completion of this offer. Global exclusions are also applied based on the province of the store where the transaction takes place.

You can enable the application of global exclusions to an offer from the Details section when creating an offer in the Console.


Fuel quantity purchased

Lets you set up offers that require the member to purchase a specific quantity (in liters) of fuel. This feature is identical to the offer functionality that awards points on quantity purchase by SKU.

Jaguar uses this feature as-is. Examples:

  • Between June 30 and July 14, 2024, members can earn 300 bonus points per fill-up (minimum 25 L fill).
  • Between July 15 and July 30, 2024, members can earn 500 bonus points per fill-up (minimum 25 L fill).
  • Maximum of 1,500 points during the offer period.

Redemption

Lets you set up offers that require the member to perform a redemption to get rewards.

You must be able to select Redeem as the behavior and specify the number of points to be redeemed to get the reward.

Set up the redemption in the Console in the Details section when creating an offer.


Category redemption

Lets you set up offers that require the member to perform a redemption on a specific set of products.

You must be able to select Redeem as the behavior, enter the number of points to redeem to get the reward, and specify the products included in the offer.

  • Category Redemption Offers PRD: Category Redemption Offers.docx
  • Category Redemption Offers HLSD: HLSD_Category_Redemption_Offer.docx

Set up the redemption and query in the Console in the Details section when creating an offer.

Category Redemption Offers epic:


Frequency

Lets you set up offers that require the member to perform a required behavior across multiple transactions or within a timeframe.

Frequency offers allow members to perform the offer's required behavior across multiple transactions, sessions, or other interaction points.

  • Frequency Offers PRD: Frequency Offers_011420.docx
  • Frequency Offers HLSD Phase 1: Frequency_Offer_HLSD.docx
  • Frequency Offers matrix: Frequency Offer Matrix.xlsx
  • Frequency Offers internal training: Frequency Offers.docx

Frequency Offers epic:


Behavioral offers (digital, profile, membership) to drive member engagement

Lets you set up offers that require the member to perform various digital, profile, or loyalty membership related behaviors.

  • Activity-Triggered Offers and Behavioral Offers presentation (2021): Activity Primer.pptx
  • Behavioral Offers PRD: Behavioral Offers using the Activity Feed_103020.docx
  • Behavioral Offers UX matrix: Behavioral Offers UX Matrix.xlsx

Multi-behavior offers

Lets you set up offers that require the member to perform multiple, different behaviors to complete the offer.

You must be able to create offers for which the member has to meet the threshold for more than one behavior or condition.

Multi-behavior offers enable advanced marketing strategies to grow average order value (AOV), increase category penetration, and increase or protect margin.

These offers are configurable in the Console. With Multiple Behavior selected, you can create multiple behaviors connected by logical AND or OR operators.

To set up a multi-behavior offer, select Multiple Behavior in the Details section.


Offer reward types

Points -- flat bonus

Rewards a fixed point amount (for example, 1,000 pts).

You must be able to set up a reward value (number of points to award) for an offer when the member carries out the specified behavior.

In the Console, when building an offer, go to Details > Rewards and select Flat Bonus.


Points -- base multiplier bonus

Rewards a base point multiplier amount (for example, 3x the points).

You must be able to set up a multiplier for an offer. Note the following:

  • If you set up a base multiplier offer with specific products selected, the bonus applies only to those products.
  • If you set up a base multiplier offer for all products, the bonus applies to 100% of the eligible basket.

In the Console, when building an offer, go to Details > Rewards and select Base Multiplier.


Points -- tier multiplier bonus

Rewards a base point multiplier amount (for example, 3x the points).

Setting up tiers of incremental rewards for incremental spending encourages members to spend more on purchases.

A "tier program" is a grouping of all related member tiers. A standard tier program multiplier can be used to multiply the rewards offered by each program tier level.

  • Tier program HLSD: HLSD_ESL_Member_Tiers.docx

The offer tiers are configured in the Details > Rewards section of the offer creation page. Select Tier Program Multiplier and enter a Multiplier value.


Points -- fractional base multiplier bonus

Lets you create offers that provide a bonus as a percentage of the base points.

Based on configuration, the settings are available in the Console, including a base multiplier that can include decimal increments.

You activate this feature through configuration by setting the Multiplier increment in the CONSOLE_CUSTOMIZATION configuration file. Most clients continue to have the multiplier increment set to whole numbers, but for some clients it can be set to one decimal place to allow bonus points to be set as a percentage of base points.

When a fractional base multiplier is used to multiply the base points awarded, the results are often also fractional. Results must be rounded using standard rounding logic:

  • Values at or above .5 are rounded up to the next whole number.

  • Values below .5 are rounded down.

    separately in reporting. whole-number points awarded.

References:


Reward type -- "For Every" or "Minimum"

Lets you define whether the reward is paid out once ("Minimum") or every time the behavior is completed ("For Every").

You must be able to set the offer to reward a behavior either once (the first time it's performed) or multiple times (every time the member completes the behavior).

Set this option in the Details > Rewards section when creating a new offer in the Console.


Non-points rewards ($off, %off)

Instructs the POS in real time to deliver a dollar or percent discount during the transaction when a member completes their offer.

Dollar off or percent off offers provide direct dollar savings as the offer's reward. These rewards can be expressed as:

  1. $ off item(s)
  2. $ off total cart
  3. % off item(s)
  4. % off total cart

PRD: Non-Loyalty Points Rewards ($ off, % off).docx


Reward tiers

Lets you configure "spend more, get more" style offers.

Use offer tiers to set different reward levels for different tiers of member spending.

You must be able to set up offer tiers that allow specific rewards for different purchase or redemption levels on the same offer.

When creating an offer, set up different offer tiers by adding tiers in the Details > Rewards section.


Offer targeting


Audience targeting -- mass targeting (loyalty members)

An offer targeted to all loyalty program members.

Mass targeted offers provide a low barrier to entry for members, but don't provide the precision benefits of other targeting types.

Set the audience targeting for mass targeting in the Console when creating a new offer in the Details section.


Audience targeting -- member profile data

Targeting based on member profile data such as city, province, postal code, birthday, and gender.

  • Location targeting lets you set up offers that may differ between cities, provinces, or postal codes.
  • Attribute targeting (such as Birthday or Gender) lets you personalize offers for specific events or by product category.

Set the audience targeting for member profile data in the Console when creating a new offer in the Details section.


Audience targeting -- analytic segmentation/scoring

RFM, propensity, or other scoring associated with the member profile to enable offer targeting.

You must be able to select a segment -- either ESI-defined or business-defined -- and filter the offer to that segment.

Set the audience targeting for analytic segmentation or scoring in the Console when creating a new offer in the Details section.


Audience targeting -- member purchase history

Targeting based on member purchase data (for example, category spend, AOV, total spend, number of purchases, or first/last purchase date).

Targeting on Member TXN History PRD: Targeting On Member Txn History.docx


Audience targeting -- digital engagement

Targeting based on member digital engagement (for example, app download or last login date) based on received data.

Member characteristics are evolving, particularly across generations. Whereas the oldest model of interaction with a company is through its physical stores, interactions and purchases increasingly occur through the company website and mobile apps.

Set the audience targeting for digital engagement in the Console when creating a new offer in the Details section.


Audience targeting -- communications history

Targeting based on communication responsiveness data exchanged from an Email Service Provider (ESP).

This targeting applies to members who match a specific profile for their email responses such as email click-throughs or last email offer acceptance within a specified time period.

Set the audience targeting for communication history in the Console when creating a new offer in the Details section.


Audience targeting -- dynamic targeting

The target audience is determined in real time during behavior recognition.

For dynamic targeting, the target audience is determined in real time. This approach lets members continuously qualify into the offer over the offer time period.

  • Dynamic LTC Product Lens: Dynamic LTC_061520.docx
  • Dynamic Targeting for LTC-Enabled Non-Mass Audiences PRD: Dynamic Targeting for LTC-enabled, Non-Mass Audiences.docx

Set the audience targeting for dynamic targeting in the Console when creating a new offer in the Details section.


Audience targeting -- static targeting

Lets you create a target audience based on the time the offer is created and published.

With static targeting, the audience for the offer is determined ahead of time using specific criteria. The targeting takes place when the offer is published.

Set the audience targeting for static targeting in the Console when creating a new offer in the Details section.


Audience targeting -- audiences

Targeting based on a selection of existing audiences, built either manually or using the Audience Recommender.

All audiences must be available for selection when Audience is selected as the targeting source when building an offer or banner.

PRD: Audiences v1.docx


Store location targeting

Lets you specify the store locations where this offer is eligible for use.

Targeting on Store ID, Country Code, Province or State, Postal Code or Zip Code, Retail Banner, or Extended Data provides flexibility for targeting offers to specific locations.

Targeting is set up in the Console in the Details > Targeting section.


List-based targeting for audience

Lets you define audience inclusions using a CSV list.

As an alternative to building a query, you can upload a list to provide targeting for a specific audience. The list uses an identifying heading (loyaltyId) that is meaningful to the system.

In the Offers section of the Console, when creating a new offer, you can target audiences by uploading a list in the correct format.

An example of an uploaded list:

loyaltyId
61057XXXXXXXXXXXXXX

List-based targeting for products

Lets you define product inclusions using a CSV list.

  • Promo Targeting via GUI File Upload HLSD: HLSD_ESL_Product_Targeting_via_CSV.docx
  • Targeting Products Through File Upload epic:

In the Offers section of the Console, when creating a new offer, you can target products by uploading a list in the correct format.

An example of an uploaded list:

productCode
53363659-03

Delayed targeting

Delayed (scheduled) targeting lets you set up an offer but delay targeting until just before the start date.

  • Delayed Targeting Product Lens: Delayed Targeting_061520.docx
  • Delayed vs. Dynamic Targeting: Delayed Targeting vs. Dynamic Targeting.pptx

When creating an offer in the Console, with static targeting selected, you can set delayed targeting to Yes and select a date and time for the targeting to occur.


Offer activation


Offer activation -- automatic

Lets you configure an offer so that the member doesn't need to perform any action other than the required behavior for the offer to be recognized.

The Auto Load feature is useful, for example, to provide a path for accepting print offers without any numeric coupon or offer loading.

Set up this feature when creating an offer in the Console. In Details > Activation & Usage Controls, set the first option to Auto Load.


Offer activation -- coupon (including single-use capability)

Lets you configure that a specific coupon code must be in the cart for the offer to be recognized for behavior.

The "single-use coupon" capability is enforced by the ES Loyalty engine by validating that the member using the code was:

  1. Targeted for the offer.
  2. If configured, within the offer usage cap set to 1.

Set up this feature when creating an offer in the Console. In Details > Activation & Usage Controls, set the first option to Coupon Code.


Offer activation -- load to card/account

Lets you configure that an offer must be loaded or accepted by the member to be recognized for behavior.

Load to Card makes it clear that the member is accepting the offer. After receiving it, they take an additional action such as clicking through an email link to load the offer to their account.

When creating an offer in the Console, set the Load to Card option from the Details > Activation & Usage Controls section.


Offer usage controls, caps, and budgets

Offer usage/reward controls (user level)

Controls the number of times a member can use an offer across multiple transactions.

For instance, if the offer requires the member to spend $10 to get 100 points, and the usage limit is 3, the member can spend $10 or more in 3 separate transactions to get 300 points.

When creating an offer in the Console, set this limit from Details > Activation & Usage Controls.


Offer usage/reward controls (offer level -- total uses)

Controls the total number of times all members can use an offer, restricting overall offer usage for budgeting or exclusivity purposes.

This setting limits the number of members who can be awarded points from this offer. By combining this setting with a maximum limit on the number of points a member can receive from this offer, you can set a maximum budget.

When creating an offer in the Console, set this limit from Details > Activation & Usage Controls.


Offer usage/reward controls (user level -- total points)

Controls the number of points awarded to a member for an offer, restricting overall offer usage for budgeting or exclusivity purposes.

This setting limits the number of points that can be awarded to any member from this offer.

When creating an offer in the Console, set this limit from Details > Activation & Usage Controls.


Offer usage/reward controls (offer level -- transaction level -- total points)

Controls the number of points awarded to a member for a given offer in a given transaction.

As part of fraud control, points earned for Base offers are capped. This same pattern is generalized for other bonus offers as well.

Feature criteria:

  • Add a new transactionLimits attribute in rewardControl of the offer template.
  • This points limit is assumed to be per transaction.
  • Update the promo engine to check for transactionLimits in rewardControl and enforce the cap on points earned.
  • Any capping of the Base Reward must trickle down to Base Multipliers.

Jira ticket:


Stacking logic

Logic that specifies which offers can't be combined and rewarded together. The offer that provides the higher reward takes precedence.

This setting controls whether this offer should be added to a group that prohibits offer stacking. If you add this offer to the Unstackable Offers Group, it can't be combined with other offers.

  • Stacking Logic PRD: Stacking Logic_091820.docx
  • Stacking Logic HLSD: HL_Solution_Design_Template_Stacking Logic_111620.docx

When creating an offer in the Console, set this option from Details > Activation & Usage Controls.

Stacking Offers Confluence page referenced in internal docs.


Offer performance and effectiveness

Offer-level test vs. control assignment (list-based static targeting)

Lets you measure promotion effectiveness by assigning a control holdback group at the offer level based on static targeting using a list of members.

Several business requirements have been identified for the control group feature:

  • Control customer selection is random.
  • The percentage of customers held out is configurable, generally 10%-20%.
  • Once a member is held out as a control, the member stays in the control group for the life of the offer.
  • The control group can be compared to the offer group using several metrics.

TBA


Offer-level test vs. control assignment (logic-based static targeting)

Lets you measure promotion effectiveness by assigning a control holdback group at the offer level based on logical static targeting.

Several business requirements have been identified for the control group feature:

  • Control customer selection is random.
  • The percentage of customers held out is configurable, generally 10%-20%.
  • Once a member is held out as a control, the member stays in the control group for the life of the offer.
  • The control group can be compared to the offer group using several metrics.