Pharmacy Management System in Tanzania: Batch, Expiry and Stock Control Explained

A practical guide for Tanzanian pharmacies and duka la dawa: record batches and expiry dates, reduce expired stock, manage wholesalers and run branches.

By SmartBiashara Editorial TeamPublished 9 min read

Short answer

A pharmacy management system records every medicine by batch number and expiry date when it arrives, sells at the counter with cash or mobile money, and shows which batches are close to expiry so you can sell, move or return them in time. It also tracks wholesaler purchases and credit, and stock across branches.

On this page

Expired medicine is one of the few losses in retail that you can see coming months ahead. The date is printed on the box. Yet many pharmacies in Tanzania still find expired stock during a shelf clean-up, when it is too late to sell it, move it or ask the wholesaler for a return. This guide explains how batch and expiry control works in practice, what routines make it stick, and how to judge any pharmacy management system, ours included.

Why medicines need different stock control

A hardware shop counts nails and a boutique counts dresses. A pharmacy has to count the same product in several separate groups, because each delivery behaves differently.

Take amoxicillin 500 mg capsules in a pharmacy in Dodoma. In March, 20 boxes arrive from one wholesaler with an expiry in eleven months. In May, 30 more boxes arrive from a second wholesaler with an expiry in twenty months. On the shelf they look the same. In a paper stock book they become one line: “Amoxicillin 500 mg, 50 boxes”. When the first batch reaches its date in February, nobody knows how many of those 50 boxes are affected until someone checks each box by hand.

A pharmacy management system keeps those two deliveries apart from the moment they arrive. You know that 12 boxes of the March batch remain, that they expire in February, and that it is time to push them at the counter or move them to a busier branch.

How batch and expiry tracking works, step by step

1. Capture the batch at the door

When a delivery arrives, staff receive it against the purchase order on a goods received note (GRN). For each medicine they enter the quantity, the batch number and the expiry date from the box. This step takes a few extra seconds per line and is the one that makes everything else possible. If it is skipped, the system cannot tell you anything about expiry later.

2. Hold stock by batch

Once received, stock sits in the system under each batch. A product can have three batches on hand at once, each with its own quantity and expiry date. You can look up any medicine and see exactly what is on the shelf and how old it is.

3. Sell at the counter

The pharmacist or counter assistant finds the medicine by name or scans the barcode, then takes payment by cash, M-Pesa, Tigo Pesa, Airtel Money or a recorded card payment. Stock drops with each sale.

4. Review what is close to expiry

On a fixed day each week, the person in charge reviews which batches are close to their date. For each one, decide: sell it first at the counter, move it to the branch that sells more of it, ask the wholesaler about a return, or plan to write it off.

5. Remove expired or damaged packs with a record

Packs that cannot be sold come off the count through a stock adjustment with a reason. The count stays true, and over a few months your adjustments show which products you consistently over-order.

SmartBiashara supports this flow with batch and expiry recording on receiving, stock adjustments and inter-store transfers in its inventory management module. The pharmacy page shows how the pieces fit together for chemists and duka la dawa.

The expiry routine that makes the software work

Software stores the dates. People still have to act on them. These habits matter more than any feature.

Shelf rules

  • Put the nearest expiry at the front, every time stock is received. This is often called “first expiry, first out”.
  • Never put a new delivery in front of an older batch of the same product.
  • Keep short-dated stock where the counter staff see it first.

Weekly expiry review checklist

  • List batches expiring in the next 90 days.
  • For each, compare quantity on hand with how fast it sells.
  • Mark lines that will not sell in time.
  • Transfer slow-moving batches to a branch that sells more of them.
  • Contact the wholesaler about returns where your terms allow it.
  • Post adjustments for anything already expired or damaged.
  • Note which products appear on this list every month and buy less of them.

Monthly count

Count a section of the pharmacy each week so the whole store is counted once a month. Compare counted batches with the system and post the differences. Small, regular counts are easier than one big count that closes the shop for a day.

Purchasing and wholesaler credit

Most Tanzanian pharmacies buy from several wholesalers, often on credit, and the same medicine may come from two suppliers at different prices. Three habits keep this under control:

  1. Raise purchase orders for every regular order, so the quantity and price you agreed are on record before the delivery arrives.
  2. Receive against the order, entering batch and expiry as above. Short deliveries and price differences show up at the door, not at month end.
  3. Keep a ledger per supplier, so you see what is due to each wholesaler and when. This protects your credit terms and stops the same invoice being paid twice.

Set reorder levels on fast movers such as paracetamol, ORS and common antimalarials. Low-stock alerts then remind you to order before a Saturday run empties the shelf, and you buy slow lines in smaller quantities so less of them reaches expiry.

Running more than one pharmacy

Expiry losses grow with every branch, because short-dated stock in one location is often exactly what another location needs. With branches on one system:

  • Each branch holds its own stock by batch.
  • The owner sees all branches from one dashboard.
  • A short-dated batch can be transferred from a quiet branch to a busy one, with the movement recorded on both sides.
  • Branch sales and profit can be compared side by side.

