On-Shelf Availability: How Real-Time Monitoring Recovers Lost Sales

On-Shelf Availability: How Real-Time Monitoring Recovers Lost Sales

Your in-stock number overstates OSA. See the three ways to measure it, benchmarks by vertical, and why promoted items run in the 80s when you need them most.

See how Ward detects on-shelf availability gaps

Get a demo → Take the 3-minute assessment
Contents

What on-shelf availability actually measures

On-shelf availability is the percent of time a product a customer wants is actually on the shelf and buyable. Not in the back room. Not in transit. On the shelf, facing out, where a shopper can pick it up and take it to the register. That distinction is where most retailers lose money, and it is why on-shelf availability is a different number than the in-stock figure your inventory system reports.

Your system can show 40 units of a SKU on hand and still register a stockout at the shelf. The units are sitting in the back room, stuck behind a planogram reset, or counted but not physically present. Real-time shelf monitoring exists to close that gap, because the inventory number and the shelf reality drift apart every single day.

Three failure modes drive most of it:

  • Back room has it, shelf doesn't. Stock arrived, got received into the system, and never made it to the floor. The system says in-stock. The customer sees an empty facing.
  • Phantom stock. The on-hand count is wrong. Shrink, miscounts, mis-scans at receiving, or returns processed but never reshelved. The number is positive and the shelf is empty.
  • Planogram non-compliance. The product is on the floor but in the wrong spot, or the facing was given to something else during a reset. It is technically available and functionally invisible.

None of these show up as an out-of-stock in your ERP. That is the core problem with OSA in retail: the systems that track inventory are not measuring the shelf.

Why your in-stock number lies to you

Most multi-store chains report on-shelf availability in the low-to-mid 90s. A typical chain average sits around 92 to 96 percent, and that average looks fine on a slide. The average is the problem. It blends your slow movers, which are almost always in stock because nobody buys them fast enough to create a gap, with your top movers, which are exactly the items that empty out.

Break the average apart and the picture changes. On promoted items, OSA routinely drops into the 80s. During peak dayparts, the Saturday afternoon rush or the weekday evening commute window, it drops again. A chain reporting 95 percent on paper can be running high-80s OSA on its 50 highest-velocity SKUs at the exact hours those SKUs sell the most.

Here is the lost-sales math. On a top mover, a customer who finds an empty shelf does not wait. Some substitute, many walk. Industry work on out-of-stocks has long pegged the lost-sale rate on a stockout somewhere between 30 and 50 percent of the demand that hit during the gap. So a 2 to 3 point OSA gap concentrated on your top movers translates to roughly 1 to 2 percent of sales on those items, gone, with no record of the transaction that never happened.

Run it on a real shape. A $400M, 120-store chain doing even 20 percent of revenue through its top-velocity SKUs is looking at $80M riding on the items most likely to gap. A 1.5 percent loss on that band is $1.2M a year that never rings. You will not find it in a stockout report, because the system thought the product was in stock the whole time.

Why periodic audits find the gap after the sale is gone

The standard tools for catching shelf gaps are periodic shelf audits and weekly cycle counts. Both are useful for accuracy. Both are too slow to recover the sale.

A shelf gap is an intra-day event. A fast SKU sells through its facing between the morning replenishment and the afternoon peak, sits empty for three hours during the busiest window, and gets refilled that evening when an associate notices. A weekly cycle count will eventually correct the on-hand number. It does nothing for the four hours of demand that already walked out the door.

Audits have the same timing problem. A walk-the-aisle audit, even a good one done twice a week, is a snapshot. It tells you the shelf was empty at 10 a.m. Tuesday. It cannot tell you the shelf was empty from 2 to 5 p.m. Saturday, which is when the gap actually cost you money. The gaps cluster in the hours you are least likely to be auditing.

This is why real-time matters for OSA and why catching it after the fact does not help. The question is not whether a gap happened. It is whether you caught it inside the same day it was costing sales. A weekly process answers a daily question, and the answer always arrives too late to act on.

See how Ward detects on-shelf availability gaps

Get a demo →

The signal approach: how real-time shelf data reduces out-of-stocks

You do not need a camera on every shelf to know a shelf is empty. The data you already have will tell you, if you read it in the right order. Real-time shelf monitoring works by watching three signals together and flagging the combination that means a likely gap.

  • POS velocity. A SKU sells at a predictable rate by store and daypart. When a fast SKU goes silent, when an item that rings 8 units an hour suddenly rings zero for two hours during a peak window, that silence is the signal. Demand did not vanish. The shelf did.
  • Replenishment timing. When was the last receipt, the last shelf refill, the last reorder against this SKU at this store. A SKU that sold through its facing with no replenishment event behind it is a gap waiting to be confirmed.
  • On-hand variance. The gap between what the system says is on hand and what the velocity pattern implies should be selling. A positive on-hand with zero sales during peak is the classic phantom-stock or back-room signature.

