Marigold AI Margin Optimization

Margin Optimization helps marketers to optimize margins and brand perception by deciding who receives an offer and who doesn't. This avoids over-discounting by choosing the optimal discount for each person or group. Your most valuable offers will be focused on your best customers and those with the highest potential.

You can also watch this video which explains this feature.


 

What is Margin Optimization?

The Margin Optimization feature in Cheetah Digital is based on an ML Score from the Machine Learning Purchase (ML Purchase) model that utilizes customers' purchase data. The Optimal Discount ML score, which has a value of Max/High/Medium/Low represents the optimal offer value to get the person to make a purchase. The ML score is updated in the AI Profile table in Cheetah Digital when synced. This table can be joined to the customer table, so it can be used for segmenting subscribers and dynamic content development using the Offer Value.

The ML scores represent the following:

Low: The customer is price-insensitive and likely to purchase with little or no discount.

Medium: A moderate discount may be needed to influence the customer to convert.

High: A significant discount is more likely to trigger a purchase.

Max: The customer is highly price-sensitive and likely to purchase only when offered the highest available discount.

A subscriber with Optimal Discount with score Max means they are highly price-sensitive and likely to purchase only when offered the highest available discount.

What is a Control Group?

A control group is a subset of users excluded from model-driven decisions to serve as a baseline for comparison. It helps measure the true impact of the model by showing how users behave without model interventions.

Marigold AI models maintain a control group consisting of a random selection of your recipients. This control group serves as a baseline, allowing you to measure the model's impact by comparing results against users who were not influenced by the model. The control group is static, meaning once a recipient is selected into the control group, they remain in it. This consistency ensures accurate comparisons over time.

Who are Unscored Users?

Some users may remain unscored by the model because there isn't enough behavioral data collected about them. Without sufficient data (e.g., opens, clicks, purchases), the model cannot predict outcomes for these users.

An example of an unscored user is a new subscriber, as the model does not yet have sufficient data about their behavior. Another example is an inactive user who hasn't engaged with the platform recently, resulting in limited behavioral signals for the model to analyze.

How to Request Margin Optimization

Margin Optimization is an optional feature that must be enabled in your account. Please speak with your Marigold Representative for more details. You must also have Personalized Send Time feature enabled in your account to use Margin Optimization.

How to use Margin Optimization

When Marigold AI (Personalized Send Time and Margin Optimization) is enabled for your organization, you will be presented with the Machine Learning Recipient Table in Cheetah Digital.

The AI profile attributes from the Machine Learning Recipient Table can be used in filters for segmentation purposes through Cheetah Digital Table Join.

Using Margin Optimization in Email Campaigns involves the following steps.

  • Define Joins for your customer tables to the Machine Learning Recipient Table

  • Create Filters

  • Use the filters in Cells and Splits campaigns and create Dynamic Blocks to use in Email Campaigns

Define Joins to the Machine Learning Recipient Table

The Machine Learning Recipient Table can be joined to the customer’s tables using two different types of joins:

Property join: is a "one-off" join method used in creating filter logic, and is not a permanent join.

Entity join: can only be defined by a Marigold admin. This is a more permanent join method, as these joins cannot be deleted once defined. Please contact your Marigold Representative to assist you in setting up entity joins for your tables. Entity joins are usually work faster than property joins, when implemented.

Property Join

When the ML models for Personalized Send Time and Margin Optimization are enabled in your account, the Machine Learning Recipient table will be available in the filter for property-to-property join via a common field - email address.

To join the current table to the Machine Learning Recipient (AI Profile) Table, from the Expression Toolbox in the right pane, select the customer table (Recipient table in the above example) > Joins > Property join, then drag and drop the Property Join to the Filter.

In the displayed popup window enter select “email_address” as the field to join and Machine Learning Recipient as the Table to Join.

Click Add Join.

When a property join is defined in a filter, you can use the Machine Learning Recipient attributes for segmentation.

For Margin Optimization, to target audience based on a discount group (Max, High, Medium or Low), you can create various filters with Optimal Discount as filter criteria with options High, Medium and Low.

Filter criteria - Optimal Discount contains “High”

Filter criteria - Optimal Discount contains “Medium”

Entity Join

When the Personalized Send Time and Margin Optimization models are enabled in your account, the Machine Learning Recipient Table will be available in the filter for entity joins.

In order to create entity joins contact your Marigold Representative.

To join the Customer Table and the Machine Learning Recipient Table on the email field, the email field must be a unique identifier in the Customer Table, as shown in the example below:

Please Note:
1. Only one join is allowed for each entity table.
2. For an entity table with email as the unique identifier, the system will join it automatically. However, the user is also given an option to define a soft match using a different email field from 24.7.0.
3. We recommend adding Entity Join to tables that are frequently used. Adding joins to all tables could adversely affect import performance.
Entity tables typically have a large data size. The import performance may be affected as adding a new entity join will affect the other entity tables.
4. Joins that are added cannot be deleted. They will remain visible in Cheetah Digital such as in Filters, even when the ML Purchase model is disabled.
5. When ML Purchase model is disabled after it was activated, new ML data related to the Purchase will not be synced from the ML to Cheetah Digital.

When entity join is set in your Cheetah Digital account, the Machine Learning Recipient table associated with the source table will be listed for selection in the Filter (under Join), allowing you to add a field from the joined Machine Learning Recipient table as a selection criterion similar to the property-to-property join explained above.

Filters

Whether you're using entity or property join, we recommend the creation of three reusable filters using the “Optimal Discount” field based on the Optimal Discount score with values of Max, High, Medium and Low as below:

  • Filter 1: Optimal Discount is High

  • Filter 2: Optimal Discount is Medium

  • Filter 3: Optimal Discount is Low

  • Filter 4: Optimal Discount is Max

Once created, these filters can be used to render different contents or discounts in Dynamic Blocks and Cells & Splits campaign.

When these filters are created, they can be used to target various groups of audience. For example:

  • Email a coupon to people with a "High Discount Value."

  • Send a "surprise and delight" email to clients with a "Low Discount Value."

Additionally, they can be used to differentiate content between "high," "medium," and "low" discount values using dynamic blocks or split cells campaign within a single campaign.

Using Pre-defined Filters in Dynamic Block and Cells and Splits Campaign

Dynamic Block

Cheetah Digital provides two different methods for marketers to enable different recipient groups to get content variation; they are by filter (Match Filter) and by a value in a field (Match Rule).

To use the filters created in the above section in a dynamic block, use the Match Filter option. This enables you to apply the filters based on discount values and break the campaign audience into smaller, unique groups, so each of these can receive unique content or offers.

Split Cells Campaign

To use the filters created in the above section in a Split Cells Campaign, split the campaign by filter. This enables you to use the Filter to define the Audience for each sub-cell as shown in the screenshots below.

Note: By enabling the Content & Links, Subject Line, and Preheader as test elements of a Split Cells campaign, you can create different content variants for the various audience groups.

 

Machine Learning Recipient Asttributes

Once the Joins are created with the Machine Learning Recipient table, the following attributes are available for Segmentation:

Field Sample Values Description Model
Likelihood to Purchase [High,Medium,Low] Likelihood to Purchase: propensity to buy (high/medium/low) in the next 4 weeks ML Purchase
Optimal Discount [High,Medium,Low] Target discount group (high/medium/low) ML Purchase
Likelihood to Unsubscribe [High,Medium,Low] Likelihood to unsubscribe from email in the next 4 weeks ML Unsubscribe