📊 Business Context


What is it about?
  • A segmentation based on an average price level allows classifying customers into 4 segments based on their average basket :
    • Discount
    • Medium -
    • Medium +
    • Premium
  • Scoring customers according to their average basket gives the ability to adapt upsell & cross-sell strategies in function of purchasing behaviors.
  • Octolis’ price level segmentation goes further with a price level score per product category.
Why a price level score per product category?
  • A customer will not have the same buying behavior depending on the type of product he buys.
  • If you like chocolate, you might go for a premium product while the difference between a first-price detergent and a premium detergent might not be obvious to you.
  • Thus, if your favorite grocery store recommends you first-price chocolate you most likely won't buy it.
  • Smart upsell & cross-sell strategies recommend products that match your customers’ habits, at the price they use to pay for that type of product.
What are the main use cases?
This score therefore makes it possible, for example, to identify Premium buyers, including among occasional RFM segments, in order to adapt your marketing tactics :
  • Email personalization > Push recommended products in your automated emails (post-purchase, reactivation, ..) or even as a conditional section in your newsletter.
  • Web personalization > Push recommended products in different steps of the web user journey, in a dynamic block of some pages, or a popup.
  • Any channel > Almost all customer journey touchpoints could be used to upsell / cross-sell your existing customers (outbound phone calls, postal mail promotion, ..)
What business impact can I expect?
  • Impact on: Upsell, Cross-sell, Average Order Value, Number of orders per customer.
  • Level of impact: ⭐️⭐️️⭐️️

↔️ Inputs & Outputs


Data input
  • A dataset containing your Customers data, with columns for:
    • user_id: unique identifier of the customer.
  • A dataset containing your Orders (items) data, with columns for:
    • user_id: unique identifier of the customer.
    • order_date: date at which the purchase was made.
    • product_id: unique identifier of the product purchased.
    • order_amount: total amount that was spent by the customer for this order.
  • A dataset containing your Products data, with columns for:
    • product_id: unique identifier of each product.
    • category_id: unique identifier of each product.
User settings
  • Tiers to reach the different price levels/segments.
  • As this score is closely related to RFM and Product Recommendation, please refer to the relevant pages to learn more about these scores.
Expected output
  • The output of this recipe is a new Dataset containing a row for each of your contacts who made at least one purchase.
  • In the Dataset table, you will have one new attribute per product category :
    • price_level_cat1
    • price_level_cat2
    • …
  • With the associated price_level_score (decile of customer sensitivity to discount offers (from 1 to 10).
  • You can then make a join between your new Dataset and your existing Contacts Dataset to map your favorite store attributes.

🖥️ Implementation in Octolis


1. Prepare your input data
Make sure that you have built an Dataset containing all your orders.
In case you have several order Sources (e.g. eShop & PoS) you need to group all sources into an orders master Dataset.
2. Apply the SQL Template “ Price level Segmentation”
  • Create a new Dataset using SQL expert mode.
  • Copy / past the following SQL template.
  • After pasting the template, modify all variables with the names of your input columns.
  • Add your Price level Segmentation Dataset as a source of your Contacts Dataset, and map the needed fields to import them into your Contacts Dataset.
sql
// Price level Segmentation SQL Template