{
  "study": {
    "slug": "excluded-providers-landscape-2026",
    "title": "The excluded-provider landscape: no single list catches them all",
    "standfirst": "Across the federal OIG LEIE, SAM.gov, and ten state Medicaid programs, 10,753 NPI-identified providers are barred from a public health program — yet the single most complete list, the OIG LEIE, names only 6,880 of them. Screen one source and 36% of excluded providers come back clean.",
    "desk": "financial-distress",
    "article_type": "Original Research",
    "published": "2026-06-15",
    "issue": 57,
    "doi": "10.5072/fonteum/excluded-providers-landscape-2026",
    "url": "https://fonteum.com/research/excluded-providers-landscape-2026",
    "methodology_version": "exclusion-landscape/v1"
  },
  "data_as_of": "2026-06-15",
  "datasets": [
    {
      "slug": "oig-leie",
      "name": "OIG LEIE",
      "publisher": "HHS OIG — List of Excluded Individuals/Entities",
      "upstream_url": null
    }
  ],
  "key_findings": [
    {
      "number": "10,753",
      "finding": "distinct NPI-identified providers are barred from a public health program across the OIG LEIE, SAM.gov, and ten state Medicaid exclusion lists",
      "dataset": "exclusion-landscape"
    },
    {
      "number": "64.0%",
      "finding": "is the most any single list covers — the OIG LEIE names 6,880 of the 10,753, so federal-LEIE-only screening misses 3,873 (36.0%)",
      "dataset": "oig-leie"
    },
    {
      "number": "55.6%",
      "finding": "of barred providers (5,974 of 10,753) appear on only one of the three exclusion layers — no two-list check reaches them",
      "dataset": "exclusion-landscape"
    },
    {
      "number": "16,277",
      "finding": "CMS civil money penalties across 6,884 facilities sit in the compromised-but-operating layer — and, like the 127 active OIG integrity agreements, carry no NPI to match",
      "dataset": "cms-cmp"
    }
  ],
  "faqs": [
    {
      "q": "How many providers are on a US healthcare exclusion list?",
      "a": "Across every exclusion source Fonteum holds, 10,753 distinct providers with a National Provider Identifier are barred from a public health program. That count combines the federal OIG LEIE (6,880), the federal SAM.gov debarment list (4,694), and ten state Medicaid programs (4,851), de-duplicated on NPI so a provider on multiple lists is counted once."
    },
    {
      "q": "Does the OIG exclusion list contain every excluded provider?",
      "a": "No. The OIG LEIE is the most complete single list, but it names only 6,880 of the 10,753 NPI-identified barred providers — 64.0%. A federal-LEIE-only screen misses 3,873 providers, 36.0% of the excluded-anywhere population, who are barred by SAM.gov or a state Medicaid program without a matching federal LEIE record."
    },
    {
      "q": "How much do exclusion lists overlap?",
      "a": "Less than you would expect. Of the 10,753 NPI-identified barred providers, 5,974 — 55.6% — appear on only one of the three exclusion layers, and just 893 appear on all three. The lists are complementary, not redundant: each names thousands of providers the others miss."
    },
    {
      "q": "What is the difference between exclusion and a compromised-but-operating flag?",
      "a": "An exclusion bars a provider from billing federal health programs. A compromised flag — an OIG Corporate Integrity Agreement or a CMS civil money penalty — marks a provider under federal monitoring or penalty but still operating. Fonteum holds 127 active integrity agreements and 16,277 civil money penalties across 6,884 facilities."
    },
    {
      "q": "Why can't the compromised-but-operating layer be matched to the exclusion lists?",
      "a": "Because it carries no NPI. OIG Corporate Integrity Agreements are keyed to an entity name and the CMS civil money penalty file is keyed to a facility certification number (CCN); neither source publishes a National Provider Identifier. With no NPI, these records cannot be joined to the exclusion universe by identifier, so they are reported separately."
    },
    {
      "q": "How many exclusion records have no NPI at all?",
      "a": "A large majority. Across the three exclusion layers, 225,183 in-force records carry no NPI: 148,860 on SAM.gov, 61,030 on the OIG LEIE, and 15,293 on the state Medicaid lists. These name a barred party with no identifier that maps to other lists, so NPI-based screening cannot reach them and they sit outside the 10,753 matchable population."
    },
    {
      "q": "Which states are in the state Medicaid exclusion layer?",
      "a": "Ten: New York (OMIG, 2,254 NPIs), Pennsylvania (DHS Medicheck, 974), Ohio (ODM, 673), Iowa (Medicaid, 313), Maryland (MDH, 263), Washington (HCA, 210), North Carolina (DHHS, 149), Mississippi (DOM, 138), Montana (DPHHS, 41), and Georgia (DCH-OIG, 35). State Medicaid exclusion data is fragmented and inconsistently published, so the layer expands one primary source at a time; these ten publish a usable file and are ingested."
    },
    {
      "q": "Can I reproduce these figures?",
      "a": "Yes. Every count is a direct query against the public oig_leie_exclusions, sam_exclusions, and state_exclusions tables, joined on NPI only, with the compromised layer read from oig_cia_agreements and cms_civil_money_penalties. The exact SQL is published in the reproducibility block below, and no match is ever inferred from a name."
    }
  ],
  "citation": {
    "apa": "Fonteum Research. (2026, June 15). The excluded-provider landscape: no single list catches them all. Fonteum Research, Issue 57. https://doi.org/10.5072/fonteum/excluded-providers-landscape-2026",
    "url": "https://fonteum.com/research/excluded-providers-landscape-2026"
  },
  "reproducible_sql": "-- The excluded-provider landscape — fully reproducible query.\n--\n-- Question: across every exclusion source Fonteum holds, how many providers\n-- are barred somewhere, how does the population split by source, how much do\n-- the lists overlap, and how much does any single list miss?\n--\n-- EXCLUSION layer (the matchable universe — joined on NPI):\n--   public.oig_leie_exclusions — OIG List of Excluded Individuals/Entities,\n--                                federal monthly bulk download, release\n--                                2026-05-08, 68,055 records. Public, read-only.\n--   public.sam_exclusions      — SAM.gov / GSA government-wide debarment list,\n--                                daily extract, 167,582 records. Public, read-only.\n--   public.state_exclusions    — State Medicaid Exclusion Ring (ten states:\n--                                NY, PA, OH, IA, MD, WA, NC, MS, MT, GA).\n--                                Public, read-only.\n--\n-- Join key: NPI only (10-digit, btrim). A name match is not a defensible\n-- identity assertion, so rows with no NPI are excluded from the matchable\n-- universe and reported separately (see no-NPI query below).\n--\n-- \"In force\" mirrors the production exclusion lookup (src/lib/exclusions): a row\n-- is in force when reinstatement_date IS NULL OR reinstatement_date > today\n-- (for SAM.gov, the equivalent lapse signal is termination_date; \"Indefinite\"\n-- stores as NULL and stays in force). Date basis: current_date (2026-06-15).\n--\n-- COMPROMISED-BUT-OPERATING layer (reported separately, NEVER NPI-joined —\n-- neither source carries an NPI):\n--   public.oig_cia_agreements        — OIG Corporate Integrity Agreements\n--                                       (entity-name keyed).\n--   public.cms_civil_money_penalties — CMS Civil Money Penalties (CCN keyed).\n--\n-- Every headline figure in the study resolves to one of the rows below.\n\nWITH leie AS (\n  SELECT DISTINCT btrim(npi) AS npi FROM public.oig_leie_exclusions\n  WHERE nullif(btrim(npi), '') IS NOT NULL\n    AND (reinstatement_date IS NULL OR reinstatement_date > current_date)\n),\nsam AS (\n  SELECT DISTINCT btrim(npi) AS npi FROM public.sam_exclusions\n  WHERE nullif(btrim(npi), '') IS NOT NULL\n    AND (termination_date IS NULL OR termination_date > current_date)\n),\nst AS (\n  SELECT DISTINCT btrim(npi) AS npi FROM public.state_exclusions\n  WHERE nullif(btrim(npi), '') IS NOT NULL\n    AND (reinstatement_date IS NULL OR reinstatement_date > current_date)\n),\nall_npi AS (\n  SELECT npi FROM leie UNION SELECT npi FROM sam UNION SELECT npi FROM st\n),\nflags AS (\n  SELECT a.npi,\n         (l.npi IS NOT NULL)::int AS in_leie,\n         (s.npi IS NOT NULL)::int AS in_sam,\n         (t.npi IS NOT NULL)::int AS in_state\n  FROM all_npi a\n  LEFT JOIN leie  l USING (npi)\n  LEFT JOIN sam   s USING (npi)\n  LEFT JOIN st    t USING (npi)\n),\nscored AS (\n  SELECT *, (in_leie + in_sam + in_state) AS src_count FROM flags\n)\nSELECT\n  (SELECT count(*) FROM all_npi)                                  AS excluded_anywhere,   -- 10,753\n  (SELECT count(*) FROM scored WHERE src_count = 1)               AS on_exactly_one,       --  5,974 (55.6%)\n  (SELECT count(*) FROM scored WHERE src_count >= 2)              AS on_two_or_more,       --  4,779 (44.4%)\n  (SELECT count(*) FROM scored WHERE src_count = 3)               AS on_all_three,         --    893 ( 8.3%)\n  (SELECT count(*) FROM scored WHERE in_leie  = 1)                AS leie_npi,             --  6,880 (64.0%)\n  (SELECT count(*) FROM scored WHERE in_sam   = 1)                AS sam_npi,              --  4,694 (43.7%)\n  (SELECT count(*) FROM scored WHERE in_state = 1)                AS state_npi,            --  4,851 (45.1%)\n  (SELECT count(*) FROM scored WHERE src_count = 1 AND in_leie  = 1) AS leie_only,         --  2,292\n  (SELECT count(*) FROM scored WHERE src_count = 1 AND in_sam   = 1) AS sam_only,          --    756\n  (SELECT count(*) FROM scored WHERE src_count = 1 AND in_state = 1) AS state_only,        --  2,926\n  (SELECT count(*) FROM scored WHERE in_leie = 1 AND in_sam   = 1) AS leie_and_sam,        --  3,747\n  (SELECT count(*) FROM scored WHERE in_leie = 1 AND in_state = 1) AS leie_and_state,      --  1,734\n  (SELECT count(*) FROM scored WHERE in_sam  = 1 AND in_state = 1) AS sam_and_state;       --  1,084\n-- Coverage = source_npi / excluded_anywhere. Single most complete list (LEIE)\n-- covers 6,880 / 10,753 = 64.0% → federal-LEIE-only screening misses 3,873 (36.0%).\n\n-- Per-source grain: distinct in-force NPI vs in-force records with NO NPI.\n-- The no-NPI rows are excluded from the universe above and reported separately.\nSELECT 'oig-leie' AS source,\n       count(DISTINCT btrim(npi)) FILTER (WHERE nullif(btrim(npi),'') IS NOT NULL\n         AND (reinstatement_date IS NULL OR reinstatement_date > current_date)) AS inforce_distinct_npi,\n       count(*) FILTER (WHERE nullif(btrim(npi),'') IS NULL\n         AND (reinstatement_date IS NULL OR reinstatement_date > current_date)) AS inforce_no_npi\nFROM public.oig_leie_exclusions\nUNION ALL\nSELECT 'sam-gov',\n       count(DISTINCT btrim(npi)) FILTER (WHERE nullif(btrim(npi),'') IS NOT NULL\n         AND (termination_date IS NULL OR termination_date > current_date)),\n       count(*) FILTER (WHERE nullif(btrim(npi),'') IS NULL\n         AND (termination_date IS NULL OR termination_date > current_date))\nFROM public.sam_exclusions\nUNION ALL\nSELECT 'state-medicaid',\n       count(DISTINCT btrim(npi)) FILTER (WHERE nullif(btrim(npi),'') IS NOT NULL\n         AND (reinstatement_date IS NULL OR reinstatement_date > current_date)),\n       count(*) FILTER (WHERE nullif(btrim(npi),'') IS NULL\n         AND (reinstatement_date IS NULL OR reinstatement_date > current_date))\nFROM public.state_exclusions;\n--  source          inforce_distinct_npi  inforce_no_npi\n--  oig-leie               6,880              61,030\n--  sam-gov                4,694             148,860\n--  state-medicaid         4,851              15,293   (no-NPI records total: 225,183)\n\n-- State Medicaid layer, by state (distinct in-force NPI).\nSELECT source_key, state,\n  count(DISTINCT btrim(npi)) FILTER (WHERE nullif(btrim(npi),'') IS NOT NULL\n    AND (reinstatement_date IS NULL OR reinstatement_date > current_date)) AS inforce_distinct_npi\nFROM public.state_exclusions\nGROUP BY source_key, state\nORDER BY inforce_distinct_npi DESC;\n--  ny-omig NY 2,254 | pa-dhs PA 974 | oh-odm OH 673 | ia-medicaid IA 313 | md-mdh MD 263\n--  wa-hca WA 210 | nc-dhhs NC 149 | ms-dom MS 138 | mt-dphhs MT 41 | ga-dch GA 35\n--  Sum 5,050 vs distinct 4,851 → 199 providers barred by more than one state.\n\n-- COMPROMISED-BUT-OPERATING layer — reported separately, never NPI-joined.\n-- Both sources carry zero NPI (CIA = entity-name keyed; CMP = CCN keyed).\nSELECT 'oig-cia' AS source,\n       count(*) FILTER (WHERE closed_date IS NULL OR closed_date > current_date) AS active,\n       count(DISTINCT entity_name) AS distinct_entities,\n       count(*) FILTER (WHERE nullif(btrim(npi),'') IS NOT NULL) AS with_npi\nFROM public.oig_cia_agreements\nUNION ALL\nSELECT 'cms-cmp',\n       count(*) AS active,\n       count(DISTINCT ccn) AS distinct_entities,\n       count(*) FILTER (WHERE nullif(btrim(npi),'') IS NOT NULL) AS with_npi\nFROM public.cms_civil_money_penalties;\n--  oig-cia   127 active agreements |   333 entities | 0 with NPI\n--  cms-cmp  16,277 penalties       | 6,884 facilities | 0 with NPI",
  "license": "U.S. Government Works (federal sources; 17 U.S.C. §105)",
  "generated_by": "Fonteum — https://fonteum.com",
  "notes": "Aggregate, source-traced figures frozen to the snapshot above. Reproduce by running reproducible_sql against the cited federal dataset; no per-entity records are included."
}
