# New Compliance Sectors — Detectable Signals + Contact Channels Companion to the FCC RMD and FMCSA/trucking playbooks. The winning pattern is: a public government registry + a per-record recurring obligation + an automated deficiency check + outreach to the operator. This doc covers the three best next sectors and, critically, **how to reach the license holders besides postal mail.** > Honesty note on email: unlike FCC RMD (`contact_email`) and FMCSA (carrier > email), these three registries are **address/phone-rich but email-poor**. The > deficiency engine still works; the channel is the hard part. Section 4 solves > that. --- ## 1. NPPES / Healthcare Providers (NPI) **Source:** CMS NPPES monthly full-replacement dissemination file (free bulk CSV, ~10M rows). Verified live against `npidata_pfile_20050523-20260510.csv` (`download.cms.gov/nppes/`). Cross-joinable with OIG LEIE (exclusions) and the CMS revalidation list, both free. **Email in file:** ❌ **VERIFIED — no email field exists** (file has 104 columns; none is email). Contact info available: **mailing + practice TELEPHONE (cols 27, 35), mailing + practice FAX (cols 28, 36)**, full mailing + practice addresses, and Authorized Official telephone (col 47). So channel = fax, phone, mail, or email-append. Not email-native. ### Verified columns we care about (104-col file) | Col # | Field (exact) | |---|---| | 1, 2 | NPI, Entity Type Code (1=individual, 2=org) | | 5–11 | Org legal name / provider name + credential | | 21–28 | Mailing address, **mailing telephone (27)**, **mailing fax (28)** | | 29–36 | Practice location address, **practice telephone (35)**, **practice fax (36)** | | 37 | Provider Enumeration Date | | 38 | Last Update Date | | 39, 40, 41 | NPI Deactivation Reason Code, Deactivation Date, Reactivation Date | | 43–47 | Authorized Official name/title + **telephone (47)** | | 48–103 | Up to **15× {Taxonomy Code, License Number, License State Code, Primary Taxonomy Switch}** | > Note: the public file does NOT contain a "Is Sole Proprietor" or EIN-validated > field in a usable way (EIN col 4 is usually masked). Earlier guess corrected. ### Detectable from the file (verified) | Signal | Field(s) | Obligation | Service | |---|---|---|---| | Stale `Last Update Date` (>1–2 yrs) | col 38 | NPPES update within 30 days of any change | NPPES refresh/attestation | | Deactivated NPI | cols 39–41 | Deactivated NPI can't bill | NPI reactivation | | Old enumeration + never updated | col 37 vs 38 | Likely overdue Medicare revalidation (5-yr) | PECOS revalidation | | Taxonomy w/ license but no license-state | taxonomy/license/state sets | License/specialty inconsistency | License/taxonomy reconcile | | No primary taxonomy flagged (switch all N) | Primary Taxonomy Switch_n | Billing/credentialing errors | Taxonomy cleanup | | Org (Type 2) missing Authorized Official | cols 2, 43–47 | Incomplete org NPI | Org NPI correction | **Inferable only (not in file):** exact revalidation due date (PECOS), HIPAA posture, active billing, sanctions (use OIG LEIE join), email. **Best cross-join hook:** NPPES ⨝ OIG LEIE ⨝ CMS revalidation list. --- ## 2. FMC Ocean Transportation Intermediaries (OTI: NVOCC + freight forwarders) **Source:** FMC OTI lookup (per-record web lookup; a few thousand licensees). Closest analog to FCC RMD in size and clock. **Email in record:** Inconsistent — sometimes present, often not. Partial coverage. ### Detectable from the record | Signal | Field(s) | Obligation | Service | |---|---|---|---| | License issue ≥ ~3 yrs ago | issue/license date | **Triennial renewal** (every 3 yrs) | OTI renewal filing | | Bond below current minimum | financial responsibility | $75k NVOCC / $50k forwarder bond | Bond placement/review | | Missing proof of bond | financial responsibility status | Required to operate | Bond compliance | | QI stale/absent | qualifying individual | OTI must have a qualified QI | QI / Form FMC-18 update | | NVOCC w/o tariff indicator | cross-ref tariff systems | NVOCCs must publish tariffs / SARs | Tariff publication setup | | Status inactive/revoked/surrendered | license status | Operating lapsed = penalties | Reinstatement | **Inferable only:** exact renewal due date, whether tariff actually published (separate tariff registry), email when absent. --- ## 3. EPA RCRA Hazardous Waste Handlers (via ECHO / RCRAInfo / FRS) **Source:** ECHO bulk files (`echo.epa.gov/files/echodownloads/`) — verified live. Two relevant downloads: - **`ECHO_EXPORTER`** (137 cols) — one row per facility across all programs, holds the compliance signals. Column dict: `echo_exporter_columns_*.xlsx`. - **`rcra_downloads.zip`** — 6 RCRA-specific CSVs: `RCRA_FACILITIES.csv` (15 cols), `RCRA_VIOLATIONS.csv`, `RCRA_EVALUATIONS.csv`, `RCRA_ENFORCEMENTS.csv`, `RCRA_NAICS.csv`, `RCRA_VIOSNC_HISTORY.csv`. **Email in file:** ❌ **VERIFIED — no email anywhere in ECHO bulk.** `RCRA_FACILITIES.csv` has only: `ID_NUMBER, FACILITY_NAME, ACTIVITY_LOCATION, FULL_ENFORCEMENT, HREPORT_UNIVERSE_RECORD, STREET_ADDRESS, CITY_NAME, STATE_CODE, ZIP_CODE, LATITUDE83, LONGITUDE83, FED_WASTE_GENERATOR, TRANSPORTER, ACTIVE_SITE, OPERATING_TSDF`. **No contact name, no phone, no email** in ECHO RCRA. Owner/ operator contact NAME + PHONE (still no email) exists only in the deeper RCRAInfo handler download (`rcrapublic.epa.gov`), where a PHONE field is present. So channel = phone (from RCRAInfo) + mail + email-append. Not email-native. ### Verified ECHO_EXPORTER RCRA signal columns `RCRA_FLAG`, `RCRA_IDS`, `RCRA_PERMIT_TYPES`, `RCRA_NAICS`, `RCRA_INSPECTION_COUNT`, `RCRA_DAYS_LAST_EVALUATION`, `RCRA_INFORMAL_COUNT`, `RCRA_FORMAL_ACTION_COUNT`, `RCRA_DATE_LAST_FORMAL_ACTION`, `RCRA_PENALTIES`, `RCRA_LAST_PENALTY_DATE`, `RCRA_LAST_PENALTY_AMT`, `RCRA_QTRS_WITH_NC`, `RCRA_COMPLIANCE_STATUS`, `RCRA_SNC_FLAG`, `RCRA_3YR_COMPL_QTRS_HISTORY`. Plus facility-level: `FAC_DATE_LAST_INSPECTION`, `FAC_SNC_FLG`, `FAC_COMPLIANCE_STATUS`. ### Detectable from the data (verified) | Signal | Field(s) | Obligation | Service | |---|---|---|---| | Generator status (LQG/SQG/VSQG) | `FED_WASTE_GENERATOR` (1/2/3/N), `RCRA_PERMIT_TYPES` | Biennial report + manifest + training | Generator program | | Open/current violation | `RCRA_COMPLIANCE_STATUS`, `RCRA_QTRS_WITH_NC` | Return-to-compliance | Violation remediation | | SNC flag | `RCRA_SNC_FLAG`, `FAC_SNC_FLG` | High enforcement priority | Audit prep + corrective | | Old/never evaluated + LQG | `RCRA_DAYS_LAST_EVALUATION`, `FAC_DATE_LAST_INSPECTION` | Overdue inspection risk | Self-audit | | Recent penalty / formal action | `RCRA_PENALTIES`, `RCRA_DATE_LAST_FORMAL_ACTION` | Active enforcement | Remediation/defense | | TSDF without active permit | `OPERATING_TSDF`, `RCRA_PERMIT_TYPES` | TSDF permit renewal | Permit renewal | | NAICS implies waste, no RCRA ID | `RCRA_NAICS` / FRS NAICS w/o `RCRA_FLAG` | Should be registered as generator | Generator registration | | Cross-program: RCRA + TRI reporter | `RCRA_FLAG` + `TRI_FLAG` | EPCRA/Tier II overlap | Tier II / SPCC filing | **Inferable only (not in file):** biennial-report-not-filed status (need RCRAInfo BR module, not in ECHO bulk), SPCC plan existence, actual chemical inventory, contact email. (Earlier "biennial flag" claim corrected — ECHO bulk does not expose a clean biennial-filed flag.) **Cross-join opportunity:** ECHO_EXPORTER `RCRA_FLAG` + `TRI_FLAG` + `FAC_NAICS_CODES` to find facilities that should be reporting but aren't. --- ## 4. How to Contact License Holders (Besides Postal Mail) The registries above give us name + entity + address + phone (+ sometimes fax). Ranked options to reach them on cheaper/faster channels: ### A. Email append (turn address/phone into email) - **B2B email-append vendors** (e.g. data providers that match company name + address → business email): bulk match files, pay per match. Best for NPPES org records and EPA facilities (real businesses). - **Domain inference + verification:** derive likely domain from business name / website, generate `info@`, `first.last@`, etc., then run an email-verification API (SMTP/MX validation) to keep only deliverable addresses. Cheap, scalable, works well where the entity has a website. - **Website-scrape enrichment:** for each entity, find the website (search by name+city), scrape contact/`mailto:` and `/contact` pages for published business email. High accuracy when a site exists. - **People/B2B data APIs** keyed on the **Authorized Official / Qualifying Individual / facility contact name** we already have from the registry. ### B. Phone (we already have it in all three) - **Cold call** the listed phone — these registries reliably include phone. - **Ringless voicemail / voicemail drop** to the listed number. - **SMS** to numbers that resolve to mobile (carrier-lookup the phone first; honor TCPA/DNC — we already run DNC compliance services, so scrub against the NDNC and keep consent records). This is the channel we must be most careful on. ### C. Fax (underrated for NPPES + EPA) - NPPES and many EPA records include **fax**. Compliance/medical/industrial audiences still read fax. Cheap blast, low competition, novelty cut-through. ### D. Web / digital, no contact info needed - **Free public lookup tool** (like `/tools/dot-compliance-check`): e.g. `/tools/npi-compliance-check`, `/tools/oti-renewal-check`, `/tools/rcra-compliance-check`. Drives inbound; the provider searches their own NPI/license/EPA ID and self-identifies. Pair with SEO + paid search on "NPI revalidation", "FMC license renewal", "RCRA biennial report". - **Retargeting / lookalike audiences:** upload the matched-email or hashed contact list to ad platforms for display/social retargeting even without reaching the inbox. - **LinkedIn / Sales Navigator outreach** keyed on the Authorized Official / QI name (especially good for FMC OTIs and EPA facility EHS managers). ### E. Channel-fit by sector | Sector | Phone | Fax | Email-append quality | Web/SEO inbound | |---|---|---|---|---| | NPPES (NPI) | ✅ strong | ✅ good | Medium (org > individual) | ✅ "NPI revalidation" | | FMC OTI | ✅ strong | ⚠️ some | Medium-high (have websites) | ✅ "FMC license renewal" | | EPA RCRA | ✅ strong | ⚠️ some | High (real businesses + EHS contact) | ✅ "RCRA biennial report" | ### Compliance guardrails for these channels - **TCPA/DNC:** scrub all phone/SMS against DNC, prefer manual-dial or established business relationship, keep consent/records. (We already sell DNC compliance — practice what we preach.) - **CAN-SPAM:** appended emails must carry unsubscribe + physical address (our Listmonk templates already do). - **State telemarketing & fax (TCPA/JFPA):** fax blasting has its own rules; treat as opt-out-respecting and B2B-only. --- ## Recommendation / Sequencing 1. **FMC OTI first** — cleanest RMD analog (small set, 3-yr clock, bond math), some email already present, businesses with websites = easy email-append. 2. **EPA RCRA** — best deficiency richness + highest fine fear = best conversion; reach via email-append + phone + free lookup tool. 3. **NPPES** — biggest volume, but email-poor and individual-heavy; lead with a free NPI revalidation lookup tool + fax + org-targeted email-append. > If email-native outreach (like FCC RMD) is the hard requirement, the better > targets are state license boards (contractors/CSLB, insurance producers, NMLS, > cannabis/ABC) that publish licensee email directly. Worth a separate survey. --- ## 5. Postcard Print-and-Mail Vendor Pricing (Lob vs PostGrid vs Click2Mail) For our use case (targeted list of named license holders with mailing addresses, personalized + QR to the free compliance-check tool, API-driven like Listmonk), a print-and-mail API is the right tool — no USPS permit, no presort, no BMEU drop-off. Per-piece is all-in (printing + postage + address verification). Rates verified from live pricing pages on the session date. Confirm before committing volume; these vendors change rates and gate some behind sales. ### Lob — VERIFIED from lob.com/pricing/print-mail 4x6 postcard, "starting at" per-piece by plan tier (volume + automation lower it): | Plan | Monthly fee | 4x6 postcard from | Notes | |---|---|---|---| | Developer (free) | $0 | **$0.872 / postcard** | up to 5 templates, low limits, good for testing | | Growth | **$260/mo** | **$0.612 / postcard** | 10 HTML templates, address verif. included tiers | | Enterprise | **$550/mo** | **$0.582 / postcard** | 25 templates, custom volume, lowest per-piece | - Letters from ~$0.806 / check ~$1.159 (for reference). - Address verification (US) ~$0.05/lookup pay-go, cheaper bundled. - Strong API + webhooks (in-transit tracking), best docs of the three. - Best fit if we want to wire postcards into the existing pipeline cleanly. ### PostGrid — quote/login gated (not publicly itemized) - Pricing page does not publish per-piece; requires signup/sales for the rate card. Historically positioned **slightly under Lob per-piece** (~$0.50–$0.80 range for 4x6 depending on volume) with pay-as-you-go + no mandatory monthly minimum on the entry tier. - US + Canada print/mail, address verification (CASS/NCOA, SERP for Canada), good API. Often pitched as the cheaper Lob alternative. - **Action:** get an actual quote keyed to our expected monthly volume before choosing — the public "slightly cheaper" claim is unverified here. ### Click2Mail — login/quote gated, but the cheapest at low volume historically - Public pages (postcards / cost-calculator) gate exact rates behind an account; rates depend on size (4x6, 4x9, 5x8, 6x9, 6x11), class (First-Class vs Standard/Marketing Mail), and quantity. - Historically the **lowest all-in for small/medium runs** (often well under $0.50/4x6 First-Class at modest volume) because it's a self-serve mail house, not a developer-API-first platform. Has an API but less polished than Lob. - **Action:** run their cost calculator logged in for a real number on a sample 4x6 First-Class run of ~1,000 and ~5,000 pieces. ### Practical comparison | | Lob | PostGrid | Click2Mail | |---|---|---|---| | Per-piece 4x6 (4x6) | $0.58–$0.87 (verified) | ~$0.50–$0.80 (quote) | typically lowest at low vol (quote) | | Monthly fee | $0 / $260 / $550 | none on entry (quote) | none (self-serve) | | API quality | Best | Good | Basic | | Address verif (CASS/NCOA) | Yes | Yes | Yes | | Best for | API-wired campaigns at scale | cheaper Lob-style API | cheapest small/medium runs | ### Recommendation - **Start on Click2Mail (or Lob Developer free tier) for the first test batch** to validate conversion at the lowest fixed cost — no $260/$550 monthly commitment. - **Move to Lob Growth/Enterprise (or a PostGrid quote) once volume justifies the per-piece drop** (~the monthly fee pays for itself only at several thousand pieces/month). Lob's API is the cleanest to wire into our existing pipeline. - Always personalize with the detected deficiency + a **QR code / short URL** to the relevant free lookup tool — that QR is our tracking + conversion bridge, the same role the email CTA plays today. --- ## 6. NPI Compliance Programs, "Expired" Signals & Suggested Rates ### What we actually know is expired/dead (honest breakdown) NPPES alone has **no license/cert/revalidation expiry date**. The only hard "dead" status in the file is **NPI deactivation**. Real dateable "expired" signals come from FREE companion databases joined to NPPES by NPI or name. | Source | What it proves is expired/wrong | Hook | |---|---|---| | NPPES (deactivation cols 39-41) | NPI deactivated — cannot bill | NPI reactivation (HARD) | | NPPES (Last Update col 38) | Record stale (not "expired", a nudge) | NPPES update | | **CMS PECOS Revalidation list** | **Medicare revalidation due/overdue date (5-yr)** — the real dateable hook | Revalidation filing (flagship) | | **OIG LEIE** | Provider EXCLUDED from federal programs | Exclusion remediation (urgent) | | **SAM.gov exclusions** | Debarred / additional exclusions | Screening + remediation | | State medical board lookups | License itself expired (not in NPPES) | License renewal | > Flagship analog to FCC RMD recertification = **CMS Medicare revalidation due > date**, joined to NPPES by NPI. That is the genuine "your X expired" signal. ### Programs to sell (ranked by trigger defensibility) 1. Medicare PECOS revalidation filing (flagship) 2. NPI reactivation (hard NPPES signal) 3. NPPES data update / attestation 4. State license renewal monitoring / filing 5. OIG/SAM exclusion screening + remediation 6. CAQH profile attestation (re-attest ~every 120 days) 7. HIPAA compliance package (universal, not detectable) 8. Credentialing / re-credentialing with payers 9. Taxonomy / enrollment cleanup ### Suggested rates | Service | Price | Cadence | Notes | |---|---|---|---| | NPPES data update / attestation | **$149** | one-time | low-friction entry product | | NPI reactivation | **$249** | one-time | hard trigger | | Medicare PECOS revalidation filing | **$399** | every 5 yrs | flagship, high stakes | | State license renewal (per license) | **$149/license** | annual/biennial | recurring | | OIG/SAM exclusion screening | **$99/yr** ($19/mo) | recurring | sticky subscription | | CAQH attestation/maintenance | **$249/yr** | recurring | high-churn pain | | HIPAA compliance package | **$799–$1,499** | one-time + annual | biggest ticket | | Credentialing (per payer) | **$199/payer** | as needed | volume add-on | | **Provider Compliance Bundle** | **$599–$899/yr** | annual subscription | revalidation watch + exclusion screening + NPPES upkeep | Pricing logic: solo/small providers are price-sensitive, but fear of losing Medicare billing privileges (revalidation, exclusion) supports premium pricing on those two. Data-update products stay cheap as door-openers. The **annual bundle** is the goal — mirrors the trucking compliance-bundle model for recurring revenue. ### Recommendation Lead with **Medicare revalidation** (real dateable expiry from the free CMS list, like FCC RMD recert), use **NPI-deactivated** + **stale-NPPES** as secondary triggers, package into a **$599-899/yr Provider Compliance Bundle**. --- ## 7. Companion Databases — VERIFIED (downloaded & inspected) All free, all joinable to NPPES by **NPI**. Counts below are from the live files pulled on the session date. This is the data that turns "stale record" into a real, dateable "your X expired" hook. ### 7.1 CMS Revalidation Due Date List (the flagship) `revalidation_base.csv` — **~2.9M rows, 2.42M distinct NPIs.** Columns: Enrollment ID, **National Provider Identifier (NPI)**, First/Last Name, Organization Name, Enrollment State Code, Enrollment Type, Provider Type Text, Enrollment Specialty, **Revalidation Due Date**, **Adjusted Due Date**, Individual Total Reassign To, Receiving Benefits Reassignment. **Verified population:** - **261,878 enrollments have a concrete due date set** (rest are "TBD" = CMS hasn't scheduled them yet). - **217,968 are PAST DUE (overdue revalidation)** — these are the hottest leads. - 43,910 are upcoming (future-dated) — perfect for "due soon" pre-emptive offers. This is the direct analog to the FCC RMD recertification date. Sell **Medicare PECOS revalidation filing ($399)** to the 217,968 overdue + watch service to the upcoming ones. Join to NPPES to get their address/phone for outreach. ### 7.2 OIG LEIE (Exclusions) `UPDATED.csv` — **83,256 excluded providers/entities.** Columns: LASTNAME, FIRSTNAME, MIDNAME, BUSNAME, GENERAL, SPECIALTY, UPIN, **NPI**, DOB, ADDRESS, CITY, STATE, ZIP, EXCLTYPE, EXCLDATE, REINDATE, WAIVERDATE, WVRSTATE. **Verified:** only **8,608 have a valid joinable NPI** (most exclusions predate NPI or are entities w/ `0000000000`). Use this two ways: - As a **screening product** sold to OTHER providers ($99/yr) — "we check you and your staff against LEIE monthly." - As a **remediation hook** to the 8,608 excluded-with-NPI (reinstatement help), though excluded providers are a harder, riskier audience. ### 7.3 Medicare Opt-Out Affidavits `OptOut_*.csv` — **56,300 opt-out affidavits.** Columns: First/Last Name, **npi**, Specialty, **Optout Effective Date**, **Optout End Date**, address, City, State, Zip, Eligible to Order and Refer, Last updated. **Verified:** **22,379 have an opt-out period ending within 12 months.** Opt-out auto-renews every 2 years unless cancelled — a real dateable event. Sell **opt-out renewal / re-enrollment decision support**. ### 7.4 Order & Referring File `OrderReferring_*.csv` — **~2.0M rows.** Columns: **NPI**, LAST_NAME, FIRST_NAME, PARTB, DME, HHA, PMD, HOSPICE (Y/N flags). Tells us which providers are eligible to order/refer for each program. Use to **qualify leads** (a provider missing eligibility they should have = enrollment gap = service opportunity). ### 7.5 PPEF Public Provider Enrollment `PPEF_Enrollment_Extract_*.csv` — **~2.98M rows.** Columns: **NPI**, MULTIPLE_NPI_FLAG, PECOS_ASCT_CNTL_ID, ENRLMT_ID, PROVIDER_TYPE_CD/DESC, STATE_CD, names, ORG_NAME. This is the authoritative "who is actively enrolled in Medicare" list. Join against NPPES to find: - NPPES providers **NOT in PPEF** = not Medicare-enrolled (enrollment opportunity). - Cross-check enrollment state vs NPPES practice state (mismatch = cleanup). ### Join architecture ``` NPPES (10M providers, addr/phone/fax) <- outreach contact + base universe ⨝ NPI ⨝ Revalidation Due (217,968 overdue) <- flagship "expired" hook + $399 ⨝ NPI ⨝ LEIE (8,608 excluded w/ NPI) <- screening product + urgent flag ⨝ NPI ⨝ Opt-Out (22,379 ending <12mo) <- renewal hook ⨝ NPI ⨝ PPEF / Order-Referring <- enrollment gaps / lead qualification ``` ### Headline takeaway The single best, defensible, dateable hook is **217,968 providers with OVERDUE Medicare revalidation**, each enrichable with NPPES address/phone/fax for outreach. That is a larger and harder-deadline audience than the FCC RMD list, and the $399 revalidation filing is a clean flagship product. --- ## 8. Free Email Append for NPI — VERIFIED FINDINGS **Yes, there is a partial free email source, plus a free verification path.** Investigated and tested live on the session date. ### 8.1 NPPES Endpoint file = free, NPI-keyed email addresses The NPPES dissemination ZIP contains a separate **`endpoint_pfile`** (123 MB) that we had not previously parsed. It holds electronic endpoints keyed by **NPI**. Verified contents: - **597,927 endpoint rows, covering 491,761 distinct NPIs.** - **390,639 rows are email-formatted** (`user@domain.tld`). - Endpoint types: DIRECT 356,394 · CONNECT 91,616 · SOAP 56,543 · FHIR 46,764 · OTHERS 45,938 · REST 672. **The honest catch:** most are **Direct Secure Messaging (HISP) addresses**, not normal inboxes. The top domains are health-system Direct gateways (`ehrdirect.mayoclinicmsg.org`, `direct.iuhealth.org`, `upmcdirect.com`, …). Direct addresses route only inside the DirectTrust network — **you cannot cold- email them from a normal mail server; they will not deliver.** So the raw 390k is NOT a usable marketing email list. **BUT — the usable slice:** a meaningful subset are **real consumer/business inboxes** the provider self-published: - **~19,759 rows on common consumer webmail** (gmail.com 12,427, plus yahoo, hotmail, outlook, aol, icloud). - Verified samples are clearly personal/practice inboxes: `tcneurology@gmail.com`, `veinsofkc@yahoo.com`, `kendalncarlsondmd@gmail.com`, `scottcopt@aol.com`, etc. - Plus an additional long tail of non-Direct **practice-domain** emails (clinic websites) that are also normal inboxes. So the genuinely free, cold-emailable slice from NPPES endpoints is on the order of **tens of thousands** (consumer webmail + real practice domains), not the full 391k. Still free, still NPI-keyed (joins to revalidation/LEIE/etc.), and exactly the small-practice owner-operators who are our buyer. ### 8.2 Free SMTP/MX verification is possible from our infra Tested from this host: - **Port 25 egress is OPEN** (connected to `gmail-smtp-in.l.google.com:25`, got `220` banner). - **MX lookups work** (resolved MX for gmail.com, mayoclinic.org). That means we can run **free email verification** ourselves (MX check + SMTP RCPT-TO probe) with no paid validation vendor, to: 1. Filter the endpoint emails down to deliverable ones. 2. Verify guessed emails for the domain-inference path below. > Caution: aggressive SMTP probing can get an IP greylisted/blocked. Throttle, > rotate, and prefer MX-only validation where possible. Do it from a non-sending > IP so it never touches our warmed MTA reputation. ### 8.3 Free domain-inference append (for the rest) For NPIs without a usable endpoint email but with an org name + practice address: 1. Find the practice **website** (search name + city; or guess `name.com`). 2. Generate candidate emails (`info@`, `office@`, `contact@`, `first.last@`). 3. **MX + SMTP verify for free** (8.2) and keep only deliverable. This is zero-cost compute, just our time/infra. Lower hit rate than a paid append vendor but free. ### 8.4 Bottom line | Path | Cost | Yield | Cold-emailable? | |---|---|---|---| | NPPES endpoint Direct addresses (~356k) | free | high count | ❌ no (HISP-only routing) | | NPPES endpoint consumer/practice inboxes (~20k+) | free | tens of thousands | ✅ yes | | Domain-inference + free SMTP verify | free (compute) | medium, varies | ✅ yes | | Paid B2B email append vendor | $ per match | highest | ✅ yes | **Recommendation:** build a free pipeline = (a) extract the cold-emailable subset of endpoint emails, (b) domain-infer + free-SMTP-verify the rest, (c) fall back to phone/fax/mail for non-matches. This recovers a real email channel for a meaningful chunk of the 217,968 overdue-revalidation targets at **zero vendor cost**, and we verify deliverability ourselves since port 25 + MX both work here. --- ## 9. NPI Outreach Pipeline — BUILT & RUN (`scripts/build_npi_outreach_lists.py`) A reusable pipeline that joins the free NPPES endpoint emails to the CMS revalidation list and cross-flags LEIE + opt-out. Run against live data: ### Verified output (session date) | Segment | Rows | Use | |---|---|---| | **All cold-emailable NPIs** | **120,408** | broad Provider Compliance Bundle campaign — START HERE | | ↳ of which overdue revalidation | 1,909 | hottest: lead with the $399 revalidation hook | | ↳ of which upcoming revalidation | 500 | "due soon" pre-emptive offer | | ↳ no current reval flag | 117,999 | general compliance bundle / screening / HIPAA | | **Direct-secure (DirectTrust later)** | 3,897 (overdue) / 235,747 total | park until DirectTrust signup, then send via HISP | Cold-emailable universe = **120,408 normal inboxes** (consumer webmail + practice domains), all NPI-keyed. Direct/HISP universe = **235,747** addresses held for the DirectTrust channel once you sign up — that becomes a huge, spam-resistant, high-trust second wave. ### Strategy confirmed - **Start now:** email the 120,408 cold inboxes the Provider Compliance Bundle, leading the 1,909 overdue with the revalidation deadline. - **Phase 2 (DirectTrust):** once registered, the 235,747 Direct addresses are a second, higher-deliverability channel (DirectTrust is closed/trusted, not spam-filtered like normal email). - MX/SMTP-verify the cold list first (port 25 + MX confirmed working on our infra) to strip dead addresses before sending and protect MTA reputation. Output CSVs: `npi_all_cold_emailable.csv`, `npi_overdue_cold_emailable.csv`, `npi_overdue_direct_secure.csv` (NPI, email, name, specialty, state, due date, days overdue, LEIE flag, opt-out ending).