Operators' Playbook25 October 2026 · 11 min read

Unmet demand: what your shoppers ask for that you don't sell

Your analytics only see what you sell. The rest is in your chats. How to count unmet demand honestly, in the shoppers' own words and never as a revenue estimate, and when a count is worth a test order.

Konstantinos Gkolias

Konstantinos Gkolias

Founder, building Lumnya

Operators' Playbook

What shoppers ask for, counted

Lumnyaai

The most useful demand data a small store has isn't in its analytics. Analytics can only count what you already sell. The things shoppers want and can't find live in the words they type into your search box and your chat, and they disappear the moment the conversation closes, unless something counts them. That's unmet demand. This piece is about counting them honestly: as a number of conversations, in the shopper's own words, and never as a revenue estimate.

The data your dashboard can't see

Open any analytics dashboard and every number in it is about a product that exists. Views of a product page. Add-to-carts of a product. Sales of a product. Even "top searches" usually shows you the searches that landed somewhere.

The question you actually want answered next season is different: what did people come here for that I don't have? No product page records a visit to a product you don't sell. No conversion funnel starts with an item that isn't in the catalogue.

That demand doesn't vanish. It shows up in two places, in the shopper's own words:

  • The search box, as searches that return nothing. Baymard's research on e-commerce search finds that about half of e-commerce sites still fail to give users a good way to recover from a search with no results, so the shopper usually leaves, and the search is the only trace.
  • The chat, if you have one, as a question. "Do you have these in wide fit?" "Is there a version without the logo?" "Do you sell refills for this?" A chat question is richer than a search: it comes with a sentence, a reason, sometimes a size and a budget.

A chat transcript is the most honest market research a small store will ever get. Nobody filled it in for you. They wanted something badly enough to type it out.

The problem is the shape it arrives in. Forty conversations a day, each one closed and forgotten, each "sorry, we don't carry that" answered once and never added up.

Two kinds of "we don't have it"

Before you can count what you don't sell, you have to be sure the "no" is true. There are two kinds of "we don't have it", and they cost you in opposite ways.

The true no is data. The shopper asked for something your catalogue really doesn't contain. Answered honestly, it costs you one sale and gives you one signal.

The false no is a sale lost in silence. The shopper asked for something you do sell, and the answer said you don't. Nobody complains, because the shopper believes it. Nothing in your analytics flags it, because nothing happened.

Any AI assistant can produce a false no, and not because it lies. It answers from what is in front of it. If, on that turn, no products were loaded and no search ran, "I couldn't find that in our range" is a sentence about an empty page, not about your shop.

This isn't hypothetical for us. On 21 October, a shopper on a test store wrote, in German, that they were looking for snow trousers. The reply said none could be found in the current range. The store sold snow trousers. The model wasn't lying; that turn had been routed to a lean prompt with no products loaded, and it had nothing to look at.

What we changed is a pattern any store with an AI assistant should copy, whatever it runs on: "we don't have X" is a claim about the whole catalogue, so it needs a search of the whole catalogue behind it. In Lumnya's shopper chat, when a reply denies a product on a turn where no catalogue search ran, the server searches the catalogue itself. If the product is there, the denial is replaced with "We do have this — take a look:" and the products. A "no" that followed a real search is left alone, because that one is backed.

Figure 1 · Two kinds of no

A “we don't have it” needs a catalogue search behind it

Three replies a shop assistant might draft, checked against one question: did a search of the catalogue back the no?

Search behind the no?

What the assistant drafted“Sorry, we don't have snow trousers in our range.”
no search ran; the server searched and found them

“Sorry, we don't have snow trousers in our range.”

“We do have this — take a look: (and the products)”

What the assistant drafted“We don't carry wide-fit trail shoes.”
a catalogue search ran and found none

“We don't carry wide-fit trail shoes.”

What the assistant drafted“We don't sell refills for this.”
no search ran; the server searched and found nothing

“We don't sell refills for this.”

Lumnya's shopper chat, verified in Lumnya's source code on 24 October 2026. The snow-trousers case happened on a test store on 21 October 2026 (in German); the other replies are illustrative.

Only once the false no is gone does the true no become a clean signal. Then it's worth counting.

Count unmet demand, don't estimate it

Here's where most tools go wrong, and where we went wrong too.

The tempting move is to turn unmet demand into money. Take the number of conversations, multiply by your average order value, multiply by a conversion rate, and show the merchant a big figure: "£4,200 of lost demand this month". It's persuasive. It's also made up. The conversion rate is a guess, and nobody knows what a shopper who asked about a product you don't stock would have spent if you'd stocked it.

We did exactly that, and we deleted it. Until 11 October, our Demand Radar reported "lost value" as conversations × average order value × an assumed 30% close rate. The assumption was ours, not the store's, and our rule is that nothing we show is made up. So it now reports only what it measured: how many conversations asked, in what words, over what window.

