"Malaysia Prime Minister Mahathir Mohamad and the Sultan of Johor are seen in a blue Proton Saga... "When asked whether there is any tension with the sultan, Dr Mahathir said: “No, I don’t see anything because I went to see him and he drove me to the airport. I don’t want to comment on the sultans because if I say anything that is not good then it’s not nice because he is the sultan”"

Get email updates of new posts:        (Delivered by FeedBurner)

Thursday, June 06, 2019

Why Choping is inefficient and selfish - a model of Hawker Centre Queuing

Choping is a common Singaporean practice which involves placing a packet of tissue paper (or some other item) to reserve a seat in a hawker centre or food court while one queues for food.

With choping, one will have a guaranteed seat to return to when one gets one's food.

There is a currently an anti-chope movement which is upsetting a lot of Singaporeans, since choping is a common practice, arguably part of Singapore's culture.

And of course, since the movement is supported by Minister Grace Fu, it has also become a lightning rod for anti-PAP sentiment.

Yet, choping is a demonstrably inefficient and selfish method of seat allocation which privileges early comers, leaving the community as a whole worse off. It is like free parking - it's great if there're empty lots but if all the lots are occupied, you're going to waste a lot of time cruising around looking for parking.

While it is quite obvious that leaving seats unutilised (since no one can eat at a choped seat, or is supposed to anyway) is inefficient, but we can formalise a model to test our intuition.

For simplicity, assume a hawker centre with 10 seats with 10 arrivals every 10 minutes, a 10 minute waiting time at each stall and that everyone takes 10 minutes to eat. Assume that choping and moving from stall to seat and back are instantaneous (in reality since choping takes time choping will be even more inefficient).


Under a no chope system (i.e. no one can chope - you occupy a seat if it is empty):

T = 0 mins (start of scenario):
10 people are queuing, 0 eating

T = 10 mins:
10 people are queuing, 10 are eating

T = 20 mins:
10 people are queuing, 10 are eating. 10 have finished eating and have gone off

T = 30 mins:
10 people are queuing, 10 are eating. 20 have finished eating and have gone off

T = 40 mins:
10 people are queuing, 10 are eating. 30 have finished eating and have gone off


Under a 100% chope system (you need to reserve a seat before you go and queue and no one can use your seat while you are not around):

T = 0 mins (start of scenario):
10 people are queuing, 0 eating

T = 10 mins:
0 people are queuing, 10 are eating (assume we cannot chope if someone is already eating)

T = 20 mins:
10 people are queuing, 0 are eating. 10 have finished eating and have gone off

T = 30 mins:
0 people are queuing, 10 are eating. 10 have finished eating and have gone off

T = 40 mins:
10 people are queuing, 0 are eating. 20 have finished eating and have gone off

Within the first 40 minutes under a no chope system 1.5x as many people have finished eating and gone off as under a 100% chope system.

Some might object that this is unrealistic, but one can relax or modify the model's assumptions and see how the results change (though it probably also becomes more intractable, as you can see later).

Someone claimed that "If you tweak your assumptions, you will find that it doesnt work. The truth is there are more people than tables and chairs. In hawkers, food courts, trains even. It is not 10 eating to 10 chairs every 10 min. It is 20 persons to 17 chairs every 10min and people dont even finish their lunch in 10min so it will take longer".

So I reran my model:

Assume a hawker centre with 17 seats with 20 arrivals every 10 minutes, 10 minutes waiting time and 20 minutes eating time


Under a no chope system:

T = 0 mins (start of scenario)
20 people are queuing, 0 eating

T = 10 mins
20 people are queuing, 17 are eating, 3 are looking for a seat

T = 20 mins
20 people are queuing, 17 are eating, 3 (who arrived at T = 0) are looking for a seat and 20 (who arrived at T = 10) are looking for a seat

T = 30 mins
20 people are queuing, 17 are eating (3 who arrived at T = 0 and 14 who arrived at T = 10). 6 (who arrived at T = 10) are looking for a seat and 20 (who arrived at T = 20) are looking for a seat. 17 people have finished eating (all from T = 0)

T = 40 mins
20 people are queuing, 17 are eating (3 from T = 0 and 14 from T = 10). Looking for a seat: 6 (T = 10), 20 (T = 20), 20 (T = 30). 17 people have finished eating (all from T = 0)

