How to Find the Best Location for Your New Branch, Facility, or Logistics Center Using Simple Tools and Technology
How does location technology help find the best location for a new branch in a retail or pharmacy chain?
Using geographic location technologies and GIS applications helps identify untapped opportunities.
Where is the best location for a branch that no one has found yet?
With accurate location analysis, spatial analysis can be performed to identify new or better potential hubs.
Many retail and pharmacy chains do not use geographic information systems (GIS) enough to optimize their decision-making process.
Using geographic data can allow them to evaluate important spatial variables such as population density, nearby traffic, and business competition in the area.
Geographic mapping and spatial data analysis allow retail or pharmacy chains to create accurate and effective spatial planning, ensuring that the new branch will open in a location with a high potential for success.
Using GIS tools, geographic data can be combined with business models to create advanced spatial analyses. This way, any retail or pharmacy chain can be confident that the new branch will be built in the optimal location.
The golden question for various chains like retail, pharma, restaurants, etc. is:
“How do you I find the best location for a new branch, so that it’s far from existing competitors and other branches of the chain (to avoid “cannibalization”),
but not in a too isolated or inaccessible location, with too few potential customers or unsuitable customers.
Or maybe one wants the opposite, where is the most crowded location?
Because it probably has the most potential (i.e., a branded chain).
The more precise way to answer these questions and provide potential locations for new branches (or to analyze why a certain branch succeeds and another fails) is through the use of data and spatial mapping and analysis tools – location intelligence.
These tools are used to solve central and fundamental problems, together with up-to-date information on the locations of the chain’s branches and competitors, and are not sufficiently used in data-based decision-making.
Spatial analysis technologies and geographic information systems are essential tools in finding the optimal location. Using GIS systems and performing spatial analyses allows a good understanding of the area and market opportunities.
So, how do you approach the challenge of finding the best location for the New Branch?
Are there still “Treasure islands” that everyone else has missed?
Is there an area with very few competing stores and a large, well-established population that would provide an excellent starting point for the new branch? Can we also examine a scenario of what would happen if a competitor opened a new branch there? And another?
Or maybe if there are any competitor branches there, there’s a reason for it?
I asked myself and my client, how is the decision to open a new branch usually made?
Is data and location technology used wisely to analyze and help find the best location for the branch and what are the alternatives?
Take, for example, Tel Aviv city in Israel: the high turnover rate of retail stores, opening, and closing can indicate both cannibalizations between stores in the same chain and also a lack of minimum distance between competing stores relative to the area’s population and its purchasing power.
This may suggest that the rationale for opening branches often stems from other considerations and decisions.
It seems that location intelligence isn’t always utilized. Sometimes, new branches are consciously opened based on available real estate availability, with a clear rationale that the branch will survive only if its chain owners are “stronger” than the nearby competitor, following the “survival of the fittest” method.
We conducted a spatial geographic analysis on Tel Aviv to find the ideal “treasure island”: locations with the fewest branches, the greatest distance between them, and a sufficient and established population. And conversely, where are there the most competing branches? That’s where I want to open a branch and push out other competitors. How do you find such a location Candidate? Are there still such “Islands”? In a city such as Tel Aviv?! (Spoiler: there still are …)
To find the island and treasure, you first need a map…
The new modern digital “Treasure map” originates from geographic information, databases, spatial analyses, and AI.
To begin the quest, you first need data. Up-to-date data on all the branches of all the chains, including the precise locations on a map.
How do you even obtain such information? You can purchase this data from specialized companies that collect it.
You can use a commercial API, like Google’s.
Such commercial data has copyright limitations, usage restrictions, and of course, high costs.
We can also write Python crawlers for all the retailers’ websites, but it is also not an easy task, and not all the sites are updated.
We’ll first look for open data that is permissible to use.
Open data is usually not restricted by copyright, is up-to-date, and is free.
However, it’s often not simple to locate, it isn’t readily available for use, and it requires processing, cleaning, and Geocoding (since addresses are usually provided without coordinates).
Fortunately for this research in Israel, there is open and up-to-date data on the Consumer Protection And Fair Trade Authority’s website. The chains in Israel are legally required to publish their prices and branch locations. So the data comes directly from the chains and is expected to be reliable up-to-date and in a uniform format.
This sounds ideal, but there is a catch.
The data format (XML) is not particularly convenient, and each chain has its site for the data, so obtaining and processing the data isn’t as simple as it sounds.
There are only a few specialized companies that use this data, mainly for price comparisons or to help the chains compete with each other, and it’s not certain that there is any use in a spatial context.
After decoding and finding the relevant files for each chain, we proceeded to decode the data structure of the branches of each chain to create a national table that includes:
The chain name, branch name, address, and location description ultimately perform a process called “Geocoding” – finding the location coordinates based on the address.
Although the chains are supposed to provide uniform files, not all files are indeed so. Fortunately, in the Python programming language, there are several libraries for reading XML format and functions for cleaning and correcting anomalies in each file. We managed to write a program that automates all the files and compiles a uniform table that includes all the relevant details for each branch, with all of the branches.
The next step, after we have a national table of branches, is to perform the process of finding each branch’s location on the map (coordinates) according to the address – “Geocoding.”
Since the address information of each chain is recorded in free text, location details are sometimes missing, there are spelling errors, and the information is incorrect or incomplete. It’s necessary to clean and correct the data.
After cleaning and validating the data (for example, an address without a city name), we will run the Geocode process, check the results, correct and Rerun it until we get a reliable location for about 90 percent of the branches in the country.
The remainder can be processed manually until the list is almost fully Geo-located.
Now we have an updated table of nearly 2,000 branches across the country from all chains, and we can start searching for the Geographic Treasure map.
I recommend working in a database for spatial data analysis, locally or in the cloud. Almost all of them have the necessary capabilities for spatial analysis.
In the first stage, after loading the table into the database, we will want to classify each branch to which city it belongs and essentially create another column in the table with the city code and name, so it will aid us in filtering the branches by city. The information provided by the chains does not always include the city name, and even if it does, we cannot always rely on it. The more reliable way is to perform a “Spatial Join“:
Using the coordinates of each branch that we mapped in the previous section, we will cross-reference the table/layer of municipal boundaries (which are also open government data) of all the localities in the country. The result of such points in polygon join will provide us with the city name for each branch.
The join query can be performed dynamically each time to keep the data current.
Interesting data can already be extracted, for example:
- Throughout Israel: The “Shufersal” chain has the most branches: ~ 410.
- The city with the most branches, unsurprisingly, is Tel Aviv, with 16 different chains and 210 branches.
- The chain with the most branches (over 40) in Tel Aviv is “Dor Alon”-AM: PM.
This process can be performed on various platforms: in desktop GIS tools such as QGIS, and ArcGIS, in programming languages with appropriate libraries like Python. In CLI with GDAL-ogr2ogr and databases with spatial capabilities such as SQL Server Spatial, PostgreSQL
PostGIS, DuckDB, SQLite, Google BigQuery, and more.
The advantages of working with a database are speed, performance, and code/script reusability without duplicating data. Using a variety of query capabilities combined with the ease of transferring queries to the cloud (such as Google BigQuery) and web GIS map applications if needed.
For example, combining in one query of just a several lines:
Spatial join along, coordinate conversion, sorting, aggregation, and exporting to any format.
In this case, we used the ST_Intersects function, which performs the spatial join between tables/layers, along with the ST_Transform, which performs coordinate system conversion between the layers, as each is in different units (the branches in degrees and the localities layer is based on the New Israeli Grid, in meters).
If you add the locality code name condition to the query, for example, the city of Tel Aviv, you will get all the branches in Tel Aviv, also by chain. This way, you can also check branches by neighborhood, statistical unit, etc., depending on the available data and, of course, combine it with existing internal data such as the number and amount of transactions in a nearby branch, employees, etc.
Now that we already know the location of each branch, the city, and important statistical information such as population size and type, we can address the really important questions: The distance from the nearest branch of the same chain or a competing chain, or: which branch is currently the most isolated (i.e., the distance from it to the competing branch is the greatest among all other distances between the branches).
If we can answer this question, and get the actual distance and whether it is indeed sufficiently large for a new store.
Once we identify these locations, we can examine the area around them and place a new branch that will benefit from enough quality clients.
We found the treasure… but how do you do it? With a ruler?! Distance table? AI and complex algorithms?