Skip to content
FonteumPublic-records evidence
FINANCIAL DISTRESS · ISSUE 088
oig-leieOriginal Research

Barred, but still listed: excluded providers stay active in the provider directory

Of 6,150 providers barred from federal health programs by the OIG who appear in NPPES — the national provider identity registry — 6,123 (99.6%) are still listed as active. NPPES does not deactivate a National Provider Identifier when its holder is excluded, so the directory most credentialing checks resolve against shows them as ordinary.

BY FONTEUM LLC · JUNE 20, 2026 · 10 MIN READREVIEWED BY DR. JENNIFER MONTECILLO, MDSNAPSHOT 2026-06-20 · LAST UPDATED JUNE 20, 2026
OIG LEIE · 2026-06-20
What a federal exclusion looks like inside the national provider directoryoig-leie · 2026-06
In-force exclusions (NPI)
6880
Found in NPPES
6150
Still active in NPPES
6123
Built on OIG LEIE · snapshot 2026-06-20 · reproducible · re-derive the figures yourself
Key findings
of 6,150 OIG-excluded providers who can be found in NPPES — 99.6% — are still listed as active in the national provider identity registry, matched on NPI and never on a name
nppes · CMS
of all 6,880 in-force NPI-identified federal exclusions still hold an active NPPES record; only 27 of those found in NPPES (0.4%) carry an NPI deactivation
oig-leie · CMS
have been excluded for five years or more and are still active in NPPES — too long to be a refresh-cycle lag; 1,890 have stood for ten years or more
oig-leie · CMS
of the 6,150 excluded providers in NPPES carry an NPI deactivation flag — NPPES treats identity and exclusion as unrelated, and an NPI is permanent
nppes · CMS

The National Provider Identifier is a deterministic administrative identifier for individuals and organizations enumerated in NPPES. It can join two records only when both sources publish the same NPI, and it does not establish licensure, credentialing, or program enrollment. The OIG List of Excluded Individuals and Entities includes an NPI on only a minority of rows, so this study measures that identifier-bearing subset rather than the entire exclusion list.

This study measures what that disconnect produces. It joins the in-force federal exclusion list to NPPES on the NPI and asks one question: of the providers the OIG has barred, how many are still listed as active in the national provider directory? The answer is nearly all of them — and unlike the Medicare billing system, which we found correctly drops all but a handful of barred-but-billable providers, the identity directory keeps essentially every one.

The number, in one line

Of the 6,150 in-force NPI-identified federal OIG exclusions that appear in NPPES at all, 6,123 — 99.6% — are still listed as active. Only 27 carry an NPI deactivation. Across the full set of 6,880 in-force NPI-identified exclusions, 6,123 (89.0%) hold an active NPPES record and 730 are absent from NPPES entirely.

Step from exclusion list to provider directoryProvidersShare
In-force federal OIG exclusions carrying an NPI6,880
…found in NPPES6,15089.4% of 6,880
still listed active in NPPES6,12399.6% of those found
…carrying an NPI deactivation in NPPES270.4% of those found
…absent from NPPES entirely73010.6% of 6,880

An NPI is permanent. An exclusion is a bar. The national provider directory keeps the first and never records the second — so 6,123 barred providers read as active.

That 99.6% is not a screening failure inside NPPES; it is what NPPES is built to do. An NPI is assigned once and effectively never reused, and NPPES deactivates it only for death, duplicate enumeration, or the provider's own request. There is no field, flag, or process by which a federal exclusion deactivates an NPI. The directory is doing its job — the mistake is asking it a question it was never designed to answer.

Identity is not enrollment

The contrast with the Medicare billing system is the sharpest way to see the gap. Medicare enrollment lives in PECOS, which gates who may bill, order, and refer; it screens against the exclusion list, and it works — we found only 19 excluded providers still holding an active Medicare enrollment record, and only 170 still cleared to order or refer. The same exclusion list, joined to the same providers, produces 19 hits against the billing gate and 6,123 against the identity directory.

The difference is function. PECOS is a gate — it decides eligibility, so it has to consult the exclusion list. NPPES is a registry — it records identity, so it does not. Any system that treats "active in NPPES" as a proxy for "in good standing" inherits the registry's blindness: it is reading an identity record as if it were an eligibility record.

They have been barred for years

If this were a timing artifact — exclusions entered just before a directory refresh — the still-active set would skew heavily toward recent bars. It does the opposite.

Years since exclusion (still active in NPPES)ProvidersShare of 6,123
Under 1 year4667.6%
1 to 4 years2,12734.7%
5 to 9 years1,64026.8%
10 to 19 years1,86430.4%
20 years or more260.4%
5 years or more3,53057.7%