A count is less exciting than a revenue figure. It's also the only one of the two you can act on without being misled. "Six different people asked for a wide-fit version in thirty days, and here's what three of them wrote" is something you can take to a supplier. "£4,200 of lost demand" is something you can only believe or not.

Figure 2 · Count it, don't estimate it

Five numbers a demand tool could show you, and the two it shouldn't

Each number checked against four questions. The last column is what Lumnya's Demand Radar shows today.

Counted from your chatsIn the shopper's wordsYou can check itShown by Demand Radar
Conversations that asked, 30 daysyesdoesn't applyyesyes
What they typed, verbatimyesyesyesyes
Catalogue match: yes or noyesdoesn't applyyesyes
“Lost demand: £4,200”nononono
Suggested reorder quantitynodoesn't applynono

yesnodoesn't apply

Demand Radar as implemented, verified in Lumnya's source code on 24 October 2026. Until 11 October 2026 it showed 'lost value' as conversations × average order value × an assumed 30% close rate.

How we count it in Lumnya

This is what Lumnya's Demand Radar does today, as it runs in the code, so you can judge it and borrow from it.

It reads the chats you already have. Each day it works from the last 30 days of storefront conversations: up to 250 conversations scanned, up to 80 read in detail, and from each one up to six of the shopper's questions kept word for word. Not summarised, not paraphrased: the first 160 characters of what the shopper actually typed.

It looks where the conversation hit a wall. Demand Radar takes the conversations that were handed to a person, that ended negatively, or where the assistant's answer had low confidence. That is where an unmet need usually shows itself. A chat that ended calmly and confidently isn't in the count today.

It groups asks by the words shoppers used. No AI model is involved in this step. Questions are grouped by the words they share, which keeps the result the same every time it runs and easy to check. A group needs at least two separate conversations before it becomes a recommendation; one person asking once stays an observation.

It checks the group against your catalogue. If no product title matches the words, the group is unmet demand, and the card says so plainly: Customers keep asking for "…" — no catalog match. If a product does match, it's a different problem, shoppers struggling around a product you have, and it's reported separately.

It tells you, with the shopper's words attached. The card states how many conversations asked in the last 30 days and quotes an example ask verbatim. It's marked high priority at four or more conversations. It suggests three ways to act: add the product or variant, point shoppers to the closest alternative, or answer the question in an FAQ. Acknowledging the card changes nothing in your shop; it's information, not an action.

Unmet demand, counted: an illustrative Demand Radar card: high priority; 'Customers keep asking for wide fit trail — no catalog match'; 6 conversations in the last 30 days; one verbatim example ask; three suggested actions; Acknowledge changes nothing in the shop.

It runs once a day, and when a scheduled run finds three or more conversations that hit a wall, Lumnya tells you in your inbox. It never shows you a money figure.

When is a count worth a test order?

A count only matters if it changes a decision. Here's the ladder we'd use, with the honest caveat that these thresholds are a rule of thumb, not a statistic. They depend on your margins, your supplier and your patience.

Two or three asks in 30 days: answer better. At this level, the cheapest win isn't stock. It's the answer. Write the FAQ line, link the closest product you do carry, and make sure your assistant says it. The next shopper who asks leaves with something instead of nothing.

Four or more in 30 days: ask the supplier. Now it's a pattern, not a coincidence. Find out the minimum order, the unit cost and the lead time. That turns "people want this" into "this is what it would take".

The same ask again in the next 30 days: run a small test. Order the smallest quantity your supplier allows. Put a date on it. If it hasn't sold through by then, you've paid a small, known price for a real answer.

Two cautions keep the count honest.

It's a floor, not a total. Only a fraction of shoppers ever open a chat, and fewer still ask about something you don't carry. Six asks doesn't mean six buyers. It means at least six people cared enough to type it, and almost certainly more who didn't.

Read the words, not just the number. "Do you have this in wide fit?" from six people is a variant decision. "Do you do refills?" from six people might be a whole new product line. The verbatim quotes are there because the number alone can't tell those apart.

The product you do sell, but not right now

Unmet demand has a sibling: the product you carry that's out of stock. That's not a catalogue question; it's a timing one. The shopper doesn't need a new product, they need to know when this one is back.

In Lumnya's chat, a shopper on an out-of-stock product is pointed to the "Notify me" option, and the assistant is told never to guess a restock date. If the shopper asks, in their own words, to be told when it's back, a restock alert is set for that product, and a sweep every two hours emails them when stock returns. The alert is only created when the shopper asked for it, and only for a product that is really at zero.

Those alerts are a count too: the number of people waiting for a product is the most direct reorder signal you'll ever get. Look at it before you decide how many to order.

One card, followed through

Here's how a single card turns into a decision. The store, the product and the numbers are illustrative; the steps are the ones we'd take.

