AWRA OpsHub Search

Short-Dated Is Not Expired, and Only One of Them Is Still an Asset

A batch with four months left is stock you can still sell if somebody moves it. A batch with four days left is a write-off that has not been declared. Both count as one unit, both sit in the same valuation, and the only thing separating them is a date nobody is reporting on.

Pharmacy & Pharmaceutical Distribution Washingtone Aura 11 min read

A pharmacy counts eleven boxes of a fast-moving antibiotic and writes eleven in the column. The system agrees, the shelf agrees, the valuation agrees. Everybody is right and the number is still misleading, because four of those boxes expire in nine days and seven of them expire in fourteen months. Those are not eleven of the same thing. They are seven units of stock and four units of a loss that has not been declared yet.

This is the first post in a category about pharmacy operations, and it starts here because everything else in the category depends on it. Expiry is not a warning that fires at the end. It is a property that changes what a unit is for months beforehand, and a stock system that treats it as a flag rather than as a dimension will let you carry a write-off on your balance sheet and call it inventory.

Three different quantities wearing the same number

Take any line in a pharmacy and the on-hand figure is really three quantities added together, and only the first of them is unambiguously an asset.

What it is What you can do with it What it is worth
Stock with a long horizon Sell it in the ordinary course, at the ordinary price, through the ordinary channel. Its cost. This is the part everybody means when they say inventory.
Short-dated stock Sell it, but only if you do something — move it to a busier branch, discount it, push it to a customer who turns it over faster. It costs effort and usually margin. Somewhere between its cost and nothing, and which end depends on whether anybody acts this month.
Expired stock Nothing. It is waiting to be counted, documented and destroyed, and in most jurisdictions that destruction is itself a procedure with paperwork. Nothing. Worse than nothing, if disposal has a cost.

The second row is the interesting one, and it is the row that has no home in most systems. Expired stock is at least visible — somebody eventually finds it. Short-dated stock is invisible precisely because it is still good. It counts, it values, it satisfies a stock check, and it quietly walks toward the third row at a rate nobody is measuring.

Expired stock is a loss you have taken. Short-dated stock is a loss you can still avoid, and it is the only one of the two that is worth a report.

The arithmetic, with round numbers

A worked example rather than a measurement — the figures below are round numbers chosen so you can check them, not an observation of any real pharmacy. Say you hold 120,000 shillings at cost across one category, and you split it by how long each batch has left.

Time remaining Value at cost Share of the category
0–30 days 14,000 11.7%
31–60 days 20,000 16.7%
61–180 days 38,000 31.7%
Over 180 days 48,000 40.0%

The first two bands total 34,000, which is 28.3% of the category. That is the number worth putting in front of somebody, and note what it is not: it is not a write-off. Nothing in those two bands has expired. It is the portion of the category whose outcome is still undecided and will be decided by whether anybody does something in the next eight weeks.

Run the same split monthly and the useful signal is not the level, it is the direction. A pharmacy whose 0–60 day share is flat at 28% is turning short-dated stock over about as fast as it creates it. One whose share climbs from 18 to 24 to 31 over a quarter is accumulating, and the accumulation will surface as a write-off two quarters later — by which point the report that could have prevented it is describing history.

The question that separates a stock system from a spreadsheet

Ask any vendor to show you the value of stock expiring in the next sixty days, by category, as of today. Not a list of expiring batches — a valued figure you could put in a board pack. If producing it involves exporting batches and summing them somewhere else, then expiry is a field in that product rather than a dimension of it, and every decision above is being made by hand.

What is built here, stated exactly

We use our own product as the worked example in every post in this corpus, because a piece about expiry that only assessed other vendors would be worth nothing.

  • A batch is a real record, not a text field. Batch and expiry are captured at receipt and carried on the stock position, so a single item can hold several batches at several dates in several locations and each is countable on its own.
  • Expiry horizon reporting exists. Stock can be reported by how long it has left rather than only as a total, which is the report the section above is describing.
  • Expiry alerting is a real background job, so short-dated stock can reach somebody without anybody remembering to look.
  • Batches can be held. A batch can sit at a quarantine location and be released deliberately rather than by convention — which is what you want the moment a recall notice arrives or a delivery looks wrong.
  • FEFO is proposed at the point of issue, which is the subject of the next post in this category and is the only mechanism that stops the arithmetic above being undone at the counter.
  • Stock can go back to the supplier as a recorded return. A return is raised against the distributor, optionally against the purchase order it came in on and never for more than was received; approving it (by a second person, if you switch that on) takes the stock out, held, expired and recalled stock included, since that is usually why it is going back, and raises a debit note that lowers what you owe, to be set against their next invoice or refunded. Return quantities are whole units for now, even where the item is stocked by weight or volume; decimal returns are being built.

And what is not, which matters more

Two absences, and neither is hidden further down a page somewhere.

  • Nothing writes stock off by itself. An expired batch does not disappear, does not provision, and does not post a journal entry. It sits there until a person makes an adjustment with a reason attached. That is a deliberate design — an automatic write-off is a system deciding something a pharmacist should decide — but it means the report tells you and you act, rather than the system acting.
  • The reorder point is derived nightly unless you type it, and the item says which. A scheduled job recomputes an Automatic figure from thirty days of recorded usage and till sales, a lead time and a safety buffer; a figure somebody typed is marked Manual and left alone. The third post in this category is about why that distinction matters, because the reorder point is the single most consequential setting in a pharmacy.

Scope on expiry, stated plainly

