Which Products Should I Be Stocking More Of? Your Data Knows.

April 17, 2026
by Cherry Rose

You reordered the product that sold most last month. Good instinct, wrong data. Your WooCommerce events already know which product customers wanted most — and which ones they couldn’t get. Those are rarely the same products.

Across e-commerce, 70% of shoppers who add to cart never complete the purchase (Baymard Institute, 2024). Most store owners treat that as a conversion problem. It’s also a massive demand signal — a library of products customers cared about enough to act on, waiting to tell you what to stock next. You just have to ask.

Why Sales History Is the Wrong Signal

Sales history has one fatal flaw for inventory decisions: it only records products that were available when someone wanted them. If a variant sold out on day 4 of the month, the remaining 26 days of unmet demand show up as zero sales. If a product is priced too high, sales history tells you the demand is low — when in reality the demand is perfectly fine but unconverted.

You end up restocking what was converting, not what was wanted. In typical retail, roughly 80% of revenue comes from 20% of SKUs — the Pareto distribution shows up reliably in e-commerce data. Getting that 20% wrong is the single most expensive mistake an inventory manager can make.

The signals you actually need live in event data: every product view, every cart-add, every search query, every return visit. On a WordPress site (and WordPress runs 43.5% of the web, W3Techs 2024), those events already fire — the question is whether you’re capturing them at a grain you can query.

The 5 Demand Signals Already in Your Data

Here’s what to look for, ranked from “easy to compute” to “most predictive.”

1. View-to-cart ratio (the leading indicator)

This is the single strongest early signal of product demand. A high ratio — many cart-adds relative to views — means the product sells itself. A low ratio means either the product page isn’t doing its job or the price is wrong. Either is actionable.

Look specifically for products with low traffic and high view-to-cart ratio. Those are under-discovered winners. More traffic to them is pure upside.

2. Add-to-cart abandonment per product

Not all cart abandonment is equal. A product added by 500 customers and bought by 100 has a different diagnosis than a product added by 50 and bought by 40. The first has a friction problem — usually shipping cost (48% of all abandonment is unexpected shipping, Baymard Institute 2024) or payment step trust. The second is converting exactly as expected; the opportunity is more views.

Add-to-cart abandonment at the product level tells you which products to un-block, not which ones to stop selling.

3. Variant-level demand (the hidden trap)

“Navy XL” and “navy L” are not the same demand signal, even though they’re the same product in your top-level report. If your data only records “Product: Navy Tee sold 40 units”, you can’t see that 32 of those were XL and the L variant sold out on day 3.

Demand signals are only actionable at the variant level. Every event — view, cart-add, purchase — needs the SKU-level identifier preserved. Without it, your “best-sellers” report is systematically wrong in whichever variant sold out first.

You may be interested in: The Questions You Should Be Asking Your WooCommerce Data Every Week

4. Repeat purchase rate (the product-market fit signal)

A product that customers buy once and never again is a gift or a mistake. A product customers return to buy a second time is the most reliable signal of genuine fit. Repeat purchase rate per product — over a 60- or 90-day window — tells you which SKUs will sustain themselves and which need constant top-of-funnel spend.

This is the signal most stores don’t measure because it requires joining customer IDs across orders over time. In BigQuery that’s a one-query operation. In GA4’s default reports, it’s nearly impossible.

5. Search and stockout signals (the unmet demand)

Two signals most stores ignore completely:

  • Site search with no/low results: Customers typing a query you don’t have a product for. Every such search is an inventory tip.
  • Views on out-of-stock variants: If customers are still landing on unavailable products weeks after they sold out, your restock signal is loud.

Both require event capture on search queries and on product-view events (with stock status attached). Both are invisible in standard sales reports.

How to Put It Together: The Demand Scorecard

With every event streamed into BigQuery at variant level, one query gives you a scorecard per SKU:

SELECT
  sku,
  COUNT(DISTINCT IF(event_name = 'view_item', session_id, NULL)) AS views,
  COUNT(DISTINCT IF(event_name = 'add_to_cart', session_id, NULL)) AS carts,
  COUNT(DISTINCT IF(event_name = 'purchase', session_id, NULL)) AS orders,
  SAFE_DIVIDE(
    COUNT(DISTINCT IF(event_name = 'add_to_cart', session_id, NULL)),
    COUNT(DISTINCT IF(event_name = 'view_item', session_id, NULL))
  ) AS view_to_cart_ratio
