A general manager does not read dwell time. She reads the wait list, the reservation book, and a number in her head for how many parties an hour the dining room can absorb before a Friday rush turns into a line at the host stand. Correcting a camera feed for staff movement, the way Janus does before it reports anything, produces a better measurement: guest-only table dwell, 22% longer than a restaurant's own ticket-close clock had shown. None of that changes a single decision on the floor by itself. A minute figure sitting in a dashboard is an analyst's number. What a GM needs is covers-per-hour, and getting from one number to the other is its own piece of engineering.
A measurement is not a decision
That gap between a measurement and a decision shows up everywhere sensors get bolted onto a business, and on a restaurant floor it runs in the opposite direction from what most dashboards assume. Most reporting tools start with an operational number a manager already trusts, a ticket time or a POS close, and layer analytics on top of it. Janus starts one level lower, at the pixel, and has to climb back up to a number that means something to whoever is deciding how many servers to schedule for Friday's dinner rush.
On the fast-casual floor Janus tracked for a single dinner service, that climb started with 17 distinct presences moving through the dining room and ended with 4 of them correctly flagged as staff, not guests. Once staff time came out, guest table dwell measured 22% longer than the restaurant's ticket-close timestamps had implied. That number is real and verified. It's exactly the kind of thing a data team is proud to ship. On its own, it is not much use to the host standing at the front door telling a party of four how long the wait will be.
Five rungs from pixel to KPI
Getting from a corrected dwell minute to a staffing decision takes two more steps, not one unit conversion. Each rung strips out noise the rung below it could not see, and each one is a place a vendor could quietly stop building and start hand-waving instead.
The formula the ladder is climbing toward
The top rung has an actual formula behind it, and it is not exotic: covers per hour equals seats times sixty, divided by turn time in minutes, where turn time is guest dwell plus whatever reset gap a table needs before the next party sits down. Black Box Intelligence's own restaurant benchmarking puts a concrete number on why that denominator matters: cutting one dining room's turn time from 90 minutes to 75 lifted nightly revenue 20%, with nothing else about the room changed. The formula runs the same whether the input comes from a stopwatch or a camera. The camera just makes the input honest.
Feed a naive, ticket-time-based turn assumption into that formula and it produces a covers-per-hour ceiling higher than the room can actually deliver, because the ticket clock is missing the host-stand wait and the minutes a party lingers after the check closes, the same gap the fast-casual floor's data closed at +22%. Swap in guest-only dwell and the ceiling drops to something the floor can actually hit. The chart below runs both versions of the formula across a range of turn times for a 60-seat room.
At a 90-minute assumed turn, the naive formula says a 60-seat room can move 40 covers an hour. Run the same room through the guest-dwell correction and the honest ceiling is closer to 33, an 18% gap between what a schedule built on ticket time promises and what the floor can actually deliver. That gap is not a rounding error. Staff a Friday off the higher number and the shift runs a server short during the exact hour tables are running long, which is precisely the failure mode the dwell correction exists to catch.
The dwell number was never the point. The point is the covers-per-hour figure two rungs above it, the one a host stand uses to make a promise at 7:15 on a Friday.
What actually changes on the floor
None of this earns its keep if the output is a number a data team checks once a week. A covers-per-hour figure only matters while a host is deciding between a 25-minute quote and a 45-minute one, mid-service, with a line already forming at the door. That number has to arrive live, while the host is still deciding. It can't wait for a report someone reads on Monday. Janus runs its floor model at 42ms latency with a 94% confidence score attached to every reading, so the number a host stand sees has already climbed all five rungs, pixel to zone to guest dwell to turn time to covers-per-hour, before the next party walks in.
The POS will keep quoting ticket time. It was never built to run the rest of the ladder. The floors that translate their own camera feed into a number a GM actually uses are the ones writing their own Friday staffing plan, instead of borrowing one from a clock that was never watching the whole table.
Turn your own floor's dwell into covers-per-hour.
Janus reports guest-only dwell at 42ms latency with a 94% confidence score on every reading, then runs it through the same turn-time model behind this piece, so covers-per-hour updates mid-shift instead of showing up in next week's report.