An empty pot is a sale you never see.
At a convenience store, hot-food and ready-to-eat lines sell only while they are stocked. When the oden pot or a chiller shelf runs low between replenishments, customers simply don't buy — the loss is invisible because nothing rings up. Overcorrect and you get waste at end of day. The job is to see availability continuously and act on it at the right moment.
Read the shelf from the camera that's already there.
No new sensors. The system samples frames from existing store CCTV, runs an object-detection model over the pot or shelf, and turns it into a single On-Shelf Availability (OSA) score. When OSA drops below the target for that time of day, it raises an alert.
Capture
Pull oden-pot / chiller-shelf frames from the store's existing CCTV feed.
Detect & score
An object-detection model reads what's present and computes the OSA level per tray or shelf.
Alert
If OSA falls below threshold, store & area managers get a restock alert with the live photo.
Proven first on the oden counter.
Each pot is detected and scored for fill level in real time. We then logged availability continuously at one pilot store to see how it moved across the trading day.
Availability and sales move together.
Plotting OSA against sales (PSD) by time of day made the relationship — and the failure modes — legible. Four patterns stood out:
Low availability can't carry demand through to end of day — early stockout, missed evening sales.
Lower availability tracks straight to lower sales — the clearest OSA → revenue link.
High waste from restocking too late in the 10 PM slot — stock that won't sell before close.
High availability but low sales — points to staffing / low footfall rather than stock. A different lever.
An alert a manager can act on in seconds.
When availability drops below the target for that hour, the system emails the store and area managers a restock alert — the current vs. target OSA, the projected lost sales, and a photo of the pot.
Oden availability at Sunway Giza is critically low. Immediate restocking is required to maintain availability and prevent lost sales.
And tracked on a dashboard
For the operations team, the same signal rolls up into a store BI dashboard — sales overview and trends alongside the loss-sales read-outs.
Who owns what, and the targets to hit.
The rollout splits cleanly across the BI and operations teams, each scope with a clear owner:
| Scope | Detail | Owner |
|---|---|---|
| Collect data | Define oden & RTE OSA metrics from the pilot stores. | BI & OPS |
| Alert system | Detect low availability and alert stakeholders. | BI |
| Update plans | Replenish according to the set plan. | OPS |
| Reduce waste | Address shrinkage and minimise wastage. | OPS |
| Boost sales | Track trends and share updates with management. | BI |
OSA targets by time of day
Targets are set high through the selling peaks and deliberately low near close, so the plan chases sales when it matters and waste when it doesn't.
| Time | Target OSA | Why |
|---|---|---|
| 8:00 AM | ≥ 100% | Breakfast stock-up |
| 12:00 PM | ≥ 150% | Lunch peak |
| 4:00 PM | ≥ 150% | Afternoon snacks |
| 8:00 PM | ≥ 100% | Dinner peak |
| 10:00 PM | ≤ 40% | Wind down — waste reduction |
Targets above 100% mean stocking beyond a single pot's baseline fill — deliberate extra cover so the line survives the peak without a mid-rush stockout.
Estimated against ~RM 7,000 capex, with a target uplift of ~RM 100 average daily oden sales per store — before any reduction in end-of-day waste.
The same engine, on the chiller shelves.
The oden pilot generalises to ready-to-eat (RTE) and general-merchandise (GM) shelves: detect what's on the shelf, score availability, and additionally check planogram compliance — is the right product in the right place. RTE adds a food-safety angle: replenish on time, don't oversit stock.
- OSA scoring extended to onigiri / sushi / rice-box, sandwiches & noodles, and fresh-food chillers.
- Automatic planogram-compliance checks against the layout.
- Same alert + dashboard path — store managers get the same actionable signal.