How convenient!

It’s 07:00 in the morning. Having just gotten out of bed, you already poured yourself some breakfast cereal into the bowl, when you come to the most horrifying realization: you’re fresh out of milk. Beads of sweat start rolling down your forehead, and your heart starts beating like it’s trying to attract a sandworm on Arrakis. What will you do?! How will you carry on without the most important meal of the day?

Luckily, you live in Rehovot, “city of science and culture”, but also, apparently, convenience stores. The northern part of Herzl street, near where I live, is particularly infested. The top 500-meter-strip, from the Weizmann Institute to halfway-to-the-center, contains a whopping 8 different places where you could buy your milk, marked below in yellow:

Some notes and clarifications are in order:

  1. The southernmost one (Shufersal) is a medium-sized supermarket, while the northernmost (Café Roberto) is more of a kiosk.
  2. The white position marker is part of a residential building currently under construction, whose first floor is zoned to be commercial. It is not unlikely that it too is destined to be a convenient store.
  3. The blue position marker is a storage facility for grocery delivery by Walt, so in some sense, it is a “long range” convenience store, but I do not include it in my count.
  4. The red position marker denotes a recently closed convenient store. In fact, the second-from-the-top one also recently closed down. Well, what can you expect, with such saturation?
  5. My favorite location is the third from the top, “Amir baIr” (“Amir in the city”). It sells some imported products which are not easily found elsewhere, and hence unique.

To some extent, the overabundance of convenience stores is, well, convenient: usually, when I want to buy milk, I can easily get it. In other ways, it exasperates me. Whenever I pass them by, I cannot help but think of all the possibilities that could have been there in their stead: a bookstore, a karate club, a library; a park, a game arcade, a gallery. All the things that turn a city into Home, that give it flavor and community; in their place, we have another isomorphic, nearly indistinguishable 7/11. Not to mention that at the end of the day, the stores themselves do not always live up to their name: several times already, I have had to comb through the lot of them for a particular brand, only to eventually return home empty handed (all the stores usually stock this brand, but somehow they all ran out at the same time. What use is a shop every 50m if they all use the same supplier?)

What goes on in the head of a businessperson who looks at this map and says, “I want to open another convenience store, right here“? Are the profit margins really so high? Is selling government-regulated milk and cheese worth the heavy competition? Other explanations spring to mind. Maybe the municipality forgot to update their zoning laws. Or perhaps these are all just fronts for the local crime lords (credible sources tell me that at least one establishment on Herzl street is indeed such a front)…


The question “where should I place my store” is an important one, and can easily determine the life or death of a business. The mathematical investigation of the distribution of businesses on a street was initiated about 95 years ago, in the excellent paper by Harold Hotelling, Stability in Competition. There, Hotelling tells us a very obvious fact, but he tells it very beautifully. The fact is this: a shop can stay in business even when it sells its products at a higher price than the competitors, if the competitors are far enough away. Sure, some customers will go to other places due to rising prices, but for many customers, especially local ones, it’s not worth the hassle to go far off to a different store just to get a slightly lower price. Of course, Hotelling backs up this fact with mathematical reasoning, which also leads to other insights (and thousands of citations).

Here is the model. Suppose two establishments selling a particular type of product are placed along a “Main” or “High” street of length \ell (for Rehovot, this will be Herzl street). Shop A is located at distance a from one end of the street, while shop B is at distance b from the other. Shop A sells the product at a price of p_1 , while shop B sells it a price of p_2 .

If that’s all there was to it, clearly all the customers would just go to whoever is cheaper. However, customers are lazy, and do not like walking. If a customer starts somewhere in the middle of Herzl street (either because they live there, or because they enter the street from some side-alley which feeds to it), they have to walk some distance to reach one of the shops. Hotelling’s model is simple, and assumes that every meter a customer walks incurs an actual monetary cost, c . So, if the customer has to walk d_1 meters to go to shop A , the actual cost they pay to buy the product is

cd_1 + p_1 .

Similarly, if they have to walk d_2 meters to go to the shop, the actual cost they pay is

cd_2 + p_2.

