Marketing Console Users Guide


Segments are groups of consumers that share common characteristics, either demographic or patterns in interaction history. In the Cheetah Digital Loyalty platform, Segments are used for targeting promotions, offers, and communications, as well as to manage eligibility. Segments may be used in rule conditions as well.

The Cheetah Digital Loyalty Segmentation Engine can slice-and-dice consumers based on any information in their consumer interaction profile, then create a segment with the desired group of consumers. The Segmentation Engine is completely dynamic: consumers may enter or exit segments in real-time based on their profile changes or most recent interactions.

Using The Segments Screen

Summary Definition

As with other Cheetah Digital Loyalty Objects, the summary definition of Segments includes Name, Internal Name, and Description”, and supports *Tags for organization and searching.


The segment rules specify the inclusion criteria into the segment. If multiple rule conditions are specified, all of them must be satisfied for the member to be included in the segment; that is, the rule conditions are ANDed.

Note: OR can be specified within a rule condition, either using the operators such as in within templates or simply doing an or in the advanced expression. Also, in most segment usages specifying multiple segments implies an union of included members.

Segment rule conditions can be of the following types:

Member Profile - Profile Attribute

Compare a member profile attribute, such as Sex, with specified value(s), using one of the included comparators.


  1. Mailing City is one of Chicago, Denver
  2. Gender is Female
  3. Age less than equal to 40

Note: The list of operators available depends on the data type of the attribute.

Member Profile - Preference

Similar to profile attribute type, but compares preference instead. Operators available include the ability to handle multiple value preferences.


  1. Favorite Games contains one of Scratcher, Keno
  2. Preferred Airport is set
  3. Brands contains Nike

Note: The contains (and does not contain) operator behaves differently depending on whether the preference is a single value preference or a multiple value preference. Single value preferences are strings and the contains operator does a string contain; that is checks if the value is a substring of the preference value. Multiple value preferences are lists and the contains operator checks if the list of specified preferences include the specified value (that is, one of the preference values equals the specified value).

Member Profile: Function

Member functions provide a mechanism to encapsulate common vertical or program specific expressions and use the functions as an easier to use and understand abstractions.

Functions defined as member functions in the program can be used in the segment rule condition.


  1. getAgeGroup() is 25-40
  2. getEngagementLevel() is high

Member Metric: Change

Compares the change value for a specified metric. The condition can be specified using:


  1. Points Earned Within Last 1 month >= 100
  2. Points Expired Within Last 1 month >= 0

Member Metric: Balance

Compares the balance value of specified metric.


  1. Points balance >= 25,000

Activity History: Count

Compares the count of specified activity types over specified period.

The advanced tab allows specifying a filter. If a filter is specified, only activities matching the filter are included in the count.


  1. Referral activity count within last 1 month >= 5

Activity History: Aggregate

Similar to count but allows any aggregation such as sum, max, min.

Requires two additional specification to define the aggregation:


  1. Sum of amount of Purchase activity within last 1 month >= 1,000

Advanced: Expression

Write any Groovy expression as in Earn Rules using Calculation Functions.

Member Overrides

Member overrides allow explicitly including or excluding certain members from a segment definition. As the name indicates, these override rule’s outcome for a specified member.

Segment Lifecycle

Segments follow the same lifecycle as other Cheetah Digital Loyalty Objects, that is they go from Draft to Published to Archived. In addition, you can specify effective periods for each segment.

Segment Count Estimate

Count is available for segments even in draft mode and can be used to estimate the size of the segment. It is available from the Results sub-tab of the Segments page.

Segment Computation

There are two broad categories of segment computation:

For One Member

All segments are computed for a member on demand whenever the member’s eligibility needs to be determined. In summary, when the member access Offers, Challenges, etc. from a client interface, her segment memberships are calculated. This ensures that a member’s segment definition is dynamic and up-to-date; as soon as they do an activity, they may enter or exit segments.

A member’s current segments can be seen from the Segments sub-tab of the Member page.

For All Members

While the previous computation keeps an active member’s segments up-to-date, there are batch scenarios such as sending emails where up-to-date segment membership for all members is needed. Segments may be computed for all members and all segments by using the Refresh Segments button in the Segments list page. Or it can be computed for all members for a particular segment by using the Refresh Members menu action within the Results sub-tab of the Segment page.

Exporting Segments

The list of members belonging to a segment can be exported to be used outside of Cheetah Digital Loyalty platform, including:

  1. As a target list for sending emails in an Email Service Provider platform.
  2. As an audience definition for ad targeting in Facebook

Segment list can be exported from the Results sub-tab of the Segment page.

Note: Please refresh members before exporting to get most current list.

Segment Examples

Lack of Activity

Customers who have at least one purchase previous month but have no purchases month-to-date.


  1. Count PoS Activity in period month-to-date equals 0
  2. Count PoS Activity in period within last 2 months greater than or equal to 1

Declined Frequency

Frequency declined by 1 or more visits last month compared to month before.


sumHistoryItems('1', {it.sl_type in ['pos_sale']}, 'prev1m') >
sumHistoryItems('1', {it.sl_type in ['pos_sale']}, 'last1m')

Also See