Zepto and Instamart have two opposite problems. One has the demand, the other has the basket, and neither has both. Zepto calls itself the DMart of quick commerce and copied the cheap-prices playbook, but DMart makes you drive to the store, while Zepto pays a rider to deliver every tiny basket to your door.
Everyday low prices means the average Zepto basket is ₹357, against ₹525 at Blinkit. On that smaller basket, at a lower take rate, Zepto keeps about ₹68 of every order; Blinkit keeps ₹141. And it costs almost exactly the same to get either basket to your door - around ₹60 for both. So Zepto is carving that ₹60 out of ₹68, and Blinkit out of ₹141. After accounting for operating and fixed costs, Zepto loses ₹59 per order.
Zepto's problem was never demand. Its dark stores are the busiest in the country, 2,071 orders a day each, way more than Blinkit's. None of the density changes the one number that matters. Its ceiling is purely the basket.
Zepto's growth engine is low prices, and low prices structurally produce small baskets. To lift the basket, it would have to act against its own positioning: minimum order values, fewer discounts, pushing higher-ticket categories. Each of those risks the frequency and the price-leader identity that got it here. Zepto can nudge basket up via category mix and ads while remaining value-focused.
Instamart has almost Blinkit's basket and still loses ₹76 an order, more than Zepto. It has the basket Zepto lacks and still bleeds because it's sub-scale. Its stores are half as busy as Zepto's. When stores run half-full, the rent and staff and fixed costs get spread over too few orders. That's why its per-order overhead is the highest (₹103), a symptom of weak demand.
The three companies form a clean trichotomy.