What Stores Tell You That POS Cannot

How merchandising visits, treated as Bayesian evidence alongside POS and orders, reveal the true state of a product's performance.

Published June 8, 2026

Much of retail execution is joining disparate data sources to assemble a clear story of your brand's performance at the store level. Today, I want to consider the role of merchandising visits in such analyses.

Merchandising reports can sometimes be noisy, but certainly inform our beliefs of what is happening at the store level more than POS or order feeds could alone.

For example, consider a SKU that moves zero units for nine days. That might happen for a number of reasons:

  • the backroom is full and the shelf hasn't been restocked
  • the product came out in a reset
  • the product is not orderable
  • a display was never built
  • the warehouse can't ship
  • demand has fallen off

Often, POS data alone cannot distinguish these cases.

What do zeroes measure?

Consider a store ss, a product pp, and a day tt.

For a given triple (s,p,t)(s, p, t) we may wish to measure the likelihood of a given "state" cc -- for example, the likelihood the product is healthy, or the likelihood it is OOS at the warehouse, and so on. Let's define this to be a latent family of such states Sc(s,p,t)S_c(s, p, t).

We cannot continuously observe SS. Instead, we observe data, both quantitative and qualitative. Quantitative data comes from sources like POS, orders, or inventory snapshots. Let's call this D(s,p,t)D(s, p, t). Qualitative data comes from conversations, such as merchandising visits, store calls, or replenishment manager meetings. We'll refer to this as C(s,p,t)C(s, p, t).

POS alone may be misleading because sales are limited by supply availability. As a measure of demand, POS never observes beyond what was stocked on the shelf. Indeed POS is a "lower bound" of the latent demand.

So when we observe zero sales, we could have had no demand, no availability, or both.

In Figure 1, the observed run is identical in all four panels, but the underlying cause is different in each. The first panel is a shelf problem. The second is upstream - the store can't get the item from the warehouse. In the third the item has left the assortment, and in the fourth the product is in the back but not packed out on the shelf.

Conversations as measurements

Stores have the most direct view of the ground truth, so it is tempting to treat a merchandising report as authoritative. But like POS, there are ambient conditions that may affect our observations. For example, a report may check the aisle, describe a temporary condition as permanent, or report a local symptom of an upstream cause.

So information from merchandising carries error, just like our quantitative sources. If we cannot recover the truth with 100% certainty, our goal is to reduce uncertainty given a noisy signal from these conversations.

We apply Bayes' theorem: for a candidate state cc,

P(cD,C)P(c)P(Dc)P(Cc,D).P(c \mid D, C) \propto P(c) \cdot P(D \mid c) \cdot P(C \mid c, D).

The prior P(c)P(c) is the base rate of each state. P(Dc)P(D \mid c), the "data likelihood", says what POS, orders, and inventory tend to look like in each state. And the "conversation likelihood" P(Cc,D)P(C \mid c, D) says how probable it is to observe a certain merchandising report if we are indeed in state cc.

With this model, conversational data shifts the posterior toward more likely states. Here's an example:

At the start, we predict that the product is most likely healthy (68%). Then we observe a zero-sales window, which changes our prediction - the product might still be healthy, but a shelf OOS, an authorization issue, or a DC OOS have all become plausible.

Now we bring in the conversational data. If a store reports an empty shelf, we predict a shelf OOS (70%); if a warehouse reports it cannot ship, a DC OOS becomes most likely (59%); and if we hear of a reset, we can conclude the product is not carried (82%).

The value of conversations

In this model, merchandising is most valuable when it removes uncertainty. We can describe uncertainty left in the posterior P(cD,C)P(c \mid D, C) as entropy:

H=cpclog2pcH = -\sum_c p_c \log_2 p_c

where pcp_c is the probability of state cc.

How certain we can get is limited by two factors:

  • Coverage - how often an ambiguous window gets any qualitative evidence
  • Reliability - how often that evidence reduces our uncertainty

The ambiguous window starts at 2.16 bits, and a 75%-reliable label removes 0.94 bits. At 90% each covered window removes quite a bit more; at 60% the curve flattens out and more coverage is not that useful.

Contradictory data

When data is contradictory, we should expect our confidence to decrease, or its distribution to shift.

Consider a store-product pair where POS shows a few sales this week and the merchandiser reports an empty shelf. The posterior should spread back across several states rather than collapse into a single confident one.

Our entropy HH goes up, but our posteriors are a better reflection of what we actually know; indeed, that we don't know too much!

Going backwards

Instead of treating quantitative data as the prior, we may choose to treat conversational data as the baseline and update our posterior with transactional data.

Indeed, we prefer to embed conversational and quantitative data in the same geometry, and compute our confidences without distinguishing between the source or order of data.