Planogram Compliance Checker
Computer vision compares shelf photos against planograms and flags incorrect facings, missing products, blocked displays, or non-compliant endcaps.
Retail processPlanBuyPriceStockSellFulfillReturnClear
By Don, DoneThat’s AI coach · updated
What this use case covers
A planogram compliance checker turns shelf photos into a structured gap list against the approved bay layout. For a store ops manager, the job is not to re-draw the planogram. It is to see which facings drifted overnight, which SKUs vanished from the shelf edge, which displays are blocked, and which endcaps no longer match the set.
The model compares what the camera captured with what the planogram says should be there. It flags incorrect facings, missing products, blocked displays, and non-compliant endcaps. It does not reset the bay. Store teams still walk the aisle, pull the wrong product, restore the right facings, and clear the obstruction.
When shelf photos are missing, or the planogram for that bay is not available, the checker returns empty output. No invented compliance score. No guessed SKUs. No partial bay review dressed up as a full audit.
Related reading: Inventory Record Reconciliation, Real-Time Stockout Risk Predictor, and Shelf Availability Computer Vision.
Inputs the checker needs
Three inputs must be present before a run is useful.
Shelf photos. Capture the bay (or endcap) under store lighting, with the full shelf set in frame. Cropped shots that hide the bottom shelf or the price rail leave blind spots the model cannot invent. Multi-shelf bays usually need one photo per shelf or a clear vertical composite that keeps label and facing detail readable.
The active planogram. Use the version that is live for that store, department, and effective date. A draft, a cluster-level template that was never localized, or last season’s set will produce false gaps. The planogram should include SKU identity, position (shelf, bay, facing count), and display rules for endcaps or promotional fixtures when those are in scope.
Bay and store context. Aisle, bay ID, store ID, and capture timestamp tie the photo to the right planogram and to the right reset ticket. Without that binding, a flag for “facing wrong on shelf 3” cannot land on a task list a closer can execute.
Optional but useful: fixture type (gondola, endcap, cooler door), known out-of-stock overrides from inventory, and recent reset or promotional change notes. Those reduce noise when a bay is intentionally empty or mid-change.
If any required input is absent, stop. Empty output is the correct result when the photo set or the planogram is missing.
How comparison works on the floor
The checker treats the planogram as the target layout and the photo as observed state.
- Locate the fixture. Map the image to bay and shelf coordinates so “shelf 2, left third” means the same place in both sources.
- Detect products and facings. Identify SKUs (or product classes when packaging is ambiguous) and count visible facings at each position.
- Compare to plan. For each planogram slot, score match, wrong product, wrong facing count, empty where stocked product is required, or obstruction that hides the planned face.
- Score endcaps and displays separately. Endcaps often have stricter brand and promo rules. Blocked displays (carts, overstock, signage, damaged trays) get their own flag type so the reset is “clear and restore,” not only “swap SKU.”
- Emit a gap list. Each finding should name the bay, shelf or endcap, expected SKU or display rule, observed condition, and a severity hint (blocking guest path vs. single facing short).
The output is an exception list, not a pretty heatmap for its own sake. Ops managers need tickets: which bays fail, what fails, and who owns the reset before peak traffic.
What “compliant” means in practice
Compliance here is planogram fidelity, not perfect sell-through.
Incorrect facings. Right brand, wrong size; competitor in a branded pocket; facing count below plan; product rotated so the label does not face out. These are merchandising resets, not necessarily inventory shortages.
Missing products. An empty pocket where the planogram requires a SKU. That may be a true stockout, a backstock delay, or product pulled for a promo and never restored. Pair compliance flags with inventory and availability signals before you treat every empty facing as a replenishment failure. See Shelf Availability Computer Vision and Real-Time Stockout Risk Predictor when the question is “are we out” versus “are we set wrong.”
Blocked displays. Product may be on the shelf and still fail because a pallet, cardboard, or another SKU hides the planned face. Guests cannot buy what they cannot see; the flag should say blocked, not only missing.
Non-compliant endcaps. Wrong theme, wrong hero SKU, extra off-plan product, or missing POS. Endcap rules often change weekly. Timestamp the photo against the endcap plan’s effective window or you will chase yesterday’s set.
Record-level inventory can look fine while the shelf is wrong. Inventory Record Reconciliation helps when system on-hand and physical shelf disagree. Planogram compliance answers a different question: is the visible set what merchandising approved?
Human-in-the-loop: flags, then bay resets
Keep the model in an advisory role.
- Review before broadcast. A store ops manager or department lead should scan high-severity flags (blocked endcaps, wrong brand on a feature bay) before flooding associates with tickets.
- People reset the bay. Associates pull, face, and fill. The checker does not move product, update the planogram, or auto-close a ticket without a confirmed reset photo or manual close.
- Confirm with a second capture when it matters. After a reset on a featured bay, a quick re-photo closes the loop and keeps the same bay from reappearing on the next cycle as an open gap.
- Escalate pattern failures. The same SKU wrong across multiple stores may be a planogram publish error, a distribution miss, or a packaging change the detector has not seen. That is a central merchandising or supply issue, not a single-store facing problem.
Empty output when inputs are incomplete protects associates from acting on nonsense. A silent “cannot audit this bay” is better than a false “fully compliant” built on a missing photo or an outdated plan.
Operating rhythm for store ops
A workable cadence looks like this:
Morning or pre-peak. Capture priority bays and endcaps (promotions, high-velocity categories, known problem fixtures). Run the checker. Triage severity. Assign resets to the floor team with bay IDs and expected SKUs.
After reset. Spot-check the worst gaps with a second photo or a walk-by. Leave low-severity single-facing shortfalls for the next cycle if labor is tight, but do not bury blocked endcaps.
Weekly. Review repeat offenders by bay and by SKU. Feed packaging changes and planogram updates back into the reference set. Align compliance gaps with stockout risk and inventory reconciliation so empty facings and wrong facings get different playbooks.
When photos or plans are missing. Mark the bay “not audited.” Schedule capture or pull the correct planogram. Do not score the bay until both exist.
Success for this use case is fewer surprise non-compliant feature bays at peak, faster targeted resets instead of full-aisle walks, and a clear split between “set wrong,” “blocked,” and “truly out.” The model surfaces the gaps. The store team still owns the shelf.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first