# Inventory

**Inventory** tracks items at your facilities. Any location can store quantities of items from your [items catalog](/set-up-the-basics/items.md).

Inventory is the second step in the **inventory workflow** as items move toward becoming production assets:

{% @mermaid/diagram content="---
title: Bulk items workflow
config:
look: handDrawn
theme: neutral
--------------

graph LR
Shipment --Receive **items**--> Inventory\[Inventory] --Build assembly--> Assembly --Register asset--> Asset
style Inventory fill:#F5F9FF" %}

{% @mermaid/diagram content="---
title: Products workflow
config:
look: handDrawn
theme: neutral
--------------

graph LR
Shipment --Receive **products**--> Inventory
Shipment -.-> Assembly\[Assembly registers automatically] -.->  Inventory\[Asset inventory]

style Inventory fill:#F5F9FF
style Assembly fill:#FFFFFF" %}

{% hint style="info" %}
**Understand inventory relationships**

A **location** includes a quantity of each **item** that is available at that location.

Inventory units can be **transferred** between locations. For example, you may move 25 units of item LDR-4.1 from your Chicago warehouse to your Milwaukee operations center.

Inventory counts can be **adjusted** for each location. For example, you may discover 5 units of item LDR-4.1 are missing from your Chicago warehouse and need to *adjust down*, or discover 5 units are present in your Milwaukee operations center and need to *adjust up*.
{% endhint %}

{% hint style="warning" %}
Note: inventory is primarily used to manage bulk item inventory, **not for tracking finished goods**. To manage ongoing business operations for finished goods in the warehouse or in the field, see [tracking assets](https://github.com/hardfinhq/user-guide/blob/gitbook/source-and-build/assets.md). To manage logistics for assets already deployed in the field, see [moving assets](/run-your-business/assets/move-assets.md). For a comprehensive overview of your asset inventory, see the [asset inventory dashboard](https://github.com/hardfinhq/user-guide/blob/gitbook/source-and-build/assets.md#asset-inventory-dashboard).
{% endhint %}

## List all inventory

Inventory can be viewed by **item** or by **location** on the [inventory page](https://assets.hardfin.com/inventory).

<figure><img src="/files/gZIoUxqpnoInbVfYgsyg" alt=""><figcaption><p>View inventory by item</p></figcaption></figure>

You can **drill down** for each area to understand the number of units of each item at each location.

<figure><img src="/files/cEjEASIFLCcLT4xAQdQS" alt=""><figcaption><p>View inventory by location with drilldown</p></figcaption></figure>

## Export inventory data

You can export your current inventory view to a CSV file by clicking the "Export data" button in the page header. The export includes SKU, item name, location, and quantity for each item-location combination based on your current view and filters.

This export is useful for:

* External reporting and analysis
* Integration with other systems
* Sharing inventory snapshots with stakeholders

### Viewing lot details

For each item-location combination, you can expand further to view **lot-level details**. This shows the individual inventory lots that make up the total quantity, including batch information and supplier details for each lot.

To view lot details, click on an item-location row to expand it, then click on the lot expansion control to see the breakdown. Each lot displays the batch number, quantity, and associated supplier information. You can also toggle "Show empty lots" to view historical lots that have been fully consumed, which is useful for traceability and audit purposes.

{% hint style="info" %}
Lot details are only visible for item-location combinations that currently have inventory. If a location previously had inventory of a bulk item but no longer does, that row will not appear in the inventory list, and historical lot information for that combination will not be accessible from this view.
{% endhint %}

## Transferring units

Units can be **transferred** between inventory locations. For example, you may move 25 units of item LDR-4.1 from your Chicago warehouse to your Milwaukee operations center. Unlike [shipments](/fulfill-and-deploy/outbound-shipments.md), transfers take effect *immediately*.

{% hint style="success" %}
Transferring units from one location to another is a normal day-to-day operation.
{% endhint %}

Click the "Transfer" button to transfer inventory. Clicking "Transfer" on an item or a location will pre-populate the window with the corresponding item or location information.

Unlike shipments, transfers **do not introduce new units** at the location. Instead, they decrement units from one location and send them to another. For that reason, you cannot transfer more units from a location than are already present at that location.

<figure><img src="/files/BsgS0EripEuQ7ZNqVivM" alt="" width="375"><figcaption><p>Transfer inventory window</p></figcaption></figure>

## Adjusting inventory

Unit counts can be **adjusted** for each inventory location. For example, you may discover 5 units of item LDR-4.1 are missing from your Chicago warehouse and need to *adjust down*, or discover 5 units are present in your Milwaukee operations center and need to *adjust up*.

{% hint style="danger" %}
Adjusting inventory manually is **not** part of normal day-to-day operations. It should be the exception rather than the rule, and may be reserved for managers or accounting staff.
{% endhint %}

Click the "Adjust" button to adjust inventory. Clicking "Adjust" on an item or a location will pre-populate the window with the corresponding item or location information.

#### **Adjusting up**

Adjusting inventory *up* will **introduce new units** at the location. Unlike shipments, the inventory does not come as part of a shipment associated with a PO and a source. Units are simply materialized at the locations.

Upwards adjustments are usually based on a true-up or reconciliation of prior inventory tracking errors. Adjustment upwards automatically creates a new batch to track the adjustment.

<figure><img src="/files/503f0KjwxhYDCeqdkL4B" alt="" width="375"><figcaption><p>Example upwards inventory adjustment</p></figcaption></figure>

#### **Adjusting down**

Adjusting inventory *down* will **remove existing units** from the location. Unlike transfers, the inventory does not go to another location. Units simply disappear from the location. For that reason, you cannot transfer more units from a location than are already present at that location.

Downwards adjustments are usually based on discarding inventory, or as part a true-up or reconciliation of prior inventory tracking. Adjustment downwards automatically removes units from batches based on the first-in first-out (FIFO) batch tracking.

<figure><img src="/files/mLQwUBBuuYP5wJyEn5eO" alt="" width="375"><figcaption><p>Example downwards inventory adjustment</p></figcaption></figure>

## Movement history

Each item in inventory has a **movement history** that shows all transfers, adjustments, and other changes that have affected that item's quantity at each location. To view the movement history for an item:

1. Navigate to the inventory page
2. Click on a specific part or product to view its details
3. Select the "Movement history" tab

The movement history displays a chronological list of all inventory changes including:

* **Transfers** - Units moved between locations
* **Adjustments** - Manual quantity corrections (up or down)
* **Receipts** - Units received from inbound shipments
* **Builds** - Units consumed when building assemblies
* **Replacements** - Units used for asset maintenance or repairs

Each entry shows the date, type of movement, quantity changed, source and destination locations (if applicable), and any associated reference numbers such as shipment or PO numbers. This provides complete traceability for audit, accounting, and regulatory purposes.

## Batching and traceability

Behind the scenes, Hardfin tracks the **batch** that each unit came from. Each group of units from the same batch, at the same location, is tracked as an **inventory lot**. Hardfin follows the **first-in first-out (FIFO)** model of batch tracking. As items are used — whether they are transferred, adjusted, built into [assemblies](/source-and-build/assemblies.md), or used for replacements — the oldest units are considered to be used first.

For example, for new item LDR-4.1:

* 100 units are received at the *Chicago Warehouse* on January 1. They are assigned batch #0001.
* 25 units are transferred to the *Milwaukee Operations Center* on January 5. These come from batch #0001.
* 200 more units are received at the *Chicago Warehouse* on January 23. They are assigned batch #0002.
* 120 units are transferred from the *Chicago Warehouse* to the *Milwaukee Operations Center* on January 27. Of these, 75 will come from batch #0001 and 45 will come from batch #0002.

#### **Summary table for item LDR-4.1 batch**

<table><thead><tr><th width="83.42189025878906">Time</th><th width="110.44686889648438">Event</th><th>Chicago Warehouse</th><th>Milwaukee Operations Center</th></tr></thead><tbody><tr><td>Dec 31</td><td>End of year</td><td>0 units</td><td>0 units</td></tr><tr><td>Jan 1</td><td>1st order</td><td>100 units (batch #0001)</td><td>0 units</td></tr><tr><td>Jan 5</td><td>Transfer</td><td>-25 units<br>= 75 units (batch #0001)</td><td>+25 units<br>= 25 units (batch #0001)</td></tr><tr><td>Jan 23</td><td>2nd order</td><td><p>+200 units<br>= 275 units</p><p>(75 from batch #0001,<br>200 from batch #0002)</p></td><td>25 units (batch #0001)</td></tr><tr><td>Jan 27</td><td>Transfer</td><td>-120 units<br>= 155 units<br>(155 from batch #0002)</td><td><p>+120 units<br>= 145 units</p><p>(100 from batch #0001,<br>45 from batch #0002)</p></td></tr></tbody></table>

Each group of units from the same batch, at the same location, is tracked as an **inventory lot**. A lot always corresponds to the *combination* of a location and a batch. If batches of units of the same item are split up across locations, they become *multiple* inventory lots. If a location has units of the same item from multiple batches, they become *multiple* inventory lots. This ensures that materials traceability is always maintained for accounting, audit, and regulatory purposes.

So in the above example, the month ends with 155 units in a lot at the Chicago Warehouse (from batch #0002), with 100 units in a lot at the Milwaukee Operations Center (from batch #0001), and with 45 units in another lot at the Milwaukee Operations Center (from batch #0002).

{% hint style="success" %}
Hardfin tracks all of these details **automatically** in the background so that operators do not have to worry about batching and traceability. The details are exportable as needed for accounting, audit, and regulatory purposes.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.hardfin.com/source-and-build/inventory.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
