Schedule H1 drugs and expiry: What CDSCO doesn't tell you
The compliance trap most pharmacies fall into with controlled substances - and how batch-level tracking saves you from notices.
The compliance trap is not what you think it is
Every pharmacist in India knows Schedule H1 drugs require a separate register. That is not the trap. The trap is the intersection of H1 register requirements, batch-level expiry tracking, and the specific way Drug Inspectors cross-reference these during inspections. Most pharmacies maintain an H1 register that satisfies the letter of Rule 65(11) while completely failing to prevent the expiry-related violations that actually trigger penalties.
Schedule H1 was introduced in 2013 to tighten control over certain prescription drugs — primarily antibiotics like Cefixime, Azithromycin, and Ofloxacin, plus some anti-infectives and hormonal preparations. The practical requirement is that every sale of an H1 drug must be recorded with patient name, doctor name, drug details including batch number and expiry date, and quantity dispensed.
What CDSCO does not spell out in the regulation — but what Drug Inspectors absolutely check — is the reconciliation between your H1 register, your physical stock, and your purchase invoices. And this is where pharmacies fall apart.
Not sure how much you're losing to expiry?
Run a free inventory waste audit — find your bleeding SKUs in 60 seconds. No sign-up required.
Run free auditHow the reconciliation trap works
Inspector walks in. Picks Azithromycin 500mg from your H1 shelf. Notes the batch number: AZ2405B, expiry December 2026. Pulls your H1 register. Counts total Azithromycin 500mg dispensed in the past three months from this batch. Cross-references with the purchase invoice for this batch. Calculates how many should remain.
If the number on the shelf does not match the number the arithmetic predicts, you have a discrepancy. Discrepancies in H1 drugs are treated significantly more seriously than discrepancies in regular Schedule H drugs. The assumption — sometimes stated, sometimes implied — is that unreconciled H1 stock may have been dispensed without prescription.
Here is where expiry tracking intersects. If you have multiple batches of the same H1 drug on your shelf with different expiry dates, and your H1 register does not consistently record which batch was dispensed for each transaction, the reconciliation becomes impossible. You cannot prove FEFO compliance. You cannot prove that the shorter-dated batch moved first. The inspector sees mixed batches, inconsistent register entries, and a stock count that does not add up. That is enough for a notice.
The register gap most pharmacies have
I have looked at H1 registers in pharmacies across Tamil Nadu and Karnataka. The pattern is remarkably consistent. The register has columns for date, patient name, prescriber, drug name, quantity, batch number, and expiry. The pharmacist fills in all columns during billing.
The batch number entered is almost always the batch currently in the billing system — which is the batch entered during the most recent goods receipt, not necessarily the batch physically dispensed. If the pharmacy received batch AZ2405B last week but still has 30 strips of batch AZ2312A (received two months earlier) on the shelf, the pharmacist picking from the front of the shelf might physically dispense AZ2312A while the register records AZ2405B because that is what the billing system defaults to.
This is not fraud. This is a system design failure. The billing software does not know which physical batch was picked. It records the default batch. The register, which derives from the bill, inherits the error.
When the inspector reconciles, the numbers for AZ2405B show more dispensed (per register) than purchased (per invoice). The numbers for AZ2312A show less dispensed than expected, but that batch may have expired or been returned — there is no clean trail. The result is a reconciliation failure that looks, to the inspector, like uncontrolled dispensing of a scheduled substance.
What batch-level FEFO actually solves here
The fix is not better register-keeping discipline. The fix is ensuring that the billing system knows which batch was dispensed, defaulting to the earliest-expiring batch, and recording the actual batch — not the most recently received one — in every transaction.
When the billing system tracks inventory at the batch level and defaults to FEFO, three things change:
The H1 register automatically reflects the correct batch. Because billing deducts from the earliest-expiring batch, the register entry matches the physical dispensing sequence. No more phantom discrepancies.
Stock reconciliation becomes trivially easy. For each batch: purchased X, dispensed Y (per register), returned Z, remaining should be X-Y-Z. Physical count matches. Inspector satisfied.
Expiry alerts prevent H1 drugs from expiring on shelf. An H1 drug found expired on your shelf is a significantly worse inspection outcome than a regular Schedule H drug. The regulatory sensitivity around H1 means that inspectors view expired H1 stock as evidence of poor controlled-substance management, even if the drug's scheduled status has nothing to do with its expiry.
The specific H1 inspection sequence
Based on conversations with pharmacy owners who have been inspected:
The inspector selects 3-5 H1 drugs from the shelf. For each, they record the batch number and check remaining expiry. They then compare against the H1 register for the most recent 30-60 days. The comparison takes about 20 minutes per drug.
They are looking for:
- Missing entries. Bills for H1 drugs that do not have corresponding register entries (most common violation)
- Batch mismatches. Register shows batch A dispensed, but physical stock of batch A has not decreased proportionally
- Expired stock. Any H1 drug past its expiry date on the shelf is an automatic escalation
- Multiple open batches. More than 2 open batches of the same H1 drug suggests poor FEFO compliance (why would you open a third batch if the first two are not depleted?)
That last point is subtle but important. Having three open batches of the same H1 drug — three different batches with strips dispensed from each — is a red flag. In a FEFO-compliant pharmacy, you should fully deplete batch 1 before opening batch 2, and fully deplete batch 2 before opening batch 3. Multiple open batches indicate that new stock was placed in the dispensing position before old stock was exhausted, which is the physical evidence of FIFO overriding FEFO.
The cost of getting this wrong
First offence for H1 register violations: ₹25,000-50,000 penalty plus show-cause proceedings. For expired H1 stock specifically, the penalty can reach ₹1,00,000 for repeat offences, and the Drug Control office may impose conditions on your licence renewal.
The indirect cost is worse. An H1 compliance flag on your record means your next licence renewal is not automatic. It becomes an investigation. The renewal inspector specifically audits your H1 processes, and any residual issues can delay renewal by months. During the delay, you are technically operating on an expired licence, which is its own violation.
For pharmacies near hospitals — where H1 prescriptions represent 15-25% of daily bills — the compliance risk is concentrated in exactly the products that drive a significant portion of revenue. You cannot simply avoid stocking H1 drugs without losing substantial business.
What this looks like in practice with batch-level tracking
With ShelfLifePro, every goods receipt captures batch number and expiry for each item, including H1 drugs. When a pharmacist bills an H1 drug, the system automatically selects the earliest-expiring batch and deducts from that specific batch's inventory. The H1 register entry inherits the correct batch number because the billing system knows which batch was actually depleted.
At month end, generating a reconciliation report for any H1 drug takes 30 seconds: batch-wise purchases, batch-wise dispensing, batch-wise returns, expected remaining, actual remaining. If the inspector asks for this during inspection, you have it immediately rather than spending three hours reconstructing it from paper records.
We are transparent about our stage — our production client is Dharmik Supermarket in Coimbatore, a grocery business. But the batch-level tracking mechanics that Kavitha uses for perishable FMCG are architecturally identical to what pharmacy H1 compliance demands. The principle is the same: every unit in, every unit tracked, every unit out, fully reconciled.
The Schedule H1 regulation tells you what to record. It does not tell you how to ensure what you record is accurate. That gap is where pharmacies accumulate violations they do not even know they have until the inspector arrives.
See what batch-level tracking actually looks like
ShelfLifePro tracks expiry by batch, automates FEFO rotation, and sends markdown alerts before stock expires. 14-day free trial, no credit card required.