Six Zepto Dark Stores, Six Different Pet Food Shelves
We read the pet food shelf on Zepto in six dark stores across four cities on the same day. The deepest store carried three times what the shallowest did, a third of the products that appear in more than one store are priced differently, and the same 100g pack of dog treats cost ₹105 in one part of Bengaluru and ₹167 in another. This is the first non-beauty category we have measured on quick commerce.
Read this first: there are no sales figures on this page
Quick commerce publishes no units sold. Not Zepto, not Blinkit, not Swiggy Instamart. In India, Amazon is the only surface that publishes a velocity signal at all, which is why our Amazon shelf reports carry a rupee total and this one does not.
So there is no market size, no revenue, no market share and no growth here. Every share below is a share of product count — how much of what sits on the shelf belongs to whom. It is a measure of distribution and price, not of demand. And because it is a different unit entirely, no number on this page may be set against an Amazon shelf number. Adding the two would produce a figure that means nothing.
Each dark store carries a different shelf
A quick-commerce app looks like one shop. It is not. Every dark store is a separate warehouse with its own assortment, and the difference between them is not marginal.
| Dark store | City | Products |
|---|---|---|
| Indiranagar | Bengaluru | 450 |
| Koramangala | Bengaluru | 448 |
| Powai | Mumbai | 410 |
| Banjara Hills | Hyderabad | 377 |
| Bandra West | Mumbai | 318 |
| Connaught Place | Delhi | 143 |
Indiranagar carries 450 products and Connaught Place carries 143 — 215% more in the deepest store than in the shallowest. A brand that has won a national listing has not won a national shelf.
Two stores in one city are not the same shelf either
We read two dark stores in Bengaluru and two in Mumbai, which is the only way to separate a city effect from a store effect.
In Mumbai, 44% of the products across the two stores appear in only one of them. Bandra West holds 318 and Powai 410, and they share 260. In Bengaluru the same figure is 18% — Koramangala 448 and Indiranagar 450, sharing 405.
So Bandra West and Powai differ from each other more than Bengaluru differs from Hyderabad, and the size of the intra-city gap is itself variable. That is the practical rule this measurement produces: name the dark store, never the city. “We are live in Mumbai” is not a statement about a shelf.
The same product, two prices, one day
554 products appear in more than one dark store, and 199 of them — 36% — carry a different price in different stores on the same day. These are identical listings, matched on Zepto’s own product identifier rather than on the title.
| Product | Pack | Lowest | Highest | Gap |
|---|---|---|---|---|
| Drools Real Chicken Flavor Dog Treats Sticks | 100 g | ₹105 Powai | ₹167 Koramangala | 1.59× |
| Drools Chicken Strawberry Flavor Dog Treats Sticks | 100 g | ₹104 Koramangala | ₹165 Connaught Place | 1.59× |
| Nutriwag Fresh Chicken, Rice & Vegetables Wet Dog… | 300 g | ₹125 Koramangala | ₹178 Bandra West | 1.42× |
| Chip Chops Fish On Stick Dog Treat Combo | — | ₹316 Powai | ₹416 Koramangala | 1.32× |
| Chip Chops Fish On Stick Dog Treat | 70 g | ₹158 Powai | ₹205 Banjara Hills | 1.30× |
The widest gap is 1.59×, and it sits inside one city: a 100g pack of Drools treat sticks at ₹105 in Powai and ₹167 in Koramangala.
The MRP itself differs by store. That same pack is marked ₹125 in two stores and ₹199 in a third, so the spread is not only discount depth — the reference price moves too. We can see that this happens. We cannot see why, and whether it is batch, sourcing or someone’s data error is not visible from outside. We state the observation and stop there.
Who holds the shelf
Ownership is hand-researched from public sources, brand by brand. Twenty-six of the 55 could not be established, so they sit in their own row rather than being guessed into one.
| Ownership | Brands | Products | Share of products | ₹/kg |
|---|---|---|---|---|
| Multinational | 13 | 233 | 35.7% | ₹658 |
| Indian corporate | 7 | 165 | 25.3% | ₹413 |
| Indian D2C challenger | 9 | 146 | 22.4% | ₹960 |
| Others (unverified) | 26 | 108 | 16.6% | ₹647 |
Indian D2C challenger brands hold 22.4% of the products on this shelf, and that is a floor. If every one of the 26 unidentified brands turned out to be an Indian challenger, the figure would be 39.0%. The true number is somewhere between the two and we are not going to pretend to know where.
Indian ownership and challenger status are different questions, and collapsing them would flatter exactly the number this shelf exists to report. Chip Chops belongs to ABK Imports, a Pune importer, and Carniwel to Growel Group, a Hyderabad aquafeed company. Both are Indian-owned; neither is a D2C challenger, so both are counted as Indian corporate.
One brand hides inside another. Kitty Yums belongs to Drools, and so does Purepet: three brand names on this shelf, one company. Read as it arrives, Kitty Yums looks like an independent challenger with 18 products across five stores, and it lands in the challenger row until somebody looks it up.
The other trap is the abbreviation. All 110 Heads Up For Tails listings here are titled HUFT and not one carries the full name, so without a map from one to the other the brand does not appear on this shelf under its own name at all. Neither fold is tidying — each one changes the table.
The challengers are on the shelf. The gap is price, not presence
This shelf was read to test a hypothesis from our own usage data. Pets pulls the largest share of category research on impuls8 — 14.2% — and passes about 2% of it through to brand research. Founders look at the category and then open nothing. The obvious explanation was that there is no Indian D2C brand on the shelf to open.
That was wrong. Eighteen brands are present in all six dark stores, and six of them are Indian D2C challengers: Bark Out Loud, Goofy Tails, Heads Up For Tails, Kennel Kitchen, Nootie and Smylo. They are not missing. They are distributed as widely as Pedigree and Royal Canin.
What separates them is the price ladder. The median Indian challenger product costs ₹960 per kilogram against ₹413 for the Indian corporate brands — 2.3× — with multinationals at ₹658 in between and very little on the shelf between the two ends. A founder researching this category is not looking at an empty shelf. They are looking at an occupied one with a wide price gap in the middle of it, which is a different problem and a more interesting one.
At the other end, five brands appear in exactly one store: Bellotta, Godrej, Pets Empire, Signature and Snackers. On this surface a single-store brand and a six-store brand look identical from the outside, and only a multi-store read separates them.
Every brand on the shelf
Ranked by how many of the six dark stores each brand reaches, then by product count. On a shelf with no velocity figure, distribution is the only ranking the data supports — this is not a league table and the order is not a size order.
| Brand | Ownership | Products | Stores | ₹/kg | Median discount |
|---|---|---|---|---|---|
| Drools | Indian corporate | 72 | 6/6 | ₹297 | 15% |
| Pedigree | Multinational | 58 | 6/6 | ₹341 | 10% |
| Royal Canin | Multinational | 48 | 6/6 | ₹1029 | 12% |
| Whiskas | Multinational | 43 | 6/6 | ₹561 | 5% |
| Purepet | Indian corporate | 37 | 6/6 | ₹345 | 13% |
| Heads Up For Tails | Indian D2C challenger | 34 | 6/6 | ₹973 | 17% |
| Sheba | Multinational | 29 | 6/6 | ₹1128 | 7% |
| Chip Chops | Indian corporate | 28 | 6/6 | ₹2771 | 9% |
| Active | Others | 26 | 6/6 | ₹625 | 19% |
| Bark Out Loud | Indian D2C challenger | 24 | 6/6 | ₹2305 | 4% |
| Smylo | Indian D2C challenger | 19 | 6/6 | ₹1200 | 7% |
| Purina | Multinational | 15 | 6/6 | ₹357 | 7% |
| Goofy Tails | Indian D2C challenger | 13 | 6/6 | ₹995 | 7% |
| Nootie | Indian D2C challenger | 11 | 6/6 | ₹394 | 20% |
| Temptations | Multinational | 11 | 6/6 | ₹1670 | 6% |
| Kennel Kitchen | Indian D2C challenger | 10 | 6/6 | ₹562 | 10% |
| Let’s Bite | Others | 6 | 6/6 | ₹247 | 16% |
| Moochie | Multinational | 6 | 6/6 | ₹650 | 2% |
| Benny’s Bowl | Indian D2C challenger | 24 | 5/6 | ₹813 | 25% |
| Kitty Yums | Indian corporate | 18 | 5/6 | ₹462 | 9% |
| Petoska | Indian D2C challenger | 10 | 5/6 | ₹1950 | 13% |
| JerHigh | Multinational | 8 | 5/6 | ₹2714 | 13% |
| Pawfect | Others | 8 | 5/6 | ₹4050 | 0% |
| NutriMeow | Others | 5 | 5/6 | ₹737 | 9% |
| LICKICIOUS | Others | 3 | 5/6 | ₹182 | 25% |
| Chappi | Multinational | 2 | 5/6 | ₹183 | 4% |
| Hearty Oven | Others | 2 | 5/6 | ₹668 | 33% |
| Wilderness | Others | 1 | 5/6 | ₹249 | 14% |
| Felix | Multinational | 9 | 4/6 | ₹569 | 12% |
| Carniwel | Indian corporate | 8 | 4/6 | ₹635 | 25% |
| Hachi Wilson | Others | 8 | 4/6 | ₹725 | 40% |
| Basil | Others | 5 | 4/6 | ₹1627 | 0% |
| Bearhugs | Others | 4 | 4/6 | ₹1700 | 40% |
| Maxi | Others | 3 | 4/6 | ₹149 | 17% |
| Nutriwag | Others | 2 | 4/6 | ₹593 | 11% |
| Cesar | Multinational | 1 | 4/6 | ₹900 | 10% |
| Applod | Others | 5 | 3/6 | ₹722 | 24% |
| Bowlers | Others | 4 | 3/6 | ₹1494 | 20% |
| Waggies | Others | 4 | 3/6 | ₹191 | 7% |
| Purrfeto | Others | 3 | 3/6 | ₹500 | 20% |
| D-OG Stuff | Others | 2 | 3/6 | ₹1250 | 0% |
| Foodie Puppies | Others | 2 | 3/6 | ₹1215 | 25% |
| Kitekat | Multinational | 2 | 3/6 | ₹231 | 10% |
| BLEP | Others | 1 | 3/6 | ₹3957 | 31% |
| Purple Tails | Others | 1 | 3/6 | ₹3128 | 27% |
| DatGud | Others | 3 | 2/6 | ₹304 | 50% |
| Zoomies | Others | 3 | 2/6 | ₹750 | 15% |
| Dogsee | Indian D2C challenger | 1 | 2/6 | ₹1961 | 27% |
| Fullr | Others | 1 | 2/6 | ₹2728 | 4% |
| Himalaya | Indian corporate | 1 | 2/6 | ₹417 | 10% |
| Snackers | Others | 4 | 1/6 | ₹2371 | 4% |
| Bellotta | Multinational | 1 | 1/6 | ₹529 | 18% |
| Godrej | Indian corporate | 1 | 1/6 | ₹234 | 6% |
| Pets Empire | Others | 1 | 1/6 | ₹410 | 30% |
| Signature | Others | 1 | 1/6 | ₹543 | 10% |
Highlighted rows are Indian D2C challengers. Price per kilogram is a median, and a multipack is multiplied out before it is calculated — a listing that reads “15 × 70 g” is 1,050g, and reading it as 70g would put the per-kilogram figure fifteen times too high. Pack size parses on 90% of listings; where it does not, the product contributes to the product count and not to the price ladder.
Method, and what this is not
Four pinned queries define this shelf — dog food, cat food, dog treats and pet food — run in a browser against Zepto search on 8 September 2026, with the delivery address set to each dark store before each read. Change the query list and you have measured a different shelf, so the list is published rather than described. 3,039 rows were harvested and 2,146 survive the relevance rule, which removed 9 accessory records, or 0.4%.
Scrolling is part of the method, and we learned that the hard way. Zepto search lazy-loads: the first screen returns about 25 products where the full page holds 140 to 170. An earlier crawl of a quick-commerce shelf took its tiles after a fixed wait and never scrolled, so it captured roughly 15% of the shelf and did not look broken. The missing part is the tail, and the tail is where small brands live — on the truncated read of this same category, no Indian challenger reached all six stores. On the complete read, six do. Every quick-commerce crawler we run now counts at first paint, scrolls to the end, and counts again.
Stock is not readable on this surface. Every one of the 3,039 rows reads as in stock, because Zepto does not surface out-of-stock products in search at all. That is an absent signal, not a 0% stock-out rate, and “nothing is out of stock” would be a claim drawn from a field we never had.
Zepto publishes no brand field, so brand is derived from the product title and then folded — by case, punctuation, abbreviation and corporate parent. That fold is the measurement. Left unfolded, Drools reads as three brands and Heads Up For Tails as two, and the ownership table changes shape.
One retailer, six stores, one day. Zepto decides what each dark store holds, and a competitor’s absence from a store is a stocking decision we can observe and not explain. This is a shelf, not a market.
Related measurements
The full report, with every table and the complete limits section, is free to download as a PDF. The full library is at impuls8.com/reports.
We measure Amazon shelves the same way on sunscreen, baby skincare and colour cosmetics, and those reports carry a rupee total because Amazon publishes units. Those totals and these percentages are not comparable and must not be placed side by side — one measures money moving, the other measures what is stocked.
This is one category, on one platform, in six stores, on one day. The same read runs on any category you name and on a cycle, which is where it earns its keep: a brand can see its own quick-commerce numbers in the seller portal and cannot see anyone else’s, in any city. If you sell in a category and want it watched with your brand and your competitors in it, that is what we do for enterprise clients.
Free account
See this for the niche you’re weighing
Distribution is not national and price is not one number. Check who actually holds the shelf you are weighing, store by store, before you commit to it.
Start free — track your niche →No card. Google sign-in, 10 seconds.