---
title: "Stock Returns"
description: "How a ward hands unused hospital stock back to the Main Store, why the stock moves only once the Main Store confirms receipt, and how dormant stock is found and returned."
date: 2026-11-12
lastModified: 2026-11-12
category: "admin"
author: "Dr. Umesh Bilagi"
beta: true
---

## Overview

A **return** is the reverse of an [indent](/docs/store-indents). An indent brings stock from the Main Store to a ward and an issue moves it; a return sends the stock a ward never used back to the Main Store.

It takes **two steps**, because the goods physically leave the ward but the paperwork should not claim they arrived until someone at the Main Store has them:

1. The ward's in-charge records what it is handing over. The return is **Awaiting receipt**, and the stock is still counted at the ward — like an indent that has been approved but not yet issued.
2. The Main Store's in-charge confirms what actually arrived. The return becomes **Received**, and only then does the stock move from the ward to the Main Store.

The hospital's total stock never changes in a return: the goods move between two stores of the same hospital. Only the ward's figure falls and the Main Store's rises.

## Prerequisites

- The ward exists, is a **Ward** type store, and is active.
- You are named as that ward's in-charge in **Store Master** (or you are an admin or director) to raise a return.
- The Main Store exists and is active, and its in-charge is named in **Store Master**, to confirm a return.
- The item is hospital stock — it has a purchase price or has been received. A billed service such as Bed Charge or OPD Consultation is a charge, not stock, and cannot be returned.

## Where to find it

Open **Modules → Store** and click **Returns**, or use the **Returns** link on the Store dashboard. The **Dormant stock** screen is beside it.

## Raise a return (the ward)

1. Open **Returns** and click **Raise return** (or start from **Dormant stock** — see below).
2. Pick the **Ward** handing the stock over. If you run one ward it is already chosen.
3. Set the **Date** — today by default. A return cannot be dated in the future.
4. Search for an item under **Add an item** and pick it. The picker lists every hospital stock item with what the ward currently holds.
5. Type the quantity handed over. Add as many items as needed, up to 200 lines.
6. Add **Remarks** if they help, then click **Hand over**.

The return is created as **Awaiting receipt**. The ward's stock does not move yet.

### When the quantity is above the recorded stock

If a line is more than the ward's recorded on-hand, it turns **red** and says what the ward will be left with:

> Recorded stock is 2; this leaves −3. The stock is still handed over.

**This never blocks the handover.** Physical stock may be more than the book says. Record what is physically being handed over; the shortfall corrects itself when the missing issue or a count is booked.

### Any item, not only dormant ones

You may return any hospital stock item, not just the ones the dormant screen suggests. The dormant screen is a convenience that points out what has been sitting unused; it does not limit what can be sent back.

## Confirm or decline (the Main Store)

The Main Store's in-charge opens **Returns**, finds the row **Awaiting receipt**, and:

- **Confirm** — the screen lists the quantities the ward handed over. Lower a line if fewer arrived; a line can never be raised above what the ward handed over. Click **Confirm receipt**. The return becomes **Received** and the stock moves from the ward to the Main Store.
- **Decline** — type a reason and cancel. The return becomes **Cancelled**, no stock moves, and the ward keeps the goods.

The ward may also cancel its own pending handover, with a reason, before the Main Store confirms it.

### Lowering a line

The quantity the ward attested is kept on the record even after you lower it, so the history reads "handed over 10, received 6". The move uses the received figure.

If the ward has used some of the stock since raising the return, a line can show as more than the ward now holds. That is shown in red, and the return can still be confirmed — the warning tells you the ward will read negative until the book catches up.

## Dormant stock

An item a ward holds but has not used for a long time is **dormant**. The **Dormant stock** screen lists, per ward, every hospital item that:

- still has stock above the ward's **minimum level** (the floor), and
- has had no consumption recorded in the last `STORE_DORMANT_DAYS` days (90 by default).