A small running-shoe shop gets a card on a Tuesday morning: six conversations in the last 30 days asked for "wide fit trail", and the catalogue has no match. The example ask reads: "do you have the trail runners in a wide fit? my feet don't fit the normal ones".

First, read all the asks, not just the quoted one. Six people, six sentences. Three mention a specific model the shop already sells. Two mention their size. One says they bought elsewhere last time. That changes the question from "should we stock wide-fit trail shoes?" to "should we stock the wide version of the model we already sell?", which is a much cheaper decision.

Second, answer better today. The shop adds one line to the product page and the FAQ: the model runs narrow, the wide version isn't stocked yet, and here are the two models in the catalogue that fit a wider foot. The next shopper who asks gets an answer they can use instead of a dead end.

Third, ask the supplier. The wide version exists. The minimum order is twelve pairs across sizes, at a known unit cost, with a three-week lead time. Now the shop knows the price of finding out.

Fourth, wait one more window. If the asks keep coming over the next 30 days, at that point order the twelve pairs, put a date on the test, and check sell-through on that date. If the asks stop, the FAQ line was the right answer, and it cost nothing.

Figure 3 · One card, followed through

The cheap steps happen the same week. The order waits for a second window.

When each step happens after a card arrives, for the illustrative running-shoe shop above.

not yetdone
Read all six askssame morning
Answer better: the FAQ linesame day
Ask the supplierthat week
Test order, twelve pairsif the asks repeat
card arrives
day 0day 15day 30day 45day 60
Illustrative shop and timings. The ladder is a rule of thumb, not a statistic.

None of this needed a revenue estimate. It needed six sentences, kept word for word, and someone to read them.

Where a count can mislead you

A count is more honest than an estimate, but it isn't the truth either. Four ways it can mislead, and how to read around them.

It only sees the conversations that hit a wall. In Lumnya, Demand Radar reads conversations that were handed to a person, ended negatively or got a low-confidence answer. A shopper who asked politely, got a clear "we don't carry that" and left calmly isn't in today's count. So the count is a floor twice over: only some shoppers chat, and only some of those conversations are counted.

Words aren't meanings. The grouping is done by shared words, without an AI model, so that it's predictable and checkable. The price of that is that "wide fit", "broad fit" and "for wide feet" can land in different groups. If you see two small cards that are clearly the same request, add them up yourself.

Conversations aren't people. The count is of conversations. One determined shopper who comes back three times can appear three times. The verbatim asks usually make this obvious: the same phrasing, the same detail, three times in a week.

Thirty days isn't a season. A spike in "do you have thermal gloves?" in October tells you about October. Before a test order, check whether the asks repeat in the next window, which is why the ladder has that step in it.

None of these is a reason to ignore the count. They're reasons to read the words behind it, which is why the words are on the card.

A checklist for any store

You don't need Lumnya to do any of this. You need to stop throwing the words away.

  • Read your no-result searches every week. Most platforms log them. Group them by hand if you have to.
  • Read your chat transcripts for "do you have", "do you sell", "is there a version". Keep the shopper's exact words.
  • Make sure every "we don't have it" is backed by a search of the whole catalogue. A false no is the most expensive sentence your store can say, because nobody ever reports it.
  • Count conversations, not euros. Write down the count, the window and three quotes.
  • Climb the ladder: answer better, then ask the supplier, then test small with an end date.
  • Count the waiting list on out-of-stock products before every reorder.

The shoppers already told you what to stock next. The only work is not forgetting what they said.

For the products you do stock and may run short of at the peak, see the Black Friday reorder check; for the ones that sit, clearing dead stock without a store-wide sale.

Frequently asked questions

What is unmet demand?

The products shoppers ask for that you don't sell, or can't sell right now. Your analytics can't see it, because they only count what you already sell; it lives in the words shoppers type into your search box and your chat.

How do you measure unmet demand?

Count it as conversations, in the shopper's own words, grouped by what they asked for, and check each group against your catalogue. Don't turn it into a revenue estimate: an estimate built on a real count looks precise and isn't.

When is unmet demand worth a test order?

When the asks repeat. Read every ask, answer better first, ask the supplier, and wait for the asks to come back in the next 30-day window before ordering small.

Sources

Lumnya is a team of ecommerce AI agents for Shopify stores, now in private beta. Join the waitlist.

Comments

…

Every comment is read and approved by a human before it appears — the same confirm-gated rule the product runs on.

Loading comments…

Filed under Operators' Playbook

All posts

Keep reading

Operators' Playbook

Clear stock, not your prices

Lumnyaai

Clear dead stock before Black Friday without teaching shoppers to wait

11 min read · Operators' Playbook

Operators' Playbook

Your store, in copies.

Lumnyaai

AI shopping agents read your store in copies: make them agree

17 min read · Operators' Playbook

Private beta

Enough reading. See it on your store.

Join the private beta and be first in line when Lumnya opens to your store.