On Snowflake Marketplace. Free during launch.
The pharma reference tables your team keeps rebuilding, already joined.
FDA NDC, Orange Book, Medicaid utilization, 340B OPAIS and Open Payments on one set of keys, delivered inside your Snowflake account and refreshed every Sunday with a row-level change log.
No files, no FTP, no parsing. The tables appear in your account and stay current.
Five federal sources. One set of keys.
Every table shares the same identifiers: NDC-11, application number, labeler code, NPI and 340B ID. Join across sources without a mapping project.
| Source | What we do with it | Grain | Agency cadence |
|---|---|---|---|
| FDA NDC DirectoryFinished, unfinished and excluded files | One row per 11-digit NDC with product, labeler, dosage form, marketing dates and a discontinuation flag. A crosswalk maps every 10-digit format you will meet in claims, 867/852 feeds and chargebacks to the 11-digit key. | NDC-11 | Daily. We pick up the latest file each week. |
| FDA Orange BookProducts, patents, exclusivity | Rolled up to one row per NDA or ANDA with first approval, last unexpired patent, last exclusivity and an estimated loss-of-exclusivity date, tied back to the NDCs on the market today. | Application | Monthly. |
| Medicaid State Drug UtilizationCMS SDUD, 2023 to current quarter | Fee-for-service and managed-care utilization by state, NDC-11, year and quarter. Measures are typed, suppressed rows are flagged, and a single quarter key makes range filters trivial. | NDC-11, state, quarter | Quarterly, with restatements. |
| HRSA 340B OPAISCovered entities and contract pharmacies | Covered entities, contract pharmacy arrangements with begin and end dates and an active flag, ship-to sites, NPIs and Medicaid billing numbers. Snapshotted weekly, so every add and termination lands in the change log. | Entity, contract | Daily export. |
| CMS Open PaymentsGeneral payments, 2024 and 2025 | Payments summarized by manufacturer, by product with the reported NDC resolved to NDC-11, and by covered recipient. Labelers are matched to Open Payments manufacturers with the method and score exposed, so you decide the threshold. | Manufacturer, product, year | Twice a year. |
What changed this week
Each refresh compares every tracked table with the previous snapshot and records adds, removals and field-level edits in CHANGE_LOG. This feed is the same data.
How a refresh works
Three steps, every Sunday, with the evidence stored next to the data.
Pull
Every source file is downloaded from the agency, checksummed and recorded with its URL, size and server timestamp in
Sundays, 03:40 ETMETA_SOURCE_RUN. Unchanged files are reused, not re-downloaded.Join and check
NDCs are normalized to 11 digits, application numbers to the Orange Book key, labelers to Open Payments manufacturers. Derived fields are recomputed and the new snapshot is diffed against the last one.
Keys, flags, change logPublish
Tables are refreshed in place in Snowflake, so your views and grants keep working. The share is auto-fulfilled to every Snowflake region, usually within a day of first access.
57 regions, in place
Query it like you already own it
Plain SQL on plain tables. No API, no credits for someone else's compute. The listing ships with validated examples.
-- Marketed packages for a brand, with the exclusivity picture
SELECT ndc11, package_description, start_marketing_date,
last_patent_expiry, last_exclusivity_date, est_loe_date
FROM core.dim_ndc11
WHERE proprietary_name ILIKE 'eliquis%'
AND NOT is_discontinued
ORDER BY ndc11;
-- 340B contract pharmacy arrangements added since last week
SELECT entity_key, new_values:pharmacy_name::string AS pharmacy
FROM core.change_log
WHERE table_name = 'opais_contract_pharmacy' AND change_type = 'added';
| ndc11 | package | marketed | est. LOE |
|---|---|---|---|
| 00003089321 | 60 tablets in 1 bottle (0003-0893-21) | 2012-12-28 | 2031-08-24 |
| 00003089331 | 10 blister packs of 10 (0003-0893-31) | 2012-12-28 | 2031-08-24 |
| 00003089421 | 60 tablets in 1 bottle (0003-0894-21) | 2012-12-28 | 2031-08-24 |
| 00003089470 | 74 tablets in 1 bottle (0003-0894-70) | 2017-06-01 | 2031-08-24 |
Built for the people who own the keys
The same tables serve three teams that usually keep three copies.
- Commercial operations
- Launch readiness and brand analytics without an NDC master project.
- Marketed NDCs per brand, with start dates and discontinuations
- Loss-of-exclusivity calendar across the portfolio and competitors
- Labeler roll-ups that match Open Payments manufacturers
- Market access and trade
- The 340B and Medicaid picture by account and state, kept current.
- Active contract pharmacy count per covered entity
- Adds and terminations every week, in one table
- Medicaid utilization by state, NDC and quarter
- Data engineering
- Reference data that behaves like a dependency, not a chore.
- One key set, stable table names, in-place refresh
- Checksums and agency timestamps for every source file
- Change log instead of full-table diffs
Pricing
Free while the listing launches on Marketplace. Paid plans follow, with the same tables and a 30-day trial. Billing runs through Snowflake.
Launch
Full pack, every region, during the Marketplace launch period.
- All 21 tables, weekly refresh
- Change log and provenance tables
- Email support
Standard
After launch. 30-day free trial, cancel from Snowflake any time.
- Everything in Launch
- Weekly email digest of changes
- Priority data-issue turnaround
Enterprise
Private listing for your account with your joins.
- Custom tables and additional public sources
- Slack or email change alerts per therapeutic area
- Named support contact
Questions buyers ask
Write to hello@channelkeys.net for anything not covered.
Isn't this the same data I can download from FDA, CMS and HRSA?
Yes, and that is the point. The sources are public. The work is the parsing, the keys, the joins, the derived fields, the weekly refresh and the change log, which every team otherwise rebuilds and maintains alone. META_SOURCE_RUN lists every agency file behind the current refresh so you can audit the chain.
How current is it?
Refreshed every Sunday morning US Eastern. FDA files change daily and are picked up weekly. Orange Book is monthly, Medicaid SDUD quarterly with restatements, 340B OPAIS daily, Open Payments twice a year. The ledger at the top of this page shows the agency timestamp behind each source.
Does it contain protected health information?
No. Everything comes from public agency files. Personal data is limited to fields the agencies publish, such as covered recipient names in Open Payments and authorizing officials in OPAIS, and we republish only those fields.
How are loss-of-exclusivity dates estimated?
EST_LOE_DATE is the later of the last unexpired, non-delisted patent and the last exclusivity date for the application. It is a planning estimate, not a legal determination; litigation and pediatric extensions change it. Validate before using it in contracts.
Which Snowflake regions and clouds?
All of them. The listing uses cross-cloud auto-fulfillment, so the first time an account in a new region gets the data, Snowflake replicates it there, usually within a day. After that it refreshes with the rest.
Can you add a source or a join we need?
Usually. State Medicaid preferred drug lists, NPPES, CMS Part D spending and FDA shortages are on the roadmap. Enterprise plans get custom tables in a private listing; write to hello@channelkeys.net.
Stop maintaining the tables. Start querying them.
Add Channel Keys to your Snowflake account in a minute. Free during launch.