> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bizaxl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Batch & Expiry Tracking

> How Bizaxl tracks medicine batches and expiry dates - from receiving stock to selling and monitoring near-expiry items.

Batch and expiry tracking is the most critical pharmaceutical compliance feature in Bizaxl Medical Retail. Every medicine that enters your store as a named batch - with a manufacturing date and expiry date - can be fully traced: which supplier it came from, how much was received, how much has been sold, and what remains.

This feature protects your customers, keeps you compliant with pharmaceutical regulations, and reduces financial loss from expired stock.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/bizaxloptimizationsllp/images/placeholder-batch-record.png" alt="Batch record showing item name, batch ID, manufacturing date, expiry date, and current stock quantity" />
</Frame>

***

## Who Uses This Feature

| Role                             | What They Do Here                                                                 |
| -------------------------------- | --------------------------------------------------------------------------------- |
| **Inventory Staff / Pharmacist** | Views batch records when receiving stock; selects correct batches when dispensing |
| **Counter Staff**                | Selects the earliest-expiring batch at the POS counter                            |
| **Store Manager**                | Runs expiry reports; manages near-expiry stock                                    |
| **Accounts Staff**               | Uses batch data for stock valuation and audit purposes                            |

***

## How It Works: The Big Picture

<Steps>
  <Step title="Configure the item">
    Set "Has Batch No" and "Has Expiry Date" to ON on the item record.
  </Step>

  <Step title="Goods arrive and purchase receipt is created">
    Staff records the delivery as a Purchase Receipt.
  </Step>

  <Step title="Batch details entered">
    Staff enters the batch number, manufacturing date, and expiry date for each batch received.
  </Step>

  <Step title="Batch record created automatically">
    The system creates a Batch record in the background, linked to the item and receipt.
  </Step>

  <Step title="Stock available in inventory">
    The item is now in stock, tracked by batch.
  </Step>

  <Step title="Batch selected at point of sale">
    At the POS counter, Sales Invoice, or Delivery Note, staff selects the batch with the earliest expiry date.
  </Step>

  <Step title="Stock decrement recorded against the batch">
    Each sale reduces the quantity on the specific batch selected.
  </Step>

  <Step title="Batch depleted">
    When the batch quantity reaches zero, the batch is fully used.
  </Step>

  <Step title="Batch Expiry Status report reviewed">
    The report shows remaining batches, quantities, and expiry warnings across all active stock.
  </Step>
</Steps>

***

## Step 1: Enable Batch Tracking on an Item

Before batches can be tracked, the item must be configured. On the Item record:

1. Tick **Has Batch No** = ON
2. Tick **Has Expiry Date** = ON
3. (Optional) Enter **Shelf Life in Days** for auto-calculated expiry
4. (Optional) Enter **Batch Number Series** if you want the system to auto-generate batch IDs in a standard format

See [Items Catalogue](/retail/medical-retail/items-catalogue) for full setup instructions.

***

## Step 2: Enter Batch Details on Purchase Receipt

When goods arrive from your supplier, you create a Purchase Receipt. For batch-tracked items:

1. Add the item to the Purchase Receipt items table
2. Click on the **Batch No** field in the item row
3. Enter the batch number printed on the packaging (e.g. `BTH001`, `MFG-2024-05`)
4. Enter the **Manufacturing Date** and **Expiry Date** from the label
5. The system automatically creates a **Batch record** in the database

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/bizaxloptimizationsllp/images/placeholder-purchase-receipt-batch-entry.png" alt="Purchase Receipt item row showing batch number, manufacturing date, and expiry date fields" />
</Frame>

<Tip>
  If a single Purchase Receipt contains multiple batches of the same item (different manufacturing dates from the same supplier), add a separate row in the items table for each batch.
</Tip>

***

## The Batch Record

Every batch is stored as a separate record in the system. To view batches:

* Go to **Stock → Batch** (search "Batch" in the top bar)
* Or open any item and look at its Batch records from the links section

| Field                  | What It Shows                                           |
| ---------------------- | ------------------------------------------------------- |
| **Batch ID**           | The batch identifier (from packaging or auto-generated) |
| **Item**               | Which medicine this batch belongs to                    |
| **Manufacturing Date** | When this batch was manufactured                        |
| **Expiry Date**        | When this batch expires                                 |
| **Batch Qty**          | Current remaining quantity in this batch                |
| **Supplier**           | Which supplier this batch came from                     |
| **Disabled**           | Whether this batch is still active                      |

***

## Step 3: Selecting Batches When Selling

When you sell a batch-tracked item - at the POS counter, in a Sales Invoice, or on a Delivery Note - you must select the batch.

**At the POS counter:**

1. Add the item to the cart
2. A **batch selection popup** appears (if the item has multiple batches in stock)
3. Select the batch with the **earliest expiry date** (FEFO - First Expiry, First Out)
4. Confirm the quantity