The parameter c is an abstraction, and represents the average monetization of all the things which could actually be affected by walking distance. In some cases, traveling a longer distance is actually really more expensive, e.g. when I travel via car and have to pay for gas, or use public transportation. But c also includes the “frustration” or “hassle” which a customer is prepared to pay (for example, I myself am perfectly willing to walk an additional 5 minutes in order to save 50 dollars on a large purchase, but would probably not bother if the difference were only 10 cents). The idea that the “cost incurred by travel” is linear in the distance is of course a fantasy, but it makes solving the problem much easier.

So suppose that a customer enters Herzl street with the intent to buy the product. They are at distance d_1 from shop A , and at distance d_2 from shop B . Then if c d_1 + p_1 < c d_2 + p_2 , they choose to go to shop A ; otherwise, they go to shop B . This divides the street into regions R_1 and R_2 , where customers entering the street at R_1 go to shop A , and customers entering the street at R_2 choose to go to shop B . The usual case, which occurs when the price differences aren’t too large, looks like this:

Here, our customer would choose to go to shop B ; apparently, it sells its product at a cheap enough price to attract customers from further away. The values of x and y can be found explicitly: at the meeting point of the boundaries of R_1 and R_2 , customers don’t care which shop they go to – they pay the same cost either way – so

p_1 + c x = p_2 + c y. This gives one linear equation in the two variables x and y . Another one is given by the sum of lengths:

a + x + y + b = \ell.

Solving, we get

x = \frac{1}{2}\left(\ell - a - b + \frac{p_2 - p_1}{c}\right)

and

y = \frac{1}{2}\left(\ell - a - b + \frac{p_1 - p_2}{c}\right).

The final component in Hotelling’s model is the customer distribution: he assumed that customers have equal likelihood of entering the street at any location. This assumption, too, is fantasy – for example, some of the residential buildings on Herzl are small apartment buildings while others are large complexes, so the distribution of people exiting their houses is definitely not spatially uniform. But it is a useful assumption, since with it we can easily calculate the profits per unit time for each shop: if the region R_1 extends a distance a from the top of shop A and x below the shop (as in the image above), then shop A ‘s profit, \pi_1 , is

\pi_1 = p_1(a + x) = \frac{1}{2}(\ell + a - b)p_1 - \frac{p_1^2}{2c} + \frac{p_1 p_2}{2c}.

Similarly, if the region R_2 extends a distance b from to the bottom of the shop and distance y to top of the shop (as in the above image), then shop B ‘s profit, \pi_2 , is

\pi_2 = p_2(b + y) = \frac{1}{2}(\ell - a + b)p_2 - \frac{p_2^2}{2c} + \frac{p_1 p_2}{2c}.

So, if the owners of the shops know the distances to their rival’s shop, know how much their competitors are charging, and know how much it annoys customers to walk long distances, they can calculate their expected profits. All else being fixed, the profit \pi_1 of shop A is a frowning parabola in the price p_1 . So the owner of shop A , obviously wanting to maximize profits and even more obviously remembering high-school calculus, differentiates it in order to find the maximum. Comparing the derivative to 0 , we get

\frac{\partial \pi_1}{\partial p_1} = \frac{1}{2}(\ell + a - b) - p_1/c + p_2/2c = 0.

A similar equation is obtained by the owner of shop B , who also wants to maximize profits:

\frac{\partial \pi_2}{\partial p_2} = \frac{1}{2}(\ell + b - a) + p_1/2c - p_2/c = 0.

Solving the two linear equations we get “maximal revenue” prices, which are described only by the shop positions and the customers walking-costs:

p_1 = c\left(\ell + \frac{a-b}{3} \right)

and

p_2 = c\left(\ell - \frac{a-b}{3} \right).

This is very nice, and immediately shows that different shops can sell the same product for different prices and still stay in business; in fact, not only can they sell at different prices, but if they want optimal profits they should. Here, the price difference depends only on the locations of the shops, and is equal to 2c \frac{a-b}{3} .
(All of the above calculations assume that the items the shops sell cost 0 for the shop owners to produce/acquire; if, as in real-life, it does cost something to manufacture it, say, m_i , then the profit of shop A is \pi_1 = (p_1 - m_1)(a + x) , and similarly for shop B . This doesn’t really change the conclusion, just the calculations).


Hotelling’s derivation tells the shop owners what their prices should be, but can also be used to say something about what the locations should be. Suppose initially, there was only one shop in the street, shop A :

