ZeptoUX & Interaction Auditteardown_01

How Zepto engineered the 10‑minute promise.

Yatin Khar
·May 2026·12 min read
Median delivery
9:42
minutes, P50
Dark stores
1,100+
mid-2026 est.
SKUs / store
~2.5k
hyper‑local assortment

3 things I found:

1. The ₹99 free-delivery threshold is AOV engineering, not consumer goodwill. Eliminating handling fees, surge fees, and rain fees in November 2025 removed three visible pain points and replaced them with one invisible nudge: add a ₹20 item to cross the threshold. That nudge earns more in AOV lift than the fees it replaced. (BusinessToday, Nov 2025.)

2. The OOS recovery loop is where the 10-minute promise breaks. Dark stores stock 2,500–3,000 SKUs in 2,000 sq ft — out-of-stock events are structural, not exceptional. The current recovery forces ~5 steps and ~40 seconds at precisely the moment Blinkit is one swipe away. An Inline Smart Substitution Toggle at cart review converts this from a reactive error into a proactive one-tap resolution before checkout.

3. The highest-value user looks healthy in the data but isn't. Suresh Iyer (₹1,600/week, kirana-convert) shows up as ₹1,100/week after routing ₹500 of produce spend to a neighbourhood vendor. He doesn't churn — he silently splits. A "sourced today" freshness badge on produce listings addresses the trust deficit, not the delivery speed.


00 / Fact-Check & Corrections Log

Every claim in this teardown is cross-referenced against publicly available data as of May 2026.

Dark Stores FY25 Revenue Market Share Daily Orders
1,100+ ₹11,110 Cr ~22–25% 2.4–2.5M

Corrected — Handling Fee Critique

The draft critiqued Zepto's handling fee line item in Bill Details as a Gestalt/Proximity failure. This is now factually outdated. In November 2025, Zepto scrapped handling fees, surge fees, and rain fees entirely. Blinkit still charges ₹4 handling, Instamart charges ₹9.80. The teardown now pivots this section to analyse why the removal happened and how the ₹99 free-delivery threshold replaced fees as the primary AOV lever.

Corrected — UPI Handoff Latency

The draft criticised a 1.2–1.8 second gap during UPI app-switch. This is now partially resolved. In January 2026, Zepto rolled out in-app UPI payments. Users can now enter UPI PIN inside the Zepto app itself, bypassing the redirect to Google Pay or PhonePe entirely. Swiggy and Zomato have implemented similar in-app UPI. The competitive gap cited in the draft has narrowed significantly.

Refined — Dark Store Count

Zepto Blinkit Swiggy Instamart

Verified: Zepto operates 1,100–1,200 dark stores as of mid-2026. Blinkit leads with approximately 2,027 stores (Q3 FY26 actual). Swiggy Instamart has 1,143 (verified, Q4 FY26). Flipkart Minutes is estimated at 800+ (unverified; no public disclosure). The total industry footprint across the top 8 cities exceeds 3,800 stores. This density context matters for the OOS analysis — more stores in a given area means more inventory fragmentation and more frequent stock-outs per individual location.

Verified — 10-Minute Delivery Model

The core premise remains accurate. Zepto's dark stores occupy 2,000–3,000 sq ft, stock approximately 2,500–3,000 high-velocity SKUs, and achieve approximately 3-minute order picking times. The 10-minute delivery promise is maintained across major metros. Zepto's total catalogue has expanded to 45,000+ SKUs across all tiers via a marketplace model, with categories now including pharmacy (launched August 2025), Zepto Café (food), and electronics.


01 / The Context & User Persona

I ground this audit in a scenario that captures the psychological reality of Indian quick-commerce usage. This is not about "typical" usage — it is about the high-stress, high-intent moment where UX failures have maximum financial consequence for the platform.

Arjun Mehta
Arjun Mehta — Software Engineer, 28 — Koramangala, Bengaluru
UPI-First · ₹430–470 AOV · Zepto Pass Subscriber · Night Orderer · 4.6★ Rating

