Next Best Promotion models
Next Best Promotion algorithm helps determine the price a customer is willing to pay for a particular product or service based on the product’s purchase history.
What is Next Best Promotion algorithm?
The Next Best Promotion model delivers personalized price recommendations by estimating the price a customer is most likely to accept, based on their historical purchase behavior.
By tailoring prices to individual customers, the model helps drive higher conversion rates, increase total revenue, and boost average order value.
Parameters of the model
To create and configure the model the following parameters must be defined:
-
Algorithm: Choose the Next Best Promotion algorithm in Unity.
-
Queries: The queries you select generate the dataset used for both model training and scoring.
-
Inputs: Inputs are attributes from the Oracle Unity data model that the model uses during training and scoring.
-
Outputs:These are the data objects and attributes from the Unity data model that store the model's output values. You can customize the default output mappings if needed.
Model inputs
The Next best promotion model uses the following data. For the model to successfully run, check the sections: key input considerations, key data guidelines and best practices.
| Attribute from Unity data object | Attribute name in the query | Unity Data object | Description of the attribute | Expected Data Type | Must have? |
| ID | ID | MasterCustomer | Unique identifier of the Customer | String | Yes |
| SourceID | SourceID | Customer | Source identifier | String | Yes |
| Age | Age | Customer | Helps determine age preferences in willingness to pay a price for a product | Int | |
| Gender | Gender | Customer | Helps determine gender preferences in willingness to pay a price for a product | String | |
| ZipCode | ZipCode | Address | Helps determine regional preferences in willingness to pay a price for a product | Int | |
| ProductID | ProductID | OrderItem | Unique Product Identifier | String | Yes |
| ExtendedPrice | ExtendedPrice | OrderItem | Total amount paid by the customer for the order | Float | Yes |
| Quantity | Quantity | OrderItem | Total number of units purchased in this transaction | Int | Yes |
| OrderEntryTS | OrderEntryTS | OrderItem | Time of purchase | Timestamp | Yes |
Key considerations on model inputs
-
Data schema checks: If an attribute is unavailable, assign a constant default value across all records. This allows the model to validate the input schema. This will not impact the model outcomes as the attribute will be excluded during feature importance analysis due to lack of data variance.
-
Product Identifier: Ensure this attribute is populated with the right products for which the price recommendations are needed. This attribute is key to identifying price preferences at a product level.
-
Model extensibility: The model can be run at an account level - ensure the MasterAccountID is mapped to the model in place of the MasterCustomerID. Similarly, the model can be run for subscription products as long as the required columns are mapped from the data model.
-
Schema consistency: Ensure that the attributes used in the query exactly match the specified 'Attribute name in the query' (in the above table) to avoid schema mismatches during model execution.
-
Non-mandatory attributes: These attributes, when available, can enhance the model’s learning and improve its predictive performance. However, if they are missing, the model will still leverage other available attributes to make predictions.
Key input data guidelines
-
Data requirements:
-
It is recommended to provide at least 50,000 data records for model training. However, it is important to bring as much data as possible to build a robust model
-
It is recommended to keep the dataset under 10M records (soft limit). This limit can vary for every model, but maintain a manageable size helps ensure efficient model performance.
-
Best practices
-
Use case first approach: Begin with a specific use case to determine the data required for solving the problem effectively.
-
Review model data requirements with both business and data teams to ensure alignment
-
-
Contextual parameters: Choose model parameters (such as lookback window) based on the business/ use case context.
-
Query validation: Test both the training and scoring queries to validate that they return data and inspect sample records resulting from the query
Model outputs
Output values will be stored in the CustomerPricePromotion or Customer_pricepromotion data object. You can review the minimum and maximum price points recommended for a customer against a product. In addition, the products are also ranked for a customer in their likelihood of price acceptance.
| Attribute ID | Attribute Name | Attribute Description | Data type |
| SourceCustomerPricePromotionID | Source Customer Price Promotion ID | This attribute contains the unique ID for the object. | STRING |
| ProductID | Product ID | This attribute contains the product ID | STRING |
| SourceProductID | Source Product ID | This attribute contains the original form of the Product ID from the source data system. | STRING |
| ProductRank | Product Rank | This attribute represents the ranking of recommended products | INTEGER |
| RecommendationType | Recommendation Type | This attribute represents the Indicates the type of recommendation. | STRING |
| PriceMax | Max Recommended Price | This attribute represents the Maximum product price recommended for a customer. | FLOAT |
| PriceMin | Min Recommended Price | This attribute represents the Minimum product price recommended for a customer. | FLOAT |
| MasterCustomerID | Master Customer ID | This attribute contains the foreign key to the MasterCustomerID. | STRING |
| SourceMasterCustomerID | Source Master Customer ID | This attribute contains the original form of the MasterCustomer ID from the source data system. | STRING |