Measuring dwell time: what a zone tells you about your floor - and why five seconds is the boundary that matters
A number at the entrance tells you somebody was there. It does not tell you whether they cared.
That gap is not a detail. Between “5,000 visitors” and “5,000 visitors, 3,200 of whom crossed the promotion area in under five seconds” lies the difference between a statistic and a decision. The first number you can report. With the second you can do something.
This article walks through how a dwell time comes about, why it has to come from the sensor rather than from a calculation, and why the five-second mark says more about a floor than any daily average. It follows on from People counting: technologies compared, which dealt with what does the counting in the first place.
Four questions an entry count cannot answer
Anyone responsible for a floor arrives at these four questions sooner or later. None of them can be answered at the door line.
How long does someone stop? Dwell time in front of a shelf, a category, a display. Measurable by hand only with a member of staff assigned to watch - that is, with exactly the resource the exercise is meant to free up.
Engaged visitor or passer-by? The difference between someone who stops and someone who walks past appears in no entry count. Sensor manufacturer Xovis names this distinction as a core requirement in five of its retail use cases.
Is the secondary placement working? Whether a category or a promotion area pulls shows up in the dwell time in that specific zone - not in the day's total for the whole site.
And until now? Gut feeling and hand clickers. Xovis calls both “woefully outdated” in its heat map paper - and in the dwell-time paper adds the point that finishes off manual observation for good: it is costly, inexact, and the behaviour being watched changes under observation.
What a zone is - and what it is not
A zone is a section of floor defined in the sensor: the checkout area, the space in front of the chiller, the waiting area at a counter, the floor in front of an exhibit. Not a shape somebody draws on a plan afterwards, but an area the device knows and reports events for.
What follows from that is awkward and important in equal measure: zones are created before the first measurement, not after it. Cutting your floor into zones is already a decision about which questions can be answered later. A zone that lumps three categories together can never separate them again.
In practice that means four things, and you decide all four once:
- One zone, one question. If you want to know whether the promotion area pulls, give it a zone of its own - not one shared with the aisle in front of it.
- Zones may overlap. The space in front of the chiller can be part of the category zone and a zone in its own right. A visit then counts in both.
- Size determines the tier. A zone covering half the sales floor collects transit visits and looks the same every week afterwards.
- Whatever you want to compare later, you cut the same way today. Two branches with differently cut zones cannot be read against each other.
This is the real difference from counting at the door. A door line measures an event: somebody crossed it. A zone measures a state: somebody is present in an area. A state has a duration; an event does not.
Dwell time comes from the sensor, not from a model
This is where suppliers part company, at a point almost nobody checks.
A 3D sensor reports an attribute with the measured time in the zone, in seconds, for every zone exit. That figure is taken over and stored. There is no interpolation, no extrapolation from entry and exit timestamps and no correction factor - the number in the report is the number the device measured.
The alternative, which is also on the market, derives dwell time from occupancy: people in the zone divided by throughput. That produces a plausible average and conceals precisely what matters - that the same average can hide two completely different floors. A zone where everyone stays 40 seconds and a zone where half stay three seconds and half stay 77 seconds have identical averages. Only one of them works.
Why exits are counted and not entries
A zone visit counts once it is finished. While somebody is still standing in the zone, their dwell time is not a figure but a running clock.
That sounds like hair-splitting, and it is the reason some reports sag at lunchtime: counting entries and folding in the visits still running, at whatever duration they have reached, pushes the average down exactly when the floor is busiest. So the exit is what counts - and that is how it should be labelled.
The four behaviour tiers
Every single zone exit is sorted by its measured duration. Not an average over a time bucket, but each event on its own.
| Tier | Measured dwell time | What it describes |
|---|---|---|
| Transit | under 5 seconds | The zone was crossed. No stop, no attention - the route happened to pass through |
| Browser | 5 to 30 seconds | A brief stop. The offer was noticed but not examined |
| Shopper | 30 seconds to 2 minutes | A stay with attention. From this tier on, the visit counts as engaged |
| Committed | over 2 minutes | An extended stay. On a sales floor, the tier where decisions are made |
An example that shows the difference from the average. Two zones, both with an average dwell time of 40 seconds. In zone A, 70 percent of visits are transit and 20 percent committed - the floor is mostly crossed, and a small group stays a very long time. In zone B, 80 percent sit in the browser band, almost nobody under five seconds and almost nobody over two minutes. Same average, two entirely different jobs: zone A needs better routing to the area, zone B needs a reason to stay longer.
The boundaries are fixed and not adjustable per site. That is deliberate: a threshold every operation sets differently makes comparison between two sites impossible - and comparison is half the value of the figure.
What the mix says about a floor
The shares describe what happens in a zone. They claim nothing about intent to buy.
A transit-heavy zone. Nearly all visits under five seconds: the floor is a thoroughfare. Perfectly fine as a route - not as a placement for high-margin goods or anything that needs explaining.
A browser-heavy zone. People stop briefly but rarely longer than 30 seconds. Visibility is there, attention is not. The classic case for a placement test.
A high shopper share. From 30 seconds on, the visit counts as engaged. This share is the figure a change is meant to move - and the one that shows up in a before-and-after comparison.
Two rates that only mean something together
Engagement rate: how intensely
The four tiers produce a single figure: the share of visits of 30 seconds or more among all completed zone visits.
Engagement rate = (shopper + committed) ÷ (transit + browser + shopper + committed) × 100
On its own that figure is meaningless. “38 percent” is not information until somebody knows what the value was over an equally long period before. So the comparison window belongs to the metric, not beside it: same window length, same site, identical definition.
Two details reveal whether a report is built properly. First, the change belongs in percentage points, not percent. From 38 to 42 is four percentage points and roughly eleven percent - mix the two and you can report triple the movement depending on your mood. Second, the site-wide value has to be traffic-weighted. Every zone enters with the weight of its actual traffic. An unweighted mean lets the niche with forty visits count as heavily as the main aisle with four thousand.
Capture rate: how many
The second figure answers a different question. Not how intensely, but how many.
Capture rate = zone visits ÷ site visitors × 100
A zone with a high dwell time and a low capture rate is a well-functioning area almost nobody finds. A zone with a high capture rate and a transit share above 80 percent is a thoroughfare everybody takes - and not somewhere to put goods that need explaining. Only both figures together produce a statement.
One note that belongs next to the number: if a zone is entered more than once, the capture rate can exceed 100 percent. That is not an error - it means visitors were there more than once on average. A report that trims that case away hides the most interesting behaviour it has.
Where the figure stops and the state begins
The sample floor in a ranking
A zone ranking is useful right up until a zone with eleven visits tops it.
Small samples produce extreme values, and extreme values are believed first and acted on first. The niche in the back aisle has seven visits on a quiet Tuesday, two of them over two minutes - 29 percent engagement, top of the table, and by Friday the promotion display is standing there.
The remedy is a floor that applies before sorting rather than after: a zone enters the ranking only from at least five visits and at least five percent of all zone visits. Zones below that do not quietly disappear from the denominator; they are named explicitly in the report.
This is the same thinking as the handling of missing values we described in the article on measuring queues and wait times: where the sample does not carry, there is an empty state - not a zero. A report that says what it does not know is the only one still believed the second time.
Live occupancy: “empty” and “unknown” are two states
Alongside the retrospective view sits the running one: how many people are in a zone right now, as a share of its capacity.
The calculation is zone entries minus zone exits since the start of the day. The delicate part is not the arithmetic but the outage. A display that keeps showing “0” when data stops arriving is more dangerous than no display at all - because “empty” and “I do not know right now” then look identical. And it is on that display that admission, staffing and safety decisions get made.
Done properly, that means four states instead of one figure, and the last one beats all the others.
- Safe - occupancy below the first threshold. Nothing to do.
- Caution - the zone is approaching its capacity. The moment at which a measure still works.
- Full - threshold reached. From here on, every alert is a late one.
- Stale - the last update is more than three minutes old. There is no figure, only the statement that nothing is currently known.
The order is what matters: the stale state is set before any threshold comparison happens at all. Otherwise a system raises alerts on data it does not have - and that is the failure that costs trust permanently.
Every zone has its own rhythm
Staffing, replenishment and cleaning are planned around the site's opening hours. But the peak hour of a checkout zone and that of an advisory zone rarely coincide - and that is exactly where the workload nobody planned for appears.
This only becomes usable as a multiplier rather than a curve: “peak equals 2.4 times average” is a planning figure; a daily line is a picture. One detail that often gets miscalculated belongs with it - the divisor has to be days with data, not calendar days. Evaluate over a wider period and count the dataless days, and every peak inflates artificially.
The same logic carries across the week and across the year: weekday patterns per zone rather than for the site alone, and a twelve-month view that recognises quiet and busy months by their distance from their own mean.
The five figures at a glance
| Figure | How it is formed | What decision it carries |
|---|---|---|
| Zone visits | Completed visits, meaning zone exits | The base. Without it every rate is open at the bottom |
| Average dwell time | Sum of measured zone times ÷ number of exits | Whether a floor holds people or is only crossed |
| Four tiers | Each exit sorted by its measured duration | What actually happens - the average alone conceals it |
| Engagement rate | Share from 30 seconds on, traffic-weighted, against the previous period | Whether a change worked, in percentage points |
| Capture rate | Zone visits ÷ site visitors | Whether a floor is found at all |
What belongs in the tender
Six questions that separate a figure from a defensible figure:
- Does dwell time come from the sensor, or is it derived from occupancy and throughput? A derivation hides the distribution that matters.
- Does the system count zone exits or zone entries? Only exits give you completed visits.
- Are the tier boundaries fixed or adjustable per site? Adjustable boundaries make site comparison worthless.
- Is the site-wide value traffic-weighted? Otherwise the niche counts as heavily as the main aisle.
- From what sample size does a zone enter the ranking - and does the filter apply before or after sorting?
- What does the live display show when no data arrives for three minutes? “0” is the wrong answer.
How we do it
The ANALYSIT Counting System evaluates every zone exit individually and forms dwell time, the four behaviour tiers, engagement rate and capture rate per zone. Dwell time comes from the sensor, not from a derivation. The site-wide value is visitor-weighted, the change sits in percentage points next to an equally long preceding period, and a zone enters the ranking only from five visits and five percent of all zone visits.
Alongside that, the running view: zone occupancy as a percentage of capacity, updated every few seconds, threshold per zone - a fitting-room zone needs different limits from a checkout zone. When data stops arriving, what stands there is the state, not a zero.
Beyond the zones, the analysis shows which zone sequences actually occur: the most frequent routes as a countable ranking with number, share and average duration, plus entry and exit zones. Counting is anonymous - no images, no facial features and no device identifiers are created.
If you want to know how your floor should sensibly be cut into zones and what can be measured from it, talk to us. We look at the floor plan, the ceiling height and the routes across it - and tell you before the quote which of these figures your floor will give you.