It is 9:45 PM on a Friday. Arjun's flatmates announce that colleagues are arriving in 20 minutes. He opens Zepto with a tight mission: Sprite 2L (₹90), Lays Classic (₹20), mixer packs (₹120), and Maggi (₹56). His total cart hovers around ₹286 — just above the ₹99 free delivery threshold, but on Instamart his cart would still attract a ₹9.80 handling fee at this value. His attention budget for checkout is under 45 seconds. He is simultaneously on a WhatsApp call. His Koramangala society has a three-layer address: the complex name, the block number, and the flat — a combination that delivery agents routinely misroute. His 4G signal fluctuates between the lobby and his flat on the 6th floor. Any friction here is a defection event. Blinkit sits on his home screen, one swipe away.

The psychology of the Indian q-commerce consumer

Three forces shape Arjun's behaviour that do not apply — or apply differently — in Western markets:

1. Extreme price sensitivity at the margin. Indian consumers will compare a ₹90 item across Zepto, Blinkit, and Instamart before ordering. They will also mentally calculate whether the cart is above or below the free delivery threshold and add a filler item (a ₹20 packet of biscuits) to avoid the ₹30 delivery fee. This is not penny-pinching — it is rational behaviour in a market where Zepto's AOV is ₹430–470, and a ₹30 fee represents 6–7% of the order value. That ₹30 is not invisible. It is a psychologically salient cost that triggers loss aversion disproportionate to its absolute value.

2. Surge and rain pricing erode trust asymmetrically. Until November 2025, Zepto and its competitors charged rain fees and surge fees during peak demand. These fees were small in absolute terms (₹6–30), but their variability made them feel arbitrary and punitive. The psychological damage was not the ₹15 — it was the violation of predictability. Indian consumers, trained by decades of MRP (Maximum Retail Price) transparency on physical packaging, have a deep cultural expectation that prices should be stable and legible. Dynamic pricing on delivery feels like autorickshaw fare negotiation — tolerated, but resented. Zepto's decision to eliminate these fees was as much a trust-repair exercise as it was a pricing move.

3. UPI is the mental model for "fast payment." In India, 20+ billion UPI transactions happen per month (21.6 billion in December 2025, per NPCI data). The mental model for fast checkout is not "enter card details" — it is "enter UPI PIN." Any checkout that redirects to a separate app introduces an app-switch — a context change that costs 2–4 seconds and creates a cognitive interruption. Zepto's January 2026 launch of in-app UPI collapses this entire friction chain into a single PIN entry within the app. This is one of the highest-impact UX changes in the Indian q-commerce space in the last 12 months.


Persona 2 — The Planned Weekly Shopper

Rahul Sharma
Rahul Sharma — Marketing Manager, 34 — Powai, Mumbai
Zepto Pass subscriber · ₹800–1,100 AOV/week · Primary grocery buyer for household of 3

