Managing Expiry Returns in Pharma Distribution: How to Recover Value from Near-Expiry Stock
Every pharma distributor knows the sound of a return coming back. A chemist's boy drops a carton on the counter, half of it near-expiry strips, half of it already dead, and it lands in the same pile as yesterday's. Somebody will sort it "later." Later is usually after the manufacturer's return window has closed.
That is the quiet way money leaves a distribution house. Not through theft or bad debts, but through batches that were recoverable in March and worthless by May. The stock was always going to expire. The loss was optional.
This is written for distributors, super-stockists and stockists who carry hundreds of batches across thousands of SKUs, each with its own expiry date and its own clock. If your monthly write-off line has quietly grown, the problem is rarely the medicine. It is the workflow around the medicine.
Expiry is a recovery problem, not just a compliance one
Most software talks about expiry as an alert. A red flag pops up, someone nods, the strip expires anyway. That framing misses the point.
The real question is not "is this stock near expiry." It is "how much of this can I still turn back into money, and how much time do I have to do it." A near-expiry batch caught early is a saleable return or a manufacturer claim. The same batch caught late is a write-off you fund yourself.
So expiry management is really value recovery. And value recovery has a deadline that most teams cannot see, because the expiry date printed on the strip is not the date that matters. The date that matters is the last day the manufacturer will still accept the return.
The two buckets every return splits into
Before anything else, a return has to be sorted correctly, because the two halves go to completely different places.

Saleable (near-expiry) returns still have residual shelf life. A strip with three or four months left can often move again, whether back through your own secondary sales or forward to a faster-turning outlet. This stock has value today. It should not sit in the return pile losing a week of that shelf life while someone decides what to do with it.
Non-saleable (expired) returns are past their date. These cannot be resold to anyone. They exist only to be claimed against the manufacturer and then destroyed under the required protocol, with the credit recovered on the way out.
Book these two wrong and everything downstream breaks. Saleable stock treated as dead loses recoverable margin. Expired stock treated as saleable creates a compliance risk and a stock figure that lies to you. The sorting decision is small. The consequence of getting it wrong is not.
This is exactly the kind of judgement that separates a billing app from an ERP built by people who have handled pharma stock for decades. SwilERP tracks every unit by batch number and expiry date, so a return is not a loose carton on a counter. It is a specific batch with a specific residual life, and the system already knows which bucket it belongs in.
Catching near-expiry stock before it crosses the line
You cannot recover what you cannot see in time. Most distributors can tell you what is expired. Far fewer can tell you, on any given morning, what will become non-returnable in the next thirty days.
That gap is where the money goes.
The retail channel in India commonly accepts expiry returns up to around six months before the expiry date, and the hospital channel often works on a shorter window of roughly three months. These norms vary by company and by agreement, so the point is not the exact number. The point is that there is a window, it is finite, and it opens and closes on a per-batch basis. Miss it and a claimable batch becomes your loss.
SwilERP was built on FEFO, First Expire First Out, because in pharma that is not a nice-to-have, it is the only correct way to move stock. The verticals SWIL has served for thirty years made that non-negotiable long ago: track by batch and expiry, enforce FEFO picking, and block the sale of expired medicine before it reaches a customer. The same batch and expiry intelligence that decides which strip to pick first also tells you which batch is about to age out of its return window, while you can still act on it.
For a distribution house running a real warehouse, the physical side matters too. Near-expiry and return stock needs to be pulled out of active picking locations so it does not get shipped by mistake and does not get lost behind fresh stock. SwilSort handles that segregation on the floor, so what the ledger flags as near-expiry is also physically set aside, ready to move or ready to claim.
Raising a claim your manufacturer will actually pay
Here is where recoverable value turns into rejected paperwork.
An expiry claim to the manufacturer or CFA has to carry the right detail: the batch number, the exact quantity, and the price at which you originally bought that batch. Get any of it wrong and the claim comes back short-paid or bounced, and by the time you rework it, the window may have moved on. Manufacturers also net a breakage or expiry allowance out of the settlement, commonly a small percentage of margin, so the arithmetic has to reconcile to the paisa or the credit note will not match your books.

