Inventory Forecasting for Quick Commerce Dark Stores

A brand will show us a beautiful quick commerce forecast. One number per SKU, citywide, sometimes nationwide, accurate to within a few percent at the aggregate. And then half the dark stores in that same city are stocked out by 9pm while the other half are sitting on dead inventory the platform is about to charge them to hold. The forecast was not wrong. It was just answering a question nobody on a ten-minute delivery promise actually asks.

Quick commerce does not fulfil from a warehouse. It fulfils from a dark store that serves a two-to-three kilometre radius, and demand inside that radius has almost nothing to do with the national average. The forecasting model that works for Amazon, where stock pools centrally and any unit can serve any customer, breaks the moment your inventory is scattered across hundreds of tiny independent nodes that cannot share stock with each other. And there are a lot more of those nodes now. India crossed roughly 6,000 operational dark stores entering 2026, and the leading platforms are still building, so the grid you have to forecast against is denser and finer-grained every quarter.

Why the aggregate forecast lies to you

The core problem is pooling. On a marketplace, a thousand units in one warehouse can absorb demand from anywhere in the country, so the variance you forecast against is smoothed across the whole map. In quick commerce there is no pool. Each dark store holds its own stock, sells only to its own radius, and cannot lend a unit to the store three kilometres away that just sold out. You are not forecasting one demand curve. You are forecasting hundreds of them, each small, each noisy, each local.

And local demand is genuinely different store to store. A dark store in a young-professional pocket of Bengaluru sells protein bars, cold brew, and condoms at volumes a store in a family neighbourhood across the same city will never touch. Demand is shaped by who lives in the radius, what the nearest competing stores carry, the weather that afternoon, and whether there is a cricket match on. Aggregate it all together and the signal that should drive each store’s order is averaged into mush.

You are not forecasting a product. You are forecasting a product in a postcode, and the postcode matters more than the product.

This is the same trap that ruins assortment decisions, which is why we treat what each dark store carries as a per-store exercise rather than a catalogue you push everywhere. The forecast and the assortment are the same decision viewed from two angles. Once you accept that the right range differs by store, you have already accepted that the right quantity does too.

Fill rate is the number that actually pays you

Marketplace operators obsess over availability. Quick commerce operators should obsess over fill rate, and the distinction is not pedantic. Fill rate is the share of demand inside a given store’s radius that you could actually serve from that store’s shelf at the moment the order came in. It is a local number by definition. A national availability figure of 95 percent can hide a dozen dark stores running at 60 percent fill on your hero SKU, and those are precisely the stores quietly bleeding you.

The bleed is worse than the lost sale. When your product is out of stock in a dark store, the platform’s app does not show an empty shelf. It shows your competitor, or it drops your item from the listings that radius sees entirely. A few days dark in one store and you lose placement in that store’s slate, which means you lose it even after you restock. Stockouts in quick commerce are hyperlocal ranking events, and the damage compounds exactly the way it does on marketplaces. We have made the broader case that the real cost of a stockout is the ranking you cannot see on the invoice, and on a per-store grid that cost simply multiplies by the number of stores you let go dark.

How to forecast when every store is its own market

You cannot run a clean statistical model on a SKU that sells four units a day in one store. The numbers are too small. So the practical approach is to stop pretending each store is a standalone forecasting problem and start clustering stores that behave alike.

  • Cluster stores by demand pattern, not geography. Two stores in different cities can sell the same mix because the same kind of people live in their radius. Group stores by what actually sells, then forecast the cluster and apply it down to the store. This borrows signal across thin data without flattening real local difference.
  • Anchor to local history, adjust for local events. Last month in this store is a far better base than this month nationally. Layer on what is specific to that radius: a festival, a heatwave, a nearby office reopening, a competitor store going live next door.
  • Forecast at the SKU-store-day grain for hero items, coarser for the long tail. You do not need daily store-level precision on the slow movers. Spend the modelling effort on the handful of SKUs per store that drive fill rate and revenue.
  • Treat new stores as cluster members from day one. A store with no history is not a blank slate. It is most like the existing stores serving similar radii, so seed its forecast from its cluster and correct as real data arrives.

