HomeBlogShopify's days of inventory remaining is too kind to your best sellers

Shopify's days of inventory remaining is too kind to your best sellers

Shopify's days of inventory remaining divides the stock you have left by your average daily sales over the last 28 days. Days a variant spent sold out still count, as days with zero sales. So the variants that sell out most often get the most generous numbers, which is the opposite of what you need.

Shopify days of inventory remaining shows 15.6 days for a variant that sells out in 10, against a 14 day lead time
Ten days at zero count as ten days nobody wanted it. That is the whole gap.

On this page

  1. What days of inventory remaining actually measures
  2. Sold out days count as days nobody wanted it
  3. N/A hides the variants that are already gone
  4. The numbers are days old
  5. It only works if somebody opens it
  6. A 15 minute weekly check
  7. Turn days into a number that comes to you
  8. If you only do one thing this week

Here is how that plays out on one variant.

Your navy hoodie in medium sells about 6 a day. Three weeks ago it sold out and sat empty for ten days. Then a delivery of 120 landed and it has sold 6 a day since. Today you have 60 left.

Your supplier takes 14 days, so you open the report to see if the hoodie needs ordering this week.

It says 15.6 days. That is about a day and a half to spare, so you leave it.

You actually have 10 days. The hoodie sells out on day 10 and the next delivery lands on day 14. Four days with nothing to sell, on a variant that moves 6 a day.

Nothing in the report is miscalculated. It is answering a different question from the one you asked.

What days of inventory remaining actually measures

The report lives in Analytics, under Reports, in the Inventory category. Shopify's help center calls it Inventory remaining per product. You may also see it called Products by days of inventory remaining. A days of inventory remaining figure also sits in the analytics bar at the top of your Products page.

For each variant the table shows three numbers:

ColumnWhat it means
Ending quantityAvailable stock at the end of the last day
Quantity sold per dayUnits sold in the last 28 days, divided by 28
Days of inventory remainingEnding quantity divided by quantity sold per day

Three details from Shopify's own help page matter more than they look.

None of that is wrong. The trouble is the average.

Sold out days count as days nobody wanted it

Shopify's help page is specific about the average. Quantity sold per day is the quantity sold divided by the number of days in the period. It does not leave out the days a variant had nothing to sell.

So a sold out day goes into the average as a day of zero demand. It was not. People came looking and left with nothing.

Back to the hoodie:

The report divides your 60 units by 3.9 and prints 15.6 days. The shelf divides 60 by 6 and gets 10.

The report told you how fast the hoodie sold across four weeks, gaps included. You needed to know how fast it sells when you have it.

That gap grows with every day a variant spends sold out, which creates a nasty pattern. The variants that run out most often get the most generous numbers. Slow movers rarely sell out, so their numbers are honest. The report flatters your best sellers.

It gets worse right after a long stockout. Say a grey tee was sold out for 24 of the last 28 days. A delivery of 120 landed four days ago and it has sold 6 a day since, leaving 96. The report sees 24 sales across 28 days. That is 0.9 a day, so it prints 112 days. That reads like overstock. You might even discount it. It will be gone in 16.

You can confirm the average on your own store. Open the Inventory sold daily by product report, which shows the same average inventory sold per day next to the units sold. Set it to the last 28 days and pick a variant that sold out recently. Its quantity sold per day will be its units sold divided by 28, sold out days and all.

The cost is not abstract either. Four days without the hoodie at 6 a day is 24 orders you could have taken. At $45 each that is over $1,000, before you count the shoppers who find it gone once and do not come back. What a stockout really costs works through the full sum.

N/A hides the variants that are already gone

Here is Shopify's rule, from the same help page. If a variant had no sales in the period, its days of inventory remaining is set to N/A, because there is not enough data to make a prediction.

Think about which variants had no sales in the last 28 days. Dead stock, yes. But also every variant that was sold out for the whole four weeks.

Those are your most expensive rows. They lose you sales every single day. The report does not put them at zero at the top of your list. It labels them N/A, which reads like nothing to see here.

So learn to read the two labels differently:

The ending quantity tells you which. An N/A with an ending quantity of 0 is not slow stock. It is an empty shelf.

The numbers are days old

Shopify's inventory analytics are not live. Its help pages mention a processing delay of about two days on the related sell through figures. In late 2024 a merchant on the Shopify Community forum posted the days remaining report still showing numbers from five days earlier, after hundreds of sales and several deliveries.

Two days behind is fine for a variant that sells two a week. It is not fine for one that sells 20 a day. Two days there is 40 units.

Before acting on a row, check it against something you know. If a delivery landed yesterday and the ending quantity has not moved, the report has not caught up.

