Next Best Offer models

The Next Best Offer model is a ready-to-use data science model that recommends the most relevant offers for every customer based on sales and transaction patterns.

The Next Best Offer model explained

The Next Best Offer model provides customers the ability to choose from top recommendations on offers tied to different products or services. The model uses customer profile data, customer engagement, product catalog data, and purchases to generate recommendations. The outputs of the model are not customizable. The top five recommendations are generated, and you can use these recommendations to determine the most relevant offers to send to specific customers.

Parameters of the model

When creating the model, you will need to define the following parameters for the model:

  • Algorithm: The algorithm is the piece of code that runs the model. When you select the Next best offer algorithm, you will need to define the parameter that selects the associated catalog of offers for the model.

  • Queries: The queries selected for the model generate a dataset for model training and scoring.

  • Inputs: The inputs are query attributes from the Unity data model that are used for model training and scoring. You can't make changes to model inputs.

  • Outputs: The outputs are data objects and attributes from the Unity data model that are used to store the output values of the model. You can make updates to the default mapping of model outputs.

Model inputs

To generate values, the Next Best Offer model uses the following data.

For the model to successfully run:

  • Data needs to be ingested into all the input attributes below.
  • The Offer catalog, which is populated as part of the Promotion data object, is associated with every product.
  • The Category data object needs the following attributes to be ingested with data: CategoryID, Category Name, and Category Type.
    • Category Type will be offers for the model.
    • Category Name will be the Offer catalog name. For example, Jewelry offer catalog, Watches offer catalog, and Apparel offer catalog.
  • The following relationships of data objects are required:
    • MasterCustomer and Event using the CustomerID attribute.
    • Event and Product using the ProductID attribute.
    • Each product can have multiple promotions associated with it, identified using PromotionID from the Promotion data object.

    • Each promotion belongs to a specific category, which is identified by a CategoryID from the Category data object.

Data object Attribute Data type Description
MasterCustomer MasterCustomerID String The unique identifier for the customer.
MasterCustomer Country String The customer's country.
MasterCustomer Age Integer The customer's age.
MasterCustomer Gender String

The customer's gender.

Event and MasterCustomer EventTS Timestamp The date and time when the event occurred.
Event and MasterCustomer Type String The type of event, such as View, Purchase, Buy, and Click.
Event and MasterCustomer SubType String Identifies if a Bounce is a Hard Bounce or Soft Bounce.
Event and MasterCustomer URL String The URL that is sent in the message.
Event and MasterCustomer Medium String The channel for the message, such Email, SMS, and Push.
Event, Category, and MasterCustomer SourceID String The unique identifier for the source.
Event and MasterCustomer ProductID String The unique identifier for the product.
Event and MasterCustomer CategoryID String The unique identifier for the category.
Event and MasterCustomer Type String The type of product, such as Item and Service.
Category, MasterCustomer, Product, and Promotion CategoryType String The type of category, such as Offer or Action.
Category, MasterCustomer, Product, and Promotion Name String The Offer Catalog name.
Category ID String The unique identifier for the data object.
Promotion, Event, and MasterCustomer PromotionID String The unique identifier for the promotion.
Promotion and MasterCustomer Name String The name of the promotion.

Model outputs

You can review the rank and score for the top five recommendations for each customer and offer category level in the MasterCustomerRecommendation and Category data objects. The following attributes will generate output values.

Data object Attribute Description Data Type Is Key attribute?
MasterCustomer Recommendation PromotionID The unique identifier for the promotion. String Yes
MasterCustomer Recommendation CategoryID The unique identifier for the category. String Yes
MasterCustomer Recommendation MasterCustomerID The unique identifier for the customer. String Yes
MasterCustomer Recommendation SourceID The unique identifier for the source. String Yes
MasterCustomer Recommendation SourceMasterCustomerID The unique identifier for the customer originating from the source. String Yes
MasterCustomer Recommendation SourceMasterCustomerRecommendationID Provided by the Next best offer model. It is a concatenation of MasterCustomerID, PromotionID, and CategoryID. String Yes
MasterCustomer Recommendation Rank The rank calculated by the module once scores are generated by the model. Integer No
MasterCustomer Recommendation Score Scores the relevance of the offer for a customer. Offers with higher scores are more relevant. Float No
Category SourceCategoryID The unique identifier for the source. String Yes
Category Category_CategoryID The unique identifier for the category. String Yes
Category LastTrainedDate The last date the model was trained. Date No
Category LastScoredDate The last date the model was scored. Date No
Category Type The type of recommendation. String No

Create and use a Next Best Offer model

To create and use a Next Best Offer model, you will need to do the following:

  1. Before creating the data science model, you will need to create the catalog of offers that will be used when the model runs. Learn more about Creating Next best offers.

  2. After creating the catalog of offers, follow the steps for Creating Next Best Offer models.

  3. After creating the model, follow the steps for Running training and scoring jobs.

After the model runs and creates output values, you can do the following:

data science, data science model, analyze data, create data science model, how to create a data science model, next best offer, nbo, next best offer model, nbo model