The point of all of this is not statistical elegance. It is to get the order quantity for each store close enough that fill rate holds without burying that store in stock it cannot move before it expires or racks up holding fees. The tighter your replenishment cycle, the more forgiving the forecast can be, which is why forecasting and replenishment cadence have to be designed together rather than handed off between teams.

Spiky demand, multiplied by hundreds of stores

Quick commerce inherits all the spike problems of Indian marketplaces and then makes them local. A platform sale, a long weekend, a sudden downpour that pushes everyone to order in rather than step out. The spike is real, but it does not land evenly. It hits the stores serving the right radius and barely touches the others.

The discipline of separating steady-state baseline from event-driven demand, which we laid out for forecasting marketplace demand when it is spiky, carries straight over. What changes is that you now run that separation per cluster, because a Friday-night spike in alcohol-adjacent snacking shows up in one set of stores and a Sunday grocery top-up spike shows up in another. One national event forecast smears these into a single bump that is wrong everywhere it lands.

The mix is also shifting under you. Non-grocery categories like electronics, beauty, and small appliances have been growing faster than food on the major platforms, which means the spiky, considered-purchase demand patterns you used to ignore now sit inside your hero set in more stores than before. A cluster that was once pure grocery may now need a different forecast shape entirely.

Sequence stores so forecasting is even possible

None of this works if you are trying to forecast a thousand dark stores you launched all at once with no history and no operational depth in any of them. Forecasting quality is downstream of how deliberately you expanded. Brands that go deep in a few high-density cities before they go wide build the per-store history and the cluster patterns that make hyperlocal forecasting tractable. Brands that sprint across the map forecast everything badly at once.

This is why we are unromantic about which cities to launch quick commerce in first. Concentration is not just a marketing or unit-economics call. It is what gives your forecasting model enough local signal to keep fill rates high instead of guessing blind across a footprint too thin to learn from.

What changed recently

The biggest shift for brands is that the platform increasingly owns the forecast. Blinkit moved to an inventory-led, first-party model from September 2025, buying stock from brands, holding it under its own GSTIN, and selling as the legal seller. By the third quarter of FY26 it reported that roughly 90 percent of net order value came from its own inventory, a transition Blinkit itself framed as a route to better availability and fill rates, per Medianama. When the platform owns replenishment, your forecast does not stop mattering. It becomes the input you use to push allocation, argue stock cover, and contest the platform’s own demand planning store by store rather than accepting a citywide number.

The grid you forecast against is also getting bigger and faster. Blinkit has said it is targeting 3,000 dark stores by March 2027 while staying profitable, as reported by Business Standard, and Flipkart Minutes is moving to double its network toward roughly 1,500 stores by the end of 2026, leaning hard into tier-2 and tier-3 towns. More stores in newer, less-understood radii means more nodes with thin history, which is exactly where cluster-seeding earns its keep. Storyboard18 reports non-grocery categories growing well faster than food across the major platforms, which is the assortment-mix change feeding straight back into how your forecast clusters need to be drawn.

Make the dark store the unit of planning

The brands that win quick commerce stop thinking in national SKUs and start thinking in store-SKUs. Every forecast, every order, every fill-rate target is set at the store level and rolled up only for reporting, never for deciding. They cluster stores so thin data becomes usable, they protect fill rate on the items that matter per radius, and they accept that a perfect national number is worthless if it leaves individual stores dark. In an inventory-led world where the platform is doing its own forecasting, the brand with the sharper per-store view is the one that wins the allocation argument.

This is the operational core of what our Operations & Logistics Management team builds for quick commerce brands, working alongside Marketplace Performance and Data & Analytics because the per-store demand signal and the platform fill-rate penalties are two halves of the same problem. Forecast the postcode, not the country. Hold fill rate store by store. The aggregate will take care of itself once the stores do.

