AI Recommendations That Ignore Stock Status and Recommend Sold Out Products
Recommendation engines keep surfacing sold out variants because the feed knows the product, not the inventory. How to audit it, measure the damage, and set a guardrail.
Last quarter we audited a store where the you may also like rail was doing quiet damage. Roughly one recommendation in five landed on a product with no purchasable variant, or on the right product in a size run that had been gone for weeks. The engine was not broken in the way vendors mean broken. Clicks looked healthy. Shoppers clicked, hit a sold out page, and left, and the report called that engagement.
This is a feed problem wearing an AI costume. The model ranks from behaviour and catalogue data. Inventory lives somewhere else, often synced on a delay, sometimes at product level when the purchase decision is at variant level. Until someone joins those two datasets and checks the output like an operator, the rail will keep spending shopper patience on products nobody can buy.
Audit the output, not the dashboard
Pull the actual recommendations served on your top 50 product pages and your cart page, then check every recommended item for a purchasable variant in the sizes or options a shopper would reasonably want. Count two failure types separately: fully sold out products, and products technically in stock in one unpopular variant only. The second type is where vendors argue. A shoe available only in size 5 is not a recommendation, it is a tease, and your count should treat it that way while noting the vendor will not.
Record the delay too. Pick items that sold out today and time how long they keep appearing. That number, hours of stale recommendation, is more useful in a vendor conversation than any percentage, because it points at the sync, which is fixable, instead of the algorithm, which will be defended for an hour.
What it costs, stated plainly
Do not reach for a generic conversion statistic here. Measure your own store: sessions that clicked a recommendation into a sold out product, and what those sessions did next compared with sessions whose click landed in stock. On the audit above, the sold out clickers bought at a fraction of the rate and exited far more often. That is the whole argument. A recommendation slot is rent paying shelf space, and a fifth of it was stocked with air.
There is a second cost that does not show in that comparison. Shoppers learn. A store that repeatedly shows people things they cannot have trains them to ignore the rail entirely, including the weeks when it is right. Recommendation blindness, once learned, does not show up as a complaint. It shows up as a slow decline the vendor will attribute to traffic quality.
Guardrails an operator can actually set
Set a hard rule first: no fully sold out product is ever served, checked at serve time against variant level stock, not at feed build time. Then a soft rule: products below a variant coverage threshold get demoted hard. Both rules will occasionally hide a product that restocks an hour later. Accept that cost out loud. It is smaller than the cost of the reverse error, and saying so in the vendor meeting ends the theoretical part of the argument.
Re-run the audit monthly and after every feed or inventory integration change. Put the two failure percentages in the same note as revenue per session for the rail, so the trend is judged on money, not on click rate alone. If the vendor dashboard and your audit disagree, believe your audit and make them explain the gap with your product list in front of them.
Related reading: AI Commerce Watch, Answers, Glossary.
Frequently asked questions
Why do recommendation engines show sold out items?
Usually because ranking uses catalogue and behaviour data synced separately from inventory, often at product level rather than variant level, and often on a delay. The model can only rank what it can see. If stock status arrives late or coarsely, sold out items keep ranking on their historical clicks.
Should a product with one variant left count as in stock?
For reporting to the vendor, count it separately. For the shopper, mostly no. If the only available variant is one few shoppers can use, serving the product as a recommendation wastes the click. Set a coverage threshold, like a minimum share of variants available, below which the item is demoted.
How often does inventory need to sync to fix this?
Feed sync helps, but the robust fix is a serve time stock check, so an item that sold out minutes ago is filtered when the rail is built for that page view. Sync frequency alone always leaves a stale window, and sale periods make that window expensive.
What metric proves the fix worked?
Track the share of recommendation clicks landing on purchasable products, and the purchase rate of recommendation clickers, before and after. Click rate by itself can fall when sold out clickbait disappears, and that fall is a good sign, not a regression.