{
  "study": {
    "slug": "excluded-providers-ordering-referring-2026",
    "title": "Barred but order-eligible: excluded providers still cleared to order and refer in Medicare",
    "standfirst": "170 of 2,008,019 providers cleared to order and refer in Medicare carry an active exclusion or sanction — matched on NPI, never on name. The screening mostly holds, but 105 of the 170 have stood for over a year, the oldest excluded since 1987. A match is a flag for review, not a proven claim.",
    "desk": "financial-distress",
    "article_type": "Original Research",
    "published": "2026-06-15",
    "issue": 58,
    "doi": "10.5072/fonteum/excluded-providers-ordering-referring-2026",
    "url": "https://fonteum.com/research/excluded-providers-ordering-referring-2026",
    "methodology_version": "excluded-ordering/v1"
  },
  "data_as_of": "2026-06-15",
  "datasets": [
    {
      "slug": "cms-pecos",
      "name": "CMS PECOS",
      "publisher": "CMS — Provider Enrollment, Chain & Ownership System",
      "upstream_url": null
    },
    {
      "slug": "oig-leie",
      "name": "OIG LEIE",
      "publisher": "HHS OIG — List of Excluded Individuals/Entities",
      "upstream_url": null
    }
  ],
  "key_findings": [
    {
      "number": "170",
      "finding": "providers cleared to order and refer in Medicare carry an active exclusion or sanction — matched on NPI across the OIG, SAM.gov, and 10-state ring, never on a name",
      "dataset": "oig-leie"
    },
    {
      "number": "156",
      "finding": "of the 170 sit on a state Medicaid exclusion list — the largest share, led by New York; 18 are on the federal OIG LEIE and 6 on SAM.gov",
      "dataset": "oig-leie"
    },
    {
      "number": "105",
      "finding": "of the 170 carry an exclusion older than a year — too old to be a refresh-cycle lag; 45 have stood more than five years, the oldest since 1987",
      "dataset": "cms-pecos"
    },
    {
      "number": "0.0085%",
      "finding": "of the 2,008,019 order/refer-eligible NPIs match an active exclusion — a small residual, but each is a screening flag worth a primary-source look",
      "dataset": "cms-pecos"
    }
  ],
  "faqs": [
    {
      "q": "How many excluded providers are still cleared to order and refer in Medicare?",
      "a": "170. Of 2,008,019 providers in the CMS Order and Referring file — the federal list of clinicians cleared to order and refer in Medicare — 170 carry an active exclusion or sanction on the OIG LEIE, SAM.gov, or a state Medicaid exclusion list. Every match is made on the National Provider Identifier, never on a name."
    },
    {
      "q": "What does it mean to be on an exclusion list but still in the Order and Referring file?",
      "a": "An exclusion bars a provider from billing, ordering, or referring under any federal health program. Presence in the CMS Order and Referring file means that provider is still cleared to order items and refer patients in Medicare. Holding both at once is the contradiction this study counts: barred on one list, order-eligible on the other."
    },
    {
      "q": "Is a match proof of fraud?",
      "a": "No. A match is a data-quality flag for primary-source review, not a proven claim against any individual. Snapshots are pulled on different dates, identity is asserted on NPI alone, and a recent exclusion may simply pre-date the next file refresh. The finding measures an oversight gap in the aggregate, and names no provider."
    },
    {
      "q": "Which exclusion source contributes the most matches?",
      "a": "State Medicaid lists. 156 of the 170 sit on a state Medicaid exclusion list — led by New York with 85 — while 18 are on the federal OIG LEIE and 6 on SAM.gov. Nine providers appear on more than one list at once, and seven are on both the federal LEIE and a state list. The matches span nine of the ten states in the ring; Georgia is the tenth, and contributes none."
    },
    {
      "q": "Are these matches a data-lag artifact or a standing failure?",
      "a": "Mostly standing. Only 24 of the 170 were excluded within the last 90 days, the window a refresh lag would explain. 105 carry an exclusion older than a year, 45 older than five years, and the oldest dates to 1987 — figures no snapshot-timing argument can reach."
    },
    {
      "q": "What can an order-eligible excluded provider still do?",
      "a": "All 170 retain durable-medical-equipment ordering eligibility, 151 retain power-mobility-device ordering, 144 retain Part B referral eligibility, 135 home-health, and 115 hospice. Each cleared privilege is a path by which an excluded provider's order or referral could enter a federal claim through a downstream supplier."
    },
    {
      "q": "Can I reproduce these numbers?",
      "a": "Yes. Every figure is a direct NPI equijoin between the public cms_order_referring table and the oig_leie_exclusions, sam_exclusions, and state_exclusions tables. The exact SQL is published in the reproducibility block below; each count resolves to specific rows in specific frozen snapshots, and no match is inferred from a name."
    }
  ],
  "citation": {
    "apa": "Fonteum Research. (2026, June 15). Barred but order-eligible: excluded providers still cleared to order and refer in Medicare. Fonteum Research, Issue 58. https://doi.org/10.5072/fonteum/excluded-providers-ordering-referring-2026",
    "url": "https://fonteum.com/research/excluded-providers-ordering-referring-2026"
  },
  "reproducible_sql": "-- Barred but order-eligible: excluded providers still cleared to order and\n-- refer in Medicare — fully reproducible query.\n--\n-- Question: how many providers who carry an ACTIVE exclusion or sanction still\n-- appear in the CMS Order and Referring file as eligible to order and refer in\n-- Medicare? A match is a data-quality flag for primary-source review — never a\n-- proven fraud claim on any named individual (no provider is named or ranked).\n--\n-- Sources (all public, read-only):\n--   public.cms_order_referring  — CMS Order and Referring file (PECOS-derived),\n--                                 federal release 2026-06-12, 2,008,019 NPI-keyed\n--                                 records. Every row is a provider cleared to\n--                                 order and/or refer in Medicare; boolean columns\n--                                 mark which claim types (Part B, DME, HHA, PMD,\n--                                 hospice).\n--   public.oig_leie_exclusions  — OIG List of Excluded Individuals and Entities,\n--                                 federal monthly bulk download, release 2026-05-08,\n--                                 68,055 active records (6,880 carry an NPI).\n--   public.sam_exclusions       — SAM.gov (GSA) federal exclusion registry,\n--                                 snapshot ingested 2026-06-13, 167,582 records\n--                                 (4,694 carry an NPI). Healthcare-aligned via\n--                                 HHS-OIG / OPM debarment feeds.\n--   public.state_exclusions     — 10-state Medicaid exclusion lists (NY, PA, MD,\n--                                 WA, NC, IA, MS, MT, OH, GA), release through\n--                                 2026-06-08, 22,602 records (5,124 carry an NPI).\n--\n-- Join key: NPI only (10-digit, btrim). We never match on name — a name match is\n-- not a defensible identity assertion, so exclusion rows with no NPI cannot be\n-- reached by this identifier join and are out of the matchable denominator.\n--\n-- \"In force\" mirrors the production exclusion lookup (src/lib/exclusions):\n--   LEIE  in force = reinstatement_date IS NULL OR reinstatement_date > today\n--   SAM   in force = termination_date  IS NULL OR termination_date  > today\n--   state in force = reinstatement_date IS NULL OR reinstatement_date > today\n-- Date basis: current_date (2026-06-15 at publish).\n\nWITH oref AS (                       -- distinct order/refer-eligible NPIs\n  SELECT DISTINCT nullif(btrim(npi), '') AS npi\n  FROM public.cms_order_referring\n  WHERE nullif(btrim(npi), '') IS NOT NULL\n),\nleie AS (                            -- in-force, NPI-identified federal OIG exclusions\n  SELECT DISTINCT nullif(btrim(npi), '') AS npi\n  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 (                             -- in-force, NPI-identified SAM.gov exclusions\n  SELECT DISTINCT nullif(btrim(npi), '') AS npi\n  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 (                              -- in-force, NPI-identified state Medicaid exclusions\n  SELECT DISTINCT nullif(btrim(npi), '') AS npi\n  FROM public.state_exclusions\n  WHERE nullif(btrim(npi), '') IS NOT NULL\n    AND (reinstatement_date IS NULL OR reinstatement_date > current_date)\n)\nSELECT\n  (SELECT count(*) FROM oref)                                     AS oref_distinct_npi,    -- 2,008,019\n  (SELECT count(*) FROM leie)                                     AS leie_inforce_npi,     -- 6,880\n  (SELECT count(*) FROM sam)                                      AS sam_inforce_npi,      -- 4,694\n  (SELECT count(*) FROM st)                                       AS state_inforce_npi,    -- 4,851\n  (SELECT count(*) FROM oref JOIN leie USING (npi))               AS oref_x_leie,          -- 18\n  (SELECT count(*) FROM oref JOIN sam  USING (npi))               AS oref_x_sam,           -- 6\n  (SELECT count(*) FROM oref JOIN st   USING (npi))               AS oref_x_state,         -- 156\n  (SELECT count(*) FROM oref\n     WHERE npi IN (SELECT npi FROM leie\n                   UNION SELECT npi FROM sam\n                   UNION SELECT npi FROM st))                     AS oref_x_any;           -- 170\n--  oref_distinct_npi  leie  sam  state  x_leie  x_sam  x_state  x_any\n--     2,008,019      6,880 4,694 4,851    18      6      156     170\n--  => 170 / 2,008,019 = 0.0085% of order/refer-eligible NPIs match an active exclusion.\n--  Per-source columns sum to 180 because 9 NPIs sit on more than one list (see overlap query).\n\n-- Overlap structure of the 170 matched NPIs (which list(s) each sits on):\nWITH oref AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.cms_order_referring WHERE nullif(btrim(npi),'') IS NOT NULL),\nleie AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.oig_leie_exclusions WHERE nullif(btrim(npi),'') IS NOT NULL AND (reinstatement_date IS NULL OR reinstatement_date > current_date)),\nsam  AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.sam_exclusions      WHERE nullif(btrim(npi),'') IS NOT NULL AND (termination_date  IS NULL OR termination_date  > current_date)),\nst   AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.state_exclusions    WHERE nullif(btrim(npi),'') IS NOT NULL AND (reinstatement_date IS NULL OR reinstatement_date > current_date)),\nmatched AS (\n  SELECT o.npi,\n         (o.npi IN (SELECT npi FROM leie)) AS in_leie,\n         (o.npi IN (SELECT npi FROM sam))  AS in_sam,\n         (o.npi IN (SELECT npi FROM st))   AS in_state\n  FROM oref o\n  WHERE o.npi IN (SELECT npi FROM leie UNION SELECT npi FROM sam UNION SELECT npi FROM st)\n)\nSELECT\n  count(*)                                                                      AS total_matched,       -- 170\n  count(*) FILTER (WHERE in_leie)                                               AS on_leie,             -- 18\n  count(*) FILTER (WHERE in_sam)                                                AS on_sam,              -- 6\n  count(*) FILTER (WHERE in_state)                                              AS on_state,            -- 156\n  count(*) FILTER (WHERE (in_leie::int + in_sam::int + in_state::int) >= 2)     AS on_multiple_lists,   -- 9\n  count(*) FILTER (WHERE in_leie AND in_state)                                  AS on_leie_and_state,   -- 7\n  count(*) FILTER (WHERE in_state AND NOT in_leie AND NOT in_sam)               AS state_only,          -- 148\n  count(*) FILTER (WHERE in_leie  AND NOT in_state AND NOT in_sam)              AS leie_only,           -- 10\n  count(*) FILTER (WHERE in_sam   AND NOT in_state AND NOT in_leie)             AS sam_only             -- 3\nFROM matched;\n\n-- Order/refer privileges still attached to the 170 (one row per matched NPI):\nWITH leie AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.oig_leie_exclusions WHERE nullif(btrim(npi),'') IS NOT NULL AND (reinstatement_date IS NULL OR reinstatement_date > current_date)),\nsam  AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.sam_exclusions      WHERE nullif(btrim(npi),'') IS NOT NULL AND (termination_date  IS NULL OR termination_date  > current_date)),\nst   AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.state_exclusions    WHERE nullif(btrim(npi),'') IS NOT NULL AND (reinstatement_date IS NULL OR reinstatement_date > current_date)),\nm AS (\n  SELECT DISTINCT ON (nullif(btrim(o.npi),'')) o.*\n  FROM public.cms_order_referring o\n  WHERE nullif(btrim(o.npi),'') IN (SELECT npi FROM leie UNION SELECT npi FROM sam UNION SELECT npi FROM st)\n)\nSELECT\n  count(*)                                      AS matched,   -- 170\n  count(*) FILTER (WHERE eligible_part_b)        AS part_b,    -- 144\n  count(*) FILTER (WHERE eligible_dme)           AS dme,       -- 170\n  count(*) FILTER (WHERE eligible_hha)           AS hha,       -- 135\n  count(*) FILTER (WHERE eligible_pmd)           AS pmd,       -- 151\n  count(*) FILTER (WHERE eligible_hospice)       AS hospice    -- 115\nFROM m;\n\n-- Lag vs standing failure: earliest exclusion date across all three lists per\n-- matched NPI, bucketed. Separates one-refresh-cycle lag from standing records.\nWITH oref AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.cms_order_referring WHERE nullif(btrim(npi),'') IS NOT NULL),\nleie AS (SELECT nullif(btrim(npi),'') npi, excl_date d, exclusion_type et FROM public.oig_leie_exclusions WHERE nullif(btrim(npi),'') IS NOT NULL AND (reinstatement_date IS NULL OR reinstatement_date > current_date)),\nsam  AS (SELECT nullif(btrim(npi),'') npi, exclusion_date d FROM public.sam_exclusions   WHERE nullif(btrim(npi),'') IS NOT NULL AND (termination_date  IS NULL OR termination_date  > current_date)),\nst   AS (SELECT nullif(btrim(npi),'') npi, exclusion_date d FROM public.state_exclusions WHERE nullif(btrim(npi),'') IS NOT NULL AND (reinstatement_date IS NULL OR reinstatement_date > current_date)),\nallx AS (SELECT npi, d FROM leie UNION ALL SELECT npi, d FROM sam UNION ALL SELECT npi, d FROM st),\nmatched AS (SELECT npi FROM oref WHERE npi IN (SELECT npi FROM allx)),\nper AS (SELECT m.npi, min(a.d) AS first_excl FROM matched m JOIN allx a USING (npi) GROUP BY m.npi)\nSELECT\n  count(*)                                                                  AS matched,        -- 170\n  count(*) FILTER (WHERE first_excl >= current_date - INTERVAL '90 days')    AS within_90d,     -- 24\n  count(*) FILTER (WHERE first_excl >= current_date - INTERVAL '365 days')   AS within_1yr,     -- 60 (incl 90d)\n  count(*) FILTER (WHERE first_excl <  current_date - INTERVAL '365 days')   AS over_1yr,       -- 105\n  count(*) FILTER (WHERE first_excl <  current_date - INTERVAL '1825 days')  AS over_5yr,       -- 45\n  count(*) FILTER (WHERE first_excl IS NULL)                                 AS no_excl_date,   -- 5\n  min(first_excl)                                                           AS oldest_excl,    -- 1987-04-19\n  (SELECT count(DISTINCT npi) FROM leie WHERE npi IN (SELECT npi FROM matched) AND trim(et) LIKE '1128a%') AS leie_mandatory, -- 7\n  (SELECT count(DISTINCT npi) FROM leie WHERE npi IN (SELECT npi FROM matched))                            AS leie_matched    -- 18\nFROM per;\n--  60 within 1yr + 105 over 1yr + 5 no-date = 170. 105 standing > 1 year cannot be\n--  explained by a one-cycle refresh lag; 45 have stood > 5 years; oldest 1987-04-19.\n\n-- State-exclusion concentration (matches by state list; a provider excluded in\n-- two states counts in each — sum 164 across 156 distinct NPIs):\nWITH oref AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.cms_order_referring WHERE nullif(btrim(npi),'') IS NOT NULL),\nst AS (SELECT nullif(btrim(npi),'') npi, state FROM public.state_exclusions WHERE nullif(btrim(npi),'') IS NOT NULL AND (reinstatement_date IS NULL OR reinstatement_date > current_date))\nSELECT st.state, count(DISTINCT st.npi) AS providers\nFROM st JOIN oref USING (npi)\nGROUP BY st.state ORDER BY providers DESC, st.state;\n--  NY 85 · PA 31 · MD 17 · WA 10 · NC 9 · IA 5 · MS 3 · MT 2 · OH 2  (164 across lists / 156 distinct NPIs)\n\n-- SAM.gov matched exclusions by excluding agency (all individual classification):\nWITH oref AS (SELECT DISTINCT nullif(btrim(npi),'') npi FROM public.cms_order_referring WHERE nullif(btrim(npi),'') IS NOT NULL)\nSELECT s.classification, s.excluding_agency, count(DISTINCT nullif(btrim(s.npi),'')) AS providers\nFROM public.sam_exclusions s JOIN oref o ON o.npi = nullif(btrim(s.npi),'')\nWHERE (s.termination_date IS NULL OR s.termination_date > current_date)\nGROUP BY s.classification, s.excluding_agency\nORDER BY providers DESC;\n--  Individual · HHS 5 · OPM 1  (6 total)",
  "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."
}
