Merchandising & on-device AI
A shelf gap is not
a percentage.
It's money, leaving. Most merchandising tools hand you a store average and let you work out what it cost. We weight every rule by what that SKU actually earns, answer in currency per week at stake, sort worst-first, and attach the order that fixes it.
01 · Perfect Store
Weighted by what
it actually earns.
In production
You build the scorecard in the portal — sections, rules, weights — and target it at an org, a route, a store or a store group. The device resolves the right one by precedence and scores it offline. The scoring engine exists twice on purpose, once on the server and once mirrored on the handset, so the number is identical either way.
Proven end-to-end on real data. An out-of-stock on a high-revenue SKU scored QAR 951 per week at stake. The identical out-of-stock on a low-revenue SKU scored QAR 0. A flat store average would have called those the same finding and sent the rep to the wrong shelf.
| Input | Where it comes from | Why it matters |
|---|---|---|
| Velocity | The store's own recent invoice history — not a category assumption. | A slow SKU's gap is genuinely worth less. Saying otherwise wastes the visit. |
| Price | The live resolved price for that store, in its own currency. | Exposure is revenue, so it has to be that store's actual price. |
| Rule weight | Your scorecard — the section weights you set, summing to 100. | Availability and visibility rarely matter equally. You decide the ratio. |
| Result | Currency per week at stake, per finding, per store. | Sorts worst-first and adds up to a number a sales director can act on. |
02 · ShelfLens
Add a SKU.
Not a training run.
Feature-complete
Point the phone at the shelf. It detects each product, embeds every crop, and matches against your catalogue by cosine similarity — then fills the scorecard in. On the handset. Offline. About 150 milliseconds a frame, verified on real hardware, not a spec sheet.
Why this survives your catalogue
A trained classifier has to be retrained every time you launch a flavour — which, at real catalogue scale, means the model is permanently out of date. ShelfLens detects first and matches by embedding second, so onboarding a product is uploading photos. There is no retraining step, because there is no per-SKU model.
Better still, it compounds. Teach a pack on one phone and the embedding is quantised, posted up as a master record and pushed to every other device on the next sync. One rep in one aisle teaches the whole fleet.
A lesson we paid for. An embedding is a fingerprint of one viewpoint. Ten photos from the same angle are worth far less than three from different ones — and early on, taking the largest detected box in a wide shot meant we once embedded a sofa. Teaching is now tap-to-select: you point at the product you mean.
Capture
One frame, letterboxed so tall retail packs keep their aspect ratio.
local fileDetect
An object detector proposes every product box in the frame.
on-deviceEmbed
Each crop becomes a vector via a small mobile backbone over JSI.
~150 ms / frameMatch
Cosine similarity against your enrolled catalogue in local storage.
no serverScore
The scorecard fills itself, prices the gaps, and offers the fix.
QAR / week03 · The Fix-It loop
A finding that
does something.
In production
The industry's real failure isn't detection — it's the last mile. A gap gets photographed, uploaded, dashboarded, and is still a gap next week. Here the finding carries a button.
See
The audit — or ShelfLens — records the gap and prices it in currency per week.
Prescribe
It becomes a named action, sorted against every other finding by money.
Order
"+ Order" seeds the rep's order screen with exactly those SKUs — respecting the cart, skipping unpriced lines.
Verify
The next visit re-audits it. Either the money came back or the finding is still open.
Why it's one tap and not two screens. A merchandiser has a few minutes per store and both hands full. Any fix that requires re-finding eight SKUs in an order screen doesn't happen — so the loop closes in the app or it doesn't close at all.
04 · Capture depth
Everything else
on the shelf.
In production
Recognition is one input. A merchandising visit also has to handle planograms, point-of-sale material, competitor pricing and the photograph itself — all of it offline, all of it synced when signal returns.
05 · What we refused
The features
we didn't build.
We ran a deep research pass against the category leaders before writing a line of this. Some of what the market sells didn't survive it — so we left it out and told the client why.
Next
Bring a shelf photo.
The most honest demo of ShelfLens is your own products on your own shelf, in a store you already argue about. Bring one, and put the phone in flight mode.