Provider identity

HHS-OIG Corporate Integrity Agreements (CIA)

drug_silver.dim_hhs_oig_cia·live·dim·Snapshot-based, irregular re-scrape (not a calendar cadence). Only two snapshots exist 3 days apart (2026-05-16 dirty, superseded; 2026-05-19 current). The effective_date span (2016->2026) reflects when each CIA was signed, NOT an update cadence — do not read the profiler's inferred "monthly" as a refresh schedule.·OIG Exclusions & Integrity Agreements
Rows
N/A
Columns
22
History
2016-10-13 (earliest CIA effective_date on the current snapshot; the underlying OIG list shows still-active CIAs, so it is not a full historical archive) to 2026-05-04 (latest CIA effective_date); snapshot observed/scraped 2026-05-19
Card
yesgrain, traps, filters
Typed tools
0

What it is

  1. 1A directory of every U.S. healthcare entity currently (as of the snapshot) under an active HHS-OIG Corporate Integrity Agreement (CIA) — the compliance contracts OIG imposes after a False Claims Act / fraud settlement — scraped from the OIG "browse CIAs" web page.
  2. 2Each row is one entity with its OIG detail-page URL, location, CIA effective date, and the associated civil settlement amount (when OIG discloses one).
  3. 3It lives in drug_silver because the largest CIAs are drug-pricing / kickback / pharmacy-distribution fraud (AmerisourceBergen $625M, Novartis $591M, Mylan $465M, Rite Aid $409M), making it the enforcement/integrity context layer for the drug-cost substrate.

Grain

KeyGrain
entity_slug
  1. 1One row per CIA entity (entity_slug) within a snapshot.
  2. 2On the current snapshot (is_current=true, vintage_tag hhs_oig_cia_2026-05-19) there are exactly 332 rows = 332 distinct entity_slug = 332 distinct detail_url, so entity_slug alone is the minimal verified key when you filter is_current=true.
  3. 3Across the full 704-row table the grain is entity_slug + vintage_tag (two snapshots present), but the older 2026-05-16 snapshot is a dirty pre-dedup load where many slugs repeat ~3x — always filter is_current=true and treat entity_slug as the key.

How to read it

  1. 1List the largest active HHS-OIG Corporate Integrity Agreements and their settlement amounts: SELECT entity_name, location_state, settlement_amount_usd, effective_date FROM drug_silver.dim_hhs_oig_cia WHERE is_current=true AND settlement_amount_usd IS NOT NULL ORDER BY settlement_amount_usd DESC LIMIT 20; — answers "which healthcare/pharma entities are currently under an OIG integrity agreement and how big was the settlement that triggered it" (top results: AmerisourceBergen $625M, Novartis $591M, Mylan $465M, Rite Aid $409M).

Traps

  1. 1Always filter is_current=true. The table holds 704 rows across 2 snapshots; the older vintage_tag='hhs_oig_cia_2026-05-16' (is_current=false, 372 rows) is a DIRTY pre-dedup load where ~40 entity_slugs repeat 3x (same slug, 3 different sha256_content_hash, NULL bronze_object_key/s3_version_id). entity_slug is unique ONLY on the current snapshot (332 = 332).
  2. 2settlement_amount_usd is NULL for 12 of 332 entities (and location_state NULL for 2). NULL means OIG published no settlement figure, NOT $0 — exclude nulls (or COUNT them separately) before SUM/AVG. Computed stats: min $31,818, max $625M, median ~$5.5M over the 320 with amounts.
  3. 3entity_name is a raw OIG concatenation: 33 rows pack multiple co-signing legal entities into one string (semicolons / 120+ chars). One CIA row can represent a whole corporate family — do not parse entity_name as a single clean company; use entity_slug/detail_url as the identifier.
  4. 4Three column pairs are effectively redundant or constant: effective_date == effective_period_start on every row; effective_period_end is ALWAYS the sentinel 2099-12-31 (open/active, not a real end date); observed_period == asserted_at == 2026-05-19 (the scrape date). The 'monthly' periodicity the profiler infers from effective_date is just CIA signing dates, not a refresh cadence.
  5. 5This is OIG Corporate Integrity Agreement / fraud-enforcement data, NOT a price/rate table — settlement_amount_usd is a one-time fraud-settlement penalty, not a healthcare cost or drug price. It belongs in the drug substrate because the headline CIAs are drug/pharmacy fraud (AmerisourceBergen, Novartis, Mylan, Rite Aid). Join to drug/provider entities by NAME ONLY — there is no NPI/NDC/EIN key, and drug_source_version_id is null for every row.
  6. 6lineage columns source_id, source_url, sha256_content_hash, s3_version_id, bronze_object_key, parser_artifact_hash, vintage_tag, cms_vintage_sequence, parse_revision are all SINGLE-VALUED on the current snapshot (one scraped corpus file -> all 332 rows), so none of them is a usable grain/key; only entity_slug (or detail_url) distinguishes rows.

