Data Sources

Every number on this site comes from a public U.S. government source. This page credits each one, lists how often we refresh it, and explains the small set of transformations we apply on top.

CMS — National Average Drug Acquisition Cost (NADAC)

Source: Medicaid.gov — Pharmacy Pricing. The NADAC file is produced for the Centers for Medicare & Medicaid Services (CMS) by Myers and Stauffer LC, built from a voluntary survey of retail community pharmacy invoices.

  • Cadence: new weekly file, typically posted Wednesdays.
  • Coverage: retail community pharmacies in the United States; excludes specialty, mail-order, long-term care, hospital, and 340B inventory.
  • License: public domain U.S. federal government work. Free for any use; attribution required by convention but not by law.

FDA — National Drug Code (NDC) Directory

Source: FDA NDC Directory. Drug attributes (proprietary and nonproprietary names, dosage form, route, pharmacologic class, marketing category, DEA schedule) are joined onto every NDC from this directory.

  • Cadence: updated daily by the FDA; we refresh in step with our nightly ETL.
  • License: public domain U.S. federal government work.

openFDA — Drug Recalls

Source: openFDA Drug Enforcement (recalls) API. The recalls section on manufacturer pages joins this feed by firm name. Matching is done case-insensitively against the firm-name field; not every corporate alias will resolve, so absence of a recall here does not guarantee absence in the FDA record.

  • Cadence: openFDA refreshes recall records as the FDA classifies events; we pull on the same nightly cycle.
  • License: public domain; openFDA terms apply for the API endpoint itself.

Manufacturer name normalization

The same manufacturer often shows up in NADAC under multiple corporate names — label-holder changes, acquisitions, and inconsistent capitalization all contribute. We maintain a curated mapping table (currently 449 mappings) that collapses known aliases into a single canonical manufacturer name before any aggregation. The mapping is applied inside the drug_data_enriched materialized view, so every manufacturer-level aggregate on the site (drug counts, average prices, outlier flags) reflects the normalized name. If you spot an alias that should be collapsed, let us know and we'll add it to the next mapping refresh.

Editorial commitment

We don't alter, reweight, or interpret NADAC numbers. The price you see on a drug page is the latest CMS-published value rounded to the precision of the source file. Aggregates (averages, percentage changes, outlier flags) are deterministic functions of that source data, documented in full on the methodology page.