Blog · 31 October 2026 · 8 min read

Negative Shopify inventory and the reorder report: oversold units

Shopify can keep selling past zero. Why available goes negative while on hand does not, and how Restock Ops counts oversold units in the reorder report.

Every November a few products in most stores go negative. Someone ticked Continue selling when out of stock on a variant, a promotion ran, and the available quantity in Shopify now reads minus forty. The orders are real, the customers are waiting, and the obvious next question is how much to order. That turns out to depend on which of Shopify's inventory numbers you are looking at, because they do not all go negative at the same time, and on what the reorder tool you use does with a number below zero.

This post explains the sequence Shopify follows when a variant is oversold, which quantity Restock Ops reads for its reorder report, the one adjustment you have to make by hand for backordered units, and what a stocktake or a receipt does when the starting number is negative. None of it is complicated once the quantities are named properly, which is where most of the confusion comes from.

Which number goes negative, and when

Shopify tracks several quantities per variant per location. The ones that matter here are available, committed and on hand. According to Shopify's inventory states documentation, committed is the number of units in orders that have been placed but not fulfilled, and on hand is available plus committed plus the unavailable states (reserved, damaged, safety stock, quality control). Available is what the storefront can still sell.

When an order is placed, Shopify moves units from available to committed. On hand does not change, because nothing has left the building. With Continue selling turned off, available stops at zero and the storefront shows sold out. With it turned on, orders keep coming and available keeps going down: ten on hand, fifty ordered, means available is minus forty and committed is fifty, while on hand still says ten.

On hand only goes negative later, when you fulfil those orders. Fulfilling an order reduces committed and on hand together. Fulfil all fifty from a shelf that held ten and on hand reads minus forty. In practice stores rarely get there, because you cannot ship units you do not have; the usual state of an oversold variant is a positive or zero on hand, a large committed figure and a negative available figure, waiting for the delivery.

The quantity the reorder report reads

Restock Ops builds its reorder report from on hand, not from available. Position, the number the report compares against your reorder point or days of cover, is on hand plus incoming, and both terms are clamped at zero before they are added. A negative on hand counts as nothing in stock; it is never treated as a negative position that would inflate the suggestion.

The reason for choosing on hand is that it is the honest count of what is physically there, which is also what a stocktake verifies and what a receipt adds to. Available is a derived number that mixes physical stock with sales that have already happened, and using it would double count against the velocity, which is computed from the same orders.

The consequence for an oversold variant is specific. Take the example above: ten on hand, fifty committed, available minus forty. The report sees a position of ten. It computes the target from your velocity over the window (30 days by default, adjustable between 7 and 365 in settings) times lead time plus cover days, and suggests target minus ten. The fifty units already sold do not enter that subtraction anywhere. Committed is not part of position, and the report does not read it.

Add the backlog yourself

So the suggested quantity on an oversold line is the quantity to restock the shelf, not the quantity to clear the backlog and restock the shelf. You have to add committed. The committed figure is on the product's inventory page in Shopify, per location, and for a backordered variant it is normally the same as the negative available figure with the sign flipped, plus whatever on hand was.

The place to add it is the draft purchase order. Create the draft from the report as usual, then open it and raise the quantity on that line by the committed units before marking it ordered. The draft stays editable until then, and the post on creating a draft from the report covers the mechanics. If the supplier has a case size or minimum on file, the app rounds the quantity you type the same way it rounds a suggestion, so the extra units land on a case boundary.

There is a second, quieter effect worth knowing about. Velocity is units sold per day from orders over the window, and oversold orders are orders. A product that sold fifty in a week while showing minus forty has a velocity that reflects all fifty, so the target quantity will be higher than it would have been for a product that simply showed sold out and stopped taking orders. That is the opposite of the problem described in the post about stockouts hiding demand: Continue selling records the demand that a stockout would have lost, and the report benefits from it, but it still does not know those units are owed to anyone.

A worked example

After you mark that PO ordered, the 250 units show as incoming on the report, position becomes 260 and the line drops off the suggestions. When the delivery arrives and you receive it, on hand rises to 260, you fulfil the fifty orders, committed falls to zero, on hand falls to 210 and available reads 210. Everything is consistent again without a manual adjustment.

One oversold variant, one supplier with a 14 day lead time and 21 cover days
FigureValueWhere it comes from
On hand10Shopify, per location
Committed50Shopify, unfulfilled orders
Available-40On hand minus committed
Incoming0No PO marked ordered yet
Position10Report: on hand + incoming, floored at 0
Velocity6 / dayReport: last 30 days of orders
Target2106 x (14 + 21)
Suggested200Target minus position
What to actually order250Suggested plus committed, typed into the draft

Stocktakes and receipts against a negative number

A stocktake in Restock Ops shows on hand as the expected figure for each line. For the common oversold state, expected is a small positive number or zero and your count matches it; nothing unusual happens. If on hand has actually gone negative because oversold orders were fulfilled, expected shows that negative number, you count what is there, and the difference the review screen shows is larger than the physical count. Apply it. The count is the truth and the negative figure was Shopify's bookkeeping catching up with units that left before they were recorded as arriving.

Receiving works the same way. When a receipt lands and the app updates the average cost, it treats a negative on hand as zero existing units, so the average becomes the cost on the receipt rather than being skewed by a phantom negative quantity. Last cost is unaffected either way. The cost history post has the rest of that logic.

Should you turn Continue selling on at all?

For the season, probably, on the lines you know you can restock in time. The alternative is a sold-out badge that loses the sale and hides the demand from your reorder report. The cost is that the report stops being the whole answer for those lines: you have to look at committed and add it. Keep the list of variants with Continue selling turned on short and written down, and when the delivery is received and the backlog is fulfilled, turn it off again. A variant that stays on all year is a variant that will quietly oversell in February when nobody is watching the committed column.

FAQ

Does the Restock Ops reorder report use available or on hand?

On hand plus incoming, both floored at zero. Available is derived from on hand and committed and would double count sales the velocity already includes.

Does the suggested quantity include units already sold on backorder?

No. Committed units are not part of position and are not added to the suggestion. Add them to the line on the draft purchase order before marking it ordered.

Why is on hand still positive when available is negative?

Placing an order moves units from available to committed and leaves on hand alone. On hand only falls when orders are fulfilled, so it goes negative only if oversold orders are shipped before the stock arrives.

What happens to a stocktake when on hand is negative?

Expected shows the negative figure, you count what is physically there, and applying the count sets on hand to the counted number. The difference is larger than usual but the result is correct.

Try it on your store. Restock Ops adds purchase orders with partial receiving, supplier notes, cost history, barcode labels, scanner stocktakes and a reorder report on top of Shopify inventory. From $19/month, 14-day free trial.

Install on Shopify Watch the demo

Sources