Pharmacy software: stop losing money to expired drugs
One carton of expired antibiotics can wipe out your profit for the month. See how pharmacy software with batch and expiry tracking stops that loss in Nigeria.
In this article16 sections
- Why expired drugs quietly eat pharmacy profit in Nigeria
- What pharmacy software actually does (and what it is not)
- Batch and expiry tracking: the heart of pharmacy software
- Expiry alerts that people actually act on
- Stock control features every pharmacy needs
- Stopping leakage at the counter
- Built for Nigerian conditions: power, internet and branches
- How much does pharmacy software cost in Nigeria?
- How to switch to pharmacy software without chaos
- Questions to ask any pharmacy software vendor before you pay
- Mistakes I see pharmacy owners make
- A simple weekly routine that keeps expiry losses low
- Why this matters for your pharmacy in Nigeria right now
- Key takeaways
- Frequently asked questions
- Next step: stop the next expired carton before it happens
A pharmacist I will call Ngozi once asked me to set up pharmacy software for her shop in Kubwa, Abuja. Before we installed anything, we did a full stock count. Under a low shelf behind the dispensary we found two cartons of antibiotics, a bag of antimalarials and a row of cough syrups. All of them were expired. Her quick estimate was ₦1.4 million. Nobody stole the drugs and nobody was careless on purpose. The stock simply sat in a corner until the dates passed, and nothing in the shop was built to notice.
That story is not rare. I have walked into pharmacies in Abuja, Lagos, Kaduna and Port Harcourt, and almost every owner has a “bad carton” story. Some lose a few thousand naira a month. Some lose millions a year and only find out when they finally do a proper count. The painful part is that most of this loss can be prevented with simple habits and the right tools.
In this guide I will show you exactly how good pharmacy software stops that loss. You will learn what batch and expiry tracking really means, which features matter and which are noise, what it costs in Nigeria as at 2026, how to move from a notebook or Excel sheet without chaos, and the mistakes I see owners make over and over. I have built and installed point of sale (POS) and stock systems for retail businesses for eight years, so this is practical advice, not theory.
Why expired drugs quietly eat pharmacy profit in Nigeria
Most pharmacy owners think about profit at the counter. How much did we sell today? How much came in through transfer, cash and the PoS terminal? That is important, but it is only half of the picture. Your real profit is decided on the shelf, long before a customer walks in. Every pack that expires before it is sold is money you paid for, carried, stored and then threw away.
The maths of one expired carton
Let me make it simple. Say you buy a carton of an antibiotic for ₦180,000 and your margin on it is about 20 percent. If you sell the whole carton, you make roughly ₦36,000 profit. If one quarter of that carton expires, you lose ₦45,000 worth of stock. That single loss wipes out more than the profit on the entire carton. You now need to sell another full carton just to get back to where you started.
This is why I tell owners that expiry is not a stock problem, it is a profit problem. A pharmacy with a 20 percent margin has to sell five naira of goods to recover every one naira it loses to expiry. When you see it like that, a few expired packs a week is no longer “small”.
Why Nigerian pharmacies are more exposed than most
Some things about running a pharmacy in Nigeria make expiry worse than in many other countries:
- Price jumps push owners to buy in bulk. When the naira moves and suppliers announce new prices, many owners stock up before the increase. That is smart for cash, but it also means you are holding more stock with more dates to watch.
- Short-dated stock from wholesalers. Some distributors push products with six or eight months left, often at a discount. If you do not track that date from the day it arrives, it will catch you.
- Power cuts and heat. Syrups, suspensions, insulin and some vaccines need proper storage. When NEPA takes light for days and the generator cannot run the fridge all night, some items become unsafe even before the printed date.
- Many small products. A typical neighbourhood pharmacy carries between 1,500 and 4,000 different items. No human can remember the dates on all of them.
- Staff turnover. When the attendant who “knows the shelves” leaves, that knowledge walks out with them.
The hidden costs nobody counts
The naira value of expired drugs is only the first cost. There are others that owners rarely add up:
- Cash tied down. Money sitting in slow stock is money you cannot use to buy fast-moving items or to pay rent.
- Shelf space. Every slot filled with a dead product is a slot not holding something that sells.
- Returns refused. Many suppliers only accept returns within a set window before expiry. Miss that window and the loss is fully yours.
- Reputation and safety. Selling an expired product, even by mistake, can hurt a patient and damage the trust your neighbourhood has in you.
- Regulatory risk. Inspectors from the pharmacy regulators take expired stock on the shelf seriously. It is not a conversation you want to have.
What pharmacy software actually does (and what it is not)
When I say pharmacy software, many owners picture a till that prints receipts. That is only the front of it. A proper system is a record of every item that enters your shop, every item that leaves, and everything that happens in between. The receipt is the smallest part.
A basic POS is not the same as pharmacy software
A basic POS (point of sale, the system at the counter that records sales) knows the product name, the price and how many are left. That is fine for a boutique or a phone accessories shop. A pharmacy needs more. It needs to know which batch of a product is on the shelf, when each batch expires, which supplier it came from, and whether it can be sold without a prescription. If your current system cannot tell you “how many packs of this product expire in the next 90 days”, it is a POS, not pharmacy software.
The three jobs good pharmacy software does
- It remembers. Every batch number, every expiry date, every supplier invoice, every sale. Nothing depends on one person’s memory.
- It warns. It tells you, before it is too late, which items are close to expiry, which items are running low and which items are not moving at all.
- It controls. It stops staff from selling below price, from giving discounts they are not allowed to give, and from quietly deleting sales. It makes every action traceable to a named user.
What software cannot fix
I want to be honest here. Software will not fix a shop where nobody receives stock properly, or where staff share one password, or where the owner never looks at the reports. The system gives you information. You and your team still have to act on it. I have seen owners pay for excellent software and still lose money because the expiry report sat unread every week. The tool is only as good as the habit around it.
Batch and expiry tracking: the heart of pharmacy software
If you remember only one section of this article, let it be this one. Batch and expiry tracking is the feature that pays for your pharmacy software several times over. Everything else is helpful. This part is essential.
What a batch number is and why it matters
A batch number (sometimes called a lot number) is the code the manufacturer prints on a pack to show which production run it came from. Every pack from the same run has the same batch number and the same expiry date. When you buy 20 packs of paracetamol today and 20 more next month, they may come from different batches with different dates.
If your system only records “paracetamol, 40 packs”, you have lost the most important information. You have no idea that 20 of those packs expire in five months and 20 expire in two years. Good pharmacy software records each batch separately under the same product. So on screen you see something like: Paracetamol 500mg, total 40 packs, of which batch A (20 packs) expires in March, batch B (20 packs) expires two years later.
First expired, first out
Most shops have heard of “first in, first out”, meaning you sell the oldest stock first. In a pharmacy, the better rule is first expired, first out (often written as FEFO). You sell the batch with the nearest expiry date first, even if it arrived later. This matters because suppliers do not always deliver in date order. Sometimes the new delivery is actually shorter-dated than what is already on your shelf.
Good software supports FEFO in two ways. First, at the counter, when an attendant sells a product, the system automatically deducts from the nearest-expiry batch. Second, it prints or shows a “pick list” that tells staff which batch to bring to the front. When you combine this with a simple shelf habit (new stock goes to the back, near-expiry to the front), your expiry losses drop sharply.
How receiving stock should work
Expiry tracking lives or dies at the moment stock arrives. If dates are not captured at receiving, the system cannot help you later. This is the process I set up for my clients:
- The delivery arrives with the supplier’s invoice.
- A named staff member opens a “goods received” screen and selects the supplier.
- They scan each product barcode. The system brings up the product.
- They type the batch number, expiry date, quantity and cost price for each batch.
- The system flags any batch with less than your minimum shelf life (for example, less than nine months left) so the owner can decide whether to accept it.
- The total is compared to the supplier invoice. Any difference is noted before the delivery man leaves.
This takes a few extra minutes per delivery. Those minutes are the cheapest insurance you will ever buy.
Recalls and quality alerts
Once in a while, the regulator or a manufacturer announces that a particular batch of a product is faulty or fake and must be removed. Without batch tracking, you would have to check every pack on every shelf by hand. With batch tracking, you type the batch number and the system tells you in seconds whether you have it, how many, where, and whether you have already sold some (and to whom, if you recorded the customer). It is good practice to keep an eye on public alerts from NAFDAC and act fast when your batch is listed.
Expiry alerts that people actually act on
An alert that nobody reads is just noise. I have seen systems that show a red warning on the dashboard every morning, and after two weeks staff stop seeing it. The trick is to design alerts that land in the right place, at the right time, with a clear action attached.
Use three warning windows, not one
One warning at “30 days to expiry” is too late for most actions. I recommend three windows:
- 180 days out: review time. Is this item moving fast enough to finish before expiry? If not, stop reordering and plan a push.
- 90 days out: action time. Return to supplier if they accept, transfer to a busier branch, or start a gentle discount.
- 30 days out: last call. Move to the front, bundle with related products, or pull from the shelf if you cannot sell safely in time.
You can adjust these numbers by product type. A fast-moving antimalarial may only need a 60-day warning. A slow specialist cream may need a full year.
Send the alert where people already look
Most Nigerian owners live on WhatsApp. So I set up a short weekly summary that goes to the owner and the supervising pharmacist on WhatsApp or email, every Monday morning. It says something like: “12 items (₦286,000) expire in the next 90 days. 3 items (₦41,000) expire in the next 30 days.” One tap opens the full list. If you want to go further, my WhatsApp automation service can connect these alerts directly to your business line.
Turn every alert into one of five actions
When an item shows up on the expiry list, your team should choose one of these actions and record it in the system:
- Return to supplier within their returns window.
- Transfer to another branch where it sells faster.
- Promote with a small discount or a bundle (for example, a vitamin with a cold remedy).
- Move to front so it is the first pack staff reach for.
- Write off safely and record the loss, so your accounts stay honest.
Recording the action matters. At the end of the quarter, you can see how much you saved by returns and transfers, and how much you still wrote off. That number tells you if your buying is getting better.
Stock control features every pharmacy needs
Expiry tracking protects you from losing stock you already have. Stock control protects you from buying the wrong stock in the first place. The two work together. Most expired drugs started life as a buying mistake: too much of something that sells too slowly.
Reorder levels based on real sales, not guesswork
A reorder level is the quantity at which the system tells you to buy more. Many owners set these by feel. “When paracetamol gets to 10 packs, buy more.” The problem is that sales change with seasons. During the rainy season, antimalarials and cold remedies fly off the shelf. In the harmattan, you sell more lip balm, skin creams and cough syrups. A fixed number does not follow that pattern.
Good pharmacy software looks at your actual sales over the last few weeks and suggests how much to reorder. For example, if you sold 60 packs of an antimalarial in the last 30 days, and your supplier takes 5 days to deliver, the system can suggest a reorder level of around 15 packs with an order quantity that covers the next month, not the next year. This alone stops a lot of over-buying.
Selling by pack, strip or tablet
In Nigeria, many customers do not buy a full pack. They ask for one strip of an antibiotic, or four tablets of a painkiller. If your system only knows “packs”, your stock figures will be wrong within a week. Good software handles units of measure (the different sizes you sell the same product in). You set that one pack holds 10 strips and each strip holds 10 tablets. When an attendant sells three strips, the system deducts three tenths of a pack from the right batch and still knows exactly what is left.
Stock counts and cycle counting
A full stock count, where you close the shop and count everything, is painful. Most owners do it once a year, if at all. I prefer cycle counting (counting a small section every day or every week, so the whole shop gets counted over a month). On Monday you count the antibiotics shelf. On Tuesday, the vitamins. On Wednesday, the syrups. The software gives you a count sheet for that section, you enter what you find, and it shows the difference. Small differences caught early are easy to explain. Big differences found once a year are impossible to trace.
Prescription-only and controlled items
Some medicines should only be sold on a valid prescription, and some need extra care and records. Your software should let you mark these items so that the counter screen asks for the prescription details (doctor, hospital, date) before the sale can go through. It should also keep a separate log for controlled items that the superintendent pharmacist can review. This protects your licence and shows inspectors that you take compliance seriously.
Here is how I rank the features when a client asks me what to look for.
| Feature | Priority | Why it matters |
|---|---|---|
| Batch numbers and expiry per batch | Must have | The core of expiry control. Without it, the rest is guesswork. |
| Expiry report with 180, 90 and 30 day windows | Must have | Gives you time to return, transfer or promote before it is too late. |
| First expired, first out selling | Must have | Sells the nearest-expiry batch first, automatically. |
| Units of measure (pack, strip, tablet) | Must have | Nigerian customers buy strips and tablets. Stock must stay accurate. |
| User roles, voids and discount audit | Must have | Stops leakage at the counter and shows who did what. |
| Offline mode with automatic sync | Must have | Sales must continue when the internet drops. |
| Supplier returns tracking | Should have | Shows which suppliers accept returns and how much you recovered. |
| Multi-branch transfers | Should have | Moves slow stock to a branch where it sells faster. |
| Prescription and controlled item log | Should have | Protects your licence and helps during inspections. |
| HMO and credit customer accounts | Should have | Tracks who owes you and which claims are pending. |
| Customer loyalty points | Nice to have | Helpful for repeat buyers, but will not save a shop losing stock. |
| Fancy dashboard animations | Skip | Looks good in a demo. Does nothing for your profit. |
Stopping leakage at the counter
Expiry is one leak. Staff leakage is another. I do not believe most pharmacy staff are thieves. But when a system makes it easy to take a little without being noticed, some people will. Good software removes the temptation by making every action visible.
User roles and personal logins
Every staff member should have their own login, and nobody should share. The attendant can sell. The supervisor can approve a discount. Only the owner or the pharmacist in charge can change prices, delete a product or adjust stock. When everyone uses “admin” with the same password, you have no way to know who did anything. I have seen shops where the password was written on a sticker under the counter. That is not security, that is decoration.
Voids, discounts and refunds
The three favourite tricks I see are simple. An attendant rings up a sale, collects cash, then voids (cancels) the sale after the customer leaves and keeps the money. Or they give an “unofficial discount” to a friend. Or they record a refund for a product that was never returned. Your pharmacy software should log every void, discount and refund with the user, the time and a reason. The owner should get a daily summary. When staff know that the owner sees these numbers every evening, the numbers go down quickly.
Cash, transfers and PoS payments
In most Nigerian pharmacies, payment comes in three ways: cash, bank transfer and the PoS terminal from Moniepoint, Opay or a bank. The end-of-day problem is always the same: the sales total does not match what is in the drawer plus what is in the bank. Your software should record the payment method for every sale, so at closing time you can compare. Cash sales should match the drawer. Transfer sales should match your bank alerts. PoS sales should match the terminal’s end-of-day report. When one of them is off, you know exactly where to look.
Credit sales and HMO claims
Many pharmacies serve patients on health insurance through HMOs, and many sell on credit to trusted customers, staff of nearby offices or clinics. This is where money quietly disappears, not through theft but through forgetting. The software should keep a separate account for each HMO and each credit customer, with every item, date and amount. At the end of the month, you print a statement and send it. I once helped a pharmacy in Garki recover over ₦600,000 in HMO claims that had simply never been sent, because nobody had a clear list.
Built for Nigerian conditions: power, internet and branches
Software designed for a pharmacy in London or Toronto often fails in Kano or Onitsha, not because it is bad, but because it assumes steady power and fast internet. You must choose a system that respects the reality of doing business here.
Offline mode is not optional
If your system stops selling the moment MTN or Airtel data drops, it will cost you money every week. The right setup keeps selling offline, stores the sales on the local computer, and syncs (copies the records up to the online server) when the connection returns. Ask any vendor to show you this during a demo. Pull the network cable or turn off the router and ask them to make a sale. If they hesitate, you have your answer.
Power and hardware protection
A sudden power cut can corrupt the files on a computer that shuts down without warning. At minimum, the counter computer should sit on a UPS (a battery box that keeps it running for a few minutes so it can shut down safely). Better still, put the POS, the router and the receipt printer on the same inverter or solar backup. Many of my clients in Abuja estates now run the whole counter on a small solar setup, so the generator is only for the air conditioner and the drug fridge.
More than one branch
Once you open a second branch, your problems multiply. Branch A runs out of an item that Branch B has in excess, and nobody knows. With a central system, the owner sees stock across all branches on one screen. You can transfer near-expiry stock from the quiet branch to the busy one before it expires. If you are growing into a chain, read my guide on running multiple branches on one system, because the same principles apply.
Backups you can trust
Your sales and stock data is one of the most valuable things in your business. If the only copy lives on one old desktop, one bad power surge can erase years of records. Cloud systems back up automatically. If you run a local system, set up a daily backup to an external drive and an online copy. I explain simple options in my article on data backup for small businesses.
How much does pharmacy software cost in Nigeria?
This is the first question almost every owner asks me. The honest answer is that it depends on the size of your pharmacy, how many branches you run and whether you pay monthly or once. Here are realistic ranges I see in the market. These figures are as at 2026, prices change, and they vary by vendor and by city.
| Item | Typical price range (as at 2026) | Notes |
|---|---|---|
| Basic cloud POS subscription, one branch | ₦10,000 to ₦30,000 per month | Often lacks proper batch and expiry tracking. Check carefully. |
| Pharmacy software subscription with batch and expiry | ₦30,000 to ₦80,000 per month | Usually per branch. Includes updates and online backup. |
| One-off licence for a local system | ₦250,000 to ₦900,000 | Plus a yearly support fee, often 15 to 20 percent of the licence. |
| Custom system for a chain of pharmacies | ₦1,500,000 to ₦6,000,000 and above | Built around your exact workflow, with your branding and reports. |
| Barcode scanner | ₦25,000 to ₦70,000 | Wireless scanners are easier at a busy counter. |
| Thermal receipt printer | ₦45,000 to ₦120,000 | Buy a known brand. Cheap ones die in the heat. |
| Counter computer or all-in-one | ₦350,000 to ₦900,000 | A touch screen all-in-one saves counter space. |
| UPS or small inverter for the counter | ₦120,000 to ₦600,000 | A solar setup costs more but ends fuel headaches. |
| Setup, data entry and training | ₦100,000 to ₦500,000 | Depends on how many products and batches you have. |
Monthly subscription or one-off payment?
A subscription is lighter on cash at the start and usually includes updates and online backup. A one-off licence can be cheaper over five years but you carry more risk: if the vendor disappears, nobody updates your system. For most single-branch pharmacies, I recommend a subscription with a vendor who has been around for a few years. For a chain of three or more branches, a custom or semi-custom system often pays off, because you stop paying per branch and you get reports that fit exactly how you work.
The costs owners forget
The software price is rarely the biggest cost. The biggest cost is the first data entry: typing in every product, every batch and every expiry date. For a pharmacy with 2,500 products, this can take a team of two people a full week. Budget for it. Also budget for training, a spare receipt printer roll stock, and a small monthly amount for support. When you compare vendors, ask for the total cost for the first year, not just the monthly fee.
How quickly does it pay for itself?
Go back to Ngozi’s ₦1.4 million of expired stock. Even if good software only cut that loss in half, she would save ₦700,000 a year. Add the leakage you stop at the counter and the HMO claims you actually send, and most pharmacies recover the full first-year cost within four to eight months. After that, it is pure savings.
How to switch to pharmacy software without chaos
The fear I hear most is: “My shop cannot close for a week while we set up a new system.” It does not need to. With a clear plan, you can move from paper or Excel to proper pharmacy software in about four weeks while the shop keeps selling. Here is the plan I use.
| Week | What happens | Who does it |
|---|---|---|
| Week 1 | Product list cleaned up: one name per product, correct pack sizes, barcodes, selling prices and categories. | Owner, pharmacist and vendor |
| Week 2 | Opening stock count by section, capturing batch numbers and expiry dates for everything on the shelf and in the store room. | Two staff per section, checked by the pharmacist |
| Week 3 | Staff training on selling, receiving, returns and closing. Test sales on a practice copy of the system. | All staff, led by the vendor |
| Week 4 | Go live. Old method runs side by side for three to five days as a safety net, then stops. | Everyone, with vendor on call |
Clean your product list first
The biggest source of trouble is a messy product list. The same drug appears three times with slightly different names. One entry says “Amoxil caps”, another says “Amoxicillin 500”, another says “Amox 500mg”. Before any stock is entered, sit down with your pharmacist and clean it up. Decide on one naming style, such as generic name, strength, form and pack size, and stick to it. This one step makes every report after it more accurate.
Count by section, not all at once
Do not try to count the whole shop in one day. Split it into sections: antibiotics, antimalarials, pain relief, vitamins, syrups, skin care, baby care, medical devices and so on. Count one or two sections per day, after closing or in the quiet morning hours. For each product, record every batch you find and its expiry date. This is also the day you will discover your hidden expired stock. Set it aside, record it, and deal with it properly.
Train the people who will actually use it
Owners often attend the training and send staff home. That is backwards. The attendants and the pharmacist on duty are the ones who will use the system eight hours a day. Train them on real situations: a customer buying one strip, a customer paying half by transfer and half by cash, a return, a delivery with a short-dated batch, an HMO patient. Let them practise on a test copy until they are comfortable.
Run both systems briefly, then commit
For the first three to five days after go-live, keep your old notebook or sheet going alongside the new system. Compare the totals at closing. Once the numbers agree for a few days in a row, stop the old method completely. If you keep both forever, staff will drift back to the old way and the new system will never be accurate.
Questions to ask any pharmacy software vendor before you pay
There are many vendors in Nigeria, from one-man developers to large companies. Some are excellent. Some will take your money and vanish. These are the questions I would ask if I were buying for my own pharmacy:
- Can you show me batch and expiry tracking live, with real data? Not slides. A real demo where they receive a product with two batches and sell from the nearest expiry.
- What happens when the internet goes off? Ask them to prove offline selling in front of you.
- Can I sell by strip and tablet, and will stock stay correct? Test it with a real product.
- Who owns my data, and can I export it? You should be able to download your products, stock and sales in a spreadsheet at any time.
- What does support look like? Is there a phone number or WhatsApp line? What hours? Is there a charge per visit?
- How many pharmacies use this system today? Ask for two you can call. Speak to the owners, not the vendor.
- What is the total cost for year one? Software, hardware, setup, data entry, training and support, all added together.
- Can it grow with me? If you open a second branch next year, what changes and what does it cost?
If a vendor gets defensive about any of these questions, move on. A good vendor is happy to answer because they know their product works.
Mistakes I see pharmacy owners make
After working with many retail businesses, the same mistakes come up again and again. None of them are about the software itself. They are about how it is used.
Skipping batch numbers at receiving
The system has a field for batch and expiry, but the attendant is busy, so they leave it blank or type “0000”. Three months later, the expiry report is useless. Make batch and expiry required fields at receiving, so the system will not accept a delivery without them.
Buying on emotion instead of data
A sales rep offers “buy ten, get two free” and the owner takes it without checking how fast that product sells. Now there are twelve packs on the shelf for a product that sells two a month. Before you accept any bulk deal, check the sales history in your system. If you cannot finish the stock well before expiry, the free packs are not free.
Never looking at the reports
The system produces an expiry report, a slow-moving stock report and a voids report. The owner never opens any of them. Pick one fixed time each week, for example Monday at 9am, to review these three reports with your pharmacist. It takes 20 minutes and it is the most profitable 20 minutes of your week.
Choosing the cheapest option without testing it
A ₦10,000 monthly subscription that cannot handle batches will cost you far more in expired stock than a ₦45,000 system that can. Price matters, but test the features that protect your profit before you compare prices.
A pharmacy owner in Port Harcourt told me, three months after we set up batch tracking, that the best thing about the system was not the software. It was that her Monday meeting now took 20 minutes instead of two hours, because everyone could see the same list. “We stopped arguing about what is on the shelf,” she said. “We just look at the screen and decide.”
A simple weekly routine that keeps expiry losses low
Software gives you the information. A routine makes sure you use it. This is the weekly rhythm I recommend to every pharmacy client, whether they have one shop in Jos or five branches across Lagos.
Monday: review and decide
Open the 90-day expiry report and the slow-moving stock report. For each item, choose one of the five actions: return, transfer, promote, move to front or write off. Record the decision in the system. Check the voids and discounts summary from last week.
Wednesday: count one section
Pick one section of the shop and do a cycle count. Compare it to the system. Investigate any difference over a small amount you set, for example ₦5,000. Most differences come from wrong units at the counter, not theft, so fix the cause.
Friday: plan the next order
Use the reorder suggestions from the system, not memory. Check the lead time for each supplier. Avoid ordering items that are already on the expiry list. If a supplier has sent short-dated stock more than twice, note it and discuss it with them.
Month end: look at the big numbers
Once a month, look at total sales, gross profit, stock value, stock written off and money recovered through returns. Compare to the previous month. Your goal is simple: stock written off should fall month after month until it becomes a very small, stable number.
Why this matters for your pharmacy in Nigeria right now
Drug prices have risen sharply in recent years, mostly because many products and raw materials are imported and the naira has weakened. That means every expired pack costs more to replace than it did two years ago. A shop that could absorb small losses in the past now feels every one of them. At the same time, customers compare prices more, and they walk to the next pharmacy if you are out of stock. You cannot afford to hold too much or too little.
Pharmacy software that tracks batches, warns you early and helps you buy the right quantity is no longer a luxury for big chains. It is basic protection for any pharmacy that wants to stay open and profitable. The same logic applies to supermarkets and minimarts, and I explain the retail side in my guide on stock control tips for supermarkets. If your business carries a lot of stock across locations, my inventory management systems page shows what a bigger setup looks like.
Key takeaways
- Expiry is a profit problem. On a 20 percent margin, every ₦1 lost to expiry needs about ₦5 of new sales to recover.
- Track every batch separately, with its own expiry date, from the moment stock arrives.
- Sell first expired, first out, and let the system pick the right batch at the counter.
- Use 180, 90 and 30 day warnings, delivered where people already look, such as WhatsApp or email.
- Turn every alert into an action: return, transfer, promote, move to front or write off.
- Insist on offline mode, personal logins and a full audit of voids, discounts and refunds.
- Budget for the full first year, including data entry and training, not just the monthly fee.
- Hold a 20 minute review every week. The habit matters more than the software.
Frequently asked questions
What is the best pharmacy software in Nigeria?
The best pharmacy software is the one that tracks batches and expiry dates per batch, works offline, supports selling by strip and tablet, and has a vendor with reliable local support. Brand names matter less than these features. Always ask for a live demo with real products before you pay.
How much does pharmacy software cost in Nigeria?
As at 2026, a pharmacy software subscription with proper batch and expiry tracking usually costs between ₦30,000 and ₦80,000 per branch per month. One-off licences range from about ₦250,000 to ₦900,000, and custom systems for chains start around ₦1.5 million. Prices change, so confirm the full first-year cost with any vendor.
Can pharmacy software work without internet?
Yes, good pharmacy software keeps selling when the internet is down and syncs the records once the connection returns. This is essential in Nigeria, where data connections drop often. Ask the vendor to prove offline selling during the demo.
How does pharmacy software track expiry dates?
When stock arrives, staff record the batch number and expiry date for each batch. The software stores these separately under the product, sells the nearest-expiry batch first and sends alerts at set windows, such as 180, 90 and 30 days before expiry. The owner can then return, transfer or promote the stock in time.
Can I sell drugs by strip or tablet with pharmacy software?
Yes, if the software supports units of measure. You set how many strips are in a pack and how many tablets are in a strip. When you sell one strip, the system deducts the correct fraction of a pack from the right batch, so your stock stays accurate.
How long does it take to set up pharmacy software?
For a typical neighbourhood pharmacy with 1,500 to 3,000 products, plan for about four weeks. That covers cleaning the product list, counting stock with batch numbers, training staff and a short period of running old and new methods side by side. The shop can keep selling throughout.
Will suppliers take back expired drugs?
Some suppliers accept returns of near-expiry stock within a set window, often a few months before the expiry date, and many refuse expired stock completely. Ask each supplier for their returns policy in writing and record it in your system. Good software reminds you before that window closes.
Next step: stop the next expired carton before it happens
If you run a pharmacy in Abuja, Lagos or anywhere in Nigeria and you are tired of finding expired stock at the back of the shelf, I can help. I set up pharmacy POS software with batch and expiry tracking, clean up your product list, train your team and stay on call after go-live. Book a free consultation and tell me how many products and branches you have, or message me on WhatsApp from the site. In one short call, I will tell you what your current setup is costing you and what it would take to fix it.
BSc Economist and software engineer with 8 years of experience. CTO / Team Lead at Xoftpro Smart Systems and founder of DannieSoft.