**On a Sales Invoice or Delivery Note:**

1. Add the item in the items table
2. Click the **Batch No** field
3. A list of available batches with quantities and expiry dates appears
4. Select the appropriate batch

<Warning>
  Always select the batch with the earliest expiry date. Selling from newer batches while older stock sits unsold increases the risk of expiry waste and is contrary to good pharmaceutical practice.
</Warning>

***

## Monitoring Expiry: Key Reports

### Batch Item Expiry Status

The most important report for a medical retail pharmacist or manager. Run this weekly (or daily for high-turnover stores).

**Go to:** Stock → Reports → Batch Item Expiry Status (or search the report name)

**What it shows:** Every batch of every item with its expiry date, quantity remaining, and how many days until expiry.

**Filters you can set:**

* **End Date** - show only batches expiring before a specific date (e.g. next 30, 60, or 90 days)
* **Item / Item Group** - filter by a specific product or category
* **Warehouse** - filter by storage location

**What to do with the results:**

* Batches expiring in **less than 30 days**: Move to front of shelf; actively promote; check return policy with supplier
* Batches expiring in **less than 7 days**: Remove from sale; arrange supplier return or write-off
* **Expired batches** (expiry date in the past): Immediately remove from sale; record a Stock Entry (Material Issue) to write off the stock

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/bizaxloptimizationsllp/images/placeholder-batch-expiry-status-report.png" alt="Batch Item Expiry Status report with columns: Item, Batch ID, Manufacturing Date, Expiry Date, Qty, Days to Expiry" />
</Frame>

### Available Batch Report

Use this when you need to know which batches of a specific medicine are available and in what quantity.

**Go to:** Stock → Reports → Available Batch Report

Set the item filter and choose your warehouse. The report shows all in-stock batches sorted by expiry date.

***

## Writing Off Expired Stock

If a batch has expired and cannot be returned to the supplier:

1. Go to **Stock → Stock Entry → New**
2. Set **Stock Entry Type** to "Material Issue"
3. Add the expired item, select the expired batch, and enter the quantity
4. Add a note in the Reason field (e.g. "Expired - Batch BTH001, Exp 31/03/2025")
5. Submit

This removes the stock from your inventory and records it as a loss, which will appear in your Profit & Loss report as a write-off.

***

## Returning Near-Expiry Stock to Supplier

If your supplier accepts returns of near-expiry stock:

1. Create a **Purchase Return** (from the original Purchase Receipt → Return button)
2. Select the batch to return
3. Enter the quantity being returned
4. Submit - stock is reduced and a credit note is created against the supplier

***

## Batch Recall Procedure

If a manufacturer issues a recall for a specific batch:

1. Run the **Batch-Wise Balance History** report - filter by the recalled batch number
2. Check the remaining quantity in your warehouse
3. Check which customer sales referenced that batch (from Sales Register, filter by batch)
4. Contact affected customers as needed
5. Return the recalled batch to the supplier (Purchase Return)
6. Write off any quantity that cannot be returned

***

## Best Practices

* **Run the Batch Expiry Status report every week.** Do not wait for customers to notice expired stock on your shelves.
* **Follow FEFO strictly.** Always sell from the batch with the earliest expiry date. Configure your POS to show batches in expiry order.
* **Record batch details accurately at receipt.** If the batch number or expiry date is entered incorrectly, the report will be unreliable. Cross-check labels with your Purchase Receipt.
* **Set the expiry date on every batch.** Never leave the expiry date blank on a batch record for a medicine.
* **Quarantine expired batches immediately.** Once identified as expired, physically separate them and write them off in the system - do not leave them in saleable stock.

***

## Common Mistakes

* **Leaving batch tracking OFF for medicines.** This is the single biggest setup error. Without batch tracking, there is no expiry visibility and no recall traceability.
* **Entering all stock under one batch.** If a single delivery contains two batches (different manufacturing dates), they must be entered as separate batch rows - not combined into one.
* **Not selecting a batch at point of sale.** If the batch field is skipped, the system may deduct from an arbitrary batch, making your expiry tracking unreliable.
* **Ignoring the Batch Expiry Status report.** Letting near-expiry stock pass its date because nobody ran the report regularly.

***

## Related Features

* [Items Catalogue](/retail/medical-retail/items-catalogue) - enabling batch and expiry settings on an item
* [Purchase Receipt](/retail/medical-retail/purchase-receipt) - where batch details are first entered
* [Point of Sale](/retail/medical-retail/point-of-sale) - batch selection at the billing counter
* [Stock Entry](/retail/medical-retail/stock-entry) - write-off of expired batches
* [Reports & Monitoring](/retail/medical-retail/reports-overview) - Batch Item Expiry Status and other stock reports
