Live data from Hacker News

A single line to 3 cashiers is ~3x faster than a separate line for each cashier

online.wsj.com

71–80 of 172 posts

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#71
post #43
post #27

FYI: This is an example of the branch of mathematics called queueing theory. http://en.wikipedia.org/wiki/Queueing_theory It's a fascinating study requiring a good knowledge of probability to use beyond the simplified models. It turns out from the math that throughput using a single queue is better than using multiple queues.

Not trying to be condescending but doesn't it surprise anyone here that this is _not_ obvious? At least on this site, there are still people doubting or debating this. So I am wondering why don't stores do this already. And I believe it is because of perceptions. They understand that time will be saved, however, they realize that most people will be scared by a long line. One long line that moves fast will still appe…

Stores are moving towards this, but very slowly. The retail industry doesn't tend to innovate quickly. Generally, you see the more innovative / aggressive stores doing this now (Whole foods, some drug chains, Apple stores, Best Buy) but it could take a decade or more to spread widely, in particular because in many stores it requires a significant layout change to accomodate one long line - generally you need additional space between the front of the line and the registers so that customers can go to the open checkout, and some stores don't have that much space.

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#72

It also has an engineering analogy in Apache Passenger Global queuing. And this article explains why it works the way it does http://blog.phusion.nl/2008/10/29/phusion-passenger-now-with... As an aside: The Fry's Electronics store in my city does this and the line does move at a pretty brisk pace, but I had always thought it a rather odd setup till I read this and made the connection to global queuing in Passenger. f…

The Fry's system also gives them a 1/4 mile (ok maybe that's an exaggeration) of opportunity to sell you impulse purchases.

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#73
post #43
post #27

FYI: This is an example of the branch of mathematics called queueing theory. http://en.wikipedia.org/wiki/Queueing_theory It's a fascinating study requiring a good knowledge of probability to use beyond the simplified models. It turns out from the math that throughput using a single queue is better than using multiple queues.

Not trying to be condescending but doesn't it surprise anyone here that this is _not_ obvious? At least on this site, there are still people doubting or debating this. So I am wondering why don't stores do this already. And I believe it is because of perceptions. They understand that time will be saved, however, they realize that most people will be scared by a long line. One long line that moves fast will still appe…

It's another instance of "people are stupid". Yes, for any educated person it's obvious that one line is faster, that's the first thing about queueing theory, but most people don't know the first thing about queueing theory.

Other instances of "people are stupid" leading to poor design:

* Some cars come with a CVT (continuously variable transmission) rather than having to shift gears. The audible pitch of the engine just gradually goes up as the accelerator is depressed, rather than revving up and then shifting back down again. Since people were used to the gear-shifting behavior, they thought CVT's were underpowered, so they were actually redesigned to simulate the shifting behavior even though it was suboptimal.

* Coinstar machines are actually much, much faster than they appear. But people don't trust them if they don't take three times as long and make jangly coin sounds, so it just silently sorts the coins as fast as it can and plays a recording of jangly coin sounds, all the while delaying when it displays the final count onscreen.

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#74
post #43
post #27

FYI: This is an example of the branch of mathematics called queueing theory. http://en.wikipedia.org/wiki/Queueing_theory It's a fascinating study requiring a good knowledge of probability to use beyond the simplified models. It turns out from the math that throughput using a single queue is better than using multiple queues.

Not trying to be condescending but doesn't it surprise anyone here that this is _not_ obvious? At least on this site, there are still people doubting or debating this. So I am wondering why don't stores do this already. And I believe it is because of perceptions. They understand that time will be saved, however, they realize that most people will be scared by a long line. One long line that moves fast will still appe…

Fry's Electronics does the single line thing, and any time there is a line, I feel like I end up standing in it longer than I would at a grocery story. I suspect this is probably psychological, but letting me, as the shopper, pick the line I want to stand in puts me in charge of how long I wait. If I pick a bad line, it's my fault for picking the bad line. When there's just one line available, I don't get that choice.

Single-queue might be faster, the the psychology of customer satisfaction is much more complex than that.

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#75

Earlier quoted context omitted.

As much better as the teenage checkout girl is than I am at scanning, it's nothing compared to how much better she is at pricing produce.

If they know what its. I've had a lot of checkouts turn into a game of "what's this vegetable." Or they just enter it as some other, more familiar vegetable.

If it's one that costs less, you win.

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#76
post #45
post #34

Earlier quoted context omitted.

I guess it depends on the quality of the self-checkout system. At my Stop & Shop, there are four or six self-checkout lanes staffed by a single person (Go go union job elimination!) If you get through a purchase without running into "wait for attendant", sure it's fast. But if you do have to wait, because their fundamental distrust of the customers makes the system get many false positives for stealing, now you are i…

