Cold start

What it is

Cold start is the engine's strategy for customers it knows little about. Instead of leaving a new customer without recommendations (or serving them something random), personalisation grows in stages: the more purchases, the more personal the picks become.

How it is computed

Every customer is in one of four tiers based on purchase count (updated nightly):

TierCustomer historyWhat they get
0no purchasesthe store's most popular products; species-specific items (cat/dog) are excluded until the pet's species is known
11 purchaseproducts that complement the first purchase's category + top items from the same and adjacent categories
22-3 purchaseshybrid: half segment knowledge, half rules; no experimental picks yet
34+ purchasesfull personalisation: buying cadence, segment, all calibrations

If the customer has an active trigger (e.g. a replenishment window, a winback signal, a seasonal window), trigger-driven picks take the first slots in every tier — the tier only decides how the remaining slots are filled.

How to interpret it

  • If a large share of customers have "bestseller-based" picks, that is not a bug — it reflects the depth of purchase history in your customer base. Many stores have most contacts with no purchase or one old purchase.
  • The tier looks at purchase count; engagement state looks at recency of the last purchase — two different axes. A customer can be tier 3 (many purchases) and dormant (purchases long ago) at the same time.
  • Any species signal moves a customer out of tier 0 faster: store-plugin browse data or the first purchase.

Common misreadings

  • "Why do two different customers get the same products?" — if both are in tier 0, they get a similar popularity-based selection (with light rotation). This changes with the first purchase/browse signal.
  • "A cat owner got a dog product" — in tier 0 the engine offers species-neutral categories (transport, grooming etc.) or a balanced mix until the species is known. If the species IS known and it still happens, tell the operator.

Technical background

Tier: customers.cold_start_tier (0-3), spec §6.11. Tier 0 excludes species-specific categories until inferred_species is known (§6.12); non-recommendable products (gift cards, test articles) are filtered by catalog.recommendable on all paths. A product the customer returned in the last 180 days is likewise excluded on all paths — a substitute (a different product) stays allowed. A fully refunded order counts as a return: when the store sends an order with status refunded, the engine treats every line of that order as returned (dated at the order's own date). Partial returns have to be sent line by line by the store. Recommendation rotation: reissue threshold 7 days (spread ±2 days per customer, so a large group doesn't refresh all at once on one night) / demotion 35 days.

Last updated: 2026-07-11