🐾Market Report · September 2026

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.

652
products, across six dark stores
55
brands on the shelf
215%
more in the deepest store than the shallowest
22.4%
held by Indian D2C challengers (a floor)

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 storeCityProducts
IndiranagarBengaluru450
KoramangalaBengaluru448
PowaiMumbai410
Banjara HillsHyderabad377
Bandra WestMumbai318
Connaught PlaceDelhi143

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.

ProductPackLowestHighestGap
Drools Real Chicken Flavor Dog Treats Sticks100 g₹105 Powai₹167 Koramangala1.59×
Drools Chicken Strawberry Flavor Dog Treats Sticks100 g₹104 Koramangala₹165 Connaught Place1.59×
Nutriwag Fresh Chicken, Rice & Vegetables Wet Dog…300 g₹125 Koramangala₹178 Bandra West1.42×
Chip Chops Fish On Stick Dog Treat Combo—₹316 Powai₹416 Koramangala1.32×
Chip Chops Fish On Stick Dog Treat70 g₹158 Powai₹205 Banjara Hills1.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.

OwnershipBrandsProductsShare of products₹/kg
Multinational1323335.7%₹658
Indian corporate716525.3%₹413
Indian D2C challenger914622.4%₹960
Others (unverified)2610816.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.

BrandOwnershipProductsStores₹/kgMedian discount
DroolsIndian corporate726/6₹29715%
PedigreeMultinational586/6₹34110%
Royal CaninMultinational486/6₹102912%
WhiskasMultinational436/6₹5615%
PurepetIndian corporate376/6₹34513%
Heads Up For TailsIndian D2C challenger346/6₹97317%
ShebaMultinational296/6₹11287%
Chip ChopsIndian corporate286/6₹27719%
ActiveOthers266/6₹62519%
Bark Out LoudIndian D2C challenger246/6₹23054%
SmyloIndian D2C challenger196/6₹12007%
PurinaMultinational156/6₹3577%
Goofy TailsIndian D2C challenger136/6₹9957%
NootieIndian D2C challenger116/6₹39420%
TemptationsMultinational116/6₹16706%
Kennel KitchenIndian D2C challenger106/6₹56210%
Let’s BiteOthers66/6₹24716%
MoochieMultinational66/6₹6502%
Benny’s BowlIndian D2C challenger245/6₹81325%
Kitty YumsIndian corporate185/6₹4629%
PetoskaIndian D2C challenger105/6₹195013%
JerHighMultinational85/6₹271413%
PawfectOthers85/6₹40500%
NutriMeowOthers55/6₹7379%
LICKICIOUSOthers35/6₹18225%
ChappiMultinational25/6₹1834%
Hearty OvenOthers25/6₹66833%
WildernessOthers15/6₹24914%
FelixMultinational94/6₹56912%
CarniwelIndian corporate84/6₹63525%
Hachi WilsonOthers84/6₹72540%
BasilOthers54/6₹16270%
BearhugsOthers44/6₹170040%
MaxiOthers34/6₹14917%
NutriwagOthers24/6₹59311%
CesarMultinational14/6₹90010%
ApplodOthers53/6₹72224%
BowlersOthers43/6₹149420%
WaggiesOthers43/6₹1917%
PurrfetoOthers33/6₹50020%
D-OG StuffOthers23/6₹12500%
Foodie PuppiesOthers23/6₹121525%
KitekatMultinational23/6₹23110%
BLEPOthers13/6₹395731%
Purple TailsOthers13/6₹312827%
DatGudOthers32/6₹30450%
ZoomiesOthers32/6₹75015%
DogseeIndian D2C challenger12/6₹196127%
FullrOthers12/6₹27284%
HimalayaIndian corporate12/6₹41710%
SnackersOthers41/6₹23714%
BellottaMultinational11/6₹52918%
GodrejIndian corporate11/6₹2346%
Pets EmpireOthers11/6₹41030%
SignatureOthers11/6₹54310%

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.