Workflows by industry

How quick commerce teams place dark stores to cover a city in 15 minutes

Place the next dark store where the most people sit outside your current 15-minute coverage. How to measure coverage, rank gaps and check the grocery shops already there.

xMap Flows team · · 5 min read

Quick commerce teams place a dark store where it adds the most uncovered people. Draw the area each existing dark store reaches within your delivery promise, often 15 minutes, add up the residents inside those shapes, and compare that with the whole city. The next site is the candidate whose own 15-minute area holds the largest number of people your network does not reach yet, adjusted for how well local grocers already serve them. It is a coverage problem first and a property problem second.

This is for network planning, expansion and growth teams at grocery delivery and quick commerce companies, and for the brokers who find their units. It explains how to measure coverage, a worked example from a made-up network in Mumbai, and how an AI employee keeps the shortlist current as the city and your network change.

Think in coverage, not in pins

A map of dark-store pins looks reassuring because the pins are spread out. Customers do not live at pins; they live in the spaces between them, and a 15-minute promise only holds where riders can actually get there. Two pins 3 km apart can leave a whole district unreached if a river or a rail yard sits between them, while a third pin in the wrong place mostly overlaps the first two. The question that helps is simple: of the people in this city, how many are within 15 minutes of at least one of our stores, and where are the ones who are not?

Measuring how much of the city you cover

  1. List your current dark stores and every candidate unit with a position.
  2. Draw a Travel area of 15 minutes around each, by car or by bike, depending on how your riders travel. That is the limit the block draws today.
  3. Count the residents inside each area with Demographics. It has figures in about 100 countries, India, Thailand, Egypt, France, Canada and Australia among them; not the United Kingdom or the United States.
  4. For the city total, use Demographics on the city itself, with Totals for each area, or on districts you draw.
  5. For each candidate, count how many of its residents are not already inside an existing store's area. That is the number that matters.

A worked example: a network in Mumbai

Say a made-up quick commerce company runs eight dark stores in Mumbai and has four candidate units. Inside the 15-minute areas of its eight stores live roughly 2.6 million people. Candidate A, in a dense western suburb, reaches 410,000 people, but 300,000 of them already sit inside existing areas, so it adds 110,000. Candidate B, further north, reaches 280,000 people and only 40,000 of them overlap, so it adds 240,000. Candidates C and D add 90,000 and 150,000. These numbers are invented for the example.

B wins on coverage even though A looked bigger. The team then looks at supply around B: if Nearby places finds very few supermarkets and grocers in B's area, demand for fast delivery is likely higher there; if it finds many well-rated ones open late, expect a slower start. Only after that does the property team chase rent and power for the unit.

CandidatePeople in its 15 minutesAlready coveredAdded
A410,000300,000110,000
B280,00040,000240,000
C190,000100,00090,000
D260,000110,000150,000

A made-up network, to show why the added count, not the gross count, ranks dark-store sites.

Reading the grocery shops already there

The shops around a candidate tell you how much people rely on walking to a store. In some cities a few large chains dominate; in others small independents do. xMap's places database lists 190 supermarkets within 10 km of the centre of Sydney (November 2026): 75 belong to a chain and 115 are independent, and 184 have a rating, 3.9 out of 5 on average. Count supermarkets, grocers, convenience stores and pharmacies inside each candidate's area with Nearby places, and keep the chain field and rating, because a district served by poorly rated shops is a better opening for fast delivery than one served by excellent ones.

A shortlist that updates itself

Put the whole method in one AI employee and run it monthly, or whenever the property team adds a candidate to the sheet.

  1. New rows on the candidate sheet, or a monthly Schedule with My data holding stores and candidates.
  2. Travel area, Each incoming place: 15 minutes by bike or car.
  3. Demographics: people within each area.
  4. Nearby places, counted: supermarkets, grocers and convenience stores inside each area.
  5. Calculated field: residents per grocery shop.
  6. xMap LLM, on the whole list: rank the candidates by people added and the supply around them, using only the figures.
  7. Show on a map and Email the ranking to the network team.

What lands in the inbox is a ranked list and a map with every store's area shaded, so the gaps are visible at a glance. The overlap calculation itself is simplest done by comparing areas on that map or in a spreadsheet; the flow supplies every figure it needs.

Mistakes that waste a lease

  • Ranking by gross population. Always subtract what you already cover.
  • Drawing areas in the middle of the night. Riders face peak-hour roads. Set the promise you can keep at 19:00, not at 03:00.
  • Forgetting rivals' dark stores. Your uncovered district may be someone else's covered one. Count them where you know their addresses.
  • Ignoring where people work. Lunchtime orders come from offices, which have few residents.
  • Using a country without population figures as if it had them. In the United States or the United Kingdom, rank by shops, offices and homes found nearby, and say so.

Templates to start from: where to put the next dark store, is a new city ready for delivery?, independent grocers for quick commerce and who my warehouse reaches in 15 minutes. More on the food delivery and quick commerce page.

Questions

Why 15 minutes?

It is a common delivery promise and the limit the Travel area block draws today. If your promise is 10 minutes, draw 10; the method stays the same.

How do I know how much of the city a network covers?

Add up the residents inside every store's travel area, removing overlaps, and divide by the city's total from Demographics. This works in countries that have population figures.

Should dark stores avoid areas with many supermarkets?

Not always. Many poorly rated or early-closing shops can mean unmet demand for fast delivery. Look at ratings and opening hours, not only the count.

Can the flow run in a new city before we launch?

Yes. Draw candidate units in the new city, run the same steps, and you have a coverage estimate before the first lease.

Templates that do this

Read next

More on workflows by industry · Every article · Templates

Put it to work

An AI employee in xMap Flows does this on live data, on its own timetable. Start from a template or describe it in plain words.