new-site/data
justin 9e155d214c healthcare: cite REAL NPPES last_updated date in 'outdated' email
The NPPES 'may be out of date' email previously asserted staleness with no
per-record evidence (softened earlier to a generic 'periodic review required').
NPPES is fully public and every record carries basic.last_updated, so we now
cite the actual government date the provider can verify on the registry.

- enrich_nppes_last_updated.py: joins real basic.last_updated /
  enumeration_date / deactivated onto the institutional list via a cached,
  resumable per-NPI crawl (no batch endpoint exists). Adds nppes_last_updated,
  nppes_enumeration, nppes_years_stale, nppes_deactivated.
- cron: new 'nppes_stale' selector mails ONLY records >= 3yrs stale (env
  HC_NPPES_STALE_MIN_YEARS) and excludes deactivated NPIs; empty date => no
  match, so we never claim staleness without the government date to back it.
- template: headline + official-record card now show the real last_updated
  date and ~N-years-ago, sourced to npiregistry.cms.hhs.gov.
- attribs + test SAMPLE expose the new fields; verified render + plaintext.
2026-06-20 15:21:15 -05:00
..
corporate_campaigns otc: reincorporation email template + campaign builder 2026-06-14 06:58:43 -05:00
hc_campaigns healthcare: cite REAL NPPES last_updated date in 'outdated' email 2026-06-20 15:21:15 -05:00
trucking_campaigns ucr: annual-renewal reminder campaign + order-alert campaign source 2026-06-14 00:30:23 -05:00
otc_leads.csv data(otc): add display_name + short_name merge fields for outreach 2026-06-09 07:14:06 -05:00
otc_leads_rejected.csv scripts(otc): dedupe by CIK; commit the 861-company lead list 2026-06-09 07:10:54 -05:00