More than half — 3,530 — have been excluded for five years or more and are still active; 1,890 for ten years or more. A bar that has coexisted with an active NPI listing for a decade is not a refresh-cycle lag. It is the steady-state behaviour of two registries that never reconcile, the same kind of cadence mismatch we measured between a triggering event and CMS deactivation in the deactivation-lag study.

The most serious bases are the largest

The still-active set is not dominated by administrative terminations. The single largest basis is the most serious one — a program-related criminal conviction.

Statutory basis of exclusion (SSA §1128)Active in NPPES
§1128(a)(1) — program-related conviction2,434
§1128(b)(4) — state license revocation, suspension, or surrender1,783
§1128(a)(4) — felony controlled-substance conviction704
§1128(a)(3) — felony health-care-fraud conviction500
§1128(a)(2) — patient-abuse-or-neglect conviction295
§1128(b)(14) — default on a health-education loan obligation129
All other §1128 bases (12 codes)278
Total6,123

The four mandatory §1128(a) conviction bases together account for 3,933 of the 6,123 — nearly two in three. These are the exclusions an organization most needs a screen to catch, and they are exactly the ones an NPPES-only check waves through.

Who they are, and where

The still-active providers are overwhelmingly clinicians, not back-office entities: by NPPES entity type, 5,866 are individuals and 257 are organizations.

Provider category (OIG general description)Active in NPPES
Licensed health-care service provider (individual)2,650
Physician (MD, DO)2,080
Business owner or executive335
Employee — private sector194
Medical practice (entity)192
Other business176
Individual (unaffiliated)99
Nursing profession61
Chiropractic practice60
Dental practice34

The geography tracks population and exclusion volume rather than any one state's practice, with no single state driving the count.

State of the excluded partyActive in NPPES
California772
Florida556
Ohio489
New York460
Texas389
Pennsylvania296
Michigan181
Illinois155
West Virginia152
New Jersey149
All other states / territories2,524
Total6,123
The state is the excluded party's address on the OIG record, not a place of current practice. A smaller state such as West Virginia can rank above its population share because a localized run of exclusions lifts its count more easily than a large state's; the per-state figures are descriptive of these records, not a per-capita rate, and should be read as illustrative.

What this means for screening

The operational lesson is narrow and blunt: an active NPPES record is not an exclusion clearance. Confirming that a provider's NPI is live in the national directory — a check built into countless onboarding and directory workflows — tells you nothing about whether that provider is barred from federal programs. 6,123 barred providers pass that exact check today.

A complete process screens the OIG LEIE and the applicable state Medicaid exclusion lists, on hire and on an ongoing basis, because employing or contracting an excluded party in a federally billable role carries civil-monetary-penalty exposure under a knew-or-should-have-known standard. Fonteum exposes the exclusion layers behind a single NPI lookup — the federal OIG LEIE and the state Medicaid exclusion lists — so a "barred anywhere on the lists we hold" answer does not depend on which registry a screener happened to open. You can run a single NPI against the OIG exclusion search, or use the capped free on-screen NPI workflow at /screening. It is a screening aid: re-confirm any match against the primary source before acting. An absence becomes a no-match only when serving coverage reconciles to the latest comparable attested artifact; otherwise it is indeterminate and is not a clearance.

Methodology

Every figure is a direct join between two public, read-only Postgres tables: oig_leie_exclusions (the OIG monthly LEIE bulk download, release 2026-05-08, 68,055 active records, 7,025 with an NPI) and nppes_providers (the CMS NPPES snapshot — the National Plan and Provider Enumeration System, 9,034,519 records, one row per NPI). The join key is the 10-digit NPI, trimmed of whitespace; a name is never used to assert a match, and the OIG sentinel value 0000000000 is excluded.

A LEIE record is treated as in force when its reinstatement date is null or still in the future relative to the publish date — the same test the production exclusion lookup applies; the OIG file drops reinstated parties, so every in-force NPI is a standing bar. A provider is "active in NPPES" when npi_deactivation_date is null. The matchable denominator is the set of distinct, in-force, NPI-identified federal exclusions (6,880); records with no NPI are excluded from it and reported separately. The breakdown cuts pick one LEIE row per NPI by most-recent exclusion date so each provider is counted once. The exact SQL is in the reproducibility block below, and the provenance methodology documents the source-provenance contract. Methodology version: nppes-exclusion/v1.