Put those together and a likely shelf gap surfaces within hours, not at the next audit. A top SKU that should be selling and isn't, with stock supposedly on hand and no recent replenishment, is flagged while there is still a shift left to fix it. That is the difference between recovering the afternoon and reading about it next week.

The approach is read-only. It reads the POS velocity, the inventory positions, and the replenishment records you already generate, and it correlates them. No new hardware on the shelf, no manual audit cadence, no asking associates to log gaps they are too busy to log during a rush.

Where OSA gaps concentrate, and why averages hide them

Gaps are not spread evenly. They cluster, and the clusters are predictable once you stop looking at chain averages and start looking at the right grain.

  • Top-velocity SKUs. The faster a SKU moves, the faster it empties its facing between refills. Your best sellers are your most frequent gaps.
  • Promoted items. A promotion can double or triple velocity overnight while the replenishment plan still assumes baseline demand. Promo OSA in the 80s is common and directly cannibalizes the lift you paid for.
  • Peak dayparts. The hours with the most demand are the hours shelves drain fastest and staff is most stretched. Gaps and traffic peak at the same time.
  • Specific stores. A handful of stores, often the high-volume or short-staffed ones, generate a disproportionate share of gaps. Same banner, very different shelf reality.

The takeaway for measurement is direct: measure OSA at the SKU-store-daypart level, not as a chain average. A single blended number tells you almost nothing actionable. The same number broken to "SKU 4471 at Store 12, weekday 4 to 7 p.m." tells you exactly where to send the next refill and which store needs a replenishment-timing fix.

How to measure on-shelf availability

There are three ways to measure OSA, they produce different numbers, and most chains are quietly using the weakest one while believing they use a stronger one.

System in-stock. Count SKUs with a positive on-hand balance and divide by expected SKUs. This is what most inventory systems report, and it is the number that overstates reality, because it cannot see a full back room above an empty facing. Treat it as an upper bound, never as OSA.

Physical audit. A person or camera confirms the facing. This is a true measurement at one moment in time. Its weakness is coverage: a twice-weekly audit samples roughly 2% of the store-hours in a week, and the gaps cluster in the hours nobody audits.

Signal-inferred. Read POS velocity against on-hand and replenishment timing, and infer shelf state continuously. Coverage is complete and the lag is hours. The tradeoff is that it detects a probable gap rather than confirming a physical one, so it needs a confirmation step at the store.

The practical answer for a multi-store chain is signal-inferred for coverage plus physical audit for the visual questions a data feed cannot answer. The comparison is worked through in more depth in automated shelf audits versus field reps.

OSA benchmarks and what a point is worth

Chain-average OSA is close to meaningless without the top-mover cut alongside it. Both columns belong on the scorecard.

Vertical Chain-average OSA Top-velocity SKUs Promoted items, typical Revenue per point recovered
Grocery 95 to 98% 98%+ target 85 to 91% 0.4 to 0.7% of category sales
Convenience 93 to 96% 97%+ target 84 to 90% 0.5 to 0.9%
Pharmacy 96 to 99% 99%+ target 90 to 95% 0.6 to 1.1%
Fashion, core sizes 90 to 95% 95%+ target 82 to 89% 0.8 to 1.4%
Home improvement 92 to 95% 97%+ target 86 to 92% 0.5 to 0.8%
Promoted-item OSA is measured during the promotion window, when velocity runs two to three times baseline against a replenishment plan built for baseline.

The promoted-items column is the one that should bother you. A promotion is the one time you know demand will spike, you paid for the spike, and OSA drops precisely then. Every point lost there is margin you funded twice: once in the promotional discount and once in the demand you could not serve.

Turning an OSA number into a fix

Measurement without routing produces a scorecard. Four steps turn OSA into recovered revenue, and chains typically break at step three.

Detect. Flag the SKU-store-daypart cells where velocity has gone silent against positive on-hand. Start with the top 200 SKUs by velocity, because that is where lost demand concentrates and where the signal-to-noise ratio is best.

Confirm. Someone in the store checks the facing. This step separates a real gap from a demand shift, and it takes under a minute per flagged SKU. Skipping it is how alert fatigue starts.

Resolve and classify. Refill from the back room, correct the count, or fix the facing. Then record which of the three it was. The classification is what turns a stream of individual fixes into a pattern, and the pattern is where the systemic fix lives.

Attribute. Compare post-correction velocity against baseline to book the recovered units. Without this step nobody can defend the program at budget time, and it is the first thing cut.

The classification data in step three is the most undervalued output of the whole loop. A store generating mostly back-room gaps has a replenishment labor problem. A store generating mostly count corrections has a receiving or shrink problem, covered in phantom inventory detection. Same alert volume, completely different fix.

What real-time monitoring recovers

The recovery comes from moving top-mover OSA up, not from carrying more inventory. When a chain takes its highest-velocity SKUs from low-90s OSA to 98 or 99 percent, a 1 to 2 percent comp lift on those items is a realistic outcome. The stock to do it is usually already in the building. It is in the back room, or it is a reorder that should have fired a day earlier. The lift comes from timing, not from buying more.