Running in the product today

  • Batch and expiry captured at receipt, held as a first-class record rather than a note on a movement.
  • Stock reported by expiry horizon, valued, so short-dated stock can be sized rather than listed.
  • Expiry alerting as a scheduled job, so the report reaches a person without anybody remembering to run it.
  • Quarantine holds, so a batch can be frozen and released as a deliberate act.
  • FEFO proposed at issue, so the sequence is suggested at the moment it is decided.
  • Returns to supplier with a debit note, with an optional second approver, taking held and expired stock out and reducing what you owe the distributor.
  • A minimum and maximum per warehouse, so a dispensary and a main store can each hold their own level for Reorder and stock balancing.

More we can add — on the roadmap, and commissionable now

  • An automatic write-off, provision or expiry-driven journal posting. An expired batch waits for a person and an adjustment with a reason.
  • A batch named on the supplier return, and a return window per supplier, so the short-dated batch you agreed to send back is the one that leaves the record, and the last day the distributor will take it is a date the system holds rather than a term somebody remembers.
  • Par levels per bin and low-stock alerts per consumption point: a dispensary, a ward store and a back room kept as warehouses can each carry their own minimum and maximum today, read by Reorder and stock balancing; a level on a bin inside a warehouse, and an alert that reads each point's own minimum, are the pieces to add.

What we would decline, and would rather say now

  • We will not decide that stock should be destroyed. The system will show you a batch is expired and hold it out of issue. Whether it is quarantined, returned, destroyed or reported to a regulator is a pharmacist's judgement with a pharmacist's licence behind it, and software that made that call would be making it without the licence.
  • We will not represent a valuation as a provision. The horizon report values stock at cost. It is not an impairment, it is not an accounting estimate, and presenting it to an auditor as one would be your finance team's decision rather than a number we produced for that purpose.

The three items are work rather than positions, and each is commissionable now on a written specification, a timeline and a price agreed before any money moves. The evidence that this is a real offer rather than a sales line is Kenya, where the eTIMS transmission and the maintained statutory payroll engine both exist because clients needed them and paid for them. We will not print a date on a blog post.

The split matters when you are shortlisting. The measurement side is genuinely strong and the action side is yours — the product will tell you, accurately and on a schedule, that 28% of a category is inside sixty days. What happens next is a person deciding, and no report changes that.

More we can add to your workspace

Anything above that you need, we can build for you

Everything listed above as something we can add describes what ships in the standard product today — it is a starting point, not a limit on what AWRA OpsHub can do for your organisation. Kenya's eTIMS integration and its maintained payroll engine are both in the product because clients needed them and commissioned them; neither appeared by itself, and the same door is open for whatever you just read about. One qualification so this is worth what it claims: a small number of things on this blog we deliberately leave to a specialist rather than build — a statutory ledger we will not sign our name to, a rule that would decide a tax question for you, a clinical or member-funds record that belongs in a regulated system — and where that is true the post says so in those words. Everything else is a scope, a timeline and a price.

The operational work, which is what most commissions actually are

An extra approval stage in a chain that does not match the standard one, a custom field set on employees or assets that only your sector needs, an expiry that has to block an order rather than send an email, a report your board asks for in a shape nothing produces, or a scanner or weighbridge feeding the goods-in door. These are the commissions we are asked for most often and the smallest ones we quote — and unlike a revenue-authority pipeline, none of them waits on a regulator.

The module-shaped additions, which are the ones readers ask for most often

A price list with real discount authority, a customer-facing quotation that expires, a bill of materials or recipe costing, a staff advance that is issued, acquitted and chased, a member or unit ledger, a matching rule that holds a payment. Each of these is a build rather than a setting, and each has been quoted before — a bigger piece of work than a custom field, with a written spec and a date instead of a roadmap slide.

The report, document or pack nothing currently produces

The board pack in the shape your board actually asks for, a donor or funder layout, an invoice or receipt template carrying what your regulator or your customer expects, a dataset the report builder cannot reach yet. Usually the fastest thing on this list to deliver, because the data is already in the system.

Systems, rails and hardware you already run

The accounting package, CRM, online store, core banking or custom database you intend to keep — connected through our API so a fact is entered once and appears everywhere it is needed. Plus the physical edge: a scanner, a scale, a weighbridge or a till peripheral feeding the door it belongs to.

How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. Nothing here waits on a regulator or a published specification, which is why operational builds are the ones we quote fastest. Tell us the requirement that would otherwise rule us out — that is a better first conversation than a demo.

Tell us what your operation needs

Where to start, if this is the first time anybody has looked

  1. Split one category, once

    Take your largest category by value and split it into the four bands above. It is a morning's work by hand and you only ever have to do it manually once — the point is to see the shape before you decide whether it is worth automating.

  2. Run it again the following month

    The level tells you where you are. The direction tells you whether it is getting worse, and only the second one supports a decision. One reading is a fact; two readings are a trend.

  3. Fix the sequence before the reporting

    If issues are not following expiry order, the bands will keep refilling no matter how good the report is. Which is the next post in this category, and the reason it comes second rather than fifth.

None of this is exotic. It is one dimension applied to a number you already have, and the reason it goes unmeasured is not difficulty — it is that the figure looks fine right up until the month it does not.

Bring one category and one expiry report

We will split it into bands with you and you can see whether the shape is worth acting on. If the answer is that your current system already tells you this, we will say so.

Talk to us about pharmacy operations

Share this article

LinkedIn X WhatsApp

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center