Cutting Return Rates on Indian Marketplaces Without Killing Sales

Every brand that sells at scale on Indian marketplaces eventually meets the same wall. Sales are climbing, the catalog looks healthy, and then the returns report lands and quietly eats the margin. The reflex is to treat it as a logistics failure. Better packaging, a stricter courier, a tighter RTO process. Those help at the edges. But the uncomfortable truth we keep arriving at is that returns are a content and packaging problem long before they are a logistics problem. The decision to return is usually made before the parcel is even picked.

If you want to cut return rates without killing sales, you fix expectations upstream. You stop the wrong buyer from ordering, and you make sure the right buyer knows exactly what is coming. Everything downstream is damage control.

Returns are an expectation gap, not a defect rate

Start with the distinction that actually matters. A genuine defect return is rare and largely outside your control. The overwhelming majority of marketplace returns in India are not about a broken product. They are about a product that arrived different from what the buyer pictured. Wrong size. Color that looked richer on screen. Material that felt premium in the photo and ordinary in the hand. Fit that flattered the model and not the buyer.

That gap between the imagined product and the real one is where returns live. And that gap is built almost entirely by your listing. The images, the size chart, the description, the attributes. By the time the courier is involved, the verdict is already written. This is why we keep saying that fashion returns in particular are a catalog problem and not a courier problem, an argument we make in full in our piece on why fashion returns are a catalog problem.

You cannot package your way out of a promise the listing already broke.

The cheapest return is the order that never happens

This sounds backwards, so sit with it. A return costs you the forward shipping, the reverse shipping, the inspection, the restocking, and often a product you can no longer sell as new. An order you prevented from a clearly wrong-fit buyer costs you nothing but a sale you were going to lose anyway.

The goal is not to suppress demand. It is to be honest enough in the listing that the people who order are the people who keep. A precise size chart loses you the buyer who would have returned and keeps the buyer who would have stayed. That is a trade worth making every time, because return-heavy revenue is the most expensive revenue you can book.

The mechanics of this overlap heavily with conversion work, because the same vague listing that suppresses conversion also invites returns. We pull that thread apart in our breakdown of the catalog mistakes that quietly kill conversion. Honest specificity does both jobs at once.

Fix the upstream layer first

Before you touch a single logistics setting, work through the parts of the listing that set expectations. In rough order of impact:

  • Size and dimensions. An India-relevant size chart with real garment measurements, not a generic S to XL grid. For non-apparel, exact dimensions and weight so nothing arrives smaller than imagined.
  • True-to-life images. Color-accurate shots, the texture in close-up, and the honest angles buyers worry about. The back, the underside, the fastening. Show the thing that would otherwise disappoint them at the doorstep.
  • Material and care detail. Tell them the fabric, the finish, the weight. A buyer who knows it is lightweight cotton does not feel cheated when it is lightweight cotton.
  • Scale references. A product shown in hand or in context returns less than one floating on white, because the buyer is not surprised by its size.
  • Complete attributes. Occasion, fit type, sleeve, neck, age group. These both place the listing in front of the right buyer and quietly filter out the wrong one.

Notice that none of this is logistics. It is catalog discipline. The buyer who has seen the real product, at the real scale, in the real color, with the right size guidance, simply has far less reason to send it back.

Packaging is the second promise

The listing makes the first promise. The packaging makes the second. A product that survives the journey intact, looks deliberate when opened, and matches the listing photos closes the expectation loop. Flimsy packaging does the opposite. It plants doubt about quality at the exact moment the buyer is deciding whether they trust what they bought. Right-sized boxes, protection that matches the fragility, and a presentation that feels intentional are not cosmetic. They are return prevention.

Then, and only then, the logistics layer

Once the upstream work is done, the logistics decisions actually start to matter, because now you are managing real defects and edge cases rather than papering over an expectation gap. This is where fulfillment model and RTO management earn their place.

