# Inventory — current stock and stockout forecasts

> How the Inventory page shows stock on hand per product variant across Shopify, Amazon and ShipBob, and how Run Rate, Days Left and projected stockout dates are worked out.

Source: https://help.tryordinary.com/features/inventory

---

Inventory is available on the **Advanced plan and higher**. On other plans
the page shows a blurred preview with an upgrade prompt.

The Inventory page lists your stock for every product variant and projects
when each runs out at its current rate of sale, across two tabs: **Current
Inventory** and **Forecasted Inventory**.


## Current Inventory columns

The table shows 50 items per page. **Columns** shows or hides each column;
Brand and ASIN are hidden by default.

- **SKU** — the variant's SKU, or **—** when it has none.
- **Product** — product name with the variant underneath; links to the
  product in your Shopify admin.
- **Channel** — Shopify, Amazon, ShipBob or Total. Hidden when Shopify is
  your only source.
- **Inventory** — units on hand in that channel.
- **Value (Cost)** — units on hand × the product's landed cost.
- **Value (MSRP)** — units on hand × price. Shopify rows use the product's
  RRP from your cost data, or the variant's Shopify price when there isn't
  one; Amazon rows use the Amazon RRP.
- **Run Rate** — average units sold per day; **-** means no sales in the
  period.
- **Days Left** and **OOS Forecast** — how long the stock lasts at that
  rate, and the date it's projected to run out.

The footer shows one total per source (**Total Shopify**, **Total Amazon**,
**Total ShipBob**) for stock and value, across every listed item on all
pages, following your search (product, variant, SKU, brand or ASIN) and the
untracked toggle. There's no total across sources: linked ShipBob stock is
the same units as the Shopify count, so adding them would count it twice.
Costs and RRPs come from your [product cost data](https://help.tryordinary.com/features/product-costs); items
without one add 0 to the value columns.

## Why a product can appear on several rows

Each stock source has its own row:

- **Shopify** — one row per Shopify product variant, matched by the variant
  itself, so variants without a SKU or sharing a SKU still get their own
  correct row.
- **ShipBob, linked** — when ShipBob lists an item against one of your
  Shopify variants, its ShipBob stock shows as a ShipBob row directly under
  that variant's Shopify row. The variant's stock stays its Shopify count:
  ShipBob keeps that count in sync, so the two rows are the same units seen
  from each side, not extra stock.
- **Amazon (FBA)** and **ShipBob without a link** — one row per seller SKU,
  which is how those services identify an item. When the same SKU is
  stocked in both, its Amazon and ShipBob rows sit together with a
  **Total** row beneath.

Ordinary never matches an Amazon or ShipBob row to a Shopify variant by SKU
text, so stock without a link appears as its own group. Amazon rows take
product name, cost and RRP from the catalog product with the same ASIN.
Amazon and ShipBob columns appear when those integrations are connected.

## Hidden (untracked) variants

When **Track quantity** is off for a variant in Shopify, Shopify doesn't
count its stock, so its quantity is 0 or drifts negative. Current Inventory
hides these variants and leaves them out of the footer totals. Tick
**Show untracked (N)** above the table, where N is how many are hidden, to
list them; the choice is remembered in this browser.

## How Run Rate and Days Left are calculated

- **Run Rate** = units sold over the last 7, 14 or 30 full days, divided by
  the number of days. The window ends yesterday (today is still in
  progress) and follows your store's timezone. Pick the period with the
  **7 Days / 14 Days / 30 Days** control on the Forecasted Inventory tab; it
  sets the rates on both tabs and starts at 30 Days each time you open the
  page.
- **Days Left** = units on hand ÷ Run Rate, rounded down.
- **Projected stockout** = today + Days Left.

Each channel uses its own sales. Shopify rows use Shopify orders for that
variant, including units given away free or shipped as part of a bundle,
since those leave your warehouse too. Amazon rows use Amazon units ordered
for that ASIN. A linked ShipBob row uses its variant's Shopify rate, since
the same orders draw it down; a ShipBob row without a link has no run rate.
On a Total row, Days Left applies the Amazon rate to the combined Amazon and
ShipBob stock.

## What the colors mean

On Current Inventory, the Days Left cell is highlighted:

- Shopify, ShipBob and Total rows — **red** under 90 days, **amber** 90–150
  days.
- Amazon rows — **red** under 7 days, **amber** 7–29 days.

On Forecasted Inventory, the Days Left pills in Restock Outlook are **red**
under 90 days and **amber** 90–150 days. Anything longer is neutral.

## Forecasted Inventory tab

- **Units on Hand**, **Sell-Through** (units per day), **First Projected
  Stockout** and **Stockouts Within 90 Days** (out of all selling products)
  summarise the products in view.
- **Projected Stock Levels** — a chart of each product's stock over the
  next 180 days at its current rate, with a **Reorder level** line at 100
  units. With **All products** selected it shows the 8 fastest-selling
  products; pick one from the product filter to see any other.
- **Restock Outlook** — up to 12 selling products, soonest stockout first,
  with On Hand, Units / Day, Days Left and Projected Stockout.

With Amazon connected, an **All / Amazon / Shopify** filter appears. Shopify
covers Shopify stock plus any ShipBob stock not linked to a Shopify variant
(linked ShipBob stock is already part of the Shopify count); Amazon covers
Amazon stock and sales only.

## Combine packs

If you sell multi-packs that draw from the same single-unit stock (a
"6 Pack" sale takes six units off one shelf), tick **Combine packs** on the
Forecasted Inventory tab. Each pack's sales, multiplied by its pack size,
are added to its single-unit product's sell-through, and the pack's own row
is hidden. The single-unit product's stock on hand isn't increased, because
pack stock is the same physical units.

Packs are recognised from the product or variant name, for example "6 Pack",
"Pack of 6" or "12 ct", and are combined only when there's one clear
single-unit product with the same name. Anything else stays as its own row.
Picking a combined pack in the product filter shows it on its own. The
setting is remembered in this browser.

## How often stock refreshes

- **Shopify** — every hour. Click **Sync** on Current Inventory to pull
  Shopify stock right away.
- **ShipBob** — every hour.
- **Amazon (FBA)** — once a day.

The date beside the item count is the newest snapshot across your sources.

## The "SKU inconsistencies detected" banner

This banner appears when some variants have no SKU, or when one SKU is used
by more than one variant. Warehouses, 3PLs and marketplaces such as ShipBob
and Amazon identify your items by SKU, so giving every variant its own
unique SKU keeps stock and orders lined up across them. Shopify stock on
this page is matched by variant, so it isn't affected.

**View details** lists the affected products with links to fix them in
Shopify. **Remind me** hides the banner for 7 days; **Dismiss** hides it in
this browser.

## Related

- [Unit Sales](https://help.tryordinary.com/features/unit-sales)
- [Products — catalog and performance](https://help.tryordinary.com/features/products)
- [Product costs and profit data](https://help.tryordinary.com/features/product-costs)
- [Connecting Amazon SP-API](https://help.tryordinary.com/integrations/amazon)
