Problem
Current occasion and category pages rely mainly on backend rules for product category, age, and gender, which can cause large categories such as perfume or jewelry to dominate the first pages and reduce perceived curation quality. For broad browse journeys like occasion pages, this creates a poor assortment experience because users expect relevant products across multiple gift categories rather than repeated near-duplicates from one dominant category.
JTBD
As a shopper browsing an occasion page, I want to see a relevant but varied assortment across gift categories, so I can discover more useful options without feeling the page is repetitive. As a returning shopper, I want the assortment to feel refreshed on each visit, so the page remains inspiring and worth revisiting.
User stories
Epic
Improve curation on occasion and category listing pages by balancing relevance, category diversity, and freshness for broad browsing experiences.
Primary user story
As a gift shopper visiting an occasion page, I want the first few pages to show relevant products from multiple categories instead of one dominant category, so that I can discover a curated assortment that better matches the occasion.
Supporting user stories
• As a shopper, I want products to be distributed across categories based on relevance and target assortment mix, so that the page feels intentional rather than random.
• As a shopper, I want similar products within the same category to be reduced, so I do not see many nearly identical items in sequence.
• As a returning shopper, I want the occasion page to show a refreshed selection over time, so that repeat visits surface new products without breaking page quality.
• As a shopper who explicitly selects a category, I want results to remain strongly relevant to that category, so the system does not over-diversify when my intent is narrow.
PRD details
Scope
This work applies to broad browse pages such as occasion landing pages and curated categories, where category diversity should be actively managed. It should not force hard diversity on explicit search results or tightly filtered category pages, because those flows should remain primarily relevance-led.
Proposed solution
Build a multi-stage ranking pipeline for occasion pages: retrieve relevant candidates, apply category-aware reranking, remove near-duplicates within categories, then interleave categories into a stable master pool used for pagination. The reference approach recommends using metadata pre-filters, per-category retrieval, MMR-style reranking for intra-category diversity, bounded business-score boosts, and ratio-based interleaving to produce a balanced assortment.
Principle Requirement
Relevance first Products must remain relevant to the occasion query and configured filters such as gifts ai category,availability, age, or gender.
Variety in browse Broad occasion pages should use category diversity targets so dominant categories do not take over the first pages.
Diversity within category Use MMR or similar reranking to suppress near-duplicate products inside the same category.
Stable pagination Build one ordered master pool and paginate from that pool instead of reranking each page independently.
Freshness over time Refresh the pool periodically and rotate eligible products so repeat visits show new selections.
Intent protection If a user explicitly filters to a category, reduce or remove cross-category diversity logic.
Functional requirements
- The first 2 to 3 pages of an occasion listing must include products from multiple configured gift categories, not just the largest category in the candidate pool.
- The system must measure category distribution in the retrieved candidate set and in the final served results.
- The system must support configurable target category ratios per occasion page, based on merchandising intent rather than raw catalog size.
- The system must rerank products within each category using a diversification method such as MMR to reduce very similar items.
- The system must combine relevance score with a bounded business-quality score, such as add-to-cart, purchases, likes, views, and review quality.
- The system must interleave per-category results into a single master ranking pool for stable pagination.
- The system must cache the occasion pool for a fixed TTL and refresh it on schedule to balance consistency and freshness.
- The system must support freshness logic so that repeat users see a rotated assortment over time rather than the exact same products on every visit.
- The system must preserve relevance-first behavior for search results and explicit category-filtered pages.
Non-functional requirements
• Category mix rules must be configurable by occasion without code changes to the ranking logic.
• Pagination must be stable so the same page request returns consistent ordering within a cache window.
• Ranking should be observable with logs for candidate counts, final category share, average relevance score, CTR, and add-to-cart by category and position band.
Acceptance criteria
• Page 1 and Page 2 of occasion pages no longer show domination by a single category when enough eligible inventory exists across configured categories.
• Final served results align to configurable category target ratios at the pool level, with graceful fallback if some categories have insufficient supply.
• Similar products within the same category are visibly reduced through reranking or deduplication logic.
• Search results and explicit category pages remain mostly relevance-first and are not forced into cross-category balancing.
• Returning to an occasion page after the refresh window produces a meaningfully refreshed assortment while preserving relevance and assortment quality.
• Product and ranking analytics expose category distribution, CTR, and conversion outcomes before and after rollout for A/B testing.
