# Stock availability

fulfillmenttools serves as the central repository for stock data. Updates are integrated into the platform from multiple sources. The system consolidates these inputs to deliver diverse availability metrics for various use cases. These metrics can be queried through the REST API and accessed in Backoffice.

{% hint style="info" %}

* "Available on picking" is the stock value considered for incoming orders. This is sometimes also referred to as "available for shipping".
* When no [inventory traits](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/inventory-traits) (pickable and accessible), and no safety stock is used, the values "available on stock" and "available for picking" will be the same.
  {% endhint %}

## Getting stock availability information

|                                                      | Backoffice                                                                                                                          | REST API                                                                                                                                                                                                        |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Stock availability per article on network level**  | [Inventory Network Overview in the Backoffice](https://docs.fulfillmenttools.com/documentation/backoffice/network-view/inventory)   | [api/stocks/summaries](#request-sum-of-stocks-over-facilities-per-product)                                                                                                                                      |
| **Stock availability per article on facility level** | [Inventory Facility Overview in the Backoffice](https://docs.fulfillmenttools.com/documentation/backoffice/facility-view/inventory) | <p><a href="#request-stocks-by-facility-for-a-specific-product">api/stockdistribution</a><br><br><a href="../../../getting-started/eventing/available-events">InventoryFacilityStockChangedWebHookEvent</a></p> |

## Stock availability values

<table><thead><tr><th width="241.16015625">Availability value</th><th>Meaning</th></tr></thead><tbody><tr><td><strong>Stock on hand</strong> (On hand)</td><td>Describes stock that is physically located in a facility. Stock that is, for example, still booked to the facility but is already in transit to another facility is not included.</td></tr><tr><td><strong>Available on stock</strong> (AOS)</td><td><p>Available on Stock describes stock that's available for sale (not earmarked for other purposes). In fulfillmenttools, it refers to stock that's <a href="../../inventory-traits#available-traits">accessible</a>, reduced by:</p><ul><li>stock that is <a href="../reservations">reserved</a> for orders</li><li><a href="#safety-stock">safety stock</a>, i.e., stock that is held back for offline sales</li><li><a href="..#stock-properties">expired stock</a> (if defined)</li><li>stock that has reached its <a href="../../listing#stock-available-until">availableUntil</a> value (if defined)</li></ul></td></tr><tr><td><strong>Available for picking</strong> (AFP)<br><br></td><td><p>Available for picking describes stock that's available (not earmarked for other purposes), and also ready to be picked. In our platform, it refers to all stock that is <a href="../inventory-traits">accessible</a> and <a href="../inventory-traits">pickable</a>, reduced by:</p><ul><li>stock that is <a href="../reservations">reserved</a> for orders</li><li><a href="#safety-stock">safety stock</a>, i.e., stock that is held back for offline sales</li><li><a href="../inventory-traits">expired stock</a> (if defined)</li><li>stock that has reached its <a href="../../listing#stock-available-until">availableUntil</a> value (if defined)</li></ul><div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>This value is used for incoming orders.</p></div></td></tr><tr><td><strong>Expected stock</strong></td><td><p>Expected stock that is expected to arrive or to be produced. Expected stock can be communicated via the <a href="../inbound-process">inbound process</a>. After an <code>inboundProcess</code> with a <code>purchaseOrder</code> was created, our systems automatically create expected stock for the requested items. Expected stock is visible in the <a href="../../../../backoffice/network-view/inventory#stock-availability">stock overview</a> in Backoffice. Once a purchase order is created, its expected stock can be considered in the shop's <a href="expected-stock-in-availability">availability</a>.</p><div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>This value can be considered for incoming orders. More information can be found under <a href="expected-stock-in-availability">Expected stock in availability.</a></p></div></td></tr><tr><td><strong>Safety stock</strong></td><td><p>Safety stock allows guarding offline sales against online-induced stock-outs. It can be defined on the facility level, and decreases the available stock levels ("<a href="#available-for-picking-afp">available for picking</a>" and "<a href="#available-on-stock-aos">available on stock</a>"). This means that if the stock level in a given facility is equal or less than the configured safety stock, the available stock is 0.</p><p>Users can configure the desired safety stock quantity for each listing. Configurations can be made in the <a href="../../../../backoffice/network-view/inventory#stock-availability">stock overview</a> in the Backoffice or via <a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#put-/api/safetystocks">safety stocks REST API</a>.</p><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>Safety stock is considered in order routing meaning that orders can become <a href="../../advanced-order-routing/unroutable-orders">unroutable</a> if the available stock is equal to or less than the configured safety stock.</p></div></td></tr></tbody></table>

## Future availability

### Creation and management of expected stock

Expected stock is automatically created after a new [inbound process](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/inbound-process) with a corresponding purchase order is added. Expected stock can only be managed via the purchase order and cannot directly be edited via API. Quantities, attributes, etc. of expected stock can be edited via the requested items of the [purchase order](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/inbound-process/purchase-order).

### Stock properties and available until

**Available until**

**`availableUntil`** defines until when stock is considered available.

* Calculated automatically for stock and expected stock based on expiry or creation date, with optional modifiers (for example, `-P30D` to shift earlier) if configured in the [listing](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/listing).
* For expected stock, the creation date of the purchase order is used if `calculationBase` is set to `CREATION`. When a receipt is created, `availableUntil` of the stock is updated based on the creation date of the stock.

{% hint style="warning" %}
When updating a listing with `stockAvailableUntil`, the value will be only added to newly created stock.
{% endhint %}

**Stock properties**&#x20;

* Stock properties (especially `expiry`) provide the values required for calculating `availableUntil` with `calculationBase` = `EXPIRY`.  &#x20;
* [Listings](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/listing) define which properties are required.
* For expected stock, `properties` can be specified in the `requestedItems` of the [purchase order](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/inbound-process/purchase-order). When a `receipt` is created, the `properties` are transferred to the stock.&#x20;
* If a `defaultValue` is defined for a stock property in the listing, the stock is created with that value. Empty strings provided as default values are ignored.

**Interaction**

* `availableUntil` is the decisive value for availability.&#x20;
* If both `expiry` and `availableUntil` (with `calculationBase` = `CREATION`) are set, only `availableUntil` applies.
* `availableUntil` defaults to the expiry date if `expiry` `properties` are configured in the stock. &#x20;
