Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Pharmacy Stock & Expiry Register (India)

Every batch with its expiry, sold by first expiry, with alerts before stock goes to waste.

Business For India No upload Free preview, no sign-upIncluded in your pass Premium tool Premium pass: ₹799 for 30 days

Try before you buy.

  • Free preview: your entries, batches, backups and expiry alerts in full; the return lists, valuation and reorder list as counts and first rows (up to 10), totals hidden.
  • Locked until you unlock it: download.
  • Unlock: Premium pass, ₹799 for 30 days, a one-time payment that never renews.

Ways to unlock shows how to get the full result.

See passes (opens in a new tab)

Printing this result is locked in the free preview.

Your pharmacy stock

The register is kept in this browser on this device; nothing is uploaded.

New entry

Stock entries

    Next steps

    About the Pharmacy Stock & Expiry Register (India)

    A batch-wise stock register for a pharmacy, chemist shop or clinic dispensary in India, kept in this browser on your device. Record purchases batch by batch — with the expiry, MRP, purchase rate, GST and the bonus quantity of a trade scheme — by hand or by importing the supplier’s invoice saved as CSV; sales, issues and returns are taken from the batch that expires first and has not expired, unless you choose a batch. Expired batches can never be sold here, because rule 65(17) of the Drugs Rules, 1945 forbids selling a drug after its date of expiry.

    Expiry alerts list every batch that expires within 30, 60 or 90 days, with the quantity and the value at risk at cost and at MRP, so short-dated stock is sold or returned in time. From the same entries come the expiry-return lists for each supplier, a stock valuation at cost (each batch at its own rate) and at MRP, and reorder suggestions from your recent sales. Without a pass the return lists, the valuation and the reorder list are a free preview — their counts and first rows show, their totals and files unlock with a Premium pass, as does the expiry alerts’ CSV file. Your entries, the expiry alerts on screen and the encrypted backups are never locked. Sales billing itself belongs in Shop POS Billing.

    How to use it

    1. Open Settings: your pharmacy’s name, address and drug licence numbers, how many days the return lists and reorder suggestions look at, and whether stock is valued excluding or including GST.
    2. Record the opening stock batch by batch (Stock in & out → Opening stock), or import it under Data & backup → Import → Opening stock.
    3. For each supplier’s bill, choose Purchase: the supplier and bill number, then each product with its batch, expiry, quantity billed, bonus quantity, MRP, rate and GST — or import the invoice as CSV (Import → Purchases).
    4. Record sales with the product and quantity: the batches are taken by first expiry, first out, and the line shows which batch each unit comes from. Customer returns, returns to the supplier and expired or damaged stock have their own entries.
    5. Check Expiry & returns every week for what expires within 30, 60 or 90 days, and send expired stock back with each supplier’s return list. The return lists, the valuation and the reorder list are a free preview without a pass; their PDF, XLSX and CSV files unlock with a Premium pass.

    Examples

    A 10 + 1 scheme
    Input
    Purchase: 10 strips billed at ₹30.00 each and 1 bonus strip
    Result
    The batch receives 11 strips valued at ₹300.00 — ₹27.27 a strip — so the bonus strip lowers the cost of all of them.
    First expiry, first out
    Input
    Sell 6 strips · batch A: 4 left, expiry 11/2026 · batch B: 10 left, expiry 06/2027
    Result
    Takes 4 from batch A and 2 from batch B. A batch that has expired is skipped, and the line says how much stock is held in expired batches.
    The expiry alert
    Input
    Batch CS1188 · 6 bottles · 83 days to the last day of its expiry month · rate ₹78.00 · MRP ₹120.00
    Result
    Listed under “expiring in 61 to 90 days”, with ₹468.00 at cost and ₹720.00 at MRP at risk.
    A reorder suggestion
    Input
    36 strips sold in 60 days · 7 days for an order to arrive · 30 days of stock to keep · 4 strips can still be sold
    Result
    0.6 a day × 37 days = 22.2, less 4 on hand = 18.2 → order 19 strips (or the usual order quantity, if that is more).

    Common uses

    • A retail pharmacy checking every Monday what expires in the next 90 days, so it can be sold first or returned for credit in time.
    • A chemist entering a distributor’s bill from its CSV export instead of typing every batch.
    • A clinic dispensary issuing medicines to patients batch by batch and writing off what expired.
    • Preparing the stock valuation at cost for the books at the end of the year.

    Batches, expiry dates and first expiry, first out

    A medicine is stocked batch by batch: each batch has its own number, expiry date, MRP and purchase rate, and the register keeps the stock of each one. Write the expiry as printed on the pack — 03/2027 or a full date; a month means the batch may be sold until the last day of that month. Sales are taken from the batch that expires first and has not expired, so older stock goes out before it is wasted. A sale entered late — yesterday’s sales entered this morning — takes only stock that was on the shelf on its date, and an entry is never changed or deleted in a way that would take a batch below zero. Rule 65(17) forbids selling or stocking a drug after its date of expiry; stock waiting to go back to the supplier may be kept only apart from the trade stock, in packages marked “Not for sale”. The register lists such stock under the expiry alerts and the return lists until it is returned or written off.

    Purchases and the supplier’s invoice

    Rule 65(4) asks a retailer to keep records of every purchase: the date, the seller’s name, address and licence number, the drug, the quantity, the batch number and the manufacturer, with the purchase bills serially numbered in date order. Enter the bill number and the supplier with each purchase, and keep the bills themselves. A supplier’s invoice saved as CSV — most billing software exports one — imports a row per batch: product, pack, batch, expiry, MRP, rate, GST, quantity, bonus quantity, manufacturer, HSN, supplier, bill number and date (download the template under Data & backup → Import to see the columns). New products and batches are created; rows with an unreadable expiry, quantity or bill date, or a batch already expired, are listed and left out.

    How the stock is valued

    Each batch is valued at its own purchase cost: the rate on the bill, with the bonus quantity of a scheme spread over all the units received. Choose under Settings whether that cost excludes GST (when you take input tax credit, the GST on purchases is not part of the stock’s cost) or includes it. The valuation also shows the stock at MRP, and the value of expired stock on hand separately, because it can only be returned or written off. The register shows cost; whether expired or slow-moving stock should be written down is for you and your accountant.

    GST on medicines

    Most medicaments of headings 3003 and 3004, including Ayurvedic, Unani, Siddha and homoeopathic medicaments, are in Schedule I of Notification No. 9/2025-Central Tax (Rate): 2.5% CGST plus 2.5% SGST, or 5% IGST. The drugs listed in Annexure I of Notification No. 10/2025-Central Tax (Rate) are exempt. Enter the rate on your supplier’s bill with each batch; the register uses it only for the valuation including GST.

    Reorder suggestions

    For each product: the sales and issues of the last days you choose (60 by default) give an average a day; that average × (the days an order takes to arrive + the days of stock you want to keep), less the stock that may still be sold, is the suggested order, rounded up. Expired stock is never counted as stock on hand. A product at or below its own reorder level is listed even without sales, with its usual order quantity. The days are yours to set under Settings; seasonal medicines need your judgement.

    Where the register is kept

    In this browser on this device (IndexedDB), never on a server. A passcode stores it encrypted (AES-256) and locks it when you step away; an encrypted backup is one file that restores the whole register on another device. Clearing this browser’s site data deletes the register, so back up regularly — a reminder shows while changes are not backed up.

    Limitations

    • One register per browser: to use it on another device, restore an encrypted backup there. Two counters entering on different devices do not see each other’s entries.
    • It is not a billing counter: it records the quantity sold from each batch, not the customer’s bill or the payment. Bill in your billing software or Shop POS Billing and enter the day’s sales here.
    • Return terms belong to each supplier. The return list says what is due to go back; the supplier’s credit note follows its own policy.
    • Quantities are in the unit you choose for each product (a strip, a bottle). Loose tablets sold from a strip can be entered as part of a strip, to three decimal places.

    Privacy

    Your products, batches, suppliers and stock entries stay in this browser on your device (IndexedDB), encrypted when you set a passcode. Imports are read on the device and backups are encrypted on the device. Nothing is uploaded.

    Frequently asked questions

    What do I get without a pass?

    Without a pass, Pharmacy Stock & Expiry Register (India) shows your entries, batches, backups and expiry alerts in full; the return lists, valuation and reorder list as counts and first rows (up to 10), totals hidden. Until you unlock it, the result can’t be downloaded. A Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.

    What does the free preview show?

    Everything you enter works in full for all your products: purchases, sales, returns, opening stock, invoice imports, batches, the expiry alerts with the value at risk, CSV and JSON exports of your own entries and the encrypted backups. The expiry-return lists, the stock valuation and the reorder suggestions show their counts and first rows (up to 10) with their totals hidden; their PDF, XLSX and CSV files, and the CSV file of the expiry alerts, unlock with a Premium pass.

    Why can I not sell from a batch that has expired?

    Because rule 65(17) of the Drugs Rules, 1945 forbids selling or stocking a drug after the date of expiry printed on it. The register skips expired batches when it takes stock for a sale and refuses one chosen by hand. Send such stock back with the return list, or write it off as expired.

    How do I enter the bonus goods of a scheme?

    Enter the quantity billed and the bonus quantity on the purchase line: both go into stock, and the cost of the billed quantity is spread over all of them. In “10 + 1”, 11 units come in for the price of 10.

    Can I import my distributor’s invoice?

    Yes, as a CSV file with a row per batch (Data & backup → Import → Purchases). The first row names the columns; the template shows them, and other names for the same columns (Batch No, Exp, PTR, Qty, Bonus) are recognised. Rows with a problem are listed and left out, so nothing half-read goes into the register.

    Can it bill customers?

    No. It is the stock and expiry side of a pharmacy. Bill in your billing software or in Shop POS Billing, and enter the quantities sold here, or keep this register for purchases, expiry and returns only.

    Quick answers and tool search

    Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.