Measuring Queue Times with Xovis Cameras
By Gary Angel|
August 28, 2018
Checkout is a critical part of the in-store experience. It’s a top driver of dissatisfaction cited in store surveys, it’s one of the few really controllable abandonment points in the store funnel, and it’s one of the most tweakable operational experiences in the store. But it’s not easy to measure the real performance of your stores.
You can measure Register times to see how long each transaction takes, but most stores simply don’t have the ability to measure shopper queue times and see how effective their Register and Staffing strategies actually are. In one sense, it seems straightforward. Just measure shopper queue times. But like most problems in the world of geo-location and shopper measurement, it’s a bit more challenging than that. It’s the kind of problem Digital Mortar is committed to solving, and in the past two months I’ve been deep into a couple of queue measurement problems and I’m going to talk about the challenges the data presents and the methods we’re using to solve them.
In geo-location shopper measurement there are a range of technologies that provide different levels of comprehensiveness and accuracy. For larger spaces, WiFi tracking can provide basic shopper measurement. For queue measurement, however, it doesn’t deliver anything like the positional accuracy necessary. We often use dedicated electronic tracking for broad journey measurement – and correctly deployed it can deliver positional accuracy at the sub-section level of a store. With that level of accuracy, passive electronic measurement can do decent queue tracking if you have large, discrete cashwraps. It’s not great, though. Passive electronics can’t give you adequate tracking of groups (which turns out to be quite important for accurate wait-time measurement) and if your cash-wrap is integrated with the store it’s not positionally accurate enough to differentiate shoppers from transactors. Queue measurement with electronics is also limited by the sporadic ping rates you get – it does a better job tracking longer dwell times than it does actual paths. That can mean significant accuracy problems when it comes to measuring shorter line times.
Mobile App tracking can do the job (it solves the ping rate problem completely and you can usually get sufficient positional accuracy) – and if you have decent app penetration you might get a good enough sample of shoppers to do adequate queue tracking. For most stores, though, mobile app tracking won’t deliver a large and consistent enough sample of shoppers to provide the operational intelligence you need.
If you’re shopping skews heavily to basket or cart, you have a better alternative. Active RFID tracking can provide excellent queue tracking. It’s highly accurate and even if every shopper isn’t tracked, you’ll get accurate queue overall queue times.
For stores without that luxury, the measurement technology you need is camera.
We’ve been using Xovis Measurement Cameras for queue measurement. Xovis is a European company that got their start doing airport measurement – so tracking queues is key to what they do. Xovis cameras have a wide field of view, do an excellent job of edge-based, people tracking, and are reasonably priced. Wide coverage means that one camera can cover a typical cashwrap and provide a fairly deep queue. If necessary, you can even matrix them together in multi-sensor mode to create a very large tracking area. Accurate people-tracking is critical of course. Measurement cameras do the on-board work to identify people-objects and track them in their field of view. Since no video signal need come off the camera, you don’t need much bandwidth to run them in the field and there is ZERO chance of privacy infringement. It’s an excellent all-around people-measurement camera. Many people use them for door-counting, but they can do much more. For a small footprint store, Xovis cameras can serve as a powerful and comprehensive measurement system and for just about ANY queue – from a single register cash-wrap to a Casino check-in it’s an ideal solution.
How it Looks
These are ceiling mounted cameras that have a steep field of view. As I mentioned, in most cases a single camera will cover a traditional cash-wrap. The Xovis cameras can be set to different privacy modes. You can stream full video off of them or you can just push data (we just push data). The cameras are setup and managed in IBEX – which provides a robust device management console. You can do all the configuration remotely – and the most important element is drawing out the floor. Getting a clean floor makes a significant difference and it’s actually a bit work as the drawing tool is kind of quirky.
Here’s a top-down view from a camera in a store with the floor drawn in (the yellow-lined shape). Those three circles in the upper middle represent a group of shoppers:
At this point, lots of Xovis users add zones and lines. Zones allow you to easily count shoppers and dwell times. Lines let you count people crossing a line in a direction. They’re both useful tools, but we actually don’t use them at all for reasons I’ll explain when I get to the challenges section. Instead, we work with the low-level PeopleObject feed.
The PeopleObject Feed
The Xovis cameras produce a low-level feed of PeopleObjects. It’s simple and straightforward feed with a few options. You can control the ping interval and the granularity. Ping intervals range up to 1 hour and data granularity can go all the way down to ¼ second. The first interval controls how often the device posts data. The second interval is the level of granularity for each frame. So if you pick a 5 second ping rate and a data granularity of 2.5 seconds, you’ll get two people objects frames (per person) in each post and you’ll get an update every 5 seconds.
The feed contains a randomly generated person object identifier, an x,y coordinate (in pixels of the camera frame), a timestamp and the person height. That’s it.
We route each camera to an URL based on the store and camera identifier. The server appends that information (store & camera) to the record when it writes it.
What we like about getting the PeopleObject feed is that it allows us to do a much better job cleaning the data and providing more robust reporting than is possible with more basic counting.
Challenges to Accurate Queue Measurement
It seems so easy to do queue measurement – you setup a camera, draw a zone in front of the register – and measure count and dwell time. Done.
There are even a few places and cases where that’s really all that’s necessary. But there are some common factors that greatly complicate line measurement:
Congestion: If your Cashwrap lines run through and near merchandise, you are going to have a hard time separating browsers from buyers. You’ll see shoppers cross lines, dwell in line areas and do every other metric- destroying behavior you can imagine.
Groups: People often shop in packs. You may think that’s no big deal since the whole pack will spend the same amount of time in the queue. But that’s not the way it works. One person may stand in line while others join them or leave sporadically. You ever joined your spouse as they stand right at the register? Did you wait in line? This kind of behavior destroys dwell time and transaction counts when you use basic zone or line-based measurement. It’s shockingly common in stores – and without group control you’re queue measurement times will be badly skewed.
Unusual Access Routes: We tend to think of people approaching from the front and queuing in a straight line. Sometimes that’s the way it works. But not only can lines wrap in funky ways, people can often approach the cash-wrap without crossing any of your lines or crossing them in the wrong direction – as if they were leaving!
Associates: When they stay behind the counter it’s pretty easy. But you’ve probably seen Associates hang out at the front of the cash-wrap too. Sometimes it’s a chat. Sometimes it’s just a good place to hang out and it can be better for service since there’s no counter separator and it’s easy to slide behind the counter to handle a transaction. Fine for service, bad for metrics.
Zones and line-crossing get hosed by each of these – and in a lot of stores they can seriously impact measurement.
What we do
By working with the raw data, we can do a lot to clean-up the measurement and protect the metrics from each of the complicating factors. Here are some of the techniques we use:
Group identification: We use a scoring system to group shoppers based on multiple techniques and data points including ingress and egress times at cashwrap front and significant spatial proximity parallel to the line. We’ll also use height thresholds to identify kids and force family groupings. Group identification is a critical component of accurate measurement – and it’s hard. There’s always ambiguity and fuzziness in a crowded line – but making the effort to group shoppers accurately makes almost every metric better – from raw transaction count to queue time to abandonment.
Measure Backwards: Once you’ve grouped people, the easiest way to separate the transactors from shoppers is to identify significant times in the tight bounding box at register front and then work backward to see how long they spent in line. By establishing the transactor population groups you can do a much better job calculating actual wait times.
Line Warping: This same strategy helps us identify unusual access points and weird lines.
Associates: We track the Associate side of the Cashwrap (if possible – this isn’t always doable) to help calculate the number of open registers. But we can do a similar calculation based on simultaneous transactor groups at front of line. This helps us build a report that measures how well the store is responding to queue times by opening positions. This also allows us to track Associates in the frame and separate out their tracks. We can also remove non-transaction like wait times – transaction times that are too long or too short to be actual transactions.
You may think some of these techniques sound like would only impact the counts on the margin. And sometimes you’d be right. But grouping, in particular, often causes dramatic swings in the data (both positively and negatively) – moving the counts by as much as 2 or 3x. That’s huge. And if your cashwrap line winds through merchandise areas, you simply can’t get decent queue measurement without careful analysis of the detailed data.
As with most shopper measurement, getting the data right is quite a bit harder than it looks.
There isn’t a single metric that captures everything you need to know about a queue. Given the low-level approach to the data, there are quite a few unusual metrics that we can derive for particular use-cases – things like % families, % groups and group size. Those metrics are primarily interesting not in terms of the queue but in terms of the broader business.
From a queue perspective, the key metrics tend to be:
Transaction Count (Group-based): This isn’t a true transaction count of course. One thing you can’t do with camera alone is separate out transactors from shoppers with questions, returns, issues, etc. To do that, you need to integrate time-based POS data. So this is really the total number of times a person/group met the criteria for being at the front of an active cash-wrap for a minimum amount of time. What’s the minimum amount of time? That’s going to depend on your stores. One way to come up with a good value is to look at the time between transaction starts on individual registers in a store. This data comes right out of the POS system and it’s easy to find an appropriate floor. It’s rare to find transaction times under about 75 seconds – but it’s common to see them under two minutes. So your floor is likely to be somewhere in the 1-2 minute range.
Transaction Time: The average amount of time a shopper/group spent in that front-of-register position. This is a good metric to see how efficient stores and teams are at POS. As is common with queue metrics, it’s also important to understand the median and – at a grouped level – even the mode for transaction times. In addition, we provide % of transactions at different thresholds so it’s easy to see how many shoppers experienced slow transactions.
Queue Time: The mother of all line metrics is, of course, queue time. Like transaction time, we like to provide it as an average and a median as well as across ranges. Here it’s particularly important to see how many shoppers had long queue times. One issue on queue time is depth of field. During very busy times, it’s not unusual for the line at a store to extend well past the traditional area. During holiday season, you’ll sometimes see lines going almost out of a store! When a line exceeds the depth of field of the camera, you’re going to lose queue time tracking. In this case, we like to measure the percentage of people who started their checkout at the maximum depth.
Line Depth & Appearance: Almost as important as queue time is understanding line depth and appearance. The depth of the line – not the wait time – is what potential buyers perceive. A line may be 2 transactors deep but – with groups – have six or seven people in it. Because shoppers are intuitively somewhat aware of groups, a line with two groups and six people looks better than a line with six individuals but worse than a line with 2 individuals. We can track both group depth and people depth in a line.
Active Registers: Part of making a queue time report actionable is making it easy to understand whether the store was doing everything it could to reduce queue times. We’ll track multiple cash-wraps (that’s actually pretty easy) to capture when second, third, etc. checkout points are open. In addition, we use both Associate presence and simultaneous groups in front-of-register position to measure the number of lines open for each period. This makes it easy to identify times when the lines were long but additional registers weren’t being opened.
When you can rapidly identify the days/times/stores when line lengths got long and cross-reference that with the store’s ability to open registers, you have the kind of measurement that can quickly find and operationalize fixes to your line control strategies.
In my next post, I’ll show how dramatic an impact these complicating factors can have on the data. These aren’t edge cases – and proper measurement techniques will improve accuracy by factors of 2x-3x not 2 to 3%!
- Don’t be a Friggin Moron – Choosing a Cloud Provider for Retailers : The Measurement Minute #47 w. Gary Angel
- Building a Data Factory for ML Learning
- Too Sexy to Be Useful? : The Measurement Minute #46 w. Gary Angel
- The Analytics Nexus : The Measurement Minute #45 w. Gary Angel
- Operationalizing ML : The Measurement Minute #44 w. Gary Angel