Retail operations
Netra3 store monitoring
Turns the CCTV a store already has into live incident alerts and a daily footfall report.
- Faster response to operational issues
- 40%Faster response to operational issues
- Of alerts marked worth knowing about
- 91%Of alerts marked worth knowing about
- Cameras live across eight stores
- 62Cameras live across eight stores
- To bring a new store online
- ~20 minTo bring a new store online
The problem
Nobody can watch a wall of CCTV feeds all day. Incidents were surfacing the next morning in the recording, when they surfaced at all, and head office had no view of what normal looked like across locations.
The approach
Zone-based video analytics running on the cameras already installed: footfall counts, incident detection, alert routing and a daily operations dashboard.
Working with the cameras that are already there
Hardware set the shape of this build. Stores have cameras already, they are rarely the ones you would choose, and replacing sixty of them across eight locations was never on the table. Everything had to run against the feeds as they are: a mix of 720p and 1080p, several streams still behind analogue encoders, framing chosen years ago for insurance rather than analytics, and lighting that shifts from opening through to close.
That ruled out anything needing a clean overhead view or consistent framing. It also ruled out shipping full-resolution video to a server for every camera, because the uplink at a typical store will not carry it. Inference runs on a small box in the back office at around 10 frames per second per stream, and only events leave the premises.
Why zones instead of frames
Analysis is zone-based rather than frame-based. During setup someone draws the areas that matter onto a still from each camera, the entrance, a couple of aisles, the billing counter, and names each one. The system then reasons about what happens inside those regions and reports at that level.
This is the difference between output a store manager uses and output they ignore. "Counter queue above four people for six minutes" is something a manager can act on. A stream of bounding boxes with confidence scores is not, however accurate it is. Zones also make the system portable: bringing a new store online is a setup task of about twenty minutes rather than a modelling exercise.
Alerting was the hard part
Most of the engineering effort went into alerting rather than detection. An alert nobody sees is worth nothing, and a channel that cries wolf gets muted inside a week, after which the system may as well not be running.
Three things did most of the work. Alerts are debounced, so a condition has to persist before anything fires. They route to whoever is on shift rather than into a shared inbox. And every one is acknowledgeable, which gave us the only honest quality measure we have: the share of alerts staff mark as worth knowing about, currently around 91%. Detection precision on its own told us very little by comparison.
What we would do differently
We under-invested in the setup tool. Drawing zones stayed an internal job for months, which put an engineer on a plane every time a store opened. It should have been something a regional manager could do from a tablet, and retrofitting that cost more than building it in would have.
We would also treat the daily report as a first-class part of the product rather than a byproduct of the pipeline. It turned out to be the thing head office actually reads, and for a long stretch it was the least designed surface we had.
Questions we get asked
- Do we need to replace our existing CCTV cameras?
- No. That constraint drove the whole design. The system runs on existing feeds across mixed resolutions and mounting positions, including analogue cameras behind an encoder. Framing quality affects how much a given camera can reliably report, not whether it works at all.
- Does video leave the store?
- No. Inference runs on a small on-premise edge box, and only the events go onward: a zone count, or an incident with a timestamp. That keeps footage on site and means store uplink bandwidth is not a limiting factor.
- How long does it take to bring a new store online?
- About twenty minutes of setup once the box is installed: point it at the streams, then draw and name the zones for each camera. No per-store model training is involved, which is the practical benefit of reasoning about zones rather than raw frames.
- How do you stop staff from muting the alerts?
- By treating alert quality as the product metric rather than detection accuracy. Alerts are debounced so a condition must persist, they route to the person on shift instead of a shared channel, and each one can be acknowledged or dismissed. Those dismissals are the feedback signal, and right now about 91% of alerts get marked worth knowing about.
More work
Have a problem
worth solving?
Tell us what you're building. We'll help you work out what's actually possible, and say so if we're not the right people for it.