Your fulfillment choice shapes both the cost of a return and how returns are inspected and graded. Platform-fulfilled inventory is handled and re-circulated differently from self-shipped stock, and the economics of each shift once your return rate is known rather than guessed. We work through that arithmetic in our comparison of FBA, Easy Ship, and self-ship for India. Pick the model with your real return rate in front of you, not a hopeful one.

RTO management, the discipline of reducing parcels that come back undelivered, is its own subproblem and largely about address quality, prepaid mix, delivery-attempt logic, and serviceability checks at checkout. It is real work, but it is a different lever from buyer-driven returns, and conflating the two is how teams end up optimizing the wrong thing.

The metric that keeps you honest

Track return rate at the SKU level, never just the account level. An account-wide number hides everything that matters. The truth is almost always concentrated. A handful of SKUs drive a disproportionate share of returns, usually for one diagnosable reason. One has a misleading hero image. One has a size chart copied from a different product. One photographs two shades warmer than reality.

When you find a high-return SKU, do not reach for the courier. Pull up the listing and ask what it promised that the product did not deliver. Fix that specific gap, then watch the rate on that SKU alone. This is slow, unglamorous, per-SKU detective work, and it is the only approach that moves the number without suppressing sales. Build the habit of this review into your operating cadence from the start, which is exactly the kind of groundwork we lay out in the operations setup checklist to run before you list a single SKU.

What changed recently

The returns problem stopped being a quiet back-office line item and became a platform-level battleground over the last year. Three shifts are worth folding into how you operate.

First, the platforms are now openly tightening the screws on return-heavy behaviour. Marketplaces from Amazon to Flipkart to Myntra have moved to curb wardrobing and serial returners, with Myntra reportedly slapping convenience fees and revoking loyalty privileges for customers who return too often, as Rest of World documented as this regime took shape. The practical read for a brand is simple. The free-returns era that masked your expectation gaps is closing, and the buyers most likely to be filtered out by these policies were never your keepers anyway.

Second, quick commerce has collapsed the return window from days to minutes. Blinkit rolled out ten-minute returns and exchanges for clothing and footwear in select metros, and Zepto followed with its own instant returns and exchange feature across most categories, per Business Standard and Inc42. When a return is as frictionless as the order, the listing has to do even more of the expectation work upfront, because the buyer can reverse a wrong-fit decision before the courier has left the building. If you are weighing quick commerce as a launch surface, the return mechanics belong in that math from day one, which is part of why we argue platform choice should be deliberate in our platform sequencing piece.

Third, the regulatory and tax ground is shifting underneath returns. The Enforcement Directorate filed a FEMA complaint against Myntra over an alleged 1,654 crore rupee FDI violation tied to its wholesale-to-retail structure, as reported by Business Standard. It is a reminder that the entities you transact through, and the way returns and settlements flow across them, sit inside a compliance frame that is tightening, not loosening. None of this changes the core discipline. It just raises the cost of treating returns as someone else’s problem.

What this looks like as ongoing work

Cutting returns is not a project you finish. It is a loop you run. Identify the high-return SKUs, diagnose the expectation gap, fix the listing or the packaging, measure the specific SKU, repeat. Done well, the return rate falls while sales hold or grow, because you removed the cause rather than discouraging the buyer.

This is the core of Operations & Logistics Management as we practice it. It leans on Catalog & Listing Optimization to close the expectation gap at the source, on Marketplace Account Management to keep the SKU-level review running as a cadence rather than a one-off cleanup, and on disciplined fulfillment choices to make the unavoidable returns cheap to absorb.

The brands that win the returns problem are not the ones with the best couriers. They are the ones whose listings tell the truth so plainly that the product at the door is never a surprise. Fix the promise, and the parcel mostly stays delivered.

The Real Cost of a Stockout on Your Marketplace Ranking