FROM `your_project.transmute_events.events`
WHERE DATE(event_timestamp) BETWEEN '2026-03-01' AND '2026-03-31'
GROUP BY sku
ORDER BY view_to_cart_ratio DESC

Sort by view-to-cart ratio. Products at the top with low absolute orders are your under-stocked winners. Products with high views and low ratios are your pricing or messaging problems. The decisions become visible in one glance.

Once the scorecard exists, asking Claude “which products should I restock before end of quarter?” is a plain-English question that writes its own SQL.

You may be interested in: Your WooCommerce Data Has Already Answered Your Biggest Business Questions. You Just Haven’t Asked.

Why Most Stores Can’t See These Signals

All of the above assumes one thing: your events are being captured completely and at variant level. Most WooCommerce stores fail this prerequisite in two specific ways.

First, client-side tracking loses events. Ad blockers (31.5% of users globally, Statista 2024) and Safari’s 7-day ITP strip roughly a third of view events from GA4 on a typical WordPress site. Your view-to-cart ratios are wrong in proportion to your blocker exposure — and you’d never know.

Second, most tracking setups collapse events to parent-product level and drop variant detail. “Sold 40 navy tees” looks complete until you need to restock. “Sold 32 XL, 8 L, 0 S” is the actual decision data.

Transmute Engine™ is a first-party Node.js server that runs on your own subdomain (e.g., data.yourstore.com). The inPIPE WordPress plugin captures every WooCommerce event at variant level — view, cart, checkout, purchase — and sends them via API to the Transmute Engine server, which streams them into BigQuery alongside parallel routing to GA4, Facebook CAPI, and Google Ads. The demand scorecard works because the underlying data is both complete and variant-aware.

Key Takeaways

  • Sales history tells you what sold; event data tells you what was wanted. These are different products, and the difference is your next best-seller.
  • View-to-cart ratio is the strongest leading indicator of demand. Low traffic + high ratio = under-discovered winner.
  • Add-to-cart abandonment is a friction signal, not a rejection signal. The 70% industry-average abandonment rate is mostly unconverted demand (Baymard 2024).
  • Variant-level tracking is non-negotiable. Top-level product data hides exactly the stockout risk you’re trying to see.
  • Repeat purchase rate is the truest product-market fit signal. Measure it per SKU over a rolling window.

Frequently Asked Questions

What’s the difference between views and real demand signals?

A view is just attention — it says someone landed on the page. A demand signal is behavioural: they added to cart, saved to wishlist, searched for it, or returned to view it again. A product with 5,000 views and 10 cart-adds has a traffic success and a demand failure. A product with 200 views and 80 cart-adds has strong latent demand hiding behind low discovery.

How do I find products customers want but can’t find?

Three places in your data. First, site-search terms with low-result counts — customers searching for something you don’t stock. Second, out-of-stock product views — high views on products marked unavailable means you’re losing demand. Third, referral traffic to missing SKUs — 404s from old product URLs or external links that now dead-end.

What does add-to-cart abandonment tell me about a product?

Add-to-cart is the strongest demand signal available. If a product has high add-to-cart rate but low purchase rate, you have pricing, shipping, or trust friction — not a demand problem. Fixing the friction (free shipping threshold, trust signals, better photos) will usually lift conversion more than discounting would.

How can I use Claude to find my next best-seller before I stock it?

With your WooCommerce events in BigQuery, ask: “Show me products with the highest view-to-cart ratio but lowest inventory turnover.” Claude writes the SQL, runs it, and returns a list of under-stocked products with strong demand. Follow-up: “Break that down by variant” finds the specific sizes or colours selling out.

Do I need a special plugin for this, or can my existing analytics do it?

GA4 can show product views and purchases at a session-aggregated level, but hides variant-level detail and loses sessions to ad blockers and Safari’s ITP. For real demand analysis you need row-level events in a queryable warehouse like BigQuery, with variant-level data included. Server-side event capture is the prerequisite.

The Bottom Line

Your next best-selling product is already hiding in your event data — under-stocked, under-promoted, or under-variants you can’t currently see. Stop asking sales history what to stock. Ask the data what customers wanted.

Ready to turn your WooCommerce events into an inventory signal? Start at seresa.io.

Share this post
Related posts