Limitations

  • NPI is the floor, not the ceiling. Only 10.3% of LEIE records carry an NPI; the 89.6% that do not are unmatchable to NPPES by identifier and are excluded from every figure here, never matched by name. The study describes the NPI-identified federal exclusion set only — the exclusion-list anatomy study covers the composition of the full list.
  • NPPES activity is identity, not eligibility. "Active in NPPES" means the NPI has not been deactivated; it is not a claim that the provider is currently practising, billing, or enrolled in any program. This study deliberately separates the identity registry from the Medicare billing gate — see the barred-but-billable cut for the enrollment side.
  • Snapshot, not real time. Both lists are point-in-time: the LEIE reflects the 2026-05-08 release and NPPES its current monthly snapshot. A reinstatement or a deactivation in transit between snapshots can move an individual record, though the aggregate is stable because no mechanism links the two systems.
  • State is an address, not a practice location. The per-state figures use the excluded party's address on the OIG record, which may differ from any current practice location, and small clusters from a single enforcement wave can lift a state's count.
  • A compliance signal, aggregate-only. An exclusion-list entry is an administrative and screening fact, never a measure of care quality and never a wrongdoing finding this study makes about any provider. No individual excluded party is named, surfaced, or attached to any provider profile anywhere in this study.

Sources

Frequently asked questions

What does this study actually measure?
It measures how many providers the OIG has excluded from all federal health programs are still listed as active in NPPES — the National Plan and Provider Enumeration System, the federal registry of National Provider Identifiers. Of the 6,150 in-force NPI-identified federal exclusions that appear in NPPES at all, 6,123 (99.6%) carry no NPI deactivation, so the national provider directory shows them as active. The match is made on the 10-digit NPI only, never on a name.
Doesn't an exclusion remove a provider from NPPES?
No. NPPES is an identity registry, not a sanctions registry. An NPI is a permanent identifier assigned once and effectively never reused; NPPES deactivates an NPI on death, duplicate enumeration, or a provider's own request — not because the OIG has excluded the holder. The two federal systems are not wired together, so an exclusion leaves no mark in NPPES. That is the finding: the directory of record for provider identity has no concept of exclusion.
Is being active in NPPES the same as being able to bill Medicare?
No, and the distinction is the point. NPPES is provider identity; Medicare billing eligibility lives in PECOS, the enrollment system. PECOS gates who may bill, order, and refer, and it correctly drops almost every excluded provider — we measured only 19 still enrolled in a separate study. NPPES gates nothing. But NPPES is the registry that credentialing teams, payers, clearinghouses, EHRs, and provider-directory products resolve an NPI against, so a check that confirms only that an NPI is active in NPPES can clear a barred provider.
Could this just be a data-lag artifact?
Lag cannot explain it. An NPI deactivation in NPPES is not the mechanism by which an exclusion is recorded — there is no mechanism — so the figure does not converge toward zero as snapshots refresh. The vintage breakdown confirms it directly: 3,530 of the still-active providers (57.7%) were excluded five years or more ago, and 1,890 ten years or more ago. These are standing bars that have coexisted with an active NPI listing for years.
Are these serious exclusions or administrative ones?
Both, weighted toward the serious. Among the 6,123 still-active providers, 2,434 sit on a §1128(a)(1) program-related criminal conviction and another 1,499 on other mandatory §1128(a) conviction bases (patient abuse or neglect, health-care-fraud felonies, controlled-substance felonies). 1,783 rest on §1128(b)(4) state license actions. The most serious, conviction-based category is the single largest, not a long tail of paperwork terminations.
Does this name or accuse any individual provider?
No. Every figure is an aggregate count. No individual or organization is named, surfaced, or labelled a wrongdoer anywhere in this study, and an exclusion-list entry is an administrative fact, never a finding of guilt that this study makes. The study reports how two federal lists do and do not agree, in totals only. Anyone screening a specific provider should confirm a match directly against the OIG LEIE and the provider's own NPPES record before acting.
What should a screening or credentialing process take from this?
That an active NPPES record is not an exclusion clearance. Confirming a provider's NPI is active in the national directory says nothing about whether that provider is barred from federal programs — 6,123 barred providers pass that exact check. A complete process screens the OIG LEIE and the applicable state Medicaid exclusion lists on hire and on an ongoing basis, because employing or contracting an excluded party in a federally billable role carries civil-monetary-penalty exposure under a knew-or-should-have-known standard.
Can I reproduce these numbers?
Yes. Every figure is a direct NPI join between two public, read-only tables — oig_leie_exclusions (the OIG monthly LEIE bulk download, release 2026-05-08) and nppes_providers (the CMS NPPES snapshot). The exact SQL is published in the reproducibility block below; each count resolves to specific rows in specific frozen snapshots, NPPES carries one row per NPI so the join never multiplies, and no match is ever inferred from a name.

Who uses this data

The source data behind this study is public

Compliance teams, journalists, and researchers work from the same federal source families cited above — queried by NPI or facility identifier through Fonteum’s open dataset pages and API. Every figure traces to a frozen, downloadable snapshot you can reproduce yourself.

Datasets used

Reproducibility