That is the part worth sitting with. Reducing lost sales from shelf gaps does not require adding total inventory, which means it does not add carrying cost or markdown risk. You are converting demand you were already generating and already had stock for into transactions that actually ring. Same inventory, same traffic, more sales.

On the $400M, 120-store example, recovering even one point of comp on the top-velocity band is real seven-figure revenue with no added inventory dollars behind it. The constraint was never the stock. It was knowing which shelf was empty while the customer was still standing in front of it.

Where Ward fits

Ward connects to your POS, ERP, and inventory systems read-only and watches POS velocity and inventory signals continuously. When a fast SKU goes silent against on-hand stock and stale replenishment timing, Ward ships an insight card flagging that SKU-store as an at-risk gap, while the shift is still running. Insight cards, not dashboards. You get the specific item, store, and call, not another screen to go check.

Ward surfaces the likely gap and the evidence behind it, and stops there. Your team makes the call to pull stock from the back room, fire the refill, or fix the replenishment timing at that store. The integrations are read-only, the first insight cards land within 48 hours, and it does not require a data team to stand up. Ward is LLM-agnostic, so nothing about your model stack constrains the deployment. If you want to prove the number before committing, that is what the 90-day pilot is for.

Key takeaways

  • On-shelf availability measures whether a product is actually on the shelf and buyable, which is a different and lower number than the in-stock figure your inventory system reports.
  • Chain-average OSA in the low-to-mid 90s hides the real exposure: promoted items and peak dayparts routinely run in the 80s on your top movers.
  • A 2 to 3 point OSA gap on top-velocity SKUs translates to roughly 1 to 2 percent of sales on those items, lost with no transaction record.
  • Periodic shelf audits and weekly cycle counts find gaps after the sale is already lost, because OSA gaps are intra-day events concentrated in peak hours.
  • Real-time shelf monitoring reads POS velocity, replenishment timing, and on-hand variance together to flag a likely gap within hours, well before the next audit.
  • Three measurement methods produce three different numbers. System in-stock is an upper bound, physical audit is accurate but covers roughly 2% of store-hours, and signal-inferred gives full coverage with a confirmation step.
  • Promoted items run 82 to 92% OSA during the promotion window. That is margin funded twice: once in the discount and once in the demand you could not serve.
  • Detect, confirm, resolve and classify, then attribute. Most chains break at classification, which is the step that turns individual fixes into the systemic pattern.
  • Measure at SKU-store-daypart granularity, not chain averages, because gaps cluster on specific items, stores, and hours.
  • Moving top-mover OSA from the low-90s to 98 to 99 percent can deliver a 1 to 2 percent comp lift without adding total inventory, which is why reducing lost sales from shelf gaps is a timing problem, not a buying problem.

See how Ward detects on-shelf availability gaps

Ward monitors your stores 24/7 and delivers insight cards, not dashboards. First cards in 48 hours.

on-shelf availability OSA out-of-stock operations

Not sure where AI fits in your operation? Ten questions, about three minutes. Your score out of 100 appears on screen when you finish, with no email required.

Take the 3-minute assessment

Questions about on-shelf availability gaps.

On-shelf availability is the percentage of time a product a customer wants is physically on the shelf and buyable. Not in the back room, not in transit, on the shelf and facing out. It is a different and lower number than the in-stock figure your inventory system reports, because a system can show 40 units on hand while the facing sits empty.

Three methods, three different numbers. System in-stock counts SKUs with a positive on-hand balance and overstates reality, so treat it as an upper bound. Physical audit confirms the facing accurately but a twice-weekly audit samples only about 2% of store-hours. Signal-inferred reads POS velocity against on-hand and replenishment timing to infer shelf state continuously, with full coverage and a lag of hours.

Chain-average OSA runs 95 to 98% in grocery, 93 to 96% in convenience, 96 to 99% in pharmacy, 90 to 95% on fashion core sizes, and 92 to 95% in home improvement. Top-velocity SKUs should be held several points higher. The number that matters most is promoted-item OSA during the promotion window, which commonly runs 82 to 92% because velocity triples against a replenishment plan built for baseline.

Because a shelf gap is an intra-day event. A fast SKU sells through its facing between morning replenishment and the afternoon peak, sits empty for three hours during the busiest window, and gets refilled that evening. A weekly cycle count eventually corrects the on-hand number and does nothing for the demand that already walked. The gaps cluster in exactly the hours you are least likely to be auditing.

Your stores are generating data right now.

Ward turns it into decisions. First insight cards in 48 hours.

Read-only to start · your LLM keys · SOC 2 Type II underway · or book a call directly

Find out what your data has been hiding.

Tell us about your operation. We’ll show you the problems Ward catches, and the ones your current tools miss.

Step 1 of 3
What are your goals?
Step 2 of 3
About your operation
Step 3 of 3
Your contact info