Data / Provider change events / Dictionary

Provider Change Events

Description

One row per healthcare-provider change event, unified across 7 federal archive-and-diff sources into a single append-only table with an event_type discriminator. Where the other Healthparse products describe who a provider is, this one tells you what just changed — a new physician enumerated in your territory, a provider newly billing Medicare, an address change, a deactivation, a hospital ownership change, a new lab certificate, a mammography-facility certification change, or a hospital equipment-purchase jump. Every event is observational — a dated record that a specific fact changed between two published federal file versions — never an inference about why.

Events are derived by diffing successive releases of each source file (every release is retained, so diffs are exact and repeatable), and each event carries its source file family, the source_vintage (which file release produced it), and a dedupe_key that is stable across re-ingests.

  • Source: CMS (data.cms.gov, download.cms.gov, downloads.cms.gov) and FDA (fda.gov) — 7 file families, per-type table below.
  • Refresh cadence: by source — twice-weekly (Tue/Fri), weekly (Wed), and quarterly ingest groups.
  • Row count: 297,204 (2026-08-29 export). Weekly volume since launch has run between 35,000 and 85,000 events in normal weeks, depending on which source files were released; the per-type table below is from the same 2026-08-29 export.
  • Vintage: 2026-08-28 (most recent ingest in the 2026-08-29 export).
  • Event-date range: 2005-06-13 → 2026-08-27, plus one ownership-change row dated 2026-10-31: the CMS CHOW file publishes effective dates, and a change can be filed ahead of its effective date. Registry events carry the enumeration and deactivation dates NPPES itself records (back to 2005); ownership changes run back to 2016; the diff-derived types begin at the 2026-07 baseline.

The 11 event types

event_type What it means Source agency & file Cadence Rows (this export)
new_enumeration An NPI newly appeared in the NPPES registry — a brand-new provider or organization. CMS NPPES weekly incremental V2 (download.cms.gov) Weekly 121,209
address_change An active NPI's practice address changed. details carries the full old/new address pair. CMS NPPES weekly incremental V2 Weekly 65,553
deactivation An NPI was deactivated (retirement, death, merger, revocation — NPPES does not publish the reason). CMS NPPES weekly incremental V2 Weekly 19,755
ownership_change A Medicare-certified facility changed owners. Hospital/SNF rows come from the CMS CHOW file (buyer + seller CCN/NPI/org in details); HHA/hospice rows are an All-Owners-file proxy diff. CMS Change of Ownership (CHOW) + All-Owners files (data.cms.gov) Quarterly 14,471
capex_jump A hospital's cost report shows major movable-equipment purchases ≥ $1M and ≥ 2× the prior fiscal year, which must itself be positive (rule tightened 2026-09-08). Purchase dollars by asset class in details. See the companion Hospital Capex Signals product for the enriched slice. CMS HCRIS Worksheet A-7 Part I (downloads.cms.gov) Quarterly 4,277
newly_billing An NPI newly appeared in (or added a capability to) the CMS Order & Referring file — it can now order/refer for Part B, DME, HHA, PMD, or hospice. The earliest "actively in the Medicare game" signal. CMS Order and Referring file (data.cms.gov) Twice-weekly (Tue/Fri) 23,965
enrollment_pending An NPI appeared on CMS's Pending Initial Logging & Tracking list (physician or non-physician) — a Medicare enrollment application is in process. The earliest pre-enrollment signal. CMS PILT files, physician + non-physician (data.cms.gov) Weekly 16,641
new_lab_certificate A new CLIA laboratory certificate appeared in the Provider of Services file. Certificate type (waiver → compliance/accreditation) in details. CMS POS Clinical Laboratories / CLIA (data.cms.gov) Quarterly 27,827
lab_cert_upgrade An existing lab's CLIA certificate type moved up-rank (e.g. waiver → accreditation) — the lab can now run more complex tests. Old/new certificate types in details. CMS POS Clinical Laboratories / CLIA Quarterly 2,969
new_mammo_facility A facility newly appeared on the FDA MQSA certified mammography facility list. FDA MQSA facility list (fda.gov, replaced weekly) Weekly 114
mammo_decert A facility disappeared from the FDA MQSA certified list (decertified or closed). FDA MQSA facility list Weekly 104

All eleven types are emitting. The five NPPES/CHOW/HCRIS-derived types carry dates the source itself publishes (enumeration and deactivation dates back to 2005, ownership effective dates back to 2016, fiscal years back to 2019); the other six began at the July 2026 baseline, when their first two file versions were compared, and build forward from there.

Table: provider_change_events

Snowflake: HEALTHPARSE_DATA.PROVIDER_CHANGE_EVENTS.PROVIDER_CHANGE_EVENTS