| Column | Meaning |
|--------|---------|
| **Ward** | The ward holding the stock |
| **Item** | The hospital item |
| **On hand** | What the ward's book says it holds |
| **Floor** | The ward's minimum level for the item, if set |
| **Last used** | The last day a consumption was recorded, or **Never used** |
| **Suggested return** | On hand minus the floor — what the ward can spare |

Tick the rows you want to send back and click **Raise return**. The return form opens prefilled for that ward with the suggested quantities, which you can still edit.

A ward's in-charge sees only their ward. The Main Store's in-charge and admins see every ward but cannot raise a return — the ward attests what leaves its shelf.

## Expiry

A handover that is still **Awaiting receipt** after `STORE_RETURN_EXPIRY_DAYS` days (7 by default) becomes **Expired**. An expired return can never be confirmed; the ward must raise a new one. Expiring moves no stock.

## Who can do what

| Action | Who |
|--------|-----|
| Raise a return | The ward's in-charge; admin or director for any ward |
| Confirm receipt | The Main Store's in-charge; admin or director |
| Decline or cancel a pending return | The ward's in-charge or the Main Store's in-charge; admin or director |
| Lower a quantity at confirm | The Main Store's in-charge; admin or director |
| Lower a quantity above the ward's stock | Allowed; warns, never blocks |
| View | Anyone who can open the **Store** module, for the stores they may see |

A return is never edited. To change a completed return, raise a fresh one in the other direction.

## Common Issues

**"Only a ward returns stock."** The store you picked is the Main Store or another non-ward store. Returns are raised by a ward.

**"You are not the in-charge of this store."** Ask an administrator to name you as that ward's in-charge in **Store Master**, or use an admin or director account.

**"Register the main store first." / "The main store is inactive…"** The organisation needs an active Main Store before a ward can return anything. Ask an administrator to set it up in **Store Master**.

**"Return cannot be dated in the future."** Pick today or an earlier date.

**"… is not a hospital-store item."** The item belongs to another category, such as Pharmacy.

**"… cannot hold stock, so it cannot be returned."** The item is a billed service — no purchase price and never received. A charge has no stock to return.

**"Only the main store's in-charge confirms a return."** A return is confirmed by the Main Store's in-charge, not by the ward that raised it. Ask an administrator to confirm, or use the Main Store's account.

**"Confirmed quantity cannot exceed the quantity handed over."** You typed more received than the ward attested. Lower the line to what actually arrived.

**"This return is no longer pending."** Someone already confirmed, cancelled or it expired. Reload the list.

## FAQ

**Q: Why does the ward's stock not move when it hands the goods over?**
A: Because the handover is only real once the Main Store has the goods and confirms it. Until then the stock is still the ward's — exactly like an indent that is approved but not yet issued. This also stops a ward writing off stock it never actually sent.

**Q: What if the Main Store receives fewer than the ward handed over?**
A: The Main Store lowers the line at confirmation. The record keeps both figures — what was handed over and what was received.

**Q: Can a return make the ward's stock negative?**
A: It can. If the ward returns more than its book says it holds (because physical stock exceeded the book), the line warns in red but the return still goes through. The negative corrects when a missing issue or a count is booked.

**Q: Does a return change the hospital's total stock?**
A: No. The goods move from the ward to the Main Store inside the same hospital, so only the split between the two stores changes.

**Q: What happens if nobody confirms a pending return?**
A: After `STORE_RETURN_EXPIRY_DAYS` days (7 by default) it expires. No stock moves, and the ward raises a new return if the goods still need to go back.

**Q: Can I return an item that is not dormant?**
A: Yes. Any hospital stock item may be returned. The dormant screen is a suggestion, not a restriction.

**Q: Can I edit a return after it is confirmed?**
A: No. A return is append-only. Raise a fresh return in the other direction to correct it.

**Q: Do returns appear in the accounts?**
A: No. Like indents, issues and consumptions, a return is a stock document posted at zero amount; no ledger balance changes.