Every claim, reproducible

The SQL
excluded-providers-active-in-nppes-2026.sql
-- Barred, but still listed: excluded providers stay active in the national
-- provider directory — fully reproducible query.
--
-- Question: of the providers the OIG has EXCLUDED from all federal health
-- programs (by NPI), how many are still listed as ACTIVE in NPPES — the
-- national provider identity registry that credentialing, claims, EHR, and
-- directory checks resolve a provider against? NPPES is an identity registry,
-- not a sanctions registry: it does not deactivate an NPI when its holder is
-- excluded, so a check that only confirms an NPI is "active in NPPES" can
-- clear a barred provider.
--
-- This is the IDENTITY-registry cut. It is distinct from the Medicare
-- BILLING-enrollment cut (excluded-providers-still-enrolled-2026, LEIE x PECOS)
-- and the ORDER/REFER-eligibility cut (excluded-providers-ordering-referring-2026):
-- PECOS gates who may bill/order and correctly drops nearly all excluded
-- providers; NPPES gates nothing — it is the directory of record for provider
-- identity, and it keeps them.
--
-- Sources (all public, read-only):
--   public.oig_leie_exclusions — OIG List of Excluded Individuals and Entities,
--                                federal monthly bulk download, release
--                                2026-05-08 (latest exclusion 2026-05-20),
--                                68,055 active records (7,025 carry an NPI).
--   public.nppes_providers     — CMS NPPES, the National Plan & Provider
--                                Enumeration System (the NPI registry),
--                                9,034,519 records, single monthly snapshot.
--                                npi_deactivation_date IS NULL => the NPI is
--                                active in NPPES.
--
-- Join key: NPI only (10-digit, btrim). We NEVER match on name — a name match
-- is not a defensible identity assertion, so LEIE rows with no NPI are excluded
-- from the matchable denominator and reported separately.
--
-- "In force" mirrors the production exclusion lookup (src/lib/exclusions):
--   LEIE in force = reinstatement_date IS NULL OR reinstatement_date > today.
-- The OIG file drops reinstated parties, so every in-force NPI is a standing
-- federal bar. Date basis: current_date (2026-06-20 at publish).
-- nppes_providers carries one NPI per row (0 duplicate-NPI rows), so the join
-- never multiplies. Methodology version: nppes-exclusion/v1.
--
-- Every headline figure in the study resolves to one of the rows below.

-- ── HEADLINE: excluded providers still active in the NPI registry ───────────
WITH leie_inforce AS (             -- distinct in-force, NPI-identified federal OIG exclusions
  SELECT DISTINCT nullif(btrim(npi), '') AS npi
  FROM public.oig_leie_exclusions
  WHERE nullif(btrim(npi), '') IS NOT NULL
    AND length(nullif(btrim(npi), '')) = 10
    AND nullif(btrim(npi), '') <> '0000000000'
    AND (reinstatement_date IS NULL OR reinstatement_date > current_date)
)
SELECT
  count(*)                                                                            AS leie_inforce_npi, -- 6,880
  count(n.npi)                                                                        AS found_in_nppes,   -- 6,150
  count(*) FILTER (WHERE n.npi IS NOT NULL AND n.npi_deactivation_date IS NULL)       AS active_in_nppes,  -- 6,123 (HEADLINE)
  count(*) FILTER (WHERE n.npi IS NOT NULL AND n.npi_deactivation_date IS NOT NULL)   AS deactivated,      -- 27
  count(*) FILTER (WHERE n.npi IS NULL)                                               AS not_in_nppes,     -- 730
  round(100.0 * count(*) FILTER (WHERE n.npi IS NOT NULL AND n.npi_deactivation_date IS NULL)
        / nullif(count(n.npi), 0), 1)                                                 AS pct_active_of_found, -- 99.6
  round(100.0 * count(*) FILTER (WHERE n.npi IS NOT NULL AND n.npi_deactivation_date IS NULL)
        / count(*), 1)                                                                AS pct_active_of_all   -- 89.0
FROM leie_inforce l
LEFT JOIN public.nppes_providers n ON n.npi = l.npi;
--  leie_inforce_npi  found_in_nppes  active_in_nppes  deactivated  not_in_nppes  pct_active_of_found  pct_active_of_all
--       6,880            6,150           6,123            27           730             99.6                89.0
--  => Of the 6,150 OIG-excluded providers who exist in NPPES, 6,123 (99.6%) are still listed ACTIVE.
--  => Across all 6,880 NPI-identified in-force exclusions, 6,123 (89.0%) hold an active NPPES record;
--     only 27 (0.4% of those found) carry an NPI deactivation. 730 are absent from NPPES entirely.

