> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryoto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Inventory tracking

> See stock for every location, reserve stock for orders, set minimum and safety stock, and trace every movement in the stock transaction logs.

> [!NOTE]
>
> **Where to find it:** OTO PACK → Inventory — [Open in OTO ↗](https://app.tryoto.com/inventory)

Tracking is the unglamorous half of inventory: not moving stock, but knowing where it stands at any moment, and being able to prove how it got there.

## The Inventory screen

One screen at **OTO PACK → Inventory**, three tabs, each answering a different question.

| Tab | The question it answers |
| - | - |
| **Inventory** | How much of this SKU is in this warehouse or branch? |
| **Bin Inventory** | Which shelf is it on? Available with bin tracking. |
| **Global Inventory** | How much do we have anywhere at all? |

The columns are the same vocabulary throughout:

| Column | What it carries |
| - | - |
| **Warehouse Name** · **Branch Name** | Where this row is counted. Branches hold stock as well as warehouses — a shop floor is a location like any other. |
| **Product** · **SKU** | What is being counted. |
| **Quantity on Hand** | Physical stock at this location. |
| **Quantity Available** | Sellable stock, after reservations. |
| **Bin Quantity** | The total across that location’s bins. It should equal Quantity on Hand; when it does not, something needs reconciling. |
| **Min Inventory** | The floor for this SKU at this location — safety stock. |

Every column filters, numeric ones by a **Min**/**Max** range. Column totals sit in a **Total** row at the foot and are calculated on request rather than on every page load — which on a catalog of any size is the difference between a screen that opens and one that thinks about it first.

### What Global Inventory drops

The global view is deliberately narrower: **Product · SKU · Quantity on Hand · Quantity Available · Bin Quantity**, and nothing else.

![The Global Inventory tab](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/inv-2-global.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=f6c9ef766942d11c1db8d2c6cfbd5771)

Fig. 1 — No warehouse, no branch, no Min Inventory — because none of those mean anything once the locations are added together.

That is not an omission. A minimum stock level belongs to a SKU *at a location*; a global total of safety stock is a number with no decision attached to it. The global tab answers exactly one question — *do we have this at all?* — and leaves the per-location questions to the tab next to it.

> [!TIP]
>
> **Bin Quantity is your early-warning column**
>
> Quantity on Hand and the sum of the bins are maintained by different paths — one by inventory orders, the other by scans on the floor. When the two drift apart, the drift usually started days earlier with a movement someone recorded loosely. Watching this one column is cheaper than the count that would otherwise find it.

## Stock reservation

Availability drops the moment an order is placed, not when someone picks it. That is the whole mechanism behind not overselling: two customers cannot both be promised the last unit, because the first one took it out of the available pool before the second one reached checkout.

| Event | Quantity Available | Quantity on Hand |
| - | - | - |
| Order assigned to a location | Reduced there, immediately | Unchanged — the goods are still on the shelf |
| Order fulfilled | — | Reduced, on **Create Shipment**, **Mark as Delivered** or **Collected By Customer** |
| Return received | Increased | Increased |
| Inventory order completed | Recalculated | Increased or decreased |

The reservation lands at the location the order was assigned to, which is what makes [routing](https://docs.tryoto.com/modules/omnichannel-oms/order-routing.md) and stock a single system rather than two: choosing where to fulfill from *is* deciding whose availability drops. And because the reservation is held centrally, it applies across every connected storefront and marketplace at once — a unit reserved by an order from one channel is invisible to all the others.

## Minimum stock and safety stock

**Min Inventory** is set per SKU per location. It does two jobs: it is the threshold for a low-stock alert, and — if you choose — it is the buffer held back from what your storefronts are told. See [Inventory sync](https://docs.tryoto.com/modules/inventory-management/inventory-sync.md) for the second one.

> [!TIP]
>
> **Safety stock is bought insurance**
>
> Every unit held back is a unit you could have sold today, against a cancellation you might have had tomorrow. The right level is not zero and not generous — it is whatever covers the gap between your worst count error and your fastest restock, on the lines where a stockout actually costs you a customer rather than a day.

## Across locations

Stock is held per warehouse and per branch, and **Global Inventory** is the roll-up across all of them. Both views matter, for different reasons: the global figure tells you whether the business can fulfill an order at all, and the per-location figure tells you whether *this* location can — which is the question [order routing](https://docs.tryoto.com/modules/omnichannel-oms/order-routing.md) is actually asking when it chooses where to fulfill from.

With bin tracking, location resolution goes one level further, down to the individual bin. That is what makes a pick path short and a count possible; see [Inbound and putaway](https://docs.tryoto.com/modules/warehouse-management/inbound-putaway.md) for how bins are set up.

## Stock transaction logs

Every change to stock is written down. The reports live at **Performance → Reports** on the **OTO PACK** tab — alongside **Orders**, **Shipments**, **OTO FLEX** and **Branch**. Each is generated on demand with filters for warehouse, SKU and date range, and each exports.

![The OTO PACK tab of the Reports screen](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/inv-4-reports.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=ab8a1ae1962bc6d9834e8aacb7b72ccb)

Fig. 2 — Nine reports, each with a Generate button. Between them they cover stock, bins, orders, packing and people.

| Report | What it is for |
| - | - |
| **Inventory Transactions** | Every change to stock — receipts, returns, adjustments. The first place to look when a number is wrong. |
| **Bin Transactions** | The same at bin level. Bin tracking only. |
| **Order Based Transaction Report** | In the product’s own words, it is there *“to check all transactions and inventory updates for orders are implemented properly.”* See below. |
| **Inventory Order Items** | The line items inside inventory orders — what was actually on each receipt or dispatch. |
| **Bin Replenishment Report** | *“Smartly decide how much to replenish in your Put & Pick bins.”* The answer to how much to move forward from reserve, rather than a reminder that a bin is low. |
| **Exception Logs** | Picking exceptions — where a pick could not be completed as instructed. |
| **Packing Status Report** | The complete packing status history of every order. |
| **Packaging Materials Report** | Usage and stock levels for boxes, bags and other packaging — consumables tracked like stock, because running out of boxes stops dispatch as surely as running out of product. |
| **Daily Staff Report** | Daily statistics per member of staff. |

> [!TIP]
>
> **Two of these are decisions, not records**
>
> Most of the list tells you what happened. **Bin Replenishment** and **Packaging Materials** tell you what to do next — how much to pull forward into the pick face, and when to order more boxes.
>
> They are easy to overlook among the transaction logs, and they are the two that prevent a stoppage rather than explaining one afterwards.

> [!TIP]
>
> **The reconciliation that catches almost everything**
>
> On a finished order, the **Order-Based Transaction Report** shows **Quantity**, **Inventory Available Transactions**, **Inventory On-Hand Transactions** and, with bin tracking, **Bin Transactions**. Once picking, packing, shipping and any returns are complete, those figures should agree.
>
> When they do not, the order is telling you that stock moved in the building without moving in the system, or the reverse. It is worth making this check a routine rather than a reaction — it finds the error while it is still one order rather than a month of them.

![The Inventory Transactions report](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/inv-3-transactions.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=3bf1c8caeb3d244d06912e524094e3a0)

Fig. 3 — Every row is one movement, with the number before it and the number after it. Note the Type column — each line says which of the two stock figures it changed.

| Column | What it carries |
| - | - |
| **Order ID** | What caused the movement. Customer orders and transfers are distinguishable by their prefix. |
| **Action** | Stock in or stock out. |
| **Type** | **Available** or **On Hand** — which figure this row moved. |
| **Description** | The event in plain words: *Assigned To Pickup Location*, *Mark as Delivered*. |
| **Warehouse Name** · **Branch** · **Pickup Location** | Where. |
| **SKU** · **Quantity** | What moved, and by how much — signed, so a deduction reads as a negative. |
| **Prev Quantity** · **New Quantity** | Before and after, on the same row. No arithmetic required to see the effect. |

> [!TIP]
>
> **The two-number model, visible as data**
>
> Follow one order through this report and the whole model is in front of you. It produces *two separate rows*: one against **Available** when the order is assigned to a location — description *Assigned To Pickup Location* — and another against **On Hand** when it is actually fulfilled, described as *Mark as Delivered*.
>
> That is the reservation and the fulfillment, recorded as distinct events minutes or days apart. It is also why this report is the first place to look when a number is wrong: the answer is usually that one of those two rows exists and the other does not.

### Keeping the levels aligned

Two maintenance actions sit in the Inventory screen’s tools for when the levels have drifted:

| | |
| - | - |
| **Equal On Hand Inventory to Bin Inventory** | Trust the bins and make the warehouse total match them — appropriate after a thorough count. |
| **Update Quantity Available** | Recompute sellable stock from current on-hand and current reservations. |

## Related

* [Inventory counts](https://docs.tryoto.com/modules/inventory-management/inventory-count.md) — how the number gets corrected.
* [Inventory sync](https://docs.tryoto.com/modules/inventory-management/inventory-sync.md) — how it reaches your storefronts.
* [The OTO PACK app](https://docs.tryoto.com/modules/warehouse-management/ops.md) — where the movements happen.


## Related topics

- [Inventory Management](https://docs.tryoto.com/modules/inventory-management/overview.md)
- [Inbound inventory](https://docs.tryoto.com/modules/inventory-management/inbound-inventory.md)
- [Sync inventory to your sales channels](https://docs.tryoto.com/modules/inventory-management/inventory-sync.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.