# Inventory (/modules/inventory)

Inventory brings Shopify product stock, sales and return data into one place. Connect Shopify before using it. Keel HQ shows your storefront names here; unnamed connections appear as **Shopify store 1** and **Shopify store 2**.

## Overview [#overview]

Use Overview as a stock-health check. It groups products into **Out of Stock**, **No Sales**, **Running Low**, **Healthy** and **Overstocked**, and links each group to the matching Catalog view. It also shows inventory allocation, stock at cost, an ABC-grade breakdown and a short Action Queue.

Start with a status tile, then use the Action Queue to decide what to reorder or review. Products without a Shopify cost per item are not valued as $0.

The figures use the inventory glossary:

- [Units on Hand](/reference/metrics#units-on-hand)
- [Sell-Through](/reference/metrics#sell-through)
- [Avg/Day (90d)](/reference/metrics#avgday-90d)
- [DOI](/reference/metrics#doi)
- [Overstock](/reference/metrics#overstock)

## Catalog [#catalog]

Catalog is the product list for checking stock, sales pace, [Sell-Through](/reference/metrics#sell-through) and the projected [Stockout](/reference/metrics#stockout) date. Search for a product or filter by status, season, ABC grade or storefront. The table uses your storefront names and also shows combined totals.

Open a product to set its season, supplier, reorder point, MOQ and lead days. A supplier's lead time can drive the reorder point; you can also enter a fixed reorder point or MOQ. Select **Save Settings** when you are done. Use **Plan a PO and preview its cash impact** to begin a purchase order for the product.

Products marked as bundles are excluded from the inventory catalog so their component units are not counted twice.

### Mystery-box costs [#mystery-box-costs]

For a mystery-box product, choose one **Mystery box cost** option in its Catalog drawer:

- **Unknown — detect from order edits**
- **Cost comes from items added to order**
- **Fixed product cost**

When an order-edit component is recorded, Keel HQ captures that component's cost at the time of sale. That saved cost does not change if its Shopify cost per item changes later. A mystery box can remain uncosted when Keel HQ cannot establish all of its component costs, so do not use it as a promise of exact COGS for every mystery-box order.

If a mystery box appears in **Top uncosted products**, its reason can be one of these:

See [Fix uncosted products](/guides/fix-uncosted-products) for what to do with each reason.

- A component is not in inventory, so it has no cost.
- A component has no cost per item in Shopify.
- Keel HQ has not yet read which items an order edit added; this fills in automatically.
- No components were found on the orders, so the box cost is unknown.

While Keel HQ is rereading earlier edited orders, the Shopify connection can show **Re-reading N edited orders… P%**. If it needs another pass, it shows **N edited orders couldn't be read yet; Keel HQ retries automatically.**

## Pipeline [#pipeline]

**Pipeline** is a Beta tab for planning products that do not yet exist in Shopify inventory. Add a product at **Design**, then move it through **Sample**, **Sample Testing**, **Production**, **Drop Planning** and **Dropped**. Use a product's detail view to record sample rounds, notes and tasks.

Pipeline is for planning only; it does not change Shopify stock.

## Drops [#drops]

Use Drops to track a product launch and its sell-through pace. Create a drop, choose its products and storefronts, enter the launch inventory, then watch its **On Pace**, **Behind** or **At Risk** status. A drop detail page shows the remaining inventory, [Sell-Through](/reference/metrics#sell-through), weekly sales, notes and a kill-or-keep recommendation.

Use the launch quantities from the drop rather than current stock to measure its sell-through. You can adjust those quantities later from the drop detail.

## POs [#pos]

**POs** records supplier purchase orders and their payment schedules. Add suppliers in **Settings** first, then select **New PO**. Add the lines, dates and payment schedule, choose the status, and use **Preview cash impact** before saving.

Placed and shipped purchase orders contribute to **On Order** inventory. Their unpaid scheduled payments can appear in the Cash forecast. Use **Import** on this tab to bring in suppliers, open purchase orders or SKU settings from a spreadsheet.

## Seasonal [#seasonal]

**Seasonal** is a Beta tab that compares products tagged **Spring / Summer**, **Fall / Winter** and **Evergreen**. Set a product's season from its Catalog drawer, then use Seasonal to compare its stock and [Sell-Through](/reference/metrics#sell-through) with the rest of that season.

## Margins [#margins]

Use **Margin Calculator** to create saved margin profiles for planning a product's price and landed cost. Select **New**, enter the product name, type, cost inputs and pricing, then save the profile. Keel HQ shows full-price, wholesale and sale-price scenarios.

Profiles are planning calculators, not live Shopify margins. Their shipping, return and payment assumptions come from [**Settings → Goals → Margin Calculator Defaults**](/settings/goals#margin-calculator-defaults).

## Returns [#returns]

**Returns** summarizes Shopify refund records. Choose a range, then review return volume, refunded revenue, return rate, outcome mix and **Top Returned Products**. Use it to identify products that are coming back more often.

The tab distinguishes refunds, exchanges, store credit and unknown outcomes. It needs Shopify refund data; if it is missing, go to **Settings → Integrations** and select **Sync Returns** on the Shopify card.

## Actions [#actions]

Actions is the prioritized list of inventory work. It groups products as **Out of Stock**, **Stockout Soon**, **Reorder** and **Dead Stock**. Work from top to bottom: open the Catalog entry to investigate, or select **Plan a PO and preview its cash impact** to start replenishment.

Use the glossary when reviewing the list:

- [Stockout](/reference/metrics#stockout)
- [Stockout Risk](/reference/metrics#stockout-risk)
- [Dead Stock Flags](/reference/metrics#dead-stock-flags)

Dismissals only last for the current page session. Keel HQ lists a product only once, under its highest-priority action.

## Settings [#settings]

**Inventory Settings** controls the thresholds and setup Inventory uses. Adjust **Status Thresholds**, **ABC Classification** and **Drop Tracker** settings to match your operating model. Use **Product Exclusion Rules** to hide matching vendor- or tag-based products from the catalog and inventory calculations.

Add suppliers here before creating purchase orders. A supplier's lead time, MOQ and payment terms help Keel HQ calculate reorder timing and prefill a PO payment schedule. Use **SKU Mappings** when the same product has different SKUs between your storefronts.

## Import [#import]

Select **Import** from POs to bring in suppliers, open purchase orders or per-SKU settings. Choose the file type, check its column mapping, select **Review import**, confirm the review and then import. Nothing is saved until the final import step.

Keel HQ accepts `.csv` and `.xlsx` files. It reads the first sheet of an `.xlsx` file. The older `.xls` format is rejected; save it as `.xlsx` or `.csv` first.

The limits are 10,000 rows, 200 columns and 2,000 characters per cell. Keel HQ sends the parsed spreadsheet as a request of up to about 4.5 MB, rather than uploading the original file.

### Import fields [#import-fields]

| Import | Fields |
| --- | --- |
| Suppliers | **Supplier name**; Lead time (days); MOQ; Currency; Payment terms; Email; Notes |
| Purchase orders | **PO number**; **Supplier**; **Quantity ordered**; Status; SKU; Product; Variant; Quantity received; Unit cost; Currency; Order date; Ship date; Expected arrival; Amount paid; Payment status; Paid date |
| SKU settings | **SKU**; Supplier; Lead time (days); MOQ; Reorder point (units) |

Bold fields are required. A purchase-order row represents one line; rows with the same PO number become one purchase order. Map the columns before reviewing the import, especially when using an export from Stocky, Inventory Planner or Prediko.

If you import a unit cost, see [Costs](/settings/costs) for how Keel HQ uses costs in your margins.
