RecomNext

Playbook

Day-to-day ops for analysts and PMs.

08 - Analyst & PM playbook

Daily / weekly rhythms

RoleCadenceActions
AnalystWeeklyScenario funnel (impressions, views-as-clicks, carts, purchases); investigate CTR>100% or 0 impressions
AnalystAd hocClickHouse recipes in 10; compare slug vs empty-slug volume
PMWhen editingChange one lever at a time; note slug + algorithm; QA 3–5 seeds in UI
BothAfter train/reindexSpot-check ML / vector scenarios for cold vs heavy users

“Expected item missing” checklist

  1. Available? Catalog available / stock flags.
  2. Filtered by nextQL? Temporarily loosen filter.
  3. Diversity / purchase cap? Check category pile-up and user’s purchase history.
  4. Score threshold (vector)? Too high → empty neighbors → category/min fill.
  5. Wrong logic/algorithm? Scenario slug on the placement.
  6. Seed quality? Bad/missing embedding for seed.
  7. Timing? Just indexed? Wait for Qdrant/CH catch-up.

Interpreting metrics safely

ObservationLikely causeAction
CTR ≫ 100%Views with slug ≫ impressionsAudit host trackView / attribution (09)
Impressions ≫ 0, clicks ≈ 0No slug on views; or users don’t open PDPsCheck SDK click/view tagging
Carts/purchases tinyFunnel real or events not sentVerify trackCart / trackPurchase
Rail looks genericCold start / fallback / missing factorsCheck algorithm + training; identity merge
Sudden empty railsFilter too strict / threshold / outageAdmin preview + engine logs / Qdrant health

Remember: Admin “clicks” = type=view + slug.


Scenario edit recipes

GoalLever
Hide OOS / wrong regionnextQL filter
Prefer featured / margin SKUsbooster (soft)
Stop one category dominatingmaxPerCategory
Show newer catalogfreshnessBoostDays
Discoverability for obscure SKUsinjectLongTail + percentage
Fewer repurchase suggestionspurchasedItemsMaxPercent + pass userId
Stricter similarraise score_threshold
Richer cart railmulti-seed-hybrid + adaptive

Change one of {filter, boosters, constraints, algorithm, qdrant} per experiment when possible.


Experiments (high level)

If the tenant uses Admin experiments / variants:

  • Keep scenario_slug consistent on impressions and attributed interactions.
  • Don’t change instrumentation mid-test without splitting analysis windows.
  • Primary metrics: impression volume, attributed view rate (once instrumentation is correct), cart/purchase rates.

Handoff questions for engineering

  • Is placement using scenario slug X end-to-end?
  • Are impressions fired on visibility or on render?
  • When is trackView called with a scenario slug?
  • Is userId passed into recommend calls for purchase cap?
  • Last successful train / reindex time for ML or vectors?