# How to log incoming stock (purchases)

> On the Stock page, click Record movement, choose Purchase, select the item, enter the quantity received and the cost per unit, add an expiry date for perishable items, and save. Stock and the item's average cost update immediately.

_Category: Daily use · Updated 2026-10-18 · Canonical: https://jogan.cloud/help/log-incoming-stock_

Every delivery is a stock-in. Recording it does two things: it raises the stock so you can sell or produce, and it feeds the price you paid into the item's average cost, which is what makes your profit figures honest.

## Steps

1. Open **Stock** and click **Record movement**.
2. Choose the type **Purchase**. (**Return** is for goods a customer brought back; **Adjustment in** is for corrections.)
3. Select the **Item**. If it is not in the list yet, add it under Items first.
4. Enter the **Quantity** received, in the item's unit.
5. Enter the **Unit cost**, what you paid for one unit. Leave it blank only if the price has not changed; a blank uses the item's current cost.
6. If the item tracks expiry, enter the **Expiry date** from the label. Leave it blank to use the shelf life set on the item, counted from today. Enter a **Batch number** if you have one; otherwise Jogan assigns one like `B-260905-0001`.
7. Add a **note** if useful (supplier, invoice number) and save.

## Several items in one delivery

Record one movement per item. Or, for a long delivery note, use **Stock → Import** with one `purchase` row per line. See [How to import from Excel](https://jogan.cloud/help/import-from-excel).

## Same item, different expiry dates

Record them as separate movements, one per date. Each becomes its own batch, and the older one will be used first.

## What changes

- The item's stock rises.
- Its average cost re-weights: (old quantity × old cost + new quantity × new cost) ÷ total quantity. Every recipe using the item updates its material cost. See [How Jogan works out cost](https://jogan.cloud/help/how-costing-works).
- The Dashboard's stock value rises.
- For expiry-tracked items, a new batch appears on the Batches page.

## Made a mistake?

Movements are never edited or deleted. Click **Reverse** on the wrong entry's row on the Stock page: Jogan posts the opposite entry on the same date and corrects the average cost. Then record the right one. If part of it was already used or sold, record an **Adjustment out** for the excess (or **Adjustment in** for the shortfall) with a note instead. See [How to correct a count or record waste](https://jogan.cloud/help/stock-adjustments-and-waste).
