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:
- Raise purchase orders for every regular order, so the quantity and price you agreed are on record before the delivery arrives.
- Receive against the order, entering batch and expiry as above. Short deliveries and price differences show up at the door, not at month end.
- 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
- Export or type your medicine list into Excel with names, barcodes, cost and selling prices.
- Start the trial and bulk import the list.
- Create logins and roles for your staff.
- 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.
- From then on, enter batch and expiry on every GRN.
- 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.