May 26, 2026 · By the RxRescue Team

NDC package codes — what the last digits tell you about package size

Pharmacy staff scan dozens of NDCs every shift. Almost nobody reads them. The pharmacy management system takes the number, looks up the drug, and the rest of the workflow proceeds without anybody glancing at the digits. That is fine ninety percent of the time. The ten percent it is not fine costs pharmacies real money in mis-counts, billing-unit mismatches, and audit findings that have a frustrating explanation: the package code was always right there on the bottle, and nobody was looking at it.

This post is about reading the NDC like an inventory record instead of a barcode, and why one of its segments — the one most systems strip — is the one that ties the digital record back to the physical container on your shelf.

What an NDC is actually telling you

The National Drug Code is a ten-digit identifier the FDA assigns to every drug product in the U.S. market. It has three segments separated by hyphens, and each segment answers a different question:

The first two segments together identify the drug. The third segment identifies the container. That third segment is the one that matters for inventory work, and it is the one most pharmacy management systems either truncate, normalize away, or never store.

The 10-digit versus 11-digit problem

Before the package code can do useful work, it has to survive a format conversion. The FDA prints NDCs in a ten-digit format on the bottle. CMS — the body that handles Medicare and most insurance billing — requires eleven digits. Those two formats are not interchangeable.

The eleven-digit format pads one segment with a leading zero. Which segment depends on the original layout: a 4-4-2 NDC (four-digit labeler, four-digit product, two-digit package) gets a zero added to the labeler — written 5-4-2. A 5-3-2 NDC gets a zero added to the product code — written 5-4-2. A 5-4-1 NDC gets a zero added to the package code — written 5-4-2.

The net effect: every CMS-formatted NDC ends up as 5-4-2, regardless of how it started. The conversion is mechanical, but it is also lossy if you reverse it the wrong way. A team that copies the eleven-digit billing NDC into the inventory system and assumes it matches the ten-digit number printed on the bottle will introduce mismatch errors that compound across the year. The fix is to store both formats explicitly, or to standardize on one and convert at the boundary.

This matters most at intake. If the bottle in your hand is labeled with a ten-digit NDC and your system stores an eleven-digit version that the system padded automatically, a scan that should match an existing inventory record may instead create a phantom new one. The two records eventually get merged or deleted, but the time in between is when cycle counts disagree with the system and nobody can explain why.

Where the package code matters in practice

Once the format is settled, the package-code segment earns its keep in four places.

Cycle counting. Two bottles with the same labeler and product code but different package codes are different inventory items. They have different barcodes, ship from the wholesaler as separate line items, and need separate counts. A pharmacy that treats them as one drug ends up with rolled-up counts that look right on paper and feel wrong in practice. Reading the package code at intake keeps each container its own row.

Billing-unit reconciliation. The reimbursement amount depends on the billing unit — usually each, milliliter, or gram — and the package code tells you which one applies to the bottle in your hand. A 100-count bottle of a tablet bills per each. The same drug repackaged as a unit-dose strip might bill the same way or might bill per unit-dose, depending on the formulation and the plan. When the package code is missing from the inventory record, every reconciliation requires re-checking the original packaging.

Repackaged stock. Repackagers — including hospital pharmacies that repackage in-house — get their own labeler codes. The same drug, same strength, repackaged into a smaller container gets a fully different NDC. The product code may or may not stay the same; the package code definitely will not. A pharmacy that takes in repackaged stock and stores it under the manufacturer's NDC will have audit records that do not match what is on the shelf.

Receiving discrepancies. When the wholesaler ships a different package size than the one you ordered — same drug, same strength, different container — the package code is the first place that change shows up. A receiving workflow that scans the package code at intake catches the substitution while the invoice is still open. A workflow that does not catches it weeks later when the count is off and the invoice has already been paid.

How to make the package code visible in your workflow

The package code is not a piece of information you need staff to memorize. It is a piece of information your inventory needs to keep.

Three small changes carry most of the value:

Capture the full NDC at intake, including package code. A scan at receiving should record all three segments, not just enough to match a product. If the system normalizes to eleven digits, keep the original ten-digit string in a sibling field so the bottle's printed label can be matched back to its inventory row by either format.

Surface package size on count screens. When a tech opens a count for a particular drug and sees two rows with the same product but different package codes, that is the system doing its job — not a bug. The remedy is showing both, not collapsing them into one.

Treat repackaged stock as a separate SKU. Whether the repackager is in-house or external, the new NDC is a different inventory item. Receiving it under the original drug's record breaks both audit traceability and reorder logic.

The shift

The package code is the part of the NDC that ties the digital record to the physical container. A pharmacy that reads it at intake, stores it explicitly, and surfaces it on count screens runs cleaner inventory, reconciles billing faster, and catches receiving discrepancies before they become accounting work. A pharmacy that strips it is doing the same work twice every year — once at the bottle, once at the audit, with the discrepancies showing up in between.

RxRescue captures the full NDC at intake, including package size, and uses an FDA openFDA NDC-directory lookup to enrich what the bottle's barcode says with the FDA's authoritative record — package code included. Counts, audits, and intake all see the same package-level detail. See how it fits with your existing pharmacy management system on the where RxRescue fits page, or start a 30-day free trial.

Related

← Back to all posts