---
title: Out stock
order: 5
updated: 2026-07-21
---

# Out stock

*Out stock* is every movement that takes quantity **out** of your on-hand stock. By far the most common is an approved customer delivery, but samples handed out, delivery notes, manual write-offs, and stock consumed by a conversion all reduce the figure too. This page explains what counts as stock going out, how a delivery actually leaves the warehouse, and where each outbound movement is recorded and reviewed.

Stock never leaves on a single "out" button — every outbound movement is recorded against the thing that caused it (a customer order, a sample, a physical count) and, where a movement matters, a second user approves it before the stock figure changes. That is deliberate: the number you see on the *Stock* screen is only ever the sum of movements that were actually signed off.

## What counts as stock going out

| Movement | Effect on stock | Where it lives |
|---|---|---|
| Approved customer **delivery** | Reduces on-hand quantity at the *from* location | [Delivery receipt](/docs/enquiry-bank/delivery-receipt) |
| **Sample delivery** | Leaves sellable stock while the sample is out; returns when it comes back | [Sample delivery](/docs/inventory/sample-delivery) |
| **Delivery note** | Records goods handed over against an order | [Delivery note](/docs/inventory/delivery-challan) |
| **Physical stock entry** (−N) | Plain downward adjustment — a write-off or count correction | [Physical stock entry](/docs/inventory/physical-stock-entry) |
| **Convert stock** | Consumes the source product to produce another | [Convert stock](/docs/inventory/convert-stock) |
| **Transfer** | Moves stock between locations — **net zero**, not an "out" | [Transfer stock](/docs/inventory/transfer-stock) |
| Customer **return** | The reverse of a delivery — **adds** stock back in | see [Correcting or reversing an outbound movement](#correcting-or-reversing-an-outbound-movement) |

Only **approved, non-return** deliveries count as stock going out. A pending or rejected delivery has not moved anything yet, and a return (`isReturn`) moves quantity the other way — back into the warehouse — so it is deliberately excluded from every "out" view.

Transfers are the common point of confusion: moving a pallet from one rack to another does not change how much you hold, so it never appears in an out view. See [Transfer stock](/docs/inventory/transfer-stock) for that history.

## How a delivery leaves the warehouse

A customer delivery is the primary outbound flow, and it always follows the same two-step path so no single person can both send goods and sign them off.

### 1. The slip is created (pending)

A user with *Create Delivery Slip* (`delivery.generateDeliverStockRequest`) records a delivery against an open order from the [Delivery receipt](/docs/enquiry-bank/delivery-receipt) page or the order itself. Each line names the product, the quantity, and the exact `Godown → Room → Rack` the stock is leaving from. A new delivery must also carry:

- *Transport name* — the transporter or courier (required, up to `200` characters).
- *Invoice number* — the number printed on the delivery receipt (required, up to `200` characters).
- *Delivery date* — the date the goods actually went out. It defaults to **today**. Picking a past date needs *Back-date Delivery* (`delivery.allowBackDateDelivery`); without that permission the server forces the date to today no matter what the form sent, because the delivery date drives every stock calculation window.

At this point the slip is `pending` and **no stock has moved**.

### 2. The slip is approved (stock moves)

A different user with *Approve Delivery Slip* (`delivery.approveDeliverStockRequest`) confirms the goods left. Approval is where the stock figure actually drops, and the server re-checks everything before it commits:

- **Manage scope** — a non-admin approver must hold manage scope on at least one of the delivery's *from* locations, or approval is refused. See [Storage locations](/docs/inventory/storage-locations).
- **Over-delivery guard** — the server re-sums everything already approved for each order line (approved deliveries **minus** approved returns, plus any linked delivery-note quantity) and blocks the approval if signing this one off would push the line past its ordered quantity. This catches the race where two slips were each drafted while the full quantity still looked available. You cannot ship more than the order allows.
- **Charge exclusivity** — an order's additional charge may be billed on only one approved delivery; if another receipt claimed it first, approval is blocked until you remove it.

Once approved, the delivery is stamped with the approver and an approval time, the order's delivered status is recomputed (an order flips to delivered only when every line is fully covered), and the quantity is subtracted from stock at the chosen location as of the delivery date.

## Where outbound movements are reviewed

There is no single editable "out stock" ledger you post to — outbound movements are read-only history, reviewed from the places below.

### Stock Out history (per product code)

The most direct outbound view. Open *Inventory → Stock*, click *Manage* on a product head, then *View Out* on the code you want to investigate. It lists every approved, non-return delivery of that code — the date, the customer, the quantity, the source rack, and who approved it — newest delivery-date first. You can narrow it to a specific godown, room, or rack, and clicking a row opens the full delivery with every line, its locations, and a *Summary* card totalling the amount, amount-with-tax, and quantity delivered (priced from the originating order). Full detail is in [Stock history](/docs/inventory/stock-history#what-you-see).

### Stock Ledger (combined in and out)

For a single chronological in-and-out timeline over a date range, open the *Stock Ledger* from the *Stock* page's top-right menu. It interleaves arrivals, deliveries, transfers, adjustments, and conversions so you can walk forward through everything that touched a product.

### The order and the delivery receipt

Every delivery is also visible on its own customer order and on the [Delivery receipt](/docs/enquiry-bank/delivery-receipt) page, which additionally tracks the pending slips awaiting approval and the receipts still to be emailed to the customer.

## Who can see delivery history

Viewing completed deliveries needs *View Delivery History* (`delivery.seeDeliveryHistory`) or *Approve Delivery Slip* (`delivery.approveDeliverStockRequest`); firm administrators always have access. Without either you see a "you don't have permission" message instead of the list.

What you see is then narrowed by your **manage scope**, exactly as it is on the *Stock* screen:

- Hold `all` scope on godowns, rooms, or racks and you see every delivery.
- Hold scope on specific locations and you see only deliveries whose *from* location falls inside that scope.
- Hold *View Delivery History* but **no** manage scope at all and you see only the deliveries **you yourself recorded**.

This is enforced server-side on every request, so a forged filter can never widen what a user is entitled to see.

## Correcting or reversing an outbound movement

Stock that has left cannot simply be edited back — you record a matching reverse movement so the history stays honest.

- **Customer return** — when a customer sends goods back, raise a return with *Create Return Request* (`delivery.generateReturnStockRequest`); a second user with *Approve Return Request* (`delivery.approveReturnStockRequest`) approves it, and the quantity moves back into inventory at approval. A return carries the `isReturn` flag, so it adds stock instead of removing it and is left out of every "out" view.
- **Delete an approved delivery** — a last resort, gated by *Delete Approved Delivery* (`delivery.deleteApprovedDelivery`). Deleting an approved delivery re-adds the dispatched stock and can drop the order back to not-delivered, so it is a destructive, approver-level action.
- **Sample returns** — a sample that comes back is closed through its own return flow on the [Sample delivery](/docs/inventory/sample-delivery) page.

## Common questions

### Why can't I just "add an out-stock entry" directly?

Because every outbound movement has to trace back to a cause the system can verify — a customer order, a sample, a physical count. Recording it against that source (and, for deliveries, having a second person approve it) is what keeps the stock figure trustworthy. The only unattached downward movement is a *Physical Stock Entry*, which exists precisely for stock that left outside the normal flow — see [Physical stock entry](/docs/inventory/physical-stock-entry).

### Can a delivery ship more than was ordered?

No. At approval the server re-totals everything already delivered against each order line and refuses the approval if signing it off would exceed the ordered quantity — even if two slips were drafted at the same time while the full quantity still looked free.

### Do transfers and samples show up as stock going out?

Transfers do not — moving stock between racks does not change how much you hold, so they live only in *Transfer History* ([Transfer stock](/docs/inventory/transfer-stock)). Sample deliveries **do** reduce sellable stock while the sample is out, but they are tracked on their own [Sample delivery](/docs/inventory/sample-delivery) page rather than mixed into customer deliveries.

### How do I correct a mistaken dispatch?

Raise a customer return for the quantity that should not have gone out; once approved, the stock comes back and the *Stock* snapshot corrects itself. Deleting the approved delivery outright is possible with *Delete Approved Delivery*, but it is destructive and usually reserved for the approver or owner. See [Correcting or reversing an outbound movement](#correcting-or-reversing-an-outbound-movement).

### Why don't I see every delivery in the history?

The list is filtered to the warehouse locations you manage. With scope on specific godowns/rooms/racks you only see deliveries that left those places; with no manage scope you see only the deliveries you recorded yourself. Ask an administrator to widen your manage scope if you need a firm-wide view — see [Storage locations](/docs/inventory/storage-locations).

### Where do I email the customer their delivery confirmation?

From the *Send Delivery Receipts* flow on the [Delivery receipt](/docs/enquiry-bank/delivery-receipt) page. The wording, attachments, and recipient of that email are configured once for the whole firm under [Document templates](/docs/settings/document-templates).