Wow, that sucks. My local store only ever does "wait for assistance" when you buy booze... and half the time the attendant will just gleefully press "ok" on his terminal without even checking my ID, so it goes even faster :) Implementation details matter, I guess. (Pretend I made some interesting reference to Steve Jobs' managing style here)

In some stores if you scan alcohol the machine will freeze until the attendant turns the key.

In others, it flashes a light to alert the attendant. It allows you to carry on scanning, but the attendant must turn the key before you pay.

I just hope that isn't patented.

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#77
post #18

Earlier quoted context omitted.

Around here, the grocery self-checkout works the same as the normal checkouts, mainly because they just replaced the normal ones in place. (Also, self-checkouts suck. I bet their throughput is terrible compared to manned checkout lines. That teenage checkout girl is WAY better than I am at scanning stuff.)

In my experience, the slow down is the cost of the extra features of the self-checkout system running on (I'm guessing) weak hardware. There is a rather large delay when choosing payment sources or in between bagging items.

Between bagging items, it has to wait for the scales underneath the bagging area to register a consistent weight. When choosing a payment source, it probably has to do a network call to the PIN-pad system. It's not like it's running on a slow CPU.

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#78
post #44
post #27

FYI: This is an example of the branch of mathematics called queueing theory. http://en.wikipedia.org/wiki/Queueing_theory It's a fascinating study requiring a good knowledge of probability to use beyond the simplified models. It turns out from the math that throughput using a single queue is better than using multiple queues.

Queueing theory is a prominent topic in Operations Research. If you want to read a detailed book on it, Fundamentals of Queueing theory by Thompson et al is the bible. A couple of additional thoughts, pooling queues like this only works if the changeover time to process different types of things is low. So in the case of a grocery store where there is no separate changeover or batch setup time it works well. If you a…

I'd also recommend some of the books by Neil Gunther at http://www.perfdynamics.com/, notably the PDQ one and Guerrilla capacity planning.

He takes queuing theory down to a slightly non-academic level and applies it to modelling computer systems such as web applications. From that you can fit observed data to your model and predict capacity on shorter cycles.

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#79
scala> import org.apache.commons.math.distribution.{ExponentialDistributionImpl=>expo}

//pc = process customer, with a mean time mu per customer

scala> def pc(mu:Int):Double= new expo(mu).sample

// q = queue of n customers with mean process time mu

scala> def q(n:Int,mu:Int):Double=(1 to n).map(_=>pc(mu)).sum

scala> // put 3000 people in 1 queue with mean process time 50

scala> (1 to 1000).map(_=>q(3000,50)).sum/1000

res43: Double = 83107.37275937156

scala> //now put 1000 people each in 3 separate queues with the same mean process time as before

scala> (1 to 1000).map(_=>(1 to 3).par.map(_=>q(1000,50)).sum).sum/1000

res45: Double = 200010.29627921886

200010 = ~3x83107, so yeah, single line to 3 cashiers is ~3x faster than a separate line for each cashier.

// Now make 1 queue that feeds into shortest of the 3 queues

scala> def qq(n:Int,mu:Int)=(1 to 3).par.map(_=>{(1 to n/3).map(_=>pc(mu)).sum}).sum

scala> (1 to 10000).map(_=>qq(3000,50)).sum/10000

res70: Double = 141824.974765643

So our single queue feeding into 3 separate queues still beats 3 separate independent queues.

edited to address MaysonL's question.

Re: A single line to 3 cashiers is ~3x faster than a separate line for each cashier

#80

Earlier quoted context omitted.

The problem with your first example is that in real life the queues will rebalance. The two people behind the first guy won't just stand there for 10 minutes with the other two checkouts empty; they'll switch lines. If they do that, they'll each wait for 3 minutes, giving the same distribution as in the single line. Ah, you say, but what if other people have entered those lines already? Then you have to count their w…

Sure, if the line perfectly rebalances then three lines is almost identical to the single line. BUT as I'm sure you know, it's sometimes hard to know when to move. Is it after you've waited one minute, then hop to the back of another line? Let me give you a concrete example: Imagine you enter a line with 15 people in it. Your line moves 14 people through perfectly. You're next, but the guy in front of you takes longe…

To add to your examples, there's also the case that you've already unloaded your cart, but the idiot in front of you sends the cashier on a wild goose chase to get cigarettes for him and they spend ten minutes sorting that out. Or you're behind some "extreme couponer" who splits their order into six separate orders to maximize their coupon savings, and you have to resist the urge to just pay for their entire order just to shame them into being less of a goddamn miser.
Post reply on HN