Most sellers price a stockout as the revenue they missed while the listing was dark. Take the days out of stock, multiply by the daily run rate, and there is your loss. That number is real, and it is also the smallest part of the bill. The expensive part starts the day you come back. Because the marketplace did not just stop showing your listing while you were out. It quietly decided you were a riskier bet, demoted you, handed your slot to a competitor, and let your ad relevance go cold. You restock and discover the sales do not come back at the old rate. They come back slowly, at a higher cost, on a listing that has to earn its old position again.

This is the argument we make to every brand we run operations for. Availability is not a logistics detail. It is a growth metric. A stockout is not a pause. It is a setback you pay down for weeks. If you treat going out of stock as a minor inconvenience, the ranking system will teach you otherwise on its own schedule.

What the algorithm actually does when you go dark

Marketplaces are matching engines. They exist to put the buyer in front of the thing most likely to convert and ship cleanly. An out-of-stock SKU cannot do either. So the moment you cannot fulfil, the engine has every reason to stop ranking you and a strong reason to start preferring whoever can. On Amazon the listing falls out of organic position and frequently loses any deal or badge eligibility tied to availability. On Flipkart the slot gets reassigned. On quick commerce the SKU simply disappears from the dark store’s servable set in that pincode.

None of this is punitive. It is the system doing its job. But the effect on you is the same as a penalty. Your conversion history pauses, your velocity resets, and the competitor who stayed live banks the sales and the signal you used to own. When you return, you are not resuming. You are re-entering a race that kept running without you.

A stockout is the one operational failure where your competitor gets paid for your mistake. The slot does not sit empty. It goes to whoever stayed available.

The ad relevance tax nobody budgets for

Here is the part that surprises founders most. When a SKU goes out of stock, your ads on it usually pause too, and ad relevance is not a thing that waits patiently for you. Click-through and conversion history are what earn you a low cost per click and a good placement. Let that history go stale and the auction treats you like a colder advertiser when you switch the campaign back on. You come back to higher CPCs for the same keywords you used to win cheaply, because the system has less recent evidence that your ad converts.

So the real cost stacks in three layers. The sales missed during the outage. The organic rank you have to rebuild after it. And the inflated ad spend you pour in to buy back the visibility you used to get for free. Most stockout post-mortems count only the first layer. The brands that count all three stop treating availability as optional.

Why availability belongs on the growth dashboard

If availability resets rank and rank drives revenue, then availability is a growth lever, not a back-office number. We put in-stock rate on the same dashboard as conversion and ad efficiency, because it explains moves in both. A dip in sales that looks like a conversion problem is often just a SKU that was out for three days last week and is still climbing back. If you are not watching availability, you will misdiagnose the symptom and tune the wrong knob.

The fix is upstream, and it is mostly forecasting. Running out is almost always a planning failure dressed up as a logistics one. We go deep on this in inventory forecasting for marketplaces when demand is spiky, because Indian demand does not arrive in a smooth line. It arrives in sale-event walls and festival spikes that punish anyone forecasting off a flat average. For quick commerce the stakes are even sharper, since a dark store has minutes of buffer, not days, which is why we treat forecasting for quick commerce dark stores as its own discipline rather than a smaller version of the marketplace problem.

The lead-time trap that creates most stockouts

The single most common cause of an avoidable stockout is a mismatch between how you sell and how you replenish. Your sales velocity is measured in days. Your inbound is measured in weeks. If your fulfilment model adds a long check-in or transfer time and your reorder point does not account for it, you will go out of stock with inventory sitting in a warehouse you cannot ship from yet.

This is why fulfilment choice and stockout risk are the same conversation. A model with fast, predictable inbound lets you run leaner without flirting with zero. A model with slow or variable check-in forces you to carry a fatter safety buffer just to stay live. We lay out that tradeoff in full in the fulfilment math for India, and the headline is simple. The right fulfilment mix is partly a decision about how often you are willing to risk going dark.