Smelling opportunity, another shop owner wanted to come in and take a bite out of A ‘s monopoly. Where should shop B be placed? Let’s assume it will be to the south of A (otherwise roles are switched). Presumably, B wants to maximize profits. As we mentioned above, the profit is just equal to

\pi_2 = p_2(b+y),

and y is given by y = \frac{1}{2}\left(\ell - a - b + \frac{p_1 - p_2}{c}\right) . We already found out the optimal pricing p_1 and p_2 above, so we can plug them into y and obtain the optimal profit for shop owner B :

\pi_2 = \frac{c}{2}\left(\ell - \frac{a-b}{3}\right)^2.

So in order to maximize profits, the owner of shop B should strive to minimize the quantity (a-b)/3 , which means maximizing b . But the maximum possible value of b is when shop B is, annoyingly, directly adjacent to shop A , and just to the south of it:

This gives a nice (partial) explanation to an all-too-known situation, where two types of specialty shops are “paired” – they sit right next to each other, offering exactly the same products. In this case, all the above reasoning about profits and costs c and the like reduces to a much simpler model: customers walk along the street, and simply go into the first shop that they see. Maximizing the profits is then equivalent to maximizing the “influence regions” R_i .

Of course, shop owners have lots of other considerations when placing their shops – is the property available? Is it accessible? Is it large enough? How much is the rent? etc. And in general, it is not easy to see how Hotelling’s calculations can help us with the very real-world example of convenience stores on Herzl. The first and foremost issue is that there are a million convenience stores on Herzl, not just two. But there are other issues, including the fact that customer distribution is not uniform, that convenience stores sell multiple types of products, and that the shopping world is actually two-dimensional and is not confined to a single street (indeed, I often to go my local neighborhood grocery store which is NOT on Herzl street). Naturally, people have studied these modifications intensely – there’s been 95 years of continuous research in the topic, after all, and it’s still going strong. For example, my friend Avi worked on fault-tolereance properties – what happens when roads can be blocked and some segments of the street might be cut off from each other?

As far as multiple businesses go, the results depend heavily on the number of shops involved, but the general phenomenon is that the shops at the top and bottom of the street should always be paired in couples, while the rest of the shops are somehow spread in between. I’m happy to see that on Herzl street, the top two shops are indeed paired! (though this might just be a coincidence. In its pre-COVID previous life, the second-from-the-top convenience store was a restaurant).


Unfortunately, all of this profit-vs-location reasoning doesn’t even answer why convenience store owners are entering this highly saturated market in the first place. Obviously, a much larger, well-funded investigation is needed; the address for sending cheques will be given upon personal inquiry.

I want to end with a nice remark by Hotelling from his original paper. Hotelling noticed that his model works in abstract settings as well: instead of shops being positioned along a street, we may imagine that the shops sell different types of (say) cider. The “position” of the shop then describes how sweet the cider is: a shop “at the top” sells very sweet cider, while a shop “at the bottom” sells non-sweet cider. This has nothing to do with the physical location of the shops, but just with cider properties. The uniform distribution of customers then translates to the different sweetness-preferences of the customers, and the cost c of walking to a store is now the cost that a customer is willing to pay for buying a cider which is not exactly their preferred sweetness. In this abstract setting, when shop B enters the game and decides “where to put shop” (i.e – how sweet to sell their cider), the fact that they maximize profits by sticking as close as possible to shop A means that they are going to sell cider of the same sweetness, i.e. the same product. Thus, when there are two shops in the same area, they tend to sell similar items, leading to less variability. Hotelling saw this phenomenon everywhere, and remarked:

So general is this tendency that it appears in the most diverse fields of competitive activity, even quite apart from what is called economic life. In politics it is strikingly exemplified. The competition for votes between the Republican and Democratic parties does not lead to a clear drawing of issues, an adoption of two strongly contrasted positions between which the voter may choose. Instead, each party strives to make its platform as much like the other’s as possible. Any radical departure would lose many votes, even though it might lead to stronger commendation of the party by some who would vote for it anyhow. Each candidate “pussyfoots,” replies ambiguously to questions, refuses to take a definite stand in any controversy for fear of losing votes. Real differences, if they ever exist, fade gradually with time though the issues may be as important as ever”.

It’s nice that some things do change, isn’t it? (Hotelling wrote this when political party polarization in the USA was at an all time low. See Part II in Polarization, Democracy, and Political Violence in the United States).


Leave a comment