In a medical store, every strip of tablets has a batch number and an expiry date, and both matter for safety, for supplier returns and for your margin. Pharmacy billing software with batch and expiry tracking makes sure the batch you sell is the batch you record, that older stock goes out first, and that you see expiring medicines months before they become a write-off. This guide explains how a well-run pharmacy handles batches and expiry in its billing system, with practical routines and examples a pharmacist or store owner can apply this week.
Why Batch and Expiry Tracking Matters
There are four practical reasons to track batches properly:
- Patient safety. You must never sell an expired medicine, and you need to know which customers received a batch if it is recalled.
- Money. Expired stock is a direct loss unless returned to the supplier in time.
- Supplier returns. Distributors usually accept near-expiry or expired returns only with batch details, and often within a window that depends on their policy.
- Regulatory records. Drug inspectors can ask for purchase and sale records, and some categories need separate registers.
Suppose a pharmacy carries ₹12 lakh of stock at cost, and 2 percent expires unsold each year. That is ₹24,000 lost. If better tracking lets the store return or sell half of that in time, it saves ₹12,000 a year, before counting the time saved during audits.
How Batch Tracking Works in Billing Software
Each medicine is one item in the master, such as "Paracetamol 500 mg Tablet, strip of 15". Every time stock arrives, the purchase entry records:
- Batch number as printed on the pack
- Manufacturing and expiry date
- Quantity received and free quantity
- Purchase rate, MRP and GST rate
The same item can then have several batches in stock, each with its own expiry and sometimes its own MRP. At billing, the software should either suggest the right batch automatically or let the pharmacist pick it from a short list.
| Batch | Expiry | Qty (strips) | MRP (₹) |
|---|---|---|---|
| PCM2401 | Feb 2027 | 18 | 32.00 |
| PCM2409 | Aug 2027 | 40 | 33.50 |
| PCM2503 | Mar 2028 | 60 | 34.00 |
In this example, a sale should normally come from batch PCM2401 first, because it expires earliest.
FEFO: First Expiry, First Out
Many stores think in terms of FIFO (first in, first out), but in pharmacy the better rule is FEFO: sell the batch that expires first, regardless of when it arrived. Sometimes a later delivery has an earlier expiry. FEFO prevents that batch from sitting at the back of the shelf.
To make FEFO work:
- Configure the billing software to auto-select the earliest-expiry batch with stock.
- Arrange the physical shelf the same way: earliest expiry at the front.
- When a pharmacist picks a different batch (for example, because the earlier one is in the back store), the system should record which batch was actually sold.
The physical shelf and the system must agree. If the system says batch PCM2401 was sold but the pharmacist handed over PCM2503, your stock is wrong in two batches at once.
Near-Expiry Reports and What to Do With Them
A near-expiry report lists batches expiring within a window you choose, typically 90 or 180 days, with quantity and value. Run it every month and sort by value.
For each line, choose an action:
- Return to supplier if the distributor accepts returns at that stage. Check their policy and timeline.
- Move to the front or to a sister store where it sells faster.
- Stop reordering that item until the existing stock clears.
- Write off and destroy safely once expired, with a record of what was destroyed and when.
Some POS systems let a manager record the reviewed action against each near-expiry line, which turns the report into a working checklist rather than a printout that sits in a drawer.
Purchase Entry Discipline
Most batch problems start at purchase entry, not at the counter. Common errors include typing the batch number wrongly, entering expiry as manufacturing date, or entering a whole delivery under one batch when it contained two.
Good habits:
- Enter purchases on the day goods arrive, before stock goes to the shelf.
- Where distributors provide an electronic invoice file, import it instead of typing.
- Check scheme quantities ("10 plus 1 free") so free goods are in stock at zero cost.
- Compare MRP on the pack with MRP on the invoice. If they differ, use the pack MRP for selling.
Loose Strips and Unit Conversion
Indian pharmacies often sell part of a strip or a few tablets. Your software should handle the pack-to-unit relationship: a box of 10 strips, each strip of 10 tablets. If you buy in boxes and sell in strips or tablets, the item should be configured with these units so stock reduces correctly. For example, selling 5 tablets from a 15-tablet strip should reduce stock by one third of a strip, and the price should be calculated proportionally from MRP.
Records for Scheduled Drugs
Certain categories, such as Schedule H1 drugs, require records of the prescriber, the patient and the quantity sold, kept in a register for a prescribed period. Billing software that captures doctor and patient details at the time of sale can generate this register automatically from sales data. We cover this in detail in our guide on the Schedule H register for medical store billing. Rules can change, so confirm current requirements with your State Drugs Control department.
Stock Audit Routine for a Pharmacy
A full stock count across thousands of items is hard to do often. Instead, use cycle counts:
- Divide items into groups by rack or category.
- Count one group every week, including batch and expiry on each pack.
- Compare with the system and investigate differences above a threshold, for example any difference above ₹500 in value.
- Correct the system with a reason (damage, breakage, counting error, theft) rather than silently overwriting.
Over a quarter, every rack gets counted, and errors are caught while they are still small.
Common Mistakes in Pharmacy Stock Control
- Billing without selecting a batch, so stock reduces from a random or default batch.
- Creating a new item for every new batch instead of a new batch under the same item.
- Ignoring the near-expiry report until it is too late to return goods.
- Not recording breakage and damaged strips, which shows up later as unexplained shortage.
- Keeping returns from customers in a separate box without entering them, so the stock count never matches.
Customer, Doctor and Substitute Records at Billing
A pharmacy bill carries more context than a grocery bill. Capturing a few details at the counter pays off later:
- Customer mobile number: lets you find past purchases quickly when a regular customer asks for "the same medicine as last month", and supports refill reminders for chronic patients who consent to them.
- Doctor name: required for certain scheduled drugs and useful for understanding which prescriptions your store serves.
- Substitutes: map items with the same composition and strength so that when one brand is out of stock, the pharmacist can see available alternatives. The decision to substitute stays with the pharmacist and the prescription.
Keep customer data use limited to what customers expect, and protect it with proper staff permissions.
Checklist for Choosing Pharmacy Billing Software
- Batch and expiry captured on every purchase, with multiple batches per item.
- FEFO batch selection at billing, with an option to override and record the actual batch.
- Pack, strip and tablet conversion for loose sales.
- Near-expiry report by date window and value.
- Supplier return entries with batch details.
- Registers for scheduled drugs generated from sales.
- Staff roles limiting price edits and returns.
- Purchase invoice import from distributors where available.
Test each item during a trial using your own top 50 medicines and at least two batches each.
A Simple Supplier Return Workflow
Returning near-expiry or damaged stock to distributors is where good batch data pays for itself. A workable routine: on the first working day of each month, run the near-expiry report, pull the returnable lines physically into a labelled crate, create a purchase return entry in the system against the original supplier with batch and quantity, and hand the crate over with a printed return note. Record the credit note when it arrives and match it against the return. Stores that skip the system entry often find, months later, that stock was physically returned but is still sitting in the books.
How Fininvo Fits
Fininvo's Retail & POS workspace has pharmacy pages and a near-expiry stock view that lists batches inside configured windows with quantity, expiry and value, built on the batch-tracked inventory in Fininvo ERP. Some modules are enabled per account, so confirm availability for your plan. Check pricing to see which plan includes it.
Frequently Asked Questions
What is batch tracking in pharmacy software?
Batch tracking records the batch number, expiry date and quantity for each lot of a medicine received, and reduces stock from a specific batch when you sell. It lets you sell earliest-expiry stock first and trace sales during a recall.
What is the difference between FIFO and FEFO?
FIFO sells the oldest received stock first. FEFO sells the stock with the earliest expiry date first. In pharmacy FEFO is preferred, because a later delivery can expire sooner.
How often should a medical store check near-expiry stock?
Monthly is a good minimum. Run a report for the next 90 to 180 days, sorted by value, and act on high-value lines first, especially those your distributor will accept as returns.
Can pharmacy billing software sell loose tablets?
Yes, if the item is configured with pack and unit conversion. The software should reduce stock in fractions of a strip and calculate the price proportionally from MRP.
Should I create a new item for each batch?
No. Keep one item per medicine and pack size, and record each lot as a batch under that item. Separate items for batches make reports and reordering confusing.
Share this article
Ready to automate your business?
Start your 14-day free trial and experience the power of unified ERP, HR, and Payroll.
Start Free Trial