The operational guards that actually keep a SKU live are unglamorous and they work:

  • Reorder points set off lead time, not gut feel. Calculate the days of cover you burn during your real inbound window, add a buffer for variability, and reorder before you hit it. Not when the shelf looks low.
  • Safety stock sized to demand volatility, not a flat number. A SKU with spiky, event-driven demand needs a deeper buffer than a steady mover. One blanket rule across the catalogue guarantees you overstock the calm ones and starve the volatile ones.
  • A watched list of hero SKUs. The ten products that carry your rank and your ad budget deserve daily eyes on cover. These are the ones whose stockout is most expensive, so they earn the most attention.
  • Buffer split across fulfilment nodes. Never let one warehouse or one dark store be a single point of failure for a top SKU. A regional outage should dent availability, not erase it.
  • Pre-event lock-ins. Before any big sale window, freeze and confirm cover on hero SKUs early. Going out of stock mid-event is the most expensive stockout there is, because it wastes the rank and ad spend you built specifically to win that window.

What changed recently on quick commerce

The quick commerce stockout has quietly become a different animal, and brands selling on Blinkit, Zepto, and Instamart need to understand why. Through FY26 Blinkit moved from a marketplace model, where it listed your stock, to an inventory-led model where it buys goods from you and owns the inventory in the dark store itself. Inc42 reported the platform told sellers it would directly purchase goods from sellers under the new structure rather than facilitate third-party listings. By the December 2025 quarter, per Storyboard18, the bulk of Blinkit volume was already flowing on its own inventory.

That shift moves part of the availability decision out of your hands and onto the platform’s buying and demand-planning. Your job changes from keeping your own listing live to making sure the platform reorders you before its dark-store cover runs out. A SKU the buyer underestimates goes dark in a pincode no matter how much stock you are holding upstream. The lever is now sell-through data and joint forecasting with the platform, not just your own reorder point.

The penalty side got sharper too. Quick commerce platforms increasingly grade brands on fill rate, the share of an ordered quantity you actually deliver, and they charge for the gap. Inc42’s reporting on the sector’s brand economics flags that a fill rate that looks acceptable on paper can still bleed margin, because a shortfall on part of an order can trigger a penalty on the value of the whole invoice. So on quick commerce a stockout is not just lost rank. It is a direct charge against the order it touched, on top of the demotion that follows.

All of this is happening while the network gets denser. Blinkit reported 2,027 dark stores by December 2025 and is targeting 3,000 by March 2027, per Storyboard18. More nodes means more pincode-level places your SKU can quietly go unservable, and more reason to treat fill rate as a number you watch by store, not just a national average.

How to recover when it has already happened

Sometimes you go out anyway. A shipment is held, a supplier slips, a forecast misses. The goal then is to shorten the demotion and rebuild signal fast. Get back in stock at the right price, do not relaunch with a panic discount that trains buyers to wait for it. Resist the urge to slash the ad budget to zero on the way back, because a thin reintroduction prolongs the cold-relevance period. A measured push to rebuild click and conversion history is usually cheaper over a month than a slow organic crawl.

Most of all, log it. A stockout that nobody records is a stockout you will repeat, because the lesson lived in one person’s memory and left when they did. We fold availability into the structured monthly review we describe in the monthly account health audit every serious seller should run, so that in-stock rate is tracked as a trend, not noticed only after the damage. A SKU that went out three times last quarter is telling you something about its reorder logic that one outage never would.

Treat availability like the growth metric it is

The reframe is the whole point. A stockout is not a gap in your sales chart. It is a reset of the rank and relevance you spent money and months building. The sales you miss while you are out are the cheap part. The position you forfeit, the ad efficiency you lose, and on quick commerce the fill-rate penalty you eat are the part that keeps charging you after the warehouse refills. That is why we run Operations & Logistics Management with in-stock rate treated as a first-class number, why our Marketplace Account Management work watches availability alongside health metrics, and why Marketplace Growth for us starts with the unglamorous truth that you cannot rank a listing you cannot fulfil. Keep the hero SKUs live and most of the ranking battle is already won. Let them go dark and you spend the next month buying back ground you used to hold for free.

Book a meeting