T = 50 mins
20 people are queuing, 17 are eating (6 from T = 10, 11 from T = 20). Looking for a seat: 9 (T = 20), 20 (T = 30), 20 (T = 40). 34 people have finished eating (20 from T = 0, 14 from T = 10)

We can see that as T increases, the number of people looking for a seat keeps increasing.

In reality some people would go elsewhere or dapao (order takeaway), but let us keep this assumption in both scenarios so we can compare them.

Anyway, what we are interested in is how many people can eat at the hawker centre (since choping or not choping doesn't stop you from eating elsewhere or dapao-ing)


Under a 100% chope system:

T = 0 mins (start of scenario)
17 people are queuing (20 arrived but there were only 17 seat), 0 eating and 3 are waiting for a seat to chope

T = 10 mins
0 people are queuing (since you need to chope before queuing), 17 are eating, 3 (who arrived at T = 0) are waiting for a seat to chope. 20 (who arrived at T = 10) are waiting for a seat to chope.

T = 20 mins
0 people are queuing, 17 are eating, 3 (who arrived at T = 0) are looking for a seat. 40 (20 arriving at T = 10 and 20 arriving at T = 20) are waiting for a seat to chope

T = 30 mins
14 people (from T = 10) are queuing, 3 are eating (arrivals from T = 0). 17 people have finished eating (all from T = 0). 6 people (T = 10), 20 (T = 20) and 20 (T = 30) are waiting for a seat to chope.

T = 40 mins
17 people are eating (3 from T = 0 and 14 from T = 10). 17 people have finished eating (all from T = 0). 6 from T = 10, 20 each from T = 20, 30 and 40 are waiting for a seat to chope.

T = 50 mins
14 people are eating (all from T = 10). 20 people have finished eating (all from T = 0). 3 people are queuing (from T = 10). Waiting for a seat to chope - 3 from T = 10 and 20 each from T = 20, 30, 40 and 50

We see that the results are virtually identical - almost 1.5x as many people have finished eating after 50 mins under the no chope system than the 100% chope one, even in the modified model.

The reason is clear - choped seats can't be used to eat and are thus under utilised. If eating time were longer relative to queuing time choping would be less distortionary since the seats would be less under utilised (but choping would still be inefficient).


So far I've only seen 2 valid objections to the analysis above.

The first is that it is annoying to walk around with a tray.

Yet, one would need to weigh the annoyance or discomfort of this heavily to make choping preferable. Especially since under a no chope system, at peak capacity all seats are being used at the same time, people arrive at different times and hawker food is eaten in a relatively short period of time, so seats should be freed up quickly.

For example, in a hawker centre of 100 seats, if people take 10 minutes to finish eating and arrive at their seats in steady numbers at regular 1 minute intervals, one would expect 10 seats to become available every minute. Indeed, you might potentially find a seat sooner as you wouldn't be limited to your choped seat.

The other is that people like to eat in groups, and choping ensures the group can sit together (since a no chope system is optimised for individual eaters).

I will observe that I don't only see people in large groups eating and that individuals and pairs do it too. That aside, choping still privileges groups which come first over people who come later.

If eating together is such a desired outcome, groups can always order takeaway and eat in their office pantries (since groups at peak hour are typically from the office crowd).

Renson has suggested that choping allows people to easily visually gauge the filled capacity of a hawker centre, and if it is full one can dapao or go elsewhere. Yet, people eating at seats are more visible than tissue paper packets, so with choping one is actually likely to underestimate the hawker centre's capacity.

A 2017 Straits Times article on the phenomenon also notes that people sometimes chope more seats than they should - which makes choping even more inefficient and inconsiderate.


Realistically, though, people are not going to stop choping, so one just needs to manage within the current constraints.

Donald Low has a good sugestion - just sit at a choped place. If the person who choped it comes back, move. Assuming you don't run into unreasonable people this should work. Then again, it should also work with unreasonable people as they will either have their hands full or otherwise be too hungry to bother to beat you up for occupying their seat.

More broadly, Singaporeans seem, for some reason, not to like to share seats. I often ask to sit at an occupied table and most people say okay (unless they are in a group).
blog comments powered by Disqus
Related Posts Plugin for WordPress, Blogger...

Latest posts (which you might not see on this page)

powered by Blogger | WordPress by Newwpthemes