Column Type Description Notes
event_id BIGINT Stable per-event id (the source table's monotonic primary key). Use with dedupe_key for incremental loads — the marketplace table is replaced wholesale each refresh, so WHERE event_id > (max already loaded) is the cheap delta pattern.
event_date DATE When the change happened, as best the source expresses it: the deactivation/certification/CHOW/fiscal-year-end date where the source publishes one, else the file vintage the change first appeared in. Ownership changes carry true historical dates (back to 2005). Diff-derived types cluster from 2026-07 onward.
event_type VARCHAR One of the 11 types above. Exported as plain text.
npi VARCHAR National Provider Identifier, for NPI-keyed sources (NPPES, Order & Referring, PILT). Null for CCN/CLIA/facility-keyed types.
ccn VARCHAR CMS Certification Number, for facility-keyed sources (CHOW, HCRIS A-7). Joins to the HCRIS Hospital Financials and Facility Quality products.
clia_number VARCHAR CLIA certificate number, for lab-certificate events. Null for every other type.
facility_key VARCHAR MQSA facility key — an md5 over normalized name+address, because the public FDA file has no facility id. Only populated for MQSA types; stable across weeks for the same facility.
entity_name VARCHAR Provider/organization/facility name as published by the source. Not normalized across sources.
address / city / state / zip VARCHAR Location as published by the source. state is null for ~18% of rows — every deactivation event (the NPPES weekly file publishes no address for deactivated NPIs) and the ownership_change rows derived from the All-Owners proxy, which carry no facility address. For address_change, these columns hold the new address; the old one is in details.
details VARCHAR (JSON) Source-specific event payload as JSON text — old/new values for changes, buyer/seller for CHOW, capex dollars by asset class, certificate types, capabilities added. Parse with PARSE_JSON() in Snowflake. Shape varies by event_type (examples below); null for mammo_decert.
source VARCHAR Source file family: nppes_weekly_v2, cms_order_referring, cms_pending_enrollment, cms_pos_clia, cms_chow, cms_all_owners_hha, cms_all_owners_hospice, fda_mqsa, hcris_a7.
source_vintage VARCHAR The specific file release the event was derived from (a date, quarter, or fiscal year depending on source).
dedupe_key VARCHAR The ingest pipeline's idempotence key, e.g. capex_jump|280077|2025. Unique across the table. The stable natural key — safe to use for merge/upsert on the buyer side.
ingested_at TIMESTAMP When the event row was written.
_dataset / _vintage / _exported_at VARCHAR See README.

details payload by event type (populated types)

// new_enumeration
{ "entity_type": "individual", "taxonomy_code": "390200000X", "parent_org_name": null }
// address_change (old + new full address pair)
{ "old": { "address": "2323 N CENTRAL EXPY # 1000", "city": "RICHARDSON", "state": "TX", "zip": "75080" },
  "new": { "address": "210 S PRESTON RD STE 30", "city": "PROSPER", "state": "TX", "zip": "75078" } }
// deactivation
{ "deactivation_date": "2026-07-07" }
// ownership_change (CHOW)
{ "chow_type": "ACQUISITION/MERGER", "chow_type_code": "AM", "provider_kind": "hospital",
  "buyer":  { "ccn": "150056", "npi": "1144266024", "org": "INDIANA UNIVERSITY HEALTH INC" },
  "seller": { "ccn": "150161", "npi": "1568492916", "org": "INDIANA UNIVERSITY HEALTH NORTH HOSPITAL INC" } }
// capex_jump (dollars by asset class + trigger thresholds)
{ "fy_end_year": 2025, "movable_equipment_purchases": 4286370,
  "prior_year_movable_equipment_purchases": -10000, "total_purchases": 5638633,
  "fixed_equipment_purchases": 383411, "building_purchases": 968852,
  "hit_asset_purchases": null, "threshold_dollars": 1000000, "threshold_multiple": 2 }

The remaining types carry: newly_billingcapabilities/capabilities_added (partb, dme, hha, pmd, hospice); enrollment_pendingprovider_kind, nppes_matched; new_lab_certificate / lab_cert_upgrade — old/new certificate type and code; new_mammo_facilityphone, recertified.

Example queries (Snowflake)

-- 1. "New physician in territory": new enumerations + address changes
--    into Texas in the last 30 days.
SELECT "event_date", "event_type", "npi", "entity_name", "city", "state"
FROM HEALTHPARSE_DATA.PROVIDER_CHANGE_EVENTS.PROVIDER_CHANGE_EVENTS
WHERE "state" = 'TX'
  AND "event_type" IN ('new_enumeration', 'address_change')
  AND "event_date" >= dateadd(day, -30, current_date)
ORDER BY "event_date" DESC;

-- 2. Compliance: deactivated NPIs, most recent first (feed this into a
--    credentialing re-check).
SELECT "event_date", "npi", "entity_name",
       PARSE_JSON("details"):"deactivation_date"::date AS deactivated_on
FROM HEALTHPARSE_DATA.PROVIDER_CHANGE_EVENTS.PROVIDER_CHANGE_EVENTS
WHERE "event_type" = 'deactivation'
ORDER BY "event_date" DESC
LIMIT 100;

-- 3. Roll-up velocity: hospital & SNF acquisitions by buyer org, 2024+.
SELECT PARSE_JSON("details"):"buyer":"org"::string AS buyer_org,
       count(*) AS facilities_acquired
FROM HEALTHPARSE_DATA.PROVIDER_CHANGE_EVENTS.PROVIDER_CHANGE_EVENTS
WHERE "event_type" = 'ownership_change'
  AND "event_date" >= '2024-01-01'
GROUP BY 1
ORDER BY facilities_acquired DESC
LIMIT 25;