The distributors who recover the most are not the ones with the best negotiators. They are the ones whose claim data is clean at source. When every inward was captured by batch, quantity and purchase rate at the time of purchase, the claim almost builds itself. You are not reconstructing history from memory. You are reading it back.
That is the practical value of handling purchases, returns and credit or debit notes on one core instead of three disconnected tools. SwilERP records the purchase, the batch, and the rate when the stock comes in, then carries that same detail through to the return and the claim. The credit note references the real batch and the real rate, not an estimate. When your data agrees with the manufacturer's, claims get paid.
The GST side of expired goods
Expired stock does not just leave your shelf. It leaves your tax records, and the GST treatment has to be right.
The government addressed this directly in CBIC Circular 72 of 2018, which lays out how time-expired drugs returned up the chain should be handled. In short, the return can be treated either as a fresh supply by the returning party, or dealt with through a credit note under section 34 by the original seller. Where expired goods are destroyed rather than resold, input tax credit has to be reversed under section 17(5)(h). These are compliance rules, not options, and they apply per return.
The trouble starts when the physical return and the accounting entry happen weeks apart. The stock goes back in April, the CA reconciles it in May, and in between your ledger and your godown disagree about what you actually own. Multiply that across hundreds of batches and the year-end reconciliation becomes the nightmare every distributor recognises.
Keeping the return, the credit note and the stock adjustment on one system closes that gap. When SwilERP books the expiry return, the credit note and the inventory movement happen together, against the same batch, at the same time. The books and the shelf tell the same story. Your CA thanks you in March.
Keeping the whole loop on one core
Step back and look at the full cycle: spot the near-expiry batch, sort saleable from non-saleable, act inside the return window, raise a clean claim, book the credit note, reverse the ITC, correct the stock. Seven steps. On most setups they live across a billing app, a spreadsheet, and the CA's laptop, which is exactly why value leaks between them.
Batch, expiry and FEFO are not add-on modules in SwilERP. They are core inventory behaviour, the way SWIL has built pharma software since the Unisolve and Cross days.
That is the thirty-year point, and it is worth being plain about. SWIL started in pharma. More than 10,000 legacy pharma customers ran on Unisolve and Cross before SwilERP, and across 30-plus years and 18,000-plus active businesses today, the judgement about how Indian pharma actually handles partial returns, batch claims and expiry credits got encoded into the product. A new entrant can copy an expiry alert. It is much harder to copy the decision about what happens in the six steps after the alert.
Pharma specialists like C-Square, eVital, Medica and Prompt know this counter well, and that credibility is real. The gap opens later: when the pharma group adds a cosmetics line, opens a second warehouse, or wants corporate reporting across branches, a single-vertical tool starts to strain. SwilERP gives you the pharma depth and the room to grow past pharma, on the same core.
Stop funding your own write-offs
Near-expiry stock is not a loss until you let the window close on it. Every batch you catch in time is either a saleable return that moves again or a clean claim the manufacturer pays. The medicine was always going to expire. Whether it costs you is a workflow decision, and it is one you can change.
If your expiry write-offs have grown quietly and you want to see how the batch, expiry, return and claim loop would run on one core, talk to a SWIL partner near you. They will map your actual return workflow, in your language, against how SwilERP handles it, and show you where the recovery is hiding.
More from the blog
Distribution & Supply ChainMoving from Tally to a Distribution ERP: When You've Outgrown the BooksThe honest signs a distributor has outgrown Tally, what a distribution ERP adds, and how to migrate in phases without stopping billing.
Read article
Distribution & Supply ChainTablet-Based Picking in the Warehouse: How Device Setup Drives Real-Time Fulfilment PerformanceTablet picking lifts accuracy and live stock visibility, but only if the picker hardware fits the job. Device minimums, zone flows, and fixed-station picking wi…
Read article
Distribution & Supply ChainHow to Control Outstanding Payments in a Distribution BusinessCut overdue receivables in your distribution business with credit limits, party-wise ageing and collection follow-ups in one ledger. An India-first guide.
Read article
Distribution & Supply ChainSwilPOS for Field Operations: Tablet POS, Field Sales & Delivery Fulfilment in One AppField sales on one app, delivery proof on another, billing on a third. Here is how SwilPOS runs order-taking, dispatch, and tablet POS on a single ERP truth.
Read article
Distribution & Supply ChainScheme Management for Distributors: How to Stop Losing Money on Manual Free-Goods and Slab CalculationsFree goods, slab discounts and manufacturer schemes break in manual billing. See how scheme management on one ERP core stops the margin leak.
Read article
Distribution & Supply ChainMulti-Branch Inventory Management: How to Control Stock Across Branches Without Manual TransfersControl stock across every branch with real-time visibility, audited inter-branch transfers and GST-clean paperwork. See how SwilERP and SwilSort do it.
Read article
Distribution & Supply ChainMoving from Tally to a Distribution ERP: When You've Outgrown the BooksThe honest signs a distributor has outgrown Tally, what a distribution ERP adds, and how to migrate in phases without stopping billing.
Read article
Distribution & Supply ChainTablet-Based Picking in the Warehouse: How Device Setup Drives Real-Time Fulfilment PerformanceTablet picking lifts accuracy and live stock visibility, but only if the picker hardware fits the job. Device minimums, zone flows, and fixed-station picking wi…
Read article
Distribution & Supply ChainHow to Control Outstanding Payments in a Distribution BusinessCut overdue receivables in your distribution business with credit limits, party-wise ageing and collection follow-ups in one ledger. An India-first guide.
Read article
Distribution & Supply ChainSwilPOS for Field Operations: Tablet POS, Field Sales & Delivery Fulfilment in One AppField sales on one app, delivery proof on another, billing on a third. Here is how SwilPOS runs order-taking, dispatch, and tablet POS on a single ERP truth.
Read article
Distribution & Supply ChainScheme Management for Distributors: How to Stop Losing Money on Manual Free-Goods and Slab CalculationsFree goods, slab discounts and manufacturer schemes break in manual billing. See how scheme management on one ERP core stops the margin leak.
Read article
Distribution & Supply ChainMulti-Branch Inventory Management: How to Control Stock Across Branches Without Manual TransfersControl stock across every branch with real-time visibility, audited inter-branch transfers and GST-clean paperwork. See how SwilERP and SwilSort do it.
Read article
