Methodology
Principles
- Government sources only. CMS, FDA, and state Medicaid agency (Washington HCA) files are downloaded directly from the publisher; nothing is copied from commercial or third-party sites.
- No inferred codes. A NDC is linked to a HCPCS code only when a CMS NDC–HCPCS crosswalk row says so. Similar names, ingredients, or NDCs never create a link, and no language model is used to map codes.
- Provenance everywhere. Each data section names its source file, publication and effective dates, import time, and a direct link.
- Gaps are shown, not filled. Missing values read “No authoritative public data was located for this field.”
- Conflicts are shown. Duplicate FDA records and CMS revisions of a posted quarter are displayed rather than silently resolved.
Sources and refresh schedule
- CMS HCPCS Level II quarterly files — every quarter CMS still posts (Q1 2023 onward); checked daily, imported when CMS posts a new quarter or re-posts one.
- CMS Medicare Part B drug payment limit files and NDC–HCPCS crosswalks (ASP, OPPS, AWP, PrEP; NOC in 2025) — every quarter from Q1 2021 onward, including CMS revisions of earlier quarters.
- FDA NDC Directory and its excluded-listings file — published daily; imported weekly by default, and whenever a new CMS crosswalk arrives.
- FDA Purple Book monthly data — imported when a new month is posted.
- CMS “Drug Products in the Medicaid Drug Rebate Program” (data.medicaid.gov) — the newest quarter, for the NDCs CodeRx indexes: unit type, units per package, COD status, and termination dates.
- CMS NCCI Medically Unlikely Edit tables (practitioner, outpatient hospital, DME supplier) — the current quarter, imported when CMS posts a new one. Only HCPCS Level II rows are kept; CPT rows are dropped.
Every file is checked for HTTP success, ZIP structure and per-entry CRC-32, expected contents, and plausible record counts, then loaded inside a single database transaction. A failure rolls back completely and is recorded. Re-running an import of an unchanged file is a no-op (matched by SHA-256). See the full log on Data sources.
CodeRx indexes FDA-listed prescription drugs, plasma derivatives, vaccines, and cellular therapies given by clinician-administered routes, plus every product whose NDC appears in a CMS NDC–HCPCS crosswalk. Other products (for example, most oral and topical drugs) are outside this index.
Normalization
- NDCs. FDA 10-digit NDCs (4-4-2, 5-3-2, 5-4-1) are converted to the 11-digit 5-4-2 form by padding the short segment with a leading zero. An unhyphenated 10-digit input is ambiguous, so search tries all three possible 11-digit forms and says so.
- HCPCS codes. Case-insensitive; validated as one letter plus four digits. CPT (AMA) and CDT (ADA) content is excluded from storage and display.
- Text. Lowercased, accents and trademark symbols removed, punctuation collapsed. Words after “excludes”/“not” in descriptors are not indexed, so “biosimilar” does not match codes that exclude biosimilars.
- Manufacturers. Labeler names are merged only when they differ by punctuation, case, or a trailing legal suffix (Inc, LLC, Corp …).
- Drugs. FDA products are grouped by proprietary name (with suffix) plus nonproprietary name; a generic marketed by many labelers is one drug with many packages.
Relationships
- Official CMS NDC → HCPCS: CMS crosswalk rows, aggregated across quarters with first and last quarter seen.
- Derived calculation Drug → HCPCS: derived from those NDC-level rows; each link states how many of the drug’s packages CMS crosswalks to the code.
- Derived calculation Drug → home infusion per diem S-code: CMS publishes no crosswalk, so the therapy category (antibiotic, chemotherapy, immune globulin, TPN …) is matched from the FDA Established Pharmacologic Class and route, plus the CMS clotting-factor flag for anti-hemophilic agents — never from the drug name. Drugs with no matching class get the not-otherwise-classified per diem for their route; drugs whose FDA routes are all non-infused (oral, topical, intravitreal …) get none. A code is marked as fitting the route only when exactly one code fits. In Reimbursement, each S-code’s Medicare status and pricing indicator come verbatim from the CMS HCPCS file; CMS publishes no national per diem rate. Washington Apple Health is checked against HCA’s Home Infusion Therapy/Parenteral Nutrition fee schedule: a per diem code absent from it is reported as not separately paid, and the schedule’s own supply, pump, and nutrition fees are shown instead.
- Official FDA Biosimilar → reference: FDA Purple Book license type and reference product, matched to NDC products by BLA number.
- Official CMS HCPCS cross-references: the CMS cross-reference field, shown verbatim; not presented as a guaranteed replacement.
- Manually reviewed Manual reviews: supported through a reviewed file that requires evidence, reviewer, and date. None are published yet.
- NOC drugs: the CMS NOC code list flags NOC/NOS codes; the 2025 CMS NOC crosswalk identifies NDCs billed under a NOC code without naming which one. CodeRx never assigns a specific NOC code.
Reimbursement
Medicare Part B payment limits are shown per HCPCS billing unit exactly as published (three decimals), with the effective quarter, the ASP data quarter CMS cites, co-insurance percentage, and CMS notes. The “methodology” label is read only from the file’s own columns and notes (for example, vaccine AWP percentage or a CMS note about the biosimilar add-on). When CMS re-posts a quarter with different values, the earlier value is shown as a revision.
Hospital outpatient (OPPS) rates come from CMS Addendum A (payment by APC) and Addendum B (status indicator and rate per HCPCS code) for the current quarter. CMS distributes both under its AMA CPT license page; CodeRx keeps only HCPCS Level II rows and APCs with CMS group titles, never CPT codes or descriptors. They feed the site-of-care tool, which applies the hospital wage index you enter to 60% of each APC rate.
Not included: commercial payer rates, AWP, WAC, and 340B pricing.
Part A, Part B, or Part D
- Part B and Part D are not interchangeable. A drug is not a Part D drug when Part A or B would pay for it as prescribed and dispensed or administered, so the Part B vs Part D tool decides the benefit from the facts first and compares dollars only between pathways that are lawful for the case.
- Rules come from the Social Security Act, the Part D Manual (Chapter 6), the Medicare Benefit Policy Manual, and CMS's coverage table. Each row of the tool links its source.
- Drug-specific facts come from CMS data: Noridian JF's self-administered drug list for Washington, the DME MAC policy code lists, OPPS status, and the Drugs Not Payable Under Part B file.
- Part D coverage is read from CMS's quarterly formulary file for Washington plans. CMS lists one proxy NDC per RxNorm concept, so drugs are linked by exact NDC, product NDC, and RxCUI, and never by name. “Not listed” means CMS's file does not list the drug; it does not mean a plan would deny it.
- The Part D benchmark is each plan's average unit cost at in-area retail pharmacies, not a home infusion contract rate. It is converted to HCPCS units only for dosage forms confirmed against real data and only when the result is within 0.25 to 4 times the Part B limit. Otherwise the raw cost is shown and nothing is compared.
Billing units and the calculator
The billing unit comes from the CMS “HCPCS Code Dosage” column when available (official); otherwise it is read from the HCPCS long descriptor (derived). Billable units per package come from the CMS crosswalk. The calculator reports units as dose ÷ unit rounded up to a whole unit; for single-dose containers, units attributable to the discarded amount are ceil(amount opened ÷ unit) − administered units. Dollar figures are labeled derived arithmetic. Modifiers are discussed only as education.
Container facts (single- or multi-dose, milliliters per vial, powder) are read from the words of the FDA package description; when the text does not say, the field stays unknown. Vial amounts are the CMS billable units per item × the billing unit. The vial optimizer searches whole-vial combinations for the least unused drug; dose-rounding options are whole-vial doses within the threshold you set and are decision support only. The claim-line view places the NDC as N4 + 11 digits + unit qualifier + quantity; milliliter quantities are split in proportion to drug administered and discarded, and other payer conventions must be entered by hand.
The vial scanner reads the GS1 barcode (GTIN, expiry, lot, serial); a US drug GTIN embeds the 10-digit NDC, whose segment layout is resolved by looking up all three 11-digit forms. The claim-line NDC qualifier is taken from the Medicaid unit type when the NDC is in the rebate file (ML→ML, GM→GR, AHF→F2, EA/TAB/CAP/SUP/TDP→UN), otherwise suggested from the FDA package text.
The MUE check compares units with the published CMS MUE value for each setting and shows the adjudication indicator; it is not a payment determination, and other payers set their own limits. The margin analyzer multiplies the payment limit by the billable units, applies the coinsurance percentage in the CMS file to the patient share, and reduces Medicare’s share by the sequestration percentage you enter; the costs you enter stay in your browser.
Search ranking
- Exact HCPCS code or NDC (any format)
- Exact brand or generic name
- Exact alias — CMS crosswalk drug names, Purple Book proper names, or a clinical abbreviation expansion
- Prefix match
- Active-ingredient or descriptor-word match
- Manufacturer match
- All words matched across fields
- Typo-tolerant trigram match (used only when nothing matches more directly)
Inactive and historical records sort after active ones at the same relevance, except exact code matches. When two or more drugs tie at the top, the results page flags the query as ambiguous.
Abbreviations expanded at query time: IVIG → immune globulin; SCIG → immune globulin; 5FU → fluorouracil; 5 FU → fluorouracil; MTX → methotrexate; EPO → epoetin; TPA → alteplase; GCSF → filgrastim; G CSF → filgrastim; TXA → tranexamic acid; VANCO → vancomycin; B12 → cyanocobalamin; VITAMIN B12 → cyanocobalamin; ATG → anti thymocyte globulin; RITUX → rituximab; PEGFIL → pegfilgrastim; ZOLEDRONIC → zoledronic acid; HCG → chorionic gonadotropin; DHE → dihydroergotamine; NAC → acetylcysteine.
Status badges
- Official CMS Value published by CMS, shown as published.
- Official FDA Value published by FDA, shown as published.
- Official state Medicaid Value published by a state Medicaid agency (Washington HCA), shown as published.
- Hospital price transparency file From a hospital's federally required price transparency file (45 CFR 180.50), shown as anonymized ranges without payer or plan names.
- Derived calculation Calculated by CodeRx from official values; the formula is shown.
- Manually reviewed Relationship approved by a named reviewer with cited evidence.
- Historical No longer in the most recent source file.
- Verification needed Incomplete or conflicting; confirm with the publisher.
Limitations
- Coverage is not implied by the presence of a code, crosswalk row, or payment limit.
- CMS crosswalks are not comprehensive; a missing NDC does not mean it cannot be billed.
- FDA directory content is labeler-submitted and not verified by FDA.
- History begins with the earliest quarter imported (Q1 2025).
- Payer-specific rules are out of scope, and being on a CMS list does not by itself meet coverage criteria.
Assumptions
- A HCPCS code is “active” when it has no termination date or the termination date is today or later; “today” is the calendar date in U.S. Eastern time.
- An NDC package is “active” when it is in the active FDA directory and its marketing end date has not passed.
- Quarterly CMS files apply to the quarter named in the file (and stated in its header when present).
- “Brand” means the product has a proprietary name different from its nonproprietary name; product class comes from FDA marketing category and Purple Book license type.
Disclaimer. This application provides informational coding and reimbursement reference data. It does not constitute legal, clinical, coding, or billing advice. Codes, payment amounts, payer rules, and coverage policies can change. Verify all information with current CMS publications, the applicable payer, and your organization’s compliance policies before submitting a claim. CodeRx is not affiliated with or endorsed by CMS, FDA, Medicare, or any payer.