The window also looks backward. In the run up to a busy season, the last four weeks are slower than the next four, so every number reads long. It is the same trap as a threshold tuned in July.

It only works if somebody opens it

A report does not tap you on the shoulder. Nothing tells you when a variant slips under 14 days. Somebody has to remember to look, on the right day.

Merchants have asked for more. In April 2026 one posted a request on the Shopify Community forum for a Flow trigger that fires when days of inventory remaining crosses a number. Flow still has no such trigger.

There is a workaround. In May 2026 Shopify added a Get analytics data action to Flow. It runs a ShopifyQL query and passes the rows to the next step. It only works with the Scheduled time trigger, so it can check every morning but not the moment stock moves.

A member of the Shopify Community forum shared this query in June 2026. It lists every tracked variant with 14 days or fewer left:

FROM inventory
  SHOW ending_inventory_units, inventory_units_sold_per_day,
    days_of_inventory_remaining
  WHERE inventory_is_tracked = true
  GROUP BY product_title, product_variant_title, product_variant_sku
  HAVING inventory_units_sold_per_day > 0
    AND days_of_inventory_remaining <= 14
  SINCE startOfDay(-30d) UNTIL today
  ORDER BY days_of_inventory_remaining ASC

To set it up:

  1. In Flow, create a workflow with the Scheduled time trigger, set to run daily.
  2. Add the Get analytics data action and paste in the query.
  3. Add a Send internal email action that lists each row.

Try the query in Shopify's ShopifyQL editor before you build the workflow. If it returns your variants there, it will return them in Flow.

Know what it inherits. It reads the same kind of sales average, so sold out days still drag it down. The HAVING line also drops every variant with zero sales, which is the N/A problem all over again. You get a better reminder, not a better number. Building a low stock alert in Flow covers which plans include Flow and where it stops scaling.

A 15 minute weekly check

You can get most of the value without Flow. Once a week, open the report and work down it.

  1. Sort by days of inventory remaining, lowest first.
  2. For each row near the top, ask whether it sold out in the last 28 days. You usually know. If you are not sure, the variant's inventory adjustment history lists every change with its date, going back 180 days.
  3. Correct the number. Multiply the report's days by the days the variant was in stock, then divide by 28.
  4. Compare it with your lead time plus a buffer. If the supplier takes 14 days and you want a week of cover, anything under 21 corrected days gets ordered this week.
  5. Read every N/A row with an ending quantity of 0. Those are empty shelves, not slow stock.

Step 3 on the hoodie: 15.6 × 18 ÷ 28 = 10 days. It works because the stock count and the sales were both right. Only the number of days was wrong.

Here is the check on four variants, with a 14 day lead time and a week of buffer:

VariantReport saysIn stockCorrectedDecision
Navy hoodie, M15.6 days18 of 28 days10 daysAlready late. Order today.
Grey tee, L112 days4 of 28 days16 daysOrder today
Canvas tote30 days28 of 28 days30 daysNot yet
Wool scarfN/A0 of 28 daysEmptyFind out why

Read the report on its own and you order the hoodie thinking you are on time. You skip the tee. You never look at the scarf. The tote never sold out, so its number was right all along.

Turn days into a number that comes to you

The weekly check still needs somebody to do it every week. The lasting fix is to stop reading days and set a stock level instead.

Take the in stock sales rate and multiply it by your lead time plus buffer:

6 a day × (14 + 7) days = 126 units

That is the hoodie's reorder point. Set it as the variant's low stock threshold and the warning arrives when available drops below 126. There is no report to open, no 28 day average and no two day delay.

Use the in stock rate, not the report's. Put 3.9 into that sum and you get 82, which fires about a week later than 126 would.

It also shows how far behind the report was. At 60 units the hoodie is 66 units under its reorder point, while the report still said it had time.

That is how a low stock alert works, whether you build it in Flow or use an app like Stockwell. The method for picking the buffer is in choosing a low stock threshold. The same sum, worked through for different products, is the reorder point formula. For the buffer on its own, see safety stock.

If you only do one thing this week

Pick your ten best sellers. For each one, check whether it sold out at any point in the last four weeks.

For any that did, correct the number: the report's days, times the days in stock, divided by 28. Anything that lands under your lead time is already late. Order it today.

Then give those ten a threshold, so next time the warning comes to you. The wider picture of alerting starts at low stock alerts on Shopify.

Know before a SKU hits zero

Stockwell watches every variant at every location and emails your team when stock falls under the level you set. Install it from the Shopify App Store and the first alert is running in a couple of minutes.

Get it on the Shopify App StoreFree plan covers 500 SKUs with a daily summary. Paid plans add instant alerts and more recipients. No card needed to start.