GroupChatOnGroupChatOnToolkit
Excel template

Pharmacy Stock & Expiry Register (Excel)

A batch-wise stock register for a clinic dispensary or chemist shop. Enter each purchase with its batch number and expiry date, record what is sold or issued from which batch, and the register shows the balance of every batch, colours batches that expire within your chosen number of days, marks expired stock in red and tells you which medicines have fallen to the reorder level.

Free · no sign-up · opens in Microsoft Excel, Google Sheets, LibreOffice and WPS Office. Files contain no macros.

Preview

Real view of the file with its sample data (yellow cells are where you type).

Batches
ItemBatch no.Expiry dateSupplierInvoice no.Received onQty receivedPurchase rateMRPIssuedBalanceDays to expiryStatusStock value
Paracetamol 500 mg tabletsPCM239131-10-2026Punjab Medical AgenciesPMA/118228-09-202540₹ 9.50₹ 15.00040-2Expired₹ 380.00
Paracetamol 500 mg tabletsPCM254431-01-2028Punjab Medical AgenciesPMA/146003-10-2026100₹ 9.80₹ 15.501882455OK₹ 803.60
Cetirizine 10 mg tabletsCTZ087131-12-2026City Pharma DistributorsCPD/55206-01-202650₹ 14.00₹ 22.0044659Near expiry₹ 644.00
Amoxicillin 500 mg capsulesAMX112931-05-2027City Pharma DistributorsCPD/60104-08-202660₹ 62.00₹ 98.00555210OK₹ 3,410.00
ORS sachets 21 gORS551031-01-2027Punjab Medical AgenciesPMA/139005-06-2026120₹ 16.00₹ 21.001011090Near expiry₹ 1,760.00
Cough syrup 100 mlCSY004230-11-2026Wellness SurgicalsWS/7717-12-202512₹ 68.00₹ 105.003928Near expiry₹ 612.00
Disposable syringe 5 mlSYR881230-04-2029Wellness SurgicalsWS/9103-09-2026500₹ 4.20₹ 7.0040460910OK₹ 1,932.00
Absorbent cotton roll 500 gCOT0315Wellness SurgicalsWS/9103-09-202610₹ 145.00₹ 210.00010OK₹ 1,450.00
Normal saline 500 mlNS7780131-03-2028City Pharma DistributorsCPD/64023-10-202648₹ 22.00₹ 35.00642515OK₹ 924.00

What's inside

How to use it

  1. On the Settings sheet leave the as-on date as =TODAY() and set how many days before expiry a batch should turn amber.
  2. List your medicines and products on the Items sheet with the reorder level for each.
  3. For every purchase, add a row on the Batches sheet: item, batch number, expiry date, supplier, invoice, quantity, purchase rate and MRP. Each batch gets its own row.
  4. When you sell or issue stock, add a row on the Issues sheet with the item, the batch it came from and the quantity.
  5. Open the Batches sheet and sort or filter by Status: amber batches are near expiry, red ones have expired. Sell the oldest batch first or return it to the supplier in time.
  6. The Items sheet shows the total balance of each medicine and flags the ones to reorder.

Tips

Questions and answers

Why record batch numbers at all?

Expiry dates belong to batches, not to the medicine name. Two strips of the same medicine bought a month apart can expire a year apart. Batch-wise stock is also what you need if a supplier or regulator recalls a batch.

How is "near expiry" decided?

A batch with stock left is Near expiry when its expiry date is within the number of days set on the Settings sheet from the as-on date, and Expired when the date has passed. Batches with no stock left show Nil stock and are not coloured.

Can I use it for surgical items and consumables?

Yes. Any item with a batch and expiry date works. For items without expiry, leave the expiry date empty; they show as OK.

Does it tell me what dose to give?

No. This is a stock register only. It holds no dosage or prescribing information.

More in the Clinic & Pharmacy Admin toolkit

Also useful