# FEFO and assay-adjusted material issue: getting the right batch, in the right quantity

https://paratech.com.pk/insights/fefo-and-assay-adjusted-material-issue · Published 2026-10-01 · Inventory · ParaTech Product Team

> How earliest-expiry-first allocation and assay gross-up at material issue reduce expiry write-offs and keep active content right in every batch.

Two questions decide whether a pharma store is run well. Which batch should leave first? And how much of it should leave? Get the first wrong and batches expire on the shelf. Get the second wrong and a production batch is short of active ingredient. A general-purpose inventory system usually answers neither; it issues "an item" in "a quantity".

ParaTech Pharma ERP holds stock by batch and store, and builds both answers into the material issue itself.

## Stock held by batch, with expiry on every movement

For a batch-controlled item, every receipt, transfer, issue and dispatch carries the batch. The item master holds the settings that make that useful:

  - Batched Item flag and shelf life
  - Near-expiry days, which define when a batch is flagged as near expiry
  - Sample percentage, used by QC for sampling
  - Label claim
  - Drug registration number, date and renewal, and schedule
  - Minimum, maximum and reorder levels

Each of these fields can be shown or hidden, so the form fits the way the client works.

## FEFO: earliest expiry leaves first

FEFO, first expired, first out, is the rule most pharma stores aim for and many struggle to follow under pressure. In ParaTech it is not left to the store keeper's memory:

  - The batch picker sorts available batches by expiry.
  - **Material Issue** auto-allocates the earliest-expiring batch first.
  - **Delivery Challan** does the same when finished goods are dispatched to customers.

The result is that older stock is consumed and sold before newer stock as a matter of routine, which is the most direct way to cut expiry write-offs.

## Assay-adjusted issue: the right quantity of active

An active ingredient rarely arrives at exactly 100% potency. If a formulation needs 10 kg of active and the batch in stock assays at 98%, issuing 10 kg of material delivers only 9.8 kg of active.

In ParaTech, the **assay %** is captured by QC on the quality inspection and travels with the batch. When that batch is issued, Material Issue grosses up the quantity:

**Issued quantity = required quantity × 100 ÷ assay %**

So for 10 kg required at 98% assay, the issue is 10 × 100 ÷ 98 ≈ 10.20 kg. The store keeper does not do the arithmetic, and the calculation is the same every time.

### What this is, and what it isn't

The adjustment happens at the point of issue, using the batch's own assay. The BOM itself stays at its standard quantities. That keeps the formulation stable and puts the correction where the physical material actually moves.

## Seeing expiry coming

FEFO handles the order of consumption; it does not stop a batch expiring if nobody needs it. For that, ParaTech has the **Product Near Expiry** report: batch, store, expiry date and remaining days, sorted earliest first. It is the list a planner or sales manager should look at every week to decide what to push, what to use and what to return.

![Product near expiry report listing batch, store, expiry date and remaining days sorted earliest first](https://paratech.com.pk/screenshots/inventory-near-expiry-960.webp)
*Batches sorted by remaining shelf life, earliest first.*
The Pharma Operations dashboard also shows expired batches still in stock and batches expiring within 90 days, with their value at cost.

## A worked example

Suppose production needs 25 kg of an active for a batch, and two batches are in the raw-material store:

  - Batch A: 18 kg, expiry March, assay 99.0%
  - Batch B: 40 kg, expiry November, assay 97.5%

FEFO puts Batch A first because it expires sooner, even though Batch B is the larger and more convenient lot. The issued quantity is grossed up using the assay recorded against the batch being issued: for a 10 kg requirement drawn from Batch A, that is 10 × 100 ÷ 99.0 ≈ 10.10 kg. The store keeper sees the allocation and the quantity; nobody has to look up the assay or reach for a calculator. If Batch A had been left on the shelf because it was at the back of the rack, it could easily have been the batch on next year's destruction note.

## Setting it up well

FEFO and near-expiry reporting are only as good as the data behind them. A few points make the difference:

  - **Mark the right items as batched.** Actives, excipients and printed packing material usually need batch control; some consumables may not.
  - **Set near-expiry days per item.** A slow-moving active may need a longer warning window than a fast-moving excipient.
  - **Make sure QC records assay on every lot of an active.** The gross-up uses the batch's own figure, so a missing assay means a wrong issue.
  - **Load opening stock by batch.** At go-live, opening balances should be entered batch by batch with their expiry dates, not as a single figure per item.

## When stock does expire

Expired stock is written off through a **Destruction Note**, which removes the batch from stock and posts its own voucher. The write-off is a document with a number and an approver, not a stock adjustment that nobody can explain at audit.

## Transfers, returns and adjustments

Batch control applies to every movement, not just issues:

  - Stock transfers between business units (STR → STN with receipt) and between stores
  - Issue Return Notes when unused material comes back from production
  - Stock Adjustments, with Excel import for bulk corrections

## Reports store and finance teams use

  - Stock In Hand With Value, batch-wise, filtered by store
  - Stock Ledger, filtered by batch
  - Batch-wise Stock and Consumption with Value
  - Bin Card, Daily Stock In / Out and Dead Stocks

![Stores inventory dashboard with stock value and quantity, reorder and dead stock, and value by category and store](https://paratech.com.pk/screenshots/dashboard-stores-960.webp)
*Stock value, reorder and dead stock, by category and store.*

## Questions to ask your ERP vendor

  1. Does the system choose the batch at issue, or does the user?
  2. Is FEFO applied to customer dispatch as well as to production issue?
  3. Where is the assay recorded, and does it follow the batch automatically to the issue?
  4. How is the issued quantity adjusted for potency, and can you see the calculation?
  5. How are expired batches written off, and does the write-off post to the ledger?

See how it works in the [Inventory & Warehouse module](https://paratech.com.pk/modules/inventory), or [book a demo](https://paratech.com.pk/contact) using your own items and batch settings.

---
Canonical page: https://paratech.com.pk/insights/fefo-and-assay-adjusted-material-issue
Site guide for AI assistants: https://paratech.com.pk/llms.txt · Full reference: https://paratech.com.pk/llms-full.txt
