# Plan

Offer healthcare regulatory filings as a **two-tier model** (internal mechanics;
the "paper" alternative is NEVER surfaced to the client):

- **Standard service (default):** we handle the filing end-to-end. Client signs
  ONE certification and we submit + track to confirmation. (Internally this is the
  paper path — 855 to the MAC, CMS-10114 to the NPI Enumerator (Baltimore MD) — but we
  never say "paper" to the client; it's just "we file it for you.")
- **Expedited (faster, framed positively at intake):** we ask if they can
  **electronically grant us CMS I&A Surrogate access**. We position this as
  *reducing the number of steps on our end so we can bulk-file faster* — never as
  "the alternative is paper." If yes, we file online same-day. If no, we silently
  fall back to Standard. Same price either way; surrogacy is a delegation, not
  password sharing.

This pass verifies the no-login paper path per service, reconciles the doc/code
contradiction, and makes "standard = paper / expedited = surrogate" consistent
everywhere it's surfaced.

## Goal
Every healthcare service (federal sold + state/adjacent to add) has a verified
**Standard (paper, no-login)** path and, where a CMS/portal exists, an
**Expedited (surrogate/delegated)** upsell. No surface should ever present
surrogate as *required* when a paper path exists; paper is always the default.

## Scope / affected areas
- `api/src/routes/checkout.ts` (~L2155-2207) — already has the two-tier copy, BUT
  treats NPPES update/reactivation as **"online-only, surrogate required"** with
  NO standard fallback (`NPPES_ONLY_SLUGS`, `hasNppesOnly`). The directive says:
  give those a Standard paper path too (CMS-10114 to NPI Enumerator (Baltimore MD)) and make surrogate the
  *expedited* option, not the only option.
- `scripts/workers/services/npi_provider.py` — `access` strings call NPPES
  update/reactivation "NPPES via CMS I&A surrogate access (online-only)". Must
  become "Standard: CMS-10114 paper to NPI Enumerator (Baltimore MD), client signs;
  Expedited: NPPES via I&A surrogate." Also `_STANDARD_FILING_SLUGS` currently
  excludes `nppes-update` (it has no 855) — needs a CMS-10114 paper path instead.
- `scripts/document_gen/templates/cms855_pdf_filler.py` — working 855 paper path
  (fills 855I/B/O/A + cert-page signature anchor). **Gap:** no CMS-10114 filler
  for the NPPES standard path → likely a small new `cms10114_pdf_filler.py`.
- `docs/healthcare-no-login-value-add.md` — already documents the CMS-10114 paper
  path; promote it to the canonical "Standard vs Expedited" matrix.
- `site/src/pages/services/healthcare/{npi-revalidation,medicare-enrollment}.astro`
  — already describe expedited/surrogate; npi-reactivation/nppes-update order
  pages need the same two-tier framing.
- `site/src/components/intake/steps/NpiIntakeStep.astro` + intake manifest — add
  the surrogate-access question framed positively: "Can you electronically grant
  us CMS I&A Surrogate access? It lets us bulk-file faster and cuts steps on our
  end." Optional; declining is fine and never mentions paper. The captured answer
  routes fulfillment internally (surrogate vs our Standard path).
- `docs/state-healthcare-compliance-opportunities.md` + `new-sector-compliance-
  targets.md` — extend the two-tier classification to state/adjacent services.

Out of scope this pass: building the actual surrogate Playwright automation
(expedited fulfillment can stay human-in-PECOS for now), email-stream machinery,
pricing changes.

## Approach (concrete ordered steps)
1. **Confirm the CMS-10114 paper path** for NPPES data updates AND NPI
   reactivation (not just initial enumeration): paper CMS-10114 mailed to NPI
   Enumerator (Baltimore MD), client signature only, no I&A login.
   Cite the official source. This is what makes NPPES services "Standard, no
   login" instead of surrogate-required. (We currently have no CMS-10114 PDF.)
2. **Lock the two-tier matrix for the 6 federal services.** For each slug record:
   Standard path (form, mail destination, client's only action = sign / nothing),
   Expedited path (surrogate scope: PECOS and/or NPPES; what client grants),
   and whether expedited is even applicable (screening = public, no portal, so
   no expedited tier). Confirm the 855 wet-signature-cannot-be-delegated caveat
   applies to Standard; surrogate covers Expedited.
3. **Reconcile checkout.ts.** Plan the edit so:
   - NPPES update/reactivation no longer present surrogate as *required* — remove
     the "online-only / required for those" language.
   - The surrogate ask is framed as the **faster, fewer-steps** option, never
     against a "paper" alternative. Audit/strip the existing copy that leaks
     mechanics to the client (e.g. "we'll send your CMS-855 to sign", "submit it
     to your MAC") — replace with neutral "we file it and track it for you."
   - Declining surrogate silently routes to our Standard path; no client-facing
     mention of paper/MAC/Fargo/form numbers.
4. **Reconcile npi_provider.py.** Update `access` strings + `_STANDARD_FILING_SLUGS`
   so nppes-update/reactivation generate the CMS-10114 (or 855 reactivation)
   paper + e-sign, and the admin todo reflects Standard-default / Expedited-if-
   surrogate-granted. Mirror the existing 855 generate→upload→esign flow.
5. **MAC + Fargo routing rule.** Document which Standard filings go where
   (855 → provider's MAC by state/jurisdiction; CMS-10114 → NPI Enumerator (Baltimore MD)). Confirm
   `practice_state` intake field drives MAC envelope addressing.
7. **Daily batched-mail fulfillment (Standard path).** Design the operational
   flow for paper filings that are signed + pending submission:
   - On each **postal working day morning** (skip weekends + federal/USPS
     holidays), gather ALL signed-and-pending paper filings, **group by
     destination agency/address** (each MAC, the NPI Enumerator (Baltimore MD), each
     state Medicaid/CLIA agency).
   - For each destination, **merge all that day's documents into one print job**
     plus a **cover sheet** (Performance West sender, destination agency, date,
     enclosed-count, per-item list of order# / provider / NPI / form). One
     **Priority Mail envelope per agency** → saves postage + handling.
   - Mark each included order as "mailed" with the batch date + tracking #.
   - Build this as a worker (a `daily_paper_batch` job + a cover-sheet generator
     in document_gen), mirroring existing worker/cron patterns
     (`infra/cron/*`, `business_days.py` for the working-day calendar). Decide:
     fully-automated print-to-PDF batch that a human prints + drops, vs.
     print-API (Lob/Click2Mail) auto-mail. **Recommend phase 1 = generate the
     per-agency batched PDF + cover sheet + manifest for a human to print & mail;
     phase 2 = wire a print-mail API.**
8. **Extend two-tier to state/adjacent services.** For each (State Medicaid
   enroll/reval, CAQH re-attest, payer credentialing, DEA renewal, state CSR,
   PDMP, CLIA, license renewal+CME) classify:
   - **Standard (no-login):** paper/mail-in form + one client signature?
     (e.g. CLIA = CMS-116 paper to state; Medicaid varies — some paper.) These
     feed the same daily batched-mail flow, grouped by their state agency.
   - **Expedited (delegated):** the lightest legitimate delegation that avoids a
     client *login* — e.g. CAQH "authorized administrator/org" grant, Medicaid
     "delegated official" on the app, payer EDI/CAQH attestation rights, an LOA.
     Distinguish "client signs one authorization once" (acceptable, still
     no-login) from "client must log in / share credentials" (never).
   - Flag services that are genuinely portal-only with NO paper standard so
     marketing never claims "no logins" for them.
9. **Sequence the rollout** by (Standard-feasibility first) × revenue, and write
   the two doc updates + the small code edits (checkout.ts, npi_provider.py,
   optional cms10114_pdf_filler.py, and the daily batch worker + cover sheet).
   All gated on approval.

## Validation (how each part is verified)
- **Source-grounded:** every Standard (paper) and Expedited (delegation) claim
  cites the official instruction (CMS-855 instr, CMS-10114 instr, CMS-116 for
  CLIA, state Medicaid enrollment page, CAQH/payer docs). No unsourced claim.
- **Consistency sweep:** after edits, `grep` for "online-only" / "required" /
  "surrogate" / "no login" across checkout.ts, npi_provider.py, and the service
  pages — confirm none present surrogate as *required* where a paper path exists,
  and Standard is the default on every surface.
- **Standard path mechanism check:** `cms855_pdf_filler.fill_cms855("855i",...)`
  still yields filled PDF + cert anchor (read-only smoke render). If CMS-10114
  filler is built, same smoke render proves a signable Baltimore-bound PDF.
- **Expedited path check:** confirm the surrogate-grant CTA + `ia_surrogacy`
  success action + admin todo together let a human file in PECOS/NPPES same-day;
  surrogate scope wording matches what CMS I&A actually grants (PECOS vs NPPES).
- **Matrix completeness:** every service (federal + state) has Standard + (where
  applicable) Expedited rows with a definite client-action column and source;
  no "unknown" and no service that's portal-only-but-marketed-as-no-login.

## Open questions / decisions
1. **NPPES update/reactivation Standard path:** ✅ RESOLVED — CMS-10114 paper IS
   accepted for *changes AND reactivation* (verified against CMS-10114 Rev. 02/25,
   Section 1A boxes #2 Change / #4 Reactivation). Mailing address is the NPI
   Enumerator in **Baltimore MD** (the old Fargo PO Box 6059 is retired). Both
   nppes-update and npi-reactivation are Standard-default + surrogate-expedited.
2. **Build `cms10114_pdf_filler.py` this pass?** Needed for a real NPPES Standard
   path. Recommend: yes if step 1 confirms paper, mirroring the 855 filler;
   otherwise defer.
3. **State Medicaid scope:** classify the mechanism generically + verify top ~5
   states by our lead density now; template the rest. (50-state research is a
   separate effort.)
4. **CAQH / payer credentialing tier:** almost certainly Expedited = "client
   signs one authorization, no login" (category C). Confirm we market that as
   "no logins for you" with precise wording.
5. **Expedited pricing/positioning:** RESOLVED — expedited is **not** a paid
   tier and we never expose "paper" as the alternative. It's an intake question
   framed positively ("electronically granting surrogate access lets us bulk-file
   faster / fewer steps on our end"). If yes → online; if no → silent Standard
   fallback. Same price. No price delta, no separate product, no mention of paper.
6. **Client-facing messaging rule:** never surface mechanics to the client —
   no "paper", "CMS-855", "CMS-10114", "MAC", or "Fargo" in any client copy
   (cold email, order page, checkout, intake). The only client-visible choice is
   the positive surrogate question; everything else is "we file it for you." This
   applies to the checkout copy audit in step 3.
