Frequently Bought Product
Subscription: PRO
The Frequently Bought Product module identifies products that individual users purchase frequently based on their transaction history. It enables personalized reorder suggestions and replenishment campaigns by analyzing purchase patterns over a configurable time period.
Key Requirements
Before setting up the Frequently Bought Product module, ensure that:
-
The PRO subscription is active.
-
Purchase/transaction engagement data is available via web tracking.
-
A product feed is configured with product IDs that match the product IDs in your transaction data. This is essential for linking purchase history to the correct products.
-
If your catalog contains product variants (e.g., different sizes or colors of the same product), ensure these are identifiable via a variant ID, parent ID, or similar identifier so the module can correctly group variant-level purchases.
-
For CDP delivery: CDP credentials (Tenant ID, Event Type ID, and Access Token).
How It Works
The module analyzes a user's purchase history and calculates what percentage of their transactions contain each product. Products that appear in a high enough percentage of transactions are flagged as "frequently bought" for that user.
Processing steps:
-
Transaction scoping — Filters purchases to a configurable lookback window (default: 365 days)
-
Frequency calculation — For each user-item pair, calculates the percentage of the user's total transactions that include that item
-
Threshold filtering — Only products exceeding the minimum percentage threshold are included
-
Diversity filtering — Optionally limits the number of products from the same category or attribute
-
Change detection — Identifies users whose frequently bought products have changed since the last run
-
Publishing — Delivers results to the CDP as personalization events
Configuration
General Settings
|
Property |
Description |
Default |
|---|---|---|
|
Schedule (Cron) |
How often the module runs |
Disabled |
|
CPU |
CPU allocation (500m, 1000m, 2000m) |
500m |
|
Memory |
Memory allocation (4Gi, 8Gi, 16Gi) |
4Gi |
Transaction Scoping
|
Property |
Description |
Default |
|---|---|---|
|
Lookback days |
Number of days of purchase history to analyze (1–1825) |
365 |
|
Engagement until |
End date for transactions to consider |
Today |
Frequency Configuration
|
Property |
Description |
Default |
|---|---|---|
|
Threshold percentage |
Minimum % of transactions that must contain the product (0–1.0) |
0.8 (80%) |
|
Minimum transactions |
Minimum number of purchases a user must have to be analyzed (0–10000) |
4 |
|
Maximum items |
Maximum number of frequently bought products per user |
50 |
Product Diversity (Optional)
When enabled, diversity filtering limits how many recommended products can share the same attribute value (e.g., category, brand). This prevents recommendation lists from being dominated by one product type.
Multiple diversity rules can be configured, each specifying:
-
The attribute to group by (e.g., category, brand)
-
The maximum number of recommendations allowed per attribute value
CDP Integration
|
Property |
Description |
Default |
|---|---|---|
|
Delivery method |
How results are delivered (none, batch) |
batch |
|
Event type ID |
CDP event type for publishing results |
— |
Example
A user has made 5 purchases over the past year:
-
Purchase 1: Coffee, Milk
-
Purchase 2: Coffee, Sugar
-
Purchase 3: Coffee, Milk, Bread
-
Purchase 4: Coffee, Milk
-
Purchase 5: Coffee, Bread
With a threshold of 80%:
-
Coffee appears in 5/5 = 100% → Frequently bought
-
Milk appears in 3/5 = 60% → Not included
-
Bread appears in 2/5 = 40% → Not included
With a threshold of 50%:
-
Coffee (100%) and Milk (60%) would both qualify
Use Cases
-
Replenishment campaigns — "Time to restock your coffee!" reminders based on individual purchase patterns
-
Personalized reorder suggestions — "Buy your favourites again" in newsletters or on-site
-
Subscription recommendations — Identify candidates for subscription models based on repeat purchases
-
Loyalty programs — Reward customers for their most-purchased products
Output
The module produces a table with the following information per user:
|
Field |
Description |
|---|---|
|
userId |
User identifier |
|
frequentlyBoughtItemId |
Product ID |
|
rank |
Position in recommendation list (1 = most frequently bought) |
|
percentageTransactions |
% of user's transactions containing this product |
Results are delivered as personalization events to the CDP, including product details (name, category, image) for use in campaigns and web personalizations.