Objective -
Enable need based users to discover their desired product seamlessly
For users with high intent, identify intent signals and enable the user to discover the right products immediately For users with low to medium intent, shape intent towards the right products
User journey map -
Definition of users based on intent
Users with purely exploratory intents are triggered to open Meesho with the Tryst to Discover ‘NEW’ Products Discover variety in ‘TRUSTED’ Categories Discover products according to their ‘INTEREST’ Users with a Need Based or Specific Intent are triggered to Open Meesho depending on Perceived VARIETY in the desired product or product category Perceived LOWEST PRICE FOR THE QUALITY in the desired product / product category Types of Users:
High Intent: User knows exactly what kind of product they want to buy eg. a blue XS Kurti Medium Intent: User knows which category of products they want to purchase eg. a Kurti Low Intent: User is just exploring the app, might buy something if they like it A user may be a high intent user during a particular session and a low one during another. This will depend on the categories the user is interested in at that time, the time of the day etc.
User problems -
Basis historical LODs, TBR -
Understanding current capabilities -
Net filter application - Filters are applied on ~8% of all high intent / search feed opens Of these, 56% usage comes from HVFs, 15% from IFs and remaining from basic / dynamic filters Basic filter definition on tech has remained stagnant and has configuration issues (Eg - New arrival / Meesho Mall etc) Eg - Mall filter historically applies to the original set of ~8 Mall seller’s listings and doesn’t reference the later setup taxonomy attribute HVF details - HVF model has remained inactive for close to an year and has been serving stale filters for existing feeds HVF usage breakdown - Other than Fabric, Category invariant filters account for ~70% of historical HVF usage IF usage - Reads from experiment detail IF usage to be heavily indexed on Category (~50%), Price (~25%) and Gender (~13%) IFs show up at a gap index of 6 catalogs, Of these the most interactions comes forth till 3rd/4th IF and starts dissipating post due to low engagement at increased view depth Search for demand signalling - ~X% of search sessions are high intent where users specifically pinpoint key attributes as part of the query Filters across the platform typically fall down under - CIF / Category invariant filters - Includes Top quality / New arrival / Program stores
Outside IN -
Summarised view -
Competition generally uses HVFs to surface category invariant filters like price, stores or ratings BAU filters are much more prominent on comp with filter labels showcased in a horizontal scroller and values showing up in the same screen IFs are generally used to map in high level demand signals first including category / gender before extending on to category specific feeds IFs are also used to surface similar search terms and store front cards
Solutioning considerations basis user persona -
Reducing interactions via simplified flows have historically helped forth with conversion (Eg - CBD→ PBD) Textual comprehension is pretty poor for our users and majority of the information consumption happens through visual cues Utilise HVFs to isolate prelim evaluation demand channel, i.e. Stores / Gender / Category / Price. Isolate CSF to only surface if used extensively or surface in IF
Tentative solves -
Sort and filter - Service architecture
Proposed solve(s) - Intent channelisation (IG bits to be covered later)
Filter label service rationalisation - Black vs Jet Black - Such values to be normalised into one We will be building a ML (Embedding based Clustering) + LLM (Maintaining Quality) pipeline that will regularly pick up all unique products’ attribute values and normalise them and update this config file, thus changing from a static setup to a dynamic setup. ML pipeline to select dynamic feed specific filters - Build out variant support to test dynamic category specific filters that are selected by a ML model after taking in signals from feed’s content and how users are interacting with these feeds across filter classes. Signals for feed specific filters Filter usage - Which Filters are being used by users while searching products / Upon historical filter application Feed’s conversion profile - Which are the products in a category that are being ordered/wish-listed the most. Look at common attributes and prioritise them UGC - Attributes that are being talked about in the reviews of the products. Engagement post filter application - Post filter application, how much time the user is spending on the feed Filter attribute coverage - Percentage of pareto products under a feed having an attribute (predicate probability) Attribute distribution - How evenly are the attribute values distributed among the products under a category (coefficient of variance) Attribute cardinality - How many unique attribute-values are there among all products under a category (attribute cardinality) IG / Demand shaping - Measure of uniqueness or specificity in terms of describing products under a category How unique is an attribute to a category 𝑢𝑛𝑖𝑞𝑢𝑒𝑛𝑒𝑠𝑠 = (Pareto viewed product count with the attribute in a category) / (Pareto viewed product count with the same attribute within similar categories / portfolio) Test model output through LLMs Present filters+category+search tuple to LLM and ask whether the filters make sense or not for that category/search Use the response to compute model’s precision with a mix of real world usage ML user persona setup to select feed agnostic filters (Programs / Promos / Deals etc) User’s persona profile - To be setup basis - Interactions with primary REs per feature / program - HP widget / filter / FIF interactions per program (Loyalty / Mall / Gold) Order / Browsing history - Views and engagement across products part of programs FY / Sorting / Browsing activity / Order usage towards high quality / low price / high price / freshly arrived listings / return profile Demographic signals - Device / Apps / BNPL to map user profile to High price / High quality / Low ASP Later, Map user level signals to stack rank sort / filter and FIF position per user Filter relevance model testing Prioritises feed agnostic filters (A) + feed specific filters (B) and curates a default set of primary filters to be showcased across HVF / IF and static / dynamic filters with Mix of A and B basis net relevance Experiment and align on the winning variant per cohort X feed S&F UI / Hygiene updates - Solve tech bugs related to - Attribute update event misses on Elastic across platform Comp / DS / Explore / Ads swaps post sort application Any other attribute persistence bugs on Elastic Build tech fallback systems that - Stop allowing filter labels with single label value Scale tech systems to read from DS feed’s schema with A/B support to experiment with filter/ sort ranking across filter types (Static + Visual) Filter label value → Audience ID → Position on HVF → Position on IF → Position of static filter P1 - Dynamic sorting of sort options Static filter screen revamp - Incorporate visual filters on static filter screens Label name rationalisation to curb overflowing label names Simplified usability with section separators / infinite page scrolling with auto section change EXP / P1 - Search within filters HVF usability update - Making HVFs sticky : Display on feed up scroll, Hide during down scrolls Given lower effective real estate for horizontal IC/IG components within a vertical scroll feed, Optimise IFs design to showcase all applicable filter labels as follow - Clicking on More continues session visually over static filter screens Label stepper on top to be pre selected with label per IF position Unified horizontal IC / IG service architecture to experiment and scale FIF and IF Scalable tech system to experiment with variants and scale horizontal IC/IG components per feed basis inputs from - Manual admin input as fallback
Prioritisation / Phasing of solves -