Give the pharmacist in charge of each branch a Manager role, counter staff a Cashier role, and keep Admin for yourself.

What it costs in shillings

The main limit for a pharmacy is usually the number of products, since a well-stocked chemist can carry well over a thousand lines.

SmartBiashara plan Monthly (TSh, excl. VAT) Locations Users Products Suits
Starter 15,000 1 5 1,000 A small duka la dawa with a focused range
Basic 35,000 3 10 5,000 A full retail pharmacy, or up to three branches
Standard 45,000 5 20 25,000 Pharmacy groups and stores with a wide range
Enterprise 55,000 50 100 Unlimited Chains and pharmaceutical distributors

A yearly subscription is charged at ten times the monthly price. Every plan starts with a 14-day free trial and no credit card. See the pricing page for full plan details.

For TRA fiscal receipts, the system gives you the sales records and reports, and our team can talk through how your EFD or VFD machine fits alongside it.

Questions to ask any pharmacy system

Use these with every vendor you are comparing:

  • Is the batch number and expiry date captured when stock is received, for every line?
  • Can I see all batches of one medicine, each with its own quantity and date?
  • How do I find batches expiring in the next 30, 60 or 90 days?
  • Are expired packs removed with a recorded adjustment and a reason?
  • Can I raise purchase orders, receive with GRNs and keep a ledger per wholesaler?
  • Are mobile money payments reconciled against sales?
  • Can I transfer stock between branches with a record on both sides?
  • Does it keep selling when the network drops?
  • Do I need clinical features such as prescription records? If so, does this system have them?

That last question matters. Some pharmacy-only systems include clinical or insurance features. SmartBiashara focuses on the business side of the pharmacy, so if prescriptions or insurance claims are central to your work, compare carefully.

Getting started

  1. Export or type your medicine list into Excel with names, barcodes, cost and selling prices.
  2. Start the trial and bulk import the list.
  3. Create logins and roles for your staff.
  4. For opening stock, count each medicine by batch and enter batch numbers and expiry dates. Start with your fifty fastest movers if the full list is long.
  5. From then on, enter batch and expiry on every GRN.
  6. Run your first weekly expiry review at the end of week one.

If you get stuck, our team is on WhatsApp and phone at +255 749 900 050, Monday to Saturday, 8am to 8pm EAT. Owners who want stock, purchasing and accounts together can read more about the wider ERP software.

Questions about this topic

Still have a question? Ask our team on WhatsApp, phone or email.

What is the difference between batch tracking and expiry tracking?

The batch number identifies one production lot from the manufacturer. The expiry date tells you when that lot can no longer be sold. You need both: two deliveries of the same paracetamol can carry different batch numbers and different expiry dates, and a recall or quality notice usually names a batch.

Does FIFO stock costing mean the oldest medicine is sold first?

No. FIFO or LIFO is an accounting choice for how stock is valued and how cost of sales is calculated. Which pack leaves the shelf first is a physical routine. For medicines, staff should usually sell the batch with the nearest expiry first and arrange shelves that way.

Can a small duka la dawa use a pharmacy management system?

Yes. A single counter with a phone or laptop and a browser is enough. SmartBiashara's Starter plan covers one location, five users and up to 1,000 products for TSh 15,000 a month, excluding VAT, which suits many small dispensing shops.

Does SmartBiashara handle prescriptions, insurance claims or regulator reporting?

SmartBiashara does not advertise prescription records, insurance claims or regulator reporting. It covers the business side: counter sales, batch and expiry stock, purchasing, supplier credit, accounts, staff and reports. Check your clinical and regulatory needs with the relevant authority and ask our team how other pharmacies combine the two.

How long does it take to set up a pharmacy on the system?

Most of the work is preparing your product list in Excel: names, barcodes, cost and selling prices. After bulk import, batches and expiry dates are captured as stock is received. A focused owner can have the counter selling within the 14-day free trial.

All articles
  1. Inventory

    Inventory Management in Tanzania: 7 Ways to Stop Stock Losses

    Practical stock control for Tanzanian shops: receiving, barcodes, adjustments, cycle counts and a step-by-step stock reconciliation with a worked TSh example.

    9 min read

  2. Business growth

    How Do I Manage Multiple Retail Branches? A Practical Guide for Tanzanian Owners

    A practical guide to running two or more shops in Tanzania: one stock system, branch roles, transfers, daily closing, weekly reviews and a new-branch checklist.

    9 min read

  3. POS

    Best POS Software in Tanzania: Prices in TSh, Features and How to Choose

    Choose POS software in Tanzania by what matters at the till: TSh prices, mobile money, offline sales, stock, branches and TRA receipts. A fair buying guide.

    9 min read

See how this works with your own stock and sales

Start a 14-day free trial with no credit card, or book a demo and our team will set it up with you.