Data dictionary · provenance + exported fields
Every value in the dataset is traceable to a source record. This page covers the provenance model, null policy, and the dataset field catalog shipped through the REST API and snapshot exports.
Provenance model
Provenance is a side table, not a footnote. For each exported field in a record there is a corresponding provenance row recording the source identifier, source URL, source class, and effective value state. Values without commercial-use cleared provenance are excluded from the paid export path.
{
"field": "field_name",
"value": "...",
"source": "cms-sdud",
"source_class": "government | registry | manufacturer | aggregator | derived",
"source_url": "https://data.medicaid.gov/dataset/158a1baa-5506-400a-8ec3-97756f0b0536",
"effective": true,
"superseded_at": null
}Export shape
The primary entity is drugs. The export combines the canonical entity table with active provenance from 13 sources. JSON responses and the full JSON download include nested provenance. CSV, Parquet, and SQLite are explicitly curated flat extracts and do not carry nested or separate provenance tables.
Key fields
These fields are selected from the field catalog as the main dimensions for filtering, grouping, matching, and API usage:
idRxAtlas canonical drug-product id.Record identityprimary_sourceSource code for the first source that created the canonical record.Record identityndc_listDistinct NDCs observed across source records for this canonical product.Record identitysource_idFirst-seen source identifier used to seed the canonical record, such as an NDC, RxCUI, SPL set id, or application number.Record identitysource_record_urlURL for the latest source record that contributed to the canonical row.Record identityrxcuiRxNorm concept identifier when the product has an unambiguous redistributable mapped RxCUI.Classificationingredient_identifiersUNII ingredient associations with openFDA UNII substance-name synonyms and independent NDC/UNII source versions.Product formshortagesPackage-NDC-level Drug Shortages observations, including source status, availability, presentation, dates, company, related operational information, and reason fields.Shortage signalsbrand_nameMarketed brand, label title, or branded RxNorm concept name where supplied.Product namesgeneric_nameGeneric, ingredient, or normalized RxNorm clinical concept name.Product namesmanufacturer_nameLabeler, applicant, or manufacturer name from product-level source records.Product namesdosage_formDosage form for the marketed product.Product formrouteAdministration route, normalized as source text.Product formstrengthProduct strength, usually built from source ingredient strengths.Product formapplication_numberFDA application number, such as an NDA, ANDA, or BLA. Used as a soft cross-link because one approval can cover many marketed products.Regulatory statusmarketing_statusMarketing category or approval status supplied by FDA product sources.Regulatory status
Field catalog
The catalog below contains 28 documented fields from the same field model rendered on this page. Field types and descriptions come from the export contract and source registry. Nullable means unknown or not applicable; it does not mean zero, false, or inferred.
Record identity6 fields
| name | type | scope | description | sources |
|---|---|---|---|---|
| id | int | all exported records | RxAtlas canonical drug-product id. example: 184233 Provenance: Generated by the canonical product resolver and stable across snapshot exports. Caveat: Canonical ids are stable within RxAtlas snapshots but are not source-issued regulatory identifiers. | varies |
| primary_source | text | identity / matching | Source code for the first source that created the canonical record. example: openfda-ndc Provenance: Set from the source registry code that first seeded the canonical product. Caveat: The primary source is an ingestion lineage marker; later source records may provide fresher attributes. | varies |
| source_id | text | identity / matching | First-seen source identifier used to seed the canonical record, such as an NDC, RxCUI, SPL set id, or application number. example: 0002-8215 Provenance: Copied from the source identifier used during initial canonicalization. | varies |
| source_record_url | text | identity / matching | URL for the latest source record that contributed to the canonical row. example: https://open.fda.gov/apis/drug/ndc/ Provenance: Taken from the source connector or source registry homepage when record URLs are not per-row. | varies |
| ndc_list | jsonb | identity / matching | Distinct NDCs observed across source records for this canonical product. example: ["0002-8215"] Provenance: Aggregated from openFDA NDC package/product identifiers attached to the canonical product. | 1 |
| source_ids | jsonb | identity / matching | Cross-source identifiers as objects with scheme, value, and match method. Schemes include ndc, rxcui, spl_id (version-specific document), spl_set_id (stable label family), and application_number. | 6 |
Product names3 fields
| name | type | scope | description | sources |
|---|---|---|---|---|
| brand_name | text | product | Marketed brand, label title, or branded RxNorm concept name where supplied. | 4 |
| generic_name | text | product | Generic, ingredient, or normalized RxNorm clinical concept name. | 3 |
| manufacturer_name | text | product | Labeler, applicant, or manufacturer name from product-level source records. | 3 |
Product form6 fields
| name | type | scope | description | sources |
|---|---|---|---|---|
| dosage_form | text | product | Dosage form for the marketed product. | 2 |
| route | text | product | Administration route, normalized as source text. | 2 |
| strength | text | product | Product strength, usually built from source ingredient strengths. | 2 |
| product_type | text | product | openFDA NDC product type, such as human prescription drug or human OTC drug. | 1 |
| active_ingredients | jsonb | product | Array of active ingredient names accrued across contributing sources. | 1 |
| ingredient_identifiers | jsonb | product | UNII ingredient associations with openFDA UNII substance-name synonyms and independent NDC/UNII source versions. Provenance: The product-to-UNII relation comes from the openFDA NDC bulk row; names come from the separately versioned openFDA UNII bulk feed. | 2 |
Regulatory status3 fields
| name | type | scope | description | sources |
|---|---|---|---|---|
| marketing_status | text | regulatory | Marketing category or approval status supplied by FDA product sources. | 2 |
| dea_schedule | text | regulatory | DEA controlled-substance schedule when present in openFDA NDC data. | 1 |
| application_number | text | regulatory | FDA application number, such as an NDA, ANDA, or BLA. Used as a soft cross-link because one approval can cover many marketed products. | 2 |
Classification3 fields
| name | type | scope | description | sources |
|---|---|---|---|---|
| rxcui | text | classification | RxNorm concept identifier when the product has an unambiguous redistributable mapped RxCUI. Provenance: Limited to redistributable RXNORM/MTHSPL mappings. | 2 |
| atc_code | text | classification | Reserved classification field; not advertised as a key field until a redistributable ATC source populates it. | varies |
| pharm_class | jsonb | classification | Array of pharmacologic class values available from openFDA NDC records. | 1 |
Provenance2 fields
| name | type | scope | description | sources |
|---|---|---|---|---|
| _provenance | jsonb | provenance payload | Per-field active provenance entries with source, source URL, confidence, and fetched timestamp. Specialized UNII and shortage sidecars carry their own source/version fields. | 6 |
| _sources | jsonb | provenance payload | All resale-cleared sources actively contributing either ordinary field provenance or a specialized sidecar to this product. | 8 |
Shortage signals1 fields
| name | type | scope | description | sources |
|---|---|---|---|---|
| shortages | jsonb | shortage | Package-NDC-level Drug Shortages observations, including source status, availability, presentation, dates, company, related operational information, and reason fields. Caveat: An observation is an operational FDA signal, not medical advice or a guarantee of local availability. Field presence follows the source status: availability is expected for Current observations, shortage_reason is optional even for Current observations, resolved_note applies to Resolved observations, and discontinued_date applies to To Be Discontinued observations but can be source-null. Non-applicable fields remain null; upstream contact details are not collected or retained. | 1 |
Pricing2 fields
| name | type | scope | description | sources |
|---|---|---|---|---|
| nadac_per_unit | numeric | pricing | Latest National Average Drug Acquisition Cost per unit for matched NDCs. | 1 |
| pricing_unit | text | pricing | NADAC pricing unit, such as EA, ML, or GM. | 1 |
Recall signals2 fields
| name | type | scope | description | sources |
|---|---|---|---|---|
| has_recall | bool | recall | True when an openFDA drug enforcement record names the product NDC. | 1 |
| recall_reason | text | recall | Most recent recall reason text carried by an enforcement record for the product. | 1 |
NULL policy
A missing field on a record is a missing field: not a zero, not a negative assertion, and not an imputed value. Fields that do not apply to a record are explicitly NULL. Coverage gaps are visible by design.
Audit trail
Every provenance row carries the observed value, source code, source record URL, effective state, and ingest context. Snapshot manifests and source licence notes document which upstream records were cleared for commercial use.