Almost everyone has waited – likely impatiently – in a grocery store checkout line. The aggravation rivals another modern irritation – being stuck in traffic. And just like understanding traffic might ease the annoyance (see the reference box for two prior articles on traffic congestion), understanding the dynamics of cashier lines at grocery store might also give some mental relief.
So let’s explore.
The Need for More Cashiers
As we wait in line, we often wonder why the store doesn’t add more cashiers. The store must be trying to save money, at our expense and on our time.
However, our reaction doesn’t quite hit the mark. More cashiers will not fundamentally solve the waiting problem, nor does having less cashiers fundamentally save the store money. Why might the apparently obvious approach of adding cashiers not work? It might not work because the fundamental problem stems from the TIMING of the cashiers.
Let’s do some simple modeling to understand this. After that, we will add sophistication, and model more complex situations.
Simple Modeling: An Early Morning Scenario
Imagine a grocery store early on a Saturday. As the store opens, a small cadre of early risers enters. In this (relatively simple) situation, what waits might these shoppers experience?
Let’s put some numbers to the scenario, to enable calculations. We want the scenario simple enough to grasp it intuitively but still representative enough to mimic reality. Let’s use these assumptions.
- 30 Shoppers
- 15 items purchased per shopper
- A per item checkout time of three seconds (i.e. scanning, bagging, etc.)
- A added per shopper checkout time of 45 seconds (i.e. payment, etc.)
- Three cashiers on duty
As the store opens, the shoppers surge in and after a few minutes the first of the 30 shopper arrivers at the cashiers. From that point, we will assume a shopper arrives at the checkout lines every 30 seconds.
Will these shoppers need to wait? How long? How many of them?
Let’s step through events to find out. When the first shopper arrives at the checkout line, that shopper will go without waiting to one of the three cashiers (i.e. all three are available). The second shopper arriving at the checkout line will see one cashier busy (with the first customer), but will see two cashiers with no line and go without waiting to one of them. Similarly, the third arriving shopper will see two cashiers busy, but the third cashier with no line and go there.
Now the fourth shopper arrives. To which line do they go? Well, we are now 90 seconds after the first shopper’s arrival (three shoppers later times the 30 second arrival interval). Will the cashier checking out the first shopper be available in time? Certainly. Checkout requires 90 seconds – 15 times 3 seconds, or 45 seconds, for the items plus 45 seconds more per shopper. So the first cashier has completed checkout for the first shopper when the fourth shopper arrives at checkout.
So the fourth shopper goes to the first cashier, without waiting. This sequence will continue, for example the second cashier will finish with the second shopper just as the fifth shopper arrives at the checkout line. Thus no shopper will experience a wait.
We can reach the same conclusion – no waits – another way, through a ratio. Specifically, with constant arrival intervals and service times, we divide the service time (the 90 seconds) by the servers (the three cashiers) and compare the result to the arrival interval. In this case, that ratio equals or exceeds the arrival interval (i.e. 90/3 is >= 30) indicating the servers can handle the load without delays.
Now overall, when all shoppers are checked out, the three cashiers will have handled 30 customers and 450 grocery items, and have spent 45 minutes checking out customers, i.e. 90 seconds per customer times 30 customers.
No shopper will have experienced any wait. The last shopper will arrive at the checkout lines after 15 minutes, i.e. 30 shoppers times the 30 second arrival rate, and finish 90 seconds later.
The Impact of Timing
We stressed that TIMING stands as the key variable, so let’s alter the scenario to demonstrate that. We will now assume the shoppers arrive at the cashier lines every 15 seconds.
Will the shoppers encounter waits? Let’s step through events. Just as with the 30 second arrival rate, the first three shoppers get served without delay, by the three cashiers. The fourth shopper, however, arrives 45 seconds after the first shopper. (Remember we have a shopper arriving at checkout every 15 seconds). Unlike the first scenario, where the first cashier was just completing servicing the first shopper, the first cashier has handled only 45 seconds of the 90 seconds required.
Thus, the fourth shopper now waits 45 seconds for the first cashier to complete the first shopper. In a similar fashion, the fifth shopper (going to the second cashier) and the sixth shopper (going to the third cashier) will also experience 45 second waits.
What wait will the seventh shopper experience? That shopper arrives 90 seconds after the first shopper, i.e. six shoppers later times the 15 second arrival interval. The first cashier, however, has just completed the first shopper, and will spend 90 seconds servicing the fourth customer. The seventh shopper thus waits 90 seconds.
This sequential lengthening of the wait times continues. By the last shopper, the waiting time grows to 405 seconds, almost seven minutes. Across all thirty shoppers, the total waiting time sums to 100 minutes, over an hour and a half of shopper time wasted waiting.
Now let’s compare the overall metrics of our two scenarios. With both a 30 second and a 15 second arrival interval, the cashiers check out the same number of customers (30) and items (450). The cashiers spend the same combined time checking out customers (45 minutes). The last shopper is finished checkout at about 16 minutes (a spreadsheet can be used to calculate this).
However, with the 15 second arrival time, extensive delays ensued.
What changed between the scenarios? The TIMING. Customers arrived with a different timing.
Notice no wage cost saving occurs by incurring the delays. In both scenarios, the grocery store pays for 45 minutes of cashier time.
Notice no extra revenue accrues. In both scenarios, shoppers purchase 450 items.
Thus, the financial position of the store remains unchanged in these two scenarios. The store experienced the same costs and revenues whether or not delays occurred.
Matching the Load
But still, what about adding more cashiers? Wouldn’t store costs go up if more cashiers were added in the second scenario?
Let’s do that then, let’s adjust the availability of the cashiers to match the timing of the customers. Given a 90 second checkout time, and an arrival rate at the cashier line of a shopper every 15 seconds, how many cashiers do we need?
We saw how to calculate that above, i.e. the checkout time divided by the number of cashiers must equal or exceed the arrival rate. With a checkout time of 90 seconds, we need six cashiers, so that our ratio of checkout time over servers equal or exceeds the 15 second arrival time.
So the store schedules the three extra cashiers – that eliminates any waits. Now, doesn’t that indicate that waiting timing does depend on the number of cashiers? And doesn’t that indicate that the store saves money by having fewer cashiers and imposing waiting time on the shoppers?
Not fundamentally. How much time in aggregate will the six cashiers require to checkout the shoppers, at the arrival rate of a shopper every 15 seconds? Exactly the same as before with three cashiers, they will require a combined 45 minutes. Regardless of the number of cashiers, and the arrival rate of customers, the aggregate time cashiers require for checkout depends on the number of items and customers.
In our scenario, with 30 shoppers at 15 items each, we could have one, two, three, four, five or six cashiers on duty, and the aggregate time spent by the cashiers for checkout would be 45 minutes. With one cashier, that cashier would take 45 minutes checking out shoppers; with two, each would spend 22.5 minutes for a combined total of 45 minutes; with three, 15 minutes, again for a combined total of 45 minutes; with four, each would spend 11.8 minutes; with five, 9 minutes; and with six, 7.5 minutes.
Very simply, a given shopper load translates to the same cashier time requirement to service that load, regardless of the number of cashiers (up to the point of matching the arrival rate). Having more cashiers reduces shopper delays, and reduces the length of time each cashier spends, but not the total combined checkout time.
What About Idle Time?
Very nice. But you might claim a certain sleight of hand has occurred here. Certainly, the amount of time actually checking out customers depends on the number of customers and the number of items, regardless of waiting lines and the number of cashiers.
But AFTER checking out all the arriving customers, what do we do with extra cashiers. Adding cashiers to eliminate delays does not increase aggregate cashier time actually servicing customers, but what about the idle time after servicing customers. In our early morning scenario, if we add three extra cashiers to handle the 15 second arrival rate, we have six idle cashiers after seven and a half minutes.
What do we do with them? After all, idle time costs money.
We redeploy them.
Grocery stores face many tasks in addition to checking out customers. Associates are needed to stock shelves, staff the customer service desk, place and remove sales tags, reshelve customer returns and abandons, check inventory, coral shopping carts, manage the container return machines, and on and on. At a management level, supervisors must do scheduling, provide oversight, record incoming goods receipts, and so on.
So at any given instant, a store almost certainly faces non-checkout tasks. And at any given instant, some, even a great number, of the non-checkout tasks are not time critical. Their completion can be staggered. Thus, during slack periods, cashiers can be redeployed to these other tasks, and during peak periods, cashiers can be brought back up front (or wherever the cash registers are) to check out customers.
Providing extra cashiers for peak loads thus does not of necessity require having extra cashiers standing by idly. Extra cashiers can become available through their redeployment to and from other grocery store tasks.
Very nice. That is simple to say, but difficult to do.
But not impossible. Management could take these or similar steps, to build a cadre of employees to shift in and out of cashier duty:
- Hire/select a set of employees able and motivated to task shift
- Train them for multiple jobs
- Clear them, as needed, to handle cash and financial transactions
- Work through any union classification or work rules
- Overcome any stigma or preconceptions about the status of cashiering
- Build an overall store culture that accepts task shifting
- Adjust task and employee schedules to maximize task shifting flexibility
These are nettlesome steps for the store management, likely unpleasant and burdensome. But none of these steps – except possibly union rules – presents a hurdle outside the scope and skill one could expect of management at the individual grocery store level.
Missing the Surge
Assume then, that to a lesser or greater extent, the store can move employees to cashier positions to match shopper arrivals at checkout. As noted, store managers can accomplish locally. And actually I would say some, many, stores already do so, though some more successfully and consistently than others, and some of course abysmally.
Another aspect of timing, however, still remains an issue. When do we bring up extra cashiers?
Let’s return to our Saturday morning scenario, specifically the first scenario with 30 second shopper arrival rates at the checkout lines. Let’s assume that past experience indicates two cashiers can handle the early morning load, so we deploy the third cashier to another task.
However, the past experience has misled the store this morning – the load requires three cashiers. Do the shoppers experience waits? How long?
The answer depends on the response time. If we pull the third cashier up to a checkout register within a minute or two, essentially no waits ensue. If we place the third cashier in service with any longer a lag, delays build. With the help of a spreadsheet, we find the following average (across all 30 shoppers) and maximum (for any one shopper) delays for different lags in bringing up the third cashier.
- 5 minute lag – average delay of 60 seconds, and maximum of 90 seconds
- 10 minute lag – average delay 130 seconds, and maximum 180 seconds
- 15 minute lag – average delay 180 seconds, and maximum 275 seconds
- 20 minute lag – average delay 205 seconds, and maximum 390 seconds
If the arrival rate jumps to a shopper every 15 seconds with only two clerks, the delays spiral almost out of control. A small 5 minute lag in pulling the third cashier forward to a register imposes an average delay of 280 seconds, and one unlucky customer waits 500 seconds.
Thus quick and accurate response to shopper load must accompany an ability to redeploy employees as cashiers to handle that load.
Predicting the Load
Our Saturday scenario showed that waiting lines can build, dramatically, in minutes. For success then, we need a method to monitor, even predict, shopper load on a similar scale, i.e. minute-by-minute.
Historic data will help. Such data would assist in setting the general number of cashier-capable employees to be scheduled to work. So for example history may indicate the store rarely, if ever, needs more than four cashiers Tuesday night, while up to ten are needed on a Saturday afternoon.
But beyond that, beyond giving guidance on how many cashier-capable employees to call into work, history provides no help. History lacks sufficient specificity to guide the minute-by-minute decisions on splitting the cashier-capable cadre between cashiering verses non-cashiering tasks.
A store could make, or attempt to make, that split by watching the waiting lines at the cashiers. That would seem simple enough, and would work, partially. In fact, well-managed stores do that now – when lines get long, extra cashiers, if available, are put on the registers.
But once lines form, the battle can be lost. Reducing lines requires not only adding enough cashiers to handle the ongoing surge in customer load, but enough to also work down the prior surge that created the backlog of shoppers now in line. It may not be possible to open cashier lines in sufficient number and with sufficient speed to do that.
Stores need more than just reactive information on current cashier lines; they need forward-looking information to predict future cashier lines. How can stores get such information? Well, at any point, the future load on cashiers consists of the present shoppers in the store. So the information needed is right there. Stores can get a good handle on future load by counting shoppers as they enter, and monitoring their numbers as they shop and check out. Cameras, RFID (radio frequency) tags in shopper carts, electric eyes, cash register data, either individually or in tandem could collect such real time data.
Cost and complexity do become an issue. While building a flexible employee force might fall within the scope and ability of the local grocery manager, real time data collection and forecasting most likely would not. Hardware (cameras, electric eyes, etc.) must first be installed, and then integrated into software that, continuously, compiles and converts the data streams into a forecast of cashier demand.
Such a system may not rival building rocket ships, but the necessary equipment and software can’t be purchased at Home Depot or Best Buy. This doesn’t say real time data systems aren’t available. A quick web search for “Shopper Counter Systems” shows major firms that stand ready to implement shopper tracking. But the grocery chain national office would most likely need to take the lead.
Full Scale Simulations
Our discussion has postulated that three techniques – employee redeployment, rapid response and load forecasting – will shorten waiting times, ease customer aggravation and, importantly, still use employee time efficiently.
Will that theory work in real life? It did in our Saturday morning example, but while instructive, that example was admittedly a bit simplistic. Will our techniques work in a more robust simulation, one closer to real life? Let’s find out, by expanding our modeling parameters as follows:
- Two hour time period (compared to15 minutes for the Saturday scenario)
- Eleven cashier positions (up from three)
- Two of the eleven cashiers serving express (up from no express)
- Three self service lines adding to the 11 cashier positions (up from none)
- Variable # of items purchased (compared to the same for each shopper)
- Maximum of 50 items (up from 15)
- Random arrival times (compared to a constant)
- Shopper arrival rates up one every 4 seconds (up from every 15 seconds)
With our model now expanded, we stand ready to play store supervisor. Can we keep lines short but not waste cashier time?
Let’s use our first scenario as a baseline. No load forecasting will be used; we want the baseline to provide a comparison point to see the impact of such forecasting. Similarly, we will pick a middle ground for cashier deployment rules, again to allow comparison to more extreme rules. Our baseline will thus be as follows:
- Don’t use/deploy load forecasting
- Pull in extra cashiers when lines grow to longer than two minutes
- Redeploy a cashier to another task if lines are less than a minute
- Don’t pull back a redeployed cashier in less than ten minutes
These rules recognize start up time. When a redeployed cashier moves between tasks, a transition time exists, first just walking through the store to the new task, but also setting up for the new task. So employees needs to stay on a new task long enough to get through startup time to a point of actually getting something done.
Note also our scenarios do not assume everybody can do cashiering. Twenty different employees might be scheduled at a given time. But the deli counter attendants likely have no slack, and a few employees likely could not effectively manage switching tasks continually. Thus, in our scenarios, a set cadre of employees, eleven, represents the universe for cashiering and redeployment.
Given the rules and provisos above let’s run a simulation. To keep some brevity in the discussion, we must skip the details – these details comprise a large but manageable Excel file that tracks customers, cashiers, and load second-by-second. Overall, the simulation models 531 shoppers arriving in waves at the cashiers across two hours, with cashiers coming forward, or being redeployed to non-cashier tasks, depending on the customer load and deployment rules.
Running our baseline simulation gives the following:
- Average waiting time (across the 531 shoppers) of 87 seconds
- Average waiting time in the peak 20 minutes (144 shoppers) of 159 seconds
- 74 employee transitions, i.e. moving to or from cashiering
- 114 idle minutes
For a perspective, the 87 second average waiting time compares reasonably to the 120 seconds required on average to checkout a shopper, i.e. the wait is less than the checkout. The 114 idle minutes is only 9% of the total employee time across the two hours.
The 74 transitions, though, represents a good bit of churning back and forth. We maybe be able to sell our employees on being flexible, but 74 transitions in two hours may stretch their tolerance.
Similarly, the 159 second wait during peak will definitely stretch shopper patience. During the peak 20 minutes, a shopper will pull up to a line, every line, to see a customer with up to 50 items being checked out, and another customer with a possibly equally full basket waiting.
Can we do better? Possibly. To find out, we will use a different trade-off in our rules. We will lower the shopper wait threshold for bringing added cashiers forward (pull cashiers forward at just 50 second line waits, down from two minutes) but increase the minimum redeployment time for pulling employees back to cashiering (15 minutes, up from just 10).
This, unfortunately, fails. While pulling cashiers forward with a lower waiting line threshold might seem as if it would reduce shopper waits, the 15 minute minimum for pulling a prior cashier back constrains us. We simply can not get enough cashiers forward fast enough. The result? All the metrics get worse, i.e. longer waits, more transitions, more idle time.
Let’s then flip to an opposite set of rules. We will let lines grow to 4 minutes. But we will pull employees forward to be cashiers immediately when lines hit that wait threshold, regardless of how long, or short, a time has elapsed since that employee was just a cashier.
We again see little improvement. In fact, average wait increases to 150 seconds, and the peak period average wait to 188 seconds.
We remain concerned, also, at the abruptness of pulling employees forward. Employees on alternate tasks (say putting back returns, or stocking shelves) would find themselves pulled forward unexpectedly, with no warming, right in the middle of whatever they were doing.
We could try a “double” extreme scenario. That would combine the short 50 second wait time for pulling forward, with immediate pull forward when lines reach that wait time. But we won’t. Chaos would reign. Employees would revolve back and forth between cashiering and other tasks so frequently they would wonder if we are thinking straight.
Thus, we will now consider load forecasting. As store supervisor, we have concerns over the cost and effort to implement. But we relent, if just to see what the modeling will say.
For modeling, we will project that the forecasting system can give us a five minute forward look at average waiting time. We thus add that into our rule, i.e. if the current wait, or the projected future waiting time, exceeds 50 seconds, we will pull cashiers forward.
We keep the 15 minute minimum for redeployment, i.e. if a cashier goes out to do an alternate task, they do not come forward to cashier for at least 15 minutes. We judge this crucial – the forecasting system must let us have some sanity and stability to our pulling employees in and out of the cashier position.
The result? Thankfully good. Adding in forecasting provides moderate, and in cases, strong improvement. Compared with our baseline scenario, we see the following:
- Average waiting time of 37 seconds (vs. 87)
- A waiting time in the peak 20 minutes of 89 seconds (vs. 159)
- 47 employee transitions, i.e. moving to or from cashiering (vs. 74)
- However, 298 idle minutes (vs. 114)
Forecasting gives sizeable reductions in waits, reduces transitions noticeably, and allows a solid 15 minutes of uninterrupted redeployment time.
Costs and Revenue
But idle time increases. And idle time costs money. With forecasting, idle time increased by three hours (298 minus 114 is 184 minutes) over our baseline scenario. With a loaded cost of $33/hour, this idle time translates to $100 in wage costs in the two hours. That represents a greater than 10% increase in cashier wage costs.
By comparison, however, this $100 dollar cost, and 184 minutes of extra idle time, saves over 400 hours of customer wait time (about 50 seconds a customer times the 531 customers in the two hours). Quick division shows that cost equates to just 25 cents an hour saved.
Will quicker lines bring added revenue, to cover this cost? I would argue certainly. Given the large waiting line reductions, we can market the quicker lines and (given we consistently achieve such quicker lines) most likely garner extra business.
Now, admittedly, any added revenue must cover not only the idle time, but the implementation of the forecasting system.
However, added data could bring unexpected benefits. Our modeling focused on periods in which the stored experienced high and chaotic demand, and highlighted techniques for handling such high and highly variable demand without dramatic increases in costs.
But stores at time do not have such chaotic or heavy demand. Just like we have seen long lines, we also know times (and try to go to the store at those times), where no or few lines exist. A forecasting system, along with an employee force trained and motivated for flexible redeployment, could reduce idle time in such slack periods.
Such savings could be significant, possibly astounding. And we could extend the load forecasting to the deli counter, or bakery, or service counter.
A load forecasting system, if sufficiently precise, could produce revenue gains and cost savings that pay for the system.
What do we have then?
We started with a question of why don’t grocery stores have more cashiers. After stepping through some considerations and modeling (well actually a good number of considerations and a good bit of modeling), we found techniques for shortening waits.
Along the way, a principle emerged – creating long waiting lines does not reduce the actual combined time cashiers require to checkout a set group of shoppers. Regardless of waiting times for the shoppers, the cashier time actually spent checking out shoppers depends on the number of shoppers and items.
Waiting lines emerge from an imperfect matching of that cashier time with the arrival of shoppers.
And that was where our techniques entered. Our techniques – employee redeployment, rapid response and load forecasting – aimed to move around the cashier availability to match shopper arrival, without generating side effects, i.e. idle time, chaotic employee deployment, costs.
So next time you wait, imagine, if you are so inclined, what could be done. While what could be done might not be done, thinking about might make the time go faster.