-- ── One deterministic row per excluded NPI (for the breakdown cuts below) ────
-- All breakdown tables operate on the ACTIVE-in-NPPES set (6,123). We pick one
-- LEIE row per NPI by most-recent exclusion date so each provider is counted once.
-- Reusable CTE (re-stated inline in each query below for copy-paste reproducibility):
--   WITH leie AS (
--     SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi,
--            excl_date, exclusion_type, state, general_desc
--     FROM public.oig_leie_exclusions
--     WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10
--       AND nullif(btrim(npi),'') <> '0000000000'
--       AND (reinstatement_date IS NULL OR reinstatement_date > current_date)
--     ORDER BY 1, excl_date DESC
--   ),
--   active AS (
--     SELECT l.* FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi
--     WHERE n.npi_deactivation_date IS NULL          -- 6,123 rows
--   )

-- ── How long they have been excluded yet stayed active in NPPES ─────────────
WITH leie AS (
  SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi, excl_date
  FROM public.oig_leie_exclusions
  WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10
    AND nullif(btrim(npi),'') <> '0000000000'
    AND (reinstatement_date IS NULL OR reinstatement_date > current_date)
  ORDER BY 1, excl_date DESC
),
active AS (
  SELECT l.npi, date_part('year', age(current_date, l.excl_date)) AS yrs
  FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi
  WHERE n.npi_deactivation_date IS NULL
)
SELECT
  count(*) FILTER (WHERE yrs < 1)                AS under_1yr,   -- 466
  count(*) FILTER (WHERE yrs >= 1 AND yrs < 5)   AS y1_4,        -- 2,127
  count(*) FILTER (WHERE yrs >= 5 AND yrs < 10)  AS y5_9,        -- 1,640
  count(*) FILTER (WHERE yrs >= 10 AND yrs < 20) AS y10_19,      -- 1,864
  count(*) FILTER (WHERE yrs >= 20)              AS y20_plus,    -- 26
  count(*) FILTER (WHERE yrs >= 5)               AS y5_plus,     -- 3,530 (57.7%)
  count(*) FILTER (WHERE yrs >= 10)              AS y10_plus,    -- 1,890 (30.9%)
  count(*)                                       AS total        -- 6,123
FROM active;
--  466 excluded <1yr · 2,127 1-4yr · 1,640 5-9yr · 1,864 10-19yr · 26 20yr+  (sum = 6,123)
--  => 3,530 (57.7%) have been excluded 5+ years and are still active in NPPES; 1,890 (30.9%) 10+ years.

-- ── By statutory basis of exclusion (SSA §1128 / 42 U.S.C. §1320a-7) ────────
WITH leie AS (
  SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi, excl_date, exclusion_type
  FROM public.oig_leie_exclusions
  WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10
    AND nullif(btrim(npi),'') <> '0000000000'
    AND (reinstatement_date IS NULL OR reinstatement_date > current_date)
  ORDER BY 1, excl_date DESC
)
SELECT l.exclusion_type, count(*) AS active_in_nppes
FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi
WHERE n.npi_deactivation_date IS NULL
GROUP BY l.exclusion_type ORDER BY count(*) DESC;
--  1128a1 (program-related conviction)      2,434
--  1128b4 (license revoke/suspend/surrender)1,783
--  1128a4 (felony controlled-substance)       704
--  1128a3 (felony health-care fraud)          500
--  1128a2 (patient abuse/neglect conviction)  295
--  1128b14 (default on HEAL loan obligation)  129
--  all other §1128 bases (12 codes)           278     (sum = 6,123)

