Somewhere in the processing pipeline between a pharmacy dispensing a drug and a payer adjudicating the claim, there is a conversion step that almost nobody thinks about — until it produces a result that is off by a factor of twenty-eight. The National Council for Prescription Drug Programs maintains the billing unit standard used in pharmacy claims: each (EA), milliliter (ML), or gram (GM). CMS, meanwhile, publishes pricing data using its own unit designations through the Unit of Pricing and Payment System. When these two systems disagree on what constitutes one unit of a given drug, the resulting price comparison is not wrong by a little. It is wrong categorically.
The oral contraceptive example that NCPDP has cited in its own documentation is instructive not because it is unusual but because it is quantifiable. A package billed as one unit under NCPDP conventions and priced as twenty-eight units under CMS conventions produces a twenty-eight-fold discrepancy in per-unit cost. The drug did not become twenty-eight times more expensive. The denominator changed. But downstream systems that compare prices across databases — analytics platforms, reimbursement models, cost-effectiveness analyses — will faithfully propagate the error unless someone builds a crosswalk to catch it.
The problem extends well beyond a single contraceptive example. Any drug where the NCPDP billing unit and the CMS pricing unit diverge is subject to the same class of error. Multi-dose inhalers, ophthalmic solutions, topical creams sold in tubes of varying sizes, combination packs — each presents a mapping challenge that is resolvable in principle but unresolved in practice across the majority of drug pricing databases. The fixes are manual, product-specific, and brittle. A new NDC entry, a reformulation, or a packaging change can invalidate a crosswalk that took weeks to build.
The underlying issue is architectural. NCPDP billing units were designed for pharmacy claims adjudication — they describe how a drug is counted at the point of dispensing. CMS unit types were designed for pricing and reimbursement — they describe how a drug is counted when its cost is published. These two systems were built for different purposes by different organizations at different times, and nobody with sufficient authority has mandated their alignment. The result is not a bug in any single system but a gap between systems that every user of drug pricing data must bridge independently.
Drug pricing analytics platforms attempting cross-dataset reconciliation — comparing WAC, NADAC, and ASP for the same product — inherit this unit mismatch as a first-order problem. WAC is published in the manufacturer’s chosen unit convention. NADAC is published per NCPDP billing unit. ASP uses CMS’s unit definitions. For drugs where all three conventions align — a tablet sold individually, for instance — cross-referencing is straightforward. For drugs where they diverge — solutions, suspensions, multi-dose devices, combination packs — the comparison is meaningless without normalization.
Normalizing to NCPDP billing units as a common denominator is the most frequently proposed solution and the one that introduces the fewest additional assumptions. EA, ML, and GM are physically defined quantities. A milliliter is a milliliter regardless of the dataset. But the mapping from a manufacturer’s packaging unit or CMS’s pricing unit to an NCPDP billing unit is not always unambiguous. A metered-dose inhaler containing 120 actuations of a drug at a specified concentration per actuation — is the billing unit one actuation, one canister, or one gram of the formulation? The answer depends on which pricing database you consult and which convention the publisher applied.
The temptation to solve this computationally — to build automated crosswalks that map every NDC across every pricing dataset to a common unit — underestimates the heterogeneity of the problem. Some mappings are deterministic. Others require clinical judgment about what constitutes a therapeutically meaningful unit. Still others involve ambiguities that even the data publishers cannot resolve without additional context about the product’s labeling, packaging, and intended use.
What makes this a systemic rather than a technical problem is the number of stakeholders who encounter it independently and solve it privately. Every major PBM maintains internal unit crosswalks. Every analytics vendor builds its own mapping tables. Every state Medicaid program that uses NADAC for reimbursement has confronted unit discrepancies with its claims adjudication system. Each of these solutions is proprietary, undisclosed, and potentially inconsistent with every other solution. The industry has collectively spent enormous effort solving the same problem thousands of times, in thousands of slightly different ways, with no mechanism for sharing the results.
A federal unit standard — a single, mandatory convention for publishing drug pricing data that all federal datasets would adopt — would eliminate the root cause. CMS could mandate that all pricing benchmarks it publishes use NCPDP billing units, aligning NADAC, ASP, AMP, and FUL on a common denominator. Manufacturers could be required to report WAC in the same units. The technical lift would be substantial but finite. The political lift would be larger, because unit conventions are not politically salient, and regulators allocate attention to problems that generate headlines. A twenty-eight-fold pricing error on oral contraceptives, however consequential in aggregate, does not compete for regulatory bandwidth with drug price negotiation or insulin caps.
So the problem persists, reproduced daily in pharmacy claims, pricing databases, and analytical models across the country. Every cross-dataset comparison carries an implicit unit assumption. Every assumption carries the possibility of a factor-of-twenty-eight error. The infrastructure beneath drug pricing is not broken in a dramatic way. It is broken in a quiet, pervasive, compounding way — the kind that nobody fixes because everybody has learned to work around it.













