Internal Docs internal-doc.junannn.com
Retail Analytics · Computer Vision · FamilyMart — Corporate Planning 2024/25

On-shelf availability & lost-sales indicator.

A computer-vision system that scores product availability at the oden counter and ready-to-eat shelves from existing store CCTV — and alerts staff to restock before a gap turns into a lost sale.

0
New sensors — runs on existing CCTV
≈3 mo
Estimated payback
1
Pilot store — FamilyMart Sunway Giza
01 · The problem

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.

02 · How it works

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.

1

Capture

Pull oden-pot / chiller-shelf frames from the store's existing CCTV feed.

2

Detect & score

An object-detection model reads what's present and computes the OSA level per tray or shelf.

3

Alert

If OSA falls below threshold, store & area managers get a restock alert with the live photo.

03 · Pilot — oden availability

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.

CCTV of an oden counter with detection boxes labelled 'oden 0.95', beside a panel of pots scored at different availability percentages
Live oden detection on the counter CCTV — each pot is scored for fill level, producing a per-tray availability reading.
A week-long heatmap of oden availability by time of day and date, cells shaded green to red
A week of availability at half-hour resolution (Sunway Giza) — green is stocked, red is empty. The gaps are where sales quietly leak away.
04 · The insight

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:

A table correlating on-shelf availability with product sales by time of day, cells colour-coded for high/low sales and availability
On-shelf availability (OSA) tracked against sales (PSD) across the day — the evidence behind the four timing patterns below.
~4–6 PM

Low availability can't carry demand through to end of day — early stockout, missed evening sales.

~8–9 PM

Lower availability tracks straight to lower sales — the clearest OSA → revenue link.

~10 PM–12 AM

High waste from restocking too late in the 10 PM slot — stock that won't sell before close.

Midday

High availability but low sales — points to staffing / low footfall rather than stock. A different lever.

05 · From signal to action

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.

Alert: Low On-Shelf Availability
to: store manager · area manager  ·  from: FM AI

Oden availability at Sunway Giza is critically low. Immediate restocking is required to maintain availability and prevent lost sales.

Current OSA
29.25%
Target OSA
80.00%
Projected lost sales
~RM 75
low-osa-oden.png

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.

A retail BI dashboard with KPI cards, monthly sales trend and performance charts, and top-store / top-item breakdowns
Store BI dashboard — regular lost-sales tracking, an ML loss-projection, and staff-availability-by-hour at the counter.
06 · Action plan

Who owns what, and the targets to hit.

The rollout splits cleanly across the BI and operations teams, each scope with a clear owner:

ScopeDetailOwner
Collect dataDefine oden & RTE OSA metrics from the pilot stores.BI & OPS
Alert systemDetect low availability and alert stakeholders.BI
Update plansReplenish according to the set plan.OPS
Reduce wasteAddress shrinkage and minimise wastage.OPS
Boost salesTrack 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.

TimeTarget OSAWhy
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.

≈3-month payback

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.

07 · Beyond oden

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.
Left: product catalogues for onigiri/sushi/rice-box and sandwiches/noodles. Right: a fresh-food chiller shelf with detection boxes and an OSA reading of 92.15%
Extending to ready-to-eat: per-category product catalogues, and live shelf detection reading 92% availability on a fresh-food chiller.
Honest constraint — scaling depends on camera angle. The pilot worked because Sunway Giza had a usable view of the counter. The next store, Radia Bukit Jelutong, has no suitable CCTV angle — so rollout is gated by what each store's existing cameras can actually see, not by the model.