-- ── By provider category (LEIE general_desc, top categories) ────────────────
WITH leie AS (
  SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi, excl_date,
         general_desc
  FROM public.oig_leie_exclusions
  WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10
    AND nullif(btrim(npi),'') <> '0000000000'
    AND (reinstatement_date IS NULL OR reinstatement_date > current_date)
  ORDER BY 1, excl_date DESC
)
SELECT l.general_desc, count(*) AS active_in_nppes
FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi
WHERE n.npi_deactivation_date IS NULL
GROUP BY l.general_desc ORDER BY count(*) DESC LIMIT 10;
--  IND- LIC HC SERV PRO 2,650 · PHYSICIAN (MD, DO) 2,080 · BUS OWNER/EXEC 335 ·
--  EMPLOYEE - PRIVATE S 194 · MEDICAL PRACTICE, MD 192 · OTHER BUSINESS 176 ·
--  INDIVIDUAL (UNAFFILI 99 · NURSING PROFESSION 61 · CHIROPRACTIC PRACT 60 · DENTAL PRACTICE 34.
--  Entity split (NPPES entity_type_code): 5,866 individuals · 257 organizations  (sum = 6,123).

-- ── By state of the excluded party (LEIE state) ─────────────────────────────
WITH leie AS (
  SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi, excl_date, state
  FROM public.oig_leie_exclusions
  WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10
    AND nullif(btrim(npi),'') <> '0000000000'
    AND (reinstatement_date IS NULL OR reinstatement_date > current_date)
  ORDER BY 1, excl_date DESC
)
SELECT l.state, count(*) AS active_in_nppes
FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi
WHERE n.npi_deactivation_date IS NULL
GROUP BY l.state ORDER BY count(*) DESC LIMIT 12;
--  CA 772 · FL 556 · OH 489 · NY 460 · TX 389 · PA 296 · MI 181 · IL 155 ·
--  WV 152 · NJ 149 · NV 144 · KY 135.  Top 12 = 3,878; all other states = 2,245  (total 6,123).
The snapshot
dataset_idoig-leie
snapshot_date2026-06-20
The JOINs
join key: oig_leie_exclusions.npi = nppes_providers.npi  -- 10-digit NPI, btrim, never a name match
LEIE in_force = reinstatement_date IS NULL OR reinstatement_date > current_date
active in NPPES = nppes_providers.npi_deactivation_date IS NULL
matchable = distinct in-force LEIE NPI (10-digit, non-sentinel)  -- 6,880
found_in_nppes = matchable NPI present in nppes_providers  -- 6,150 (nppes carries 0 duplicate-NPI rows)
active_in_nppes = found_in_nppes with npi_deactivation_date IS NULL  -- 6,123 = 99.6% of found, 89.0% of matchable
deactivated = 27; not_in_nppes = 730; rows with no NPI excluded and reported separately
The pipeline version
methodology_versionnppes-exclusion/v1

Reproduce this

Run the exact query against the frozen 2026-06-20.

-- Barred, but still listed: excluded providers stay active in the national -- provider directory — fully reproducible query. -- -- Question: of the providers the OIG has EXCLUDED from all federal health -- programs (by NPI), how many are still listed as ACTIVE in NPPES — the -- national provider identity registry that credentialing, claims, EHR, and -- directory checks resolve a provider against? NPPES is an identity registry, -- not a sanctions registry: it does not deactivate an NPI when its holder is -- excluded, so a check that only confirms an NPI is "active in NPPES" can -- clear a barred provider. -- -- This is the IDENTITY-registry cut. It is distinct from the Medicare -- BILLING-enrollment cut (excluded-providers-still-enrolled-2026, LEIE x PECOS) -- and the ORDER/REFER-eligibility cut (excluded-providers-ordering-referring-2026): -- PECOS gates who may bill/order and correctly drops nearly all excluded -- providers; NPPES gates nothing — it is the directory of record for provider -- identity, and it keeps them. -- -- Sources (all public, read-only): -- public.oig_leie_exclusions — OIG List of Excluded Individuals and Entities, -- federal monthly bulk download, release -- 2026-05-08 (latest exclusion 2026-05-20), -- 68,055 active records (7,025 carry an NPI). -- public.nppes_providers — CMS NPPES, the National Plan & Provider -- Enumeration System (the NPI registry), -- 9,034,519 records, single monthly snapshot. -- npi_deactivation_date IS NULL => the NPI is -- active in NPPES. -- -- Join key: NPI only (10-digit, btrim). We NEVER match on name — a name match -- is not a defensible identity assertion, so LEIE rows with no NPI are excluded -- from the matchable denominator and reported separately. -- -- "In force" mirrors the production exclusion lookup (src/lib/exclusions): -- LEIE in force = reinstatement_date IS NULL OR reinstatement_date > today. -- The OIG file drops reinstated parties, so every in-force NPI is a standing -- federal bar. Date basis: current_date (2026-06-20 at publish). -- nppes_providers carries one NPI per row (0 duplicate-NPI rows), so the join -- never multiplies. Methodology version: nppes-exclusion/v1. -- -- Every headline figure in the study resolves to one of the rows below. -- ── HEADLINE: excluded providers still active in the NPI registry ─────────── WITH leie_inforce AS ( -- distinct in-force, NPI-identified federal OIG exclusions SELECT DISTINCT nullif(btrim(npi), '') AS npi FROM public.oig_leie_exclusions WHERE nullif(btrim(npi), '') IS NOT NULL AND length(nullif(btrim(npi), '')) = 10 AND nullif(btrim(npi), '') <> '0000000000' AND (reinstatement_date IS NULL OR reinstatement_date > current_date) ) SELECT count(*) AS leie_inforce_npi, -- 6,880 count(n.npi) AS found_in_nppes, -- 6,150 count(*) FILTER (WHERE n.npi IS NOT NULL AND n.npi_deactivation_date IS NULL) AS active_in_nppes, -- 6,123 (HEADLINE) count(*) FILTER (WHERE n.npi IS NOT NULL AND n.npi_deactivation_date IS NOT NULL) AS deactivated, -- 27 count(*) FILTER (WHERE n.npi IS NULL) AS not_in_nppes, -- 730 round(100.0 * count(*) FILTER (WHERE n.npi IS NOT NULL AND n.npi_deactivation_date IS NULL) / nullif(count(n.npi), 0), 1) AS pct_active_of_found, -- 99.6 round(100.0 * count(*) FILTER (WHERE n.npi IS NOT NULL AND n.npi_deactivation_date IS NULL) / count(*), 1) AS pct_active_of_all -- 89.0 FROM leie_inforce l LEFT JOIN public.nppes_providers n ON n.npi = l.npi; -- leie_inforce_npi found_in_nppes active_in_nppes deactivated not_in_nppes pct_active_of_found pct_active_of_all -- 6,880 6,150 6,123 27 730 99.6 89.0 -- => Of the 6,150 OIG-excluded providers who exist in NPPES, 6,123 (99.6%) are still listed ACTIVE. -- => Across all 6,880 NPI-identified in-force exclusions, 6,123 (89.0%) hold an active NPPES record; -- only 27 (0.4% of those found) carry an NPI deactivation. 730 are absent from NPPES entirely. -- ── One deterministic row per excluded NPI (for the breakdown cuts below) ──── -- All breakdown tables operate on the ACTIVE-in-NPPES set (6,123). We pick one -- LEIE row per NPI by most-recent exclusion date so each provider is counted once. -- Reusable CTE (re-stated inline in each query below for copy-paste reproducibility): -- WITH leie AS ( -- SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi, -- excl_date, exclusion_type, state, general_desc -- FROM public.oig_leie_exclusions -- WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10 -- AND nullif(btrim(npi),'') <> '0000000000' -- AND (reinstatement_date IS NULL OR reinstatement_date > current_date) -- ORDER BY 1, excl_date DESC -- ), -- active AS ( -- SELECT l.* FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi -- WHERE n.npi_deactivation_date IS NULL -- 6,123 rows -- ) -- ── How long they have been excluded yet stayed active in NPPES ───────────── WITH leie AS ( SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi, excl_date FROM public.oig_leie_exclusions WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10 AND nullif(btrim(npi),'') <> '0000000000' AND (reinstatement_date IS NULL OR reinstatement_date > current_date) ORDER BY 1, excl_date DESC ), active AS ( SELECT l.npi, date_part('year', age(current_date, l.excl_date)) AS yrs FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi WHERE n.npi_deactivation_date IS NULL ) SELECT count(*) FILTER (WHERE yrs < 1) AS under_1yr, -- 466 count(*) FILTER (WHERE yrs >= 1 AND yrs < 5) AS y1_4, -- 2,127 count(*) FILTER (WHERE yrs >= 5 AND yrs < 10) AS y5_9, -- 1,640 count(*) FILTER (WHERE yrs >= 10 AND yrs < 20) AS y10_19, -- 1,864 count(*) FILTER (WHERE yrs >= 20) AS y20_plus, -- 26 count(*) FILTER (WHERE yrs >= 5) AS y5_plus, -- 3,530 (57.7%) count(*) FILTER (WHERE yrs >= 10) AS y10_plus, -- 1,890 (30.9%) count(*) AS total -- 6,123 FROM active; -- 466 excluded <1yr · 2,127 1-4yr · 1,640 5-9yr · 1,864 10-19yr · 26 20yr+ (sum = 6,123) -- => 3,530 (57.7%) have been excluded 5+ years and are still active in NPPES; 1,890 (30.9%) 10+ years. -- ── By statutory basis of exclusion (SSA §1128 / 42 U.S.C. §1320a-7) ──────── WITH leie AS ( SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi, excl_date, exclusion_type FROM public.oig_leie_exclusions WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10 AND nullif(btrim(npi),'') <> '0000000000' AND (reinstatement_date IS NULL OR reinstatement_date > current_date) ORDER BY 1, excl_date DESC ) SELECT l.exclusion_type, count(*) AS active_in_nppes FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi WHERE n.npi_deactivation_date IS NULL GROUP BY l.exclusion_type ORDER BY count(*) DESC; -- 1128a1 (program-related conviction) 2,434 -- 1128b4 (license revoke/suspend/surrender)1,783 -- 1128a4 (felony controlled-substance) 704 -- 1128a3 (felony health-care fraud) 500 -- 1128a2 (patient abuse/neglect conviction) 295 -- 1128b14 (default on HEAL loan obligation) 129 -- all other §1128 bases (12 codes) 278 (sum = 6,123) -- ── By provider category (LEIE general_desc, top categories) ──────────────── WITH leie AS ( SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi, excl_date, general_desc FROM public.oig_leie_exclusions WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10 AND nullif(btrim(npi),'') <> '0000000000' AND (reinstatement_date IS NULL OR reinstatement_date > current_date) ORDER BY 1, excl_date DESC ) SELECT l.general_desc, count(*) AS active_in_nppes FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi WHERE n.npi_deactivation_date IS NULL GROUP BY l.general_desc ORDER BY count(*) DESC LIMIT 10; -- IND- LIC HC SERV PRO 2,650 · PHYSICIAN (MD, DO) 2,080 · BUS OWNER/EXEC 335 · -- EMPLOYEE - PRIVATE S 194 · MEDICAL PRACTICE, MD 192 · OTHER BUSINESS 176 · -- INDIVIDUAL (UNAFFILI 99 · NURSING PROFESSION 61 · CHIROPRACTIC PRACT 60 · DENTAL PRACTICE 34. -- Entity split (NPPES entity_type_code): 5,866 individuals · 257 organizations (sum = 6,123). -- ── By state of the excluded party (LEIE state) ───────────────────────────── WITH leie AS ( SELECT DISTINCT ON (nullif(btrim(npi),'')) nullif(btrim(npi),'') AS npi, excl_date, state FROM public.oig_leie_exclusions WHERE nullif(btrim(npi),'') IS NOT NULL AND length(nullif(btrim(npi),''))=10 AND nullif(btrim(npi),'') <> '0000000000' AND (reinstatement_date IS NULL OR reinstatement_date > current_date) ORDER BY 1, excl_date DESC ) SELECT l.state, count(*) AS active_in_nppes FROM leie l JOIN public.nppes_providers n ON n.npi = l.npi WHERE n.npi_deactivation_date IS NULL GROUP BY l.state ORDER BY count(*) DESC LIMIT 12; -- CA 772 · FL 556 · OH 489 · NY 460 · TX 389 · PA 296 · MI 181 · IL 155 · -- WV 152 · NJ 149 · NV 144 · KY 135. Top 12 = 3,878; all other states = 2,245 (total 6,123).

Download the data: SQL · JSON · CSV

Cite this study

Citation-ready for researchers and AI.

Fonteum Research Bureau (2026). Barred, but still listed: excluded providers stay active in the provider directory. OIG LEIE, snapshot 2026-06-20. https://fonteum.com/research/excluded-providers-active-in-nppes-2026

Check the chain

The cited snapshot identifies the federal file. Where an attestation is present, its file hash can be re-derived; figures are not individually signed.

1
Snapshot
oig-leie · 2026-06-20
2
Supplied file hash
Not supplied
3
Snapshot attestation
Inspect supplied artifact
Figures are not individually signed · check it in Attest →

Federal source citations

  1. OIG LEIE · snapshot 2026-06-20 · federal source family · US-Government-Works
  2. NPPES · snapshot 2026-06-20 · federal source family · US-Government-Works

Fonteum LLC · June 20, 2026 · All figures trace to the frozen federal-data snapshot cited above.

What’s on file, by the numbers

Platform snapshot · 2026-08-07

13.4Mproviders & companiesProviders, organizations, owners, and facilities on file
26.2Msource-linked factsSource-linked field facts in the dated platform snapshot
90sources with dataDistinct snapshot source IDs with at least one positive record count
76fresh sourcesDistinct source IDs whose latest positive-data snapshot falls within the preceding 45 days
111sources integratedActive registry rows; integration does not establish a load
13state Medicaid jurisdictionsDistinct states represented in the state-exclusions serving table

Integrated, with-data, and fresh-observation counts are separate. No platform-wide source-completeness count is published. Completeness is source-specific and must be evaluated against the named source's expected scope. State coverage is a separate jurisdiction measure.

Source authority is record-specific

Use the issuer named on the record.

Fonteum spans federal, state, and global public publishers. A source page or returned record identifies its issuer and dataset where that metadata is available. A platform registry count does not assign every page to one authority or establish loaded, fresh, or complete coverage.

Browse source records and their stated limitations →

Reproducible by design

Inspect the evidence each published figure actually supplies.

Source and date

Research pages expose the named public file and observation date where those fields are available. Source-file SHA-256 coverage is separate; facts do not currently link deterministically to signatures.

Available derivation

Studies with a retained release and committed derivation link the SQL or method used. Other studies state the evidence and reproduction limits they actually have.

Daily observations

Dated table row-count observations can detect local drift. They do not imply that an upstream publisher released or Fonteum ingested new data that day.

Named medical review

Reviewed by Jennifer Montecillo, MD, medical reviewer. Non-practicing medical reviewer.

Read the full provenance and attestation methodology →

Request access