Columns (22)

ColumnTypeMeaning
entity_slugstringURL-safe slug OIG uses in the entity's detail-page path (e.g. 'recovery-center-of-usa-llc'). The clean, stable per-entity identifier and the GRAIN KEY on is_current=true (332 distinct = row count).
entity_namestringFull legal name(s) of the entity as published by OIG. CAUTION: for 33 of 332 rows this is a long semicolon/comma-delimited concatenation of ALL co-signing legal entities under one CIA (e.g. the Saber Healthcare row lists 11 LLCs). It is the raw OIG string, not a normalized single entity.
detail_urlstringFull URL to that entity's OIG CIA detail page. Unique per row on the current snapshot (1:1 with entity_slug), so also a valid key.
location_citystringCity of the entity's principal location as listed by OIG. Non-null on all current rows.
location_statestring2-letter U.S. state of the entity. NULL for 2 of 332 rows. Concentrated in FL (48), CA (45), PA (23), NY (21), TX (18) — classic healthcare-fraud-enforcement geography.
settlement_amount_usddoubleDollar amount of the associated civil/False-Claims settlement that triggered the CIA, in USD (double). Range $31,818 to $625,000,000, median ~$5.5M. NULL for 12 of 332 rows — a meaningful null: OIG did not publish a settlement figure for that CIA (do not treat NULL as $0).
effective_datedateDate the CIA took effect (CIA signing/effective date). Spans 2016-10-13 to 2026-05-04. IDENTICAL to effective_period_start on every current row (the two columns are redundant).
observed_perioddateDate this row was observed/scraped from the OIG site. Constant 2026-05-19 across all current rows (the snapshot date). Equal to asserted_at.
asserted_atdateLineage timestamp = when the fact was asserted into the table. Constant 2026-05-19 on current rows; equals observed_period here. Provenance metadata, not a business date.
effective_period_startdateSCD-style validity start for the row; equals effective_date on every current row (0 mismatches). Redundant with effective_date.
effective_period_enddateSCD-style validity end. ALWAYS the open-ended sentinel 2099-12-31 on the current snapshot — meaning the CIA/row is treated as currently active/open. Carries no real per-row information here; do not use it as a CIA-end/termination date.
cms_vintage_sequenceintMonotonic vintage-sequence integer from the standard drug_silver lineage scaffold. Constant 1 for all current rows (single vintage). Plumbing, not analytic.
parse_revisionintParser revision number for this load. Constant 1 on current rows. Lineage metadata.
parser_artifact_hashstringSHA-256 of the parser code/artifact that produced the row. Constant across the current snapshot (one parser run). Differs between the 2026-05-16 and 2026-05-19 snapshots. Provenance metadata.
source_urlstringThe OIG index/browse page that was scraped (https://oig.hhs.gov/.../browse-cias/). Constant for all rows — this is the LIST page, distinct from per-entity detail_url.
sha256_content_hashstringSHA-256 of the bronze source corpus file. Constant (one file) on the current snapshot. NOTE: in the dirty 2026-05-16 snapshot a single slug carries 3 different content hashes — the artifact of that snapshot's non-dedup; on current it is clean/single.
source_idstringLogical source identifier, constant 'hhs_oig_cia' for the whole table. Use to recognize this source in the catalog.
is_currentbooleanSnapshot flag. TRUE = the live 332-row 2026-05-19 snapshot; FALSE = the superseded/dirty 372-row 2026-05-16 snapshot. ALWAYS filter is_current=true for analysis.
bronze_object_keystringS3 key of the bronze corpus .txt the rows were parsed from. Populated/constant on current rows; NULL on the old 2026-05-16 snapshot rows. Provenance.
s3_version_idstringS3 object version id of that bronze file. Populated/constant on current; NULL on old snapshot. Provenance.
vintage_tagstringHuman-readable snapshot label 'hhs_oig_cia_<scrape-date>'. The two values present (hhs_oig_cia_2026-05-16, hhs_oig_cia_2026-05-19) are the snapshot discriminator and the second key component across the full table.
drug_source_version_idstringForeign-key slot to a drug source-version lineage record. NULL for ALL 332 current rows (and all rows) — an unused/not-populated column for this source; do not rely on it for joins.

Query it

describe_data_source(source_fqn="drug_silver.dim_hhs_oig_cia")     # the card, live
query_substrate(sql="SELECT * FROM drug_silver.dim_hhs_oig_cia WHERE entity_slug = '<value>' LIMIT 100")
ItemValue
Typed tools that read itnone; raw SQL
Identity keyentity_slug
Joinhow_to_join(source_fqn="drug_silver.dim_hhs_oig_cia")
Raw doorAthena (read-only via query_substrate): drug_silver.dim_hhs_oig_cia

This page as markdown: /docs-md/data/drug_silver_dim_hhs_oig_cia.md · every page in one file: /llms-full.txt