Rahul Sharma is the household's primary grocery decision-maker — partner and a 4-year-old. He does a "main shop" every Sunday morning: vegetables, dairy, cleaning supplies, breakfast items, snacks. Then 2–3 mid-week top-ups for consumed or forgotten items. His total Zepto spend is ₹3,200–4,400/month, making him approximately 2–2.5× more valuable by monthly GMV than Arjun's impulse profile (₹3,200–4,400 vs. est. ₹1,700–1,900/month at Arjun's AOV and order frequency).

He is not Zepto's core use-case user. He plans. His Sunday order has 15–20 line items across categories. His primary evaluation criterion is completeness and accuracy — not speed. He does not care whether it arrives in 9 minutes or 14 minutes. He cares deeply if the onions arrive bruised, if the Amul butter is substituted with Mother Dairy without his consent, or if 2 of his 18 items simply don't show up.

How his OOS experience differs from Arjun's:

Dimension Arjun (Impulse, 9 PM Friday) Rahul Sharma (Planned, Sunday AM)
Cart size 4–5 items, ₹460 16–20 items, ₹950
OOS response High anxiety, immediate defection risk Quiet frustration, silent basket edit
Visible churn signal Opens Blinkit within 60 seconds Doesn't churn — adds "buffer" items
Long-term NPS effect Immediate negative spike Slow erosion, invisible in weekly data
What the product sees Abandonment event (measurable) Completed order (misleading positive)

His "buffer behaviour" is Zepto's most expensive invisible problem: he now orders 2 packets of Maggi when he needs 1, because he has learned 1–2 items on a 16-item order typically don't arrive. This inflates Zepto's reported AOV while masking a reliability failure. A ₹950 order that looks healthy in the dashboard represents a user who has permanently discounted his trust in Zepto's inventory.

The product insight this persona surfaces: The ISST (Inline Smart Substitution Toggle) proposed in Section 03 optimises for Arjun — the panic-mode, high-defection user. For Rahul Sharma, the higher-value fix is order accuracy tracking: a post-delivery screen asking "did everything arrive and meet expectations?" that feeds a dark-store inventory reconciliation loop. Rahul's silent feedback — no complaint raised, just buffer behaviour — is the least visible and most expensive form of user experience failure in Zepto's data.


Persona 3 — The Kirana-Replacement Convert

Suresh Iyer
Suresh Iyer — Operations Manager, 44 — Rohini Sector 9, Delhi
Non-subscriber · ₹1,400–1,800 AOV/weekly order · Ex-kirana customer of 12 years

Suresh spent 12 years buying groceries from the same kirana 200 metres from his home — Ramesh Bhai's shop, where his preferences were known, informal credit was available ("pay at month-end"), and produce freshness was guaranteed by a 12-year relationship. He switched to Zepto 14 months ago when Ramesh Bhai's shop closed after a rent dispute.

He is Zepto's most economically valuable and most structurally skeptical user. His ₹1,600 average weekly order is 3.5× Arjun's cart value. He buys vegetables, pulses, atta, oil, cleaning supplies, and personal care — in bulk, once a week, on Saturday afternoons. He has never placed an impulse order.

What he has lost versus the kirana:

Dimension Ramesh Bhai's Kirana Zepto
Produce freshness Relationship-guaranteed ("He knew I wanted firm tomatoes") Unknown; no intake timestamp visible
Credit Informal month-end settlement Cash/UPI upfront only
Personalisation 12 years of remembered preferences Algorithmic; no memory of produce preferences
Complaint resolution Immediate, in-person Refund in 24–48 hrs; doesn't replace the disruption
Discovery Ramesh Bhai would suggest what's fresh today Zepto shows what's in stock, not what's good today

What Zepto has given him that the kirana couldn't: 10-minute top-up delivery when something runs out mid-week, no negotiation, Zepto Pass discount that more than offsets the delivery fee on his large orders.

His primary pain point is produce trust. He has received substandard vegetables 3 times in 14 months — each time, Zepto refunded him. But the refund did not replace the 45 minutes spent re-ordering or cooking with inferior ingredients. He has now split his purchases: vegetables from a neighbourhood vendor, packaged goods from Zepto. Zepto's data shows him as a ₹1,100/week customer. He is actually a ₹1,600/week customer who has redirected ₹500 of produce spend back to the informal economy.

The product insight this persona surfaces: Zepto's produce quality problem is not a logistics problem — it is a trust signal problem. Suresh does not need faster delivery of better vegetables. He needs to know before ordering that the vegetables at his local dark store were received fresh that morning. A "sourced today" timestamp badge on produce listings — pulled from the WMS intake log and surfaced in the app — costs almost nothing to build and could recover the ₹400–500/week in produce spend that Suresh has rerouted. At Zepto's scale (1,100+ dark stores, 2.4–2.5M daily orders), even recovering 10% of the "category split" users would represent material GMV.



02 / The Deep Dive — Framework Application

2A — Jakob's Law: Mental Model Alignment

Verdicts: ✓ Cart Bottom Sheet · ✓ In-App UPI (New) · ✗ Address Input · ~ ₹99 Threshold Visibility

Jakob's Law states that users transfer mental models from the apps they use most. In India, the dominant models are set by Flipkart, Amazon India, Swiggy/Zomato (food), and critically, PhonePe and Google Pay for payment flows. Indian users now have a muscle memory for UPI PIN entry that did not exist even three years ago.

Pass — Cart Bottom Sheet

Zepto's cart slides up as a persistent bottom sheet, consistent with the standard Swiggy/Blinkit/Instamart pattern. The quantity stepper (− ● +) is positioned exactly where Indian e-commerce users expect it. This is correct Jakob's Law application — zero re-learning cost.

Pass — In-App UPI Flow (New)

The draft criticised the UPI handoff latency. That critique is now partially resolved. Zepto's in-app UPI (launched January 2026) aligns with the mental model that PhonePe and Google Pay have built: select UPI → enter PIN → done. By keeping this inside the Zepto app, the cognitive interruption of an app-switch is eliminated. Users who have already linked their bank account can complete payment in a single PIN entry — mirroring the fastest payment pattern Indian consumers know.

Fail — Address Disambiguation (Still Present)

This critique from the draft remains valid. Indian address taxonomy is structurally complex: "B-204, Prestige Shantiniketan, ITPL Main Road, Whitefield" is a valid, complete address — but Zepto's checkout review screen renders it in a single truncated line. No visual separation of society name, block, flat number, and landmark. This triggers re-reading anxiety. Users second-guess the address and tap "Change," adding 2–3 unnecessary taps. In dense gated societies across Bengaluru (Koramangala, HSR Layout) and Delhi (DLF Phase 5, Noida Sector 137), this is a measurable friction point.

Partial — ₹99 Free Delivery Threshold Visibility (New)

Zepto's ₹99 free delivery threshold is the lowest in Indian q-commerce (Blinkit and Instamart both set it at ₹199). But the visibility of this threshold during the add-to-cart flow is inconsistent. On some screens, a progress bar shows "₹X more for free delivery." On others, it is absent. The Indian consumer who is mentally calculating whether to add a ₹20 biscuit packet to avoid a ₹30 delivery fee needs this signal to be persistent and unmissable. Its intermittent presence is a partial Jakob's Law failure — the pattern exists elsewhere, users expect it, and Zepto surfaces it inconsistently.


2B — Gestalt Principles: Visual Hierarchy & Scannability

Verdicts: ~ Law of Proximity (Revised) · ✗ Law of Closure · ✓ Figure/Ground

The Bill Details Screen — A Revised Scannability Analysis

The original critique flagged poor visual grouping of handling fee + delivery charge in Zepto's Bill Details. With handling fees now eliminated, the Bill Details screen has become simpler but introduces a new Gestalt challenge.

Updated — Law of Proximity (Revised)

With zero handling fees and zero surge fees, Zepto's Bill Details now shows fewer line items: item subtotal, delivery charge (₹0 above ₹99 or ₹30 below), any applied coupon discount, and total payable. The reduced line count improves scannability. However, when a coupon is applied, the discount line and the total payable line are visually equidistant from the subtotal. The discount should feel "attached" to the subtotal (it modifies the price), while the total should feel like a conclusion. Currently, flat spacing treats them identically, which forces a full top-to-bottom scan every time.

Law of Closure — Still Failing

The total payable amount — the single most important number on the screen — lacks visual closure. It sits at the bottom of a flat list without a bounding container, bold weight differentiation, or shaded row that signals "this is the final synthesised result." Gestalt's Law of Closure tells us that a closed shape reads as a unified object. Even a 1px-bordered row with subtle background behind the final total would collapse the eye to the number that matters. Currently, users scan the entire list to locate the total — an estimated 200–300ms of unnecessary cognitive load per checkout. In a UX where the entire brand promise is speed, this matters.

India-Specific Gestalt Insight: Indian q-commerce users are trained by Swiggy and Zomato food delivery to see a "Savings" chip in green near the total — a visual closure signal that says "you saved ₹X on this order." Zepto surfaces this inconsistently. Blinkit's implementation of this savings chip is more consistent, creating a subtle but measurable competitive UX advantage.

Figure/Ground — Pass

White cards against light grey page background correctly applies Figure/Ground separation. Cart items read as foreground objects. Competent baseline execution.


2C — Nielsen's 10 Heuristics: System Status & Error Prevention

Heuristic Severity
#1 — Visibility of System Status Medium
#5 — Error Prevention Critical
#9 — Help users recognise & recover High
#3 — User Control & Freedom Low

Deep Focus: Heuristic #1 — The Delivery Timer Paradox

Zepto's delivery ETA timer — the N mins counter — is their most powerful trust signal. But this timer disappears during the checkout flow. Once the user enters the payment screen, the ETA is not surfaced. This is precisely when the timer should be most visible — the anxious moment where users ask "will it still arrive in 10 minutes if I finalise now?" Hiding the status signal at the highest-stakes decision point contradicts the core value proposition.

Rivalry signal: Swiggy Instamart has begun surfacing a persistent "delivery in ~N mins" indicator through its checkout flow in recent builds. In the Bengaluru and Delhi NCR markets where Zepto and Instamart compete store-for-store (both at ~1,100–1,200 dark stores), this micro-UX decision likely contributes to measurable checkout completion differences.

Deep Focus: Heuristic #5 — The OOS Crisis (Verified)

This remains the most consequential failure. Out-of-stock events are structural in Indian q-commerce — dark stores stock only 2,500–3,000 high-velocity SKUs in 2,000–3,000 sq ft. Inventory is volatile, especially for high-demand items (milk, eggs, beverages) during evening peaks. The fragmentation created by 1,100+ stores means that each individual dark store has less inventory depth than a traditional kirana store — OOS is not an edge case, it is a statistical inevitability during peak hours.

The scenario: a user adds 4 items, proceeds to checkout, and between cart review and payment confirmation, one item goes OOS. Zepto's current flow forces a 5-step recovery loop:

Current OOS Recovery: Error surfaces → User reads → Dismisses → Returns to cart → Manually removes OOS item or searches substitute → Re-initiates checkout. That is 5 additional interactions, approximately 35–45 seconds, and a trust-break in the 10-minute promise. At Arjun's moment of maximum impatience, this is a near-certain defection to Blinkit.

The deeper issue is Error Prevention, not error handling. Nielsen's Heuristic #5 states that good design prevents errors before they occur. Zepto's inventory data can predict high-risk OOS SKUs at order time. Substitution options should be surfaced before payment initiation, not after failure.


03 / The Proposed Product Fix

Inline Smart Substitution Toggle (ISST)

Feature Redesign Proposal — Cart Review Screen · High-Impact / Medium-Effort

I propose an Inline Smart Substitution Toggle (ISST): surface algorithmically ranked substitutes for flagged cart items — with a pre-authorisation toggle — at the cart review stage, before checkout initiation. This converts a reactive, flow-breaking OOS recovery loop into a proactive, zero-tap background resolution.

The redesigned flow:

  1. Cart review — inventory confidence signal. Backend checks real-time dark store inventory. Items below a threshold (<30% remaining) are flagged with an amber chip: "Only a few left" — mirroring the signal already on the product listing page, now surfaced in cart context.
  2. ISST — the key interaction. For flagged items, a collapsed accordion appears: "If unavailable, auto-swap with [Substitute + ₹ delta]? → Toggle ON/OFF." Substitute is pre-selected by Zepto's recommendation engine (same brand, similar price). Toggle is OFF by default (respecting user autonomy — Nielsen #3). One tap opts in.
  3. Checkout proceeds normally. User proceeds to in-app UPI payment. Substitution intent is stored server-side against the order.
  4. OOS event — background resolution. If the item goes OOS during packing, substitute is auto-swapped. Push notification: "We swapped [Item] with [Substitute] — ₹[delta] adjusted." Order is not blocked. 10-minute promise preserved.
  5. No OOS event — nothing changes. Toggle was set but never triggered. No UI noise, no unnecessary notification.

Before vs. after:

Current OOS Recovery With ISST
Flow Error → modal → dismiss → back to cart → remove/search → restart checkout ISST toggle in cart (1 tap, optional) → OOS resolves in background → push confirms
Steps ~5 steps · ~40 seconds ~1 optional tap · 0 interruption
Outcome High defection Promise preserved

India-Specific Edge Case — Price Delta Transparency: The price delta on the substitute is non-negotiable for Indian consumer trust. If the substitute costs ₹10 more, display it explicitly. If cheaper, show the saving. In a market where users calculate whether to add a ₹20 item to avoid a ₹30 fee, hiding even a small price delta triggers dark-pattern suspicion. MRP transparency is a cultural expectation — violating it erodes long-term NPS.


04 / Success Metrics — A/B Test Design

I would validate the ISST through a geo-based A/B test, splitting dark stores in Bengaluru and Delhi NCR — both markets where Zepto operates 200+ stores each and where OOS frequency is highest during evening peaks. Minimum run: 4 weeks to capture weekend patterns. Minimum detectable effect: 5% relative improvement on the North Star.

Metric Type Metric Target
North Star OOS Checkout Completion Rate Baseline est. ~54% → Target ≥65% (+11pp)
Primary ISST Opt-in × Swap Satisfaction ≥28% opt-in rate, ≥82% swap satisfaction
Guardrail Post-Delivery Rating & Refund Rate Kill flag if swapped orders show >2% relative refund increase

Secondary signal: Monitor session abandonment rate during peak OOS hours (7–10 PM weekdays, Bengaluru cluster). If ISST reduces the "app opened → order not placed" funnel drop by even 3pp in this cohort, it translates to meaningful GMV recovery at Zepto's current 2.4–2.5M daily order scale.


04.5 / Applied PM Frameworks

Jobs-to-be-Done (JTBD)

User Type Functional Job Emotional Job Social Job
Arjun (Impulse buyer) "Get snacks and drinks delivered before my friends arrive" "Feel like a good host without leaving the house" "Not be the person whose gathering runs out of food"
Rahul (Planned shopper) "Replace my weekly kirana run without sacrificing accuracy" "Feel in control of my household's nutrition and budget" "Feed my family well without spending my Sunday on errands"
Suresh (Kirana-convert) "Get reliable packaged goods delivered; keep produce options open" "Feel like I'm not being cheated on freshness" "Not have to negotiate or remember to carry cash"
Dark Store Picker (Ops) "Fulfil orders accurately within a 3-minute pick window" "Not be the reason an order goes wrong" "Be part of a system that works"

What the JTBD analysis reveals — and the product decisions it drives:

The Arjun/Rahul tension exposes a design conflict that a single substitution UX cannot resolve cleanly. Arjun's job is panic resolution — he has a 45-second attention budget, friends arriving in 20 minutes, and zero tolerance for "are you sure?" friction. For him, the ISST toggle should default OFF (fast path preserved) with a single-tap opt-in that does not interrupt checkout flow. Rahul's job is weekly completeness without surprise — he accepts substitutions in principle, but cares deeply which item was swapped. A generic "nearest equivalent" substitute for atta or eggs is not acceptable to someone who has 12 years of kirana-trained brand preferences. For Rahul, the ISST needs category-level preference settings ("always substitute Britannia bread; never substitute produce") rather than a blanket accept/decline. One toggle built for Arjun fails Rahul, and vice versa. Context-aware defaults — lower cart value + peak hour + single-serve items → default ON; high cart value + planned shopping pattern → prompt for preference setup — is the JTBD-informed design.

Suresh's behaviour reveals Zepto's invisible revenue leak. He still places a ₹1,100 weekly order, so Zepto's retention dashboard shows him as active and healthy. But his ₹500 produce redirect to the neighbourhood sabziwala is invisible in the data. His actual JTBD is not "get groceries fast" — it is "get groceries I can trust." Speed is a hygiene factor for him, not a differentiator; Zepto already clears that bar. The "sourced today" freshness badge proposed in Section 03 addresses exactly this job-to-be-done: it does not improve delivery speed, it provides confidence before the order is placed — which is where Suresh's decision actually happens. At Zepto's scale, even recovering 10% of the category-split users like Suresh would represent measurable GOV.

The dark store picker persona surfaces an ops dependency the ISST creates that is easy to miss from the rider-facing product side. When Arjun's pre-approved substitution fires during packing, the picker needs three things: (1) confirmation the substitution is approved, (2) the specific substitute SKU and location in the dark store, and (3) a revised pick path that routes to the substitute without breaking the 3-minute SLA. The ISST is not a standalone front-end feature — it requires a WMS integration that updates the picker's task queue in real time. A feature spec that stops at the rider-facing UI is incomplete. The picker UX is part of the design surface.


05 / Key PM Takeaway

Strategic Friction vs. AOV Maximisation: The ₹99 Pricing Masterclass

The most instructive PM lesson in this entire teardown is not in the UX frameworks. It is in Zepto's fee structure change from November 2025 — and the second-order thinking behind it.

On the surface, Zepto eliminating handling fees, surge fees, and rain fees looks like a pure consumer-friendly move, backed by Zepto's strong funding position following its 2024 fundraising rounds. But that reading is shallow. Here is what actually happened:

Zepto replaced visible friction (fees) with invisible friction (a lower free-delivery threshold).

The old model: ₹199 minimum for free delivery + ₹2 handling fee + dynamic surge/rain fees. The user saw 3–4 line items of charges. Each was a micro-moment of price scrutiny. Each was a potential exit trigger. The psychological weight was not the ₹2 or the ₹15 rain fee — it was the cognitive burden of evaluating multiple charges simultaneously. Indian consumers, acutely trained by MRP culture and kirana store bargaining, do not passively accept fees. They evaluate them, resent them, and compare them across apps.

The new model: ₹99 minimum for free delivery. Zero other fees. One threshold. One decision. The ₹99 threshold is set just above a single-item impulse purchase (a ₹29 milk pouch, a ₹40 bread loaf) but well below the average order value of ₹430–470. The user's mental calculus becomes trivially simple: "Am I above ₹99? Yes → free delivery. No → add one more item."

This is the tension every PM in Indian quick-commerce must navigate. The old fee model generated direct revenue per order but created visible friction that suppressed conversion and eroded trust. The new model eliminates visible friction but uses the ₹99 threshold to nudge users into adding incremental items — the ₹20 Parle-G packet, the ₹30 Amul butter — to cross the free delivery line. The AOV lift from this nudge may well exceed the per-order revenue that handling fees generated.

The PM lesson: Fees are not just revenue lines. They are UX elements. Every fee is a row in the Bill Details screen, a moment of price scrutiny, and a potential trust violation. In the Indian market — where Blinkit still charges ₹4 handling and Instamart charges ₹9.80 — Zepto's decision to go to zero is not generosity. It is a bet that frictionless checkout conversion + threshold-driven AOV lift will outperform per-order fee revenue.

The meta-lesson for any aspiring APM: The best product friction is friction the user chooses to resolve themselves. A ₹30 delivery fee feels imposed. Adding a ₹20 biscuit packet to cross a threshold feels like a choice. Same economic outcome for the platform. Radically different emotional outcome for the user. That difference is the entire job of product management.


06 / Closing Perspective

Zepto has built something impressive: a checkout that feels fast even when the supply chain operates at the edge of physical feasibility. The fee elimination, the in-app UPI, the ₹99 threshold — these are not random moves. They are a coherent strategy to make the checkout loop as cognitively weightless as possible in a market where Blinkit commands 50%+ share and Flipkart Minutes is scaling to 800+ dark stores.

But the gap I have identified — the out-of-stock recovery loop — is not a visual design problem. It is a systems-thinking problem. The checkout was designed for a world where inventory is reliable. In Indian q-commerce — where a Diwali evening in Karol Bagh can drain a dark store's snack inventory in 40 minutes, where each 2,500 sq ft store stocks only the fastest-moving SKUs — the checkout loop must treat failure states as first-class citizens.

Zepto has received SEBI approval for a ₹11,000–12,000 crore IPO targeting July–September 2026. Public market investors will scrutinise checkout completion rates, OOS recovery efficiency, and the unit economics impact of fee elimination. The Inline Smart Substitution Toggle is not a band-aid — it is a philosophical shift from "we will tell you when something goes wrong" to "we have already prepared for things going wrong." That is the standard a company targeting a ~$7B IPO valuation (₹58,000–70,000 crore; Dhan / Multibagg analyst range, May 2026) must hold itself to.

The 10-minute promise is won or lost in the checkout loop. This is where the product must be ruthless about friction.


Sources

Primary Sources