feat(notebooks,docs): claims exhibit + II.E cross-read sections; finishing-pass records (closes #648, #649; refs #644, #645, #652)

This commit is contained in:
kert
2026-08-20 10:33:21 -04:00
parent d94fbb36ea
commit 6c43383946
3 changed files with 381 additions and 10 deletions

View File

@@ -0,0 +1,128 @@
# CY2027 PFS NPRM § II.E Cross-Read — Pincites for the Palliative RFI Part (d)
Close read of section II.E ("Request for Information: Redesigning Primary
Care To Make America Healthy Again", 91 FR 43935–43946) of CMS-1848-P
(doc. 2026-14327), performed 2026-08-20 for issue #649. Source:
`data/fr_downloads/2026-14327.txt` lines 8278–9564. Paragraph counts: every
flush text block after a `[[Page NNNNN]]` marker counts as one ¶ (bullets and
"++" items included); headings, footnotes, and [GRAPHIC] lines don't count.
Jump links resolve via `stack bib fr-jump "91 FR <page> ¶<n>"`.
The condensed version of this analysis lives in
`notebooks/palliative_care_rfi.py` Section 6; this document carries the full
detail for P44 drafting (#650).
## The load-bearing finding
**Nothing in II.E is proposed.** The whole section is an RFI — every policy
idea is "seeking comment," "considering," or "may consider in future
rulemaking." The only operative care-management-adjacent text is the **G2211
changes proposed in section II.D**, cross-referenced at 91 FR 43937 ¶3 (with
proposed modifiers MOD1/MOD2 mentioned at 43937 ¶6). A part-(d) answer must
answer II.E's questions, not "support" nonexistent proposals — and can cite
CMS's own concessions as the agency-record predicate.
Drafting cautions:
- II.E never says "serious illness." Its vocabulary is *chronic conditions*,
*complex condition*, *high-risk beneficiaries*, and (via NASEM) *people with
multiple complex chronic conditions* (91 FR 43941 ¶9). Mirror it.
- The phrase "care management services that form the foundation" is the
palliative RFI's own paraphrase — it does not appear in II.E; don't quote it
as II.E text.
- Subsection numbering is inconsistent with the Introduction's promised
"three main topics" (3. continues topic 2; 5. continues topic 4). Cite the
printed numbers anyway.
- Tables A-E1 (care-management code purposes, 91 FR 43938) and A-E3
(Innovation Center capitated models, 91 FR 43943) are graphics absent from
the text file; pull from the PDF if needed.
## Subsection outline
| Subsection | FR pages | File lines |
|---|---|---|
| E. heading + 1. Introduction (start) | 43935 | 8278–8284 |
| 1. Introduction (three RFI topics) | 43936–43937 | 8287–8424 |
| 2. Reconsidering Relative Primary Care Payment / a. O/O E/M visits | 43937–43938 | 8425–8548 |
| 3. Care Management Code "Family" | 43938–43939 | 8549–8647 |
| 4. Payment Implications of Technology Enablement / a. Technology and Clinical AI | 43939–43940 | 8648–8767 |
| 5. Technology and AI-Augmentation via the Medicare AWV | 43940–43941 | 8768–8932 |
| 6. Developing Prospective Payment in the Shared Savings Program / a. Background | 43941–43943 | 8933–9207 |
| 6.b. Primary Care Capitated Payment Arrangements in SSP | 43943–43945 | 9209–9496 |
| 6.c. Capitated Arrangements Outside SSP (primary care "global period") | 43946 | 9500–9564 |
## CMS's concessions on the record
1. "uptake of the care management codes has been limited" + "We seek feedback
on whether a different payment structure might be more appropriate as well
as what might be done to further simplify the code set and associated
requirements" — **91 FR 43938 ¶5**.
2. APCM "retains the fundamental structure of FFS billing and may not provide
sufficient incentives for practices to focus on proactive,
population-based non-visit care management activities" — **91 FR 43941
¶11** (CMS's critique of its own newest care-management code).
3. "billing for APCM services is higher for Shared Savings Program
ACO-assigned beneficiaries... suggests that the accountability and care
management infrastructure associated with ACOs may support more robust
adoption of non-visit based primary care payment mechanisms" — **91 FR
43942 ¶1** (internal CMS data).
## Care-management passages (verbatim anchors)
| Pincite | Quote / gist | Status |
|---|---|---|
| 91 FR 43936 ¶1 | "soliciting comment on how we might reconsider primary care service valuation"; prevention over "sick care" | DISCUSSED |
| 91 FR 43936 ¶3 | "considering first establishing PPCP permanently in the Medicare Shared Savings Program" | DISCUSSED |
| 91 FR 43936 ¶5 | "relative undervaluation"; "'two-track' approach to care management services... technology enabled... and 'traditional'" | RFI-QUESTION |
| 91 FR 43937 ¶2 | E/M visits "do not adequately describe the typical non-face-to-face care management work" (quoting 78 FR 43337) | DISCUSSED |
| 91 FR 43937 ¶3 | "We are proposing changes to HCPCS code G2211 for CY 2027; see section II.D" | **PROPOSED (in II.D)** |
| 91 FR 43937 ¶4 | longitudinal-visit category; "may consider valuing these visits as a combination of the E/M service... and certain between-visit care management activities" | DISCUSSED (future rulemaking) |
| 91 FR 43937 ¶6 | G2211 "focal point" question; proposed MOD1/MOD2 (elsewhere in rule) | RFI-QUESTION / PROPOSED-elsewhere |
| 91 FR 43938 ¶2 | "Should subsequent care management services be bundled in? If so, for what period of time?" | RFI-QUESTION |
| 91 FR 43938 ¶4 | "for the last 14 years sought to unbundle"; APCM G0556–G0558 "interprofessional care teams" | DISCUSSED |
| 91 FR 43938 ¶5 | limited uptake concession (above) | DISCUSSED + RFI-QUESTION |
| 91 FR 43938 ¶6 | "reconfigure the care management code 'family'... how supervision requirements may need to change" | RFI-QUESTION (part (d)'s direct hook) |
| 91 FR 43938 ¶8–43939 ¶1 | FWA guardrails: initiating-visit "trigger"; supervising-provider vs auxiliary-personnel proportions | RFI-QUESTION |
| 91 FR 43939 ¶2 | open data invitation: "specific data on the resources used in furnishing advanced primary care" | RFI-QUESTION |
| 91 FR 43939 ¶3 | "To what extent are the current care management codes duplicative?" | RFI-QUESTION |
| 91 FR 43939 ¶6 | "Should CMS create 'technology-enabled care management' codes or a 'two-track' approach?" | RFI-QUESTION |
| 91 FR 43939 ¶9 | "link payment more directly to demonstrated clinical outcomes" | DISCUSSED |
| 91 FR 43941 ¶9 | NASEM: "pay for primary care teams to care for people, not doctors to deliver services" | DISCUSSED (quoting NASEM 2021) |
| 91 FR 43941 ¶11 | APCM-not-the-end-goal concession (above) | DISCUSSED |
| 91 FR 43942 ¶1 | ACO care-management-infrastructure finding (above) | DISCUSSED |
| 91 FR 43944 ¶13 | minimum share of attributed beneficiaries receiving care management for capitation eligibility | RFI-QUESTION |
| 91 FR 43944 ¶16 | REACH/PC Flex PCC bundle: "E/M office visits along with CCM, behavioral health integration, transitional care management, AWVs, **advance care planning**, and virtual communication services" | DISCUSSED |
| 91 FR 43945 ¶14 | CPC+ care-delivery functions incl. "patient and caregiver engagement"; "increasing care management for high-risk beneficiaries" | RFI-QUESTION context |
| 91 FR 43945 ¶16 | "data-driven risk stratification methods to identify high-risk beneficiaries and target enhanced care management resources" | RFI-QUESTION |
| 91 FR 43946 ¶1 | attribution: plurality of primary-care services + voluntary alignment | DISCUSSED |
| 91 FR 43946 ¶2 | global period "would require a number of services to be 'bundled'... including the IPPE or AWV, O/O E/M services, and care management services such as advanced primary care management services" | DISCUSSED (future years) |
| 91 FR 43946 ¶3–¶8 | global-period design questions: what to bundle; HCC/complexity payment strata; initiating trigger absent an encounter; minimum-visit/outcomes accountability | RFI-QUESTION |
## Palliative hooks by RFI part
- **(b)/(c) eligibility**: longitudinal-visit construct (43937 ¶4); high-risk
risk-stratification (43945 ¶16); HCC/complexity strata for global-period
payment levels (43946 ¶4) — where serious-illness acuity tiers belong.
- **(d) service elements**: the 43938–43939 question cluster; APCM
"interprofessional care teams" language (43938 ¶4); NASEM team framing
(43941 ¶9); ACP inside the PCC bundle (43944 ¶16); AWV as a chassis for
serious-illness screening and goals-of-care elicitation (43940 ¶9–43941 ¶6).
- **(e) quality**: outcomes-linked payment (43939 ¶9); FHIR-based outcome
submission (43940 ¶3); "for which outcomes should CMS hold technology
companies accountable?" (43941 ¶6) — openings for symptom burden, days at
home, care-concordance, and CBE 3665.
- **(a) FWA**: initiating-visit trigger and supervision-proportion questions
(43938 ¶8–43939 ¶1) map directly onto the palliative RFI's program-integrity
part.
- **Data invitation** (43939 ¶2): a palliative program can submit its own
staffing/cost data — the strongest "bring evidence" hook in the section.
## Drafting strategy for part (d)
1. Cite the II.D G2211/MOD1/MOD2 proposals as the rule's operative
care-management-adjacent text (via 43937 ¶3/¶6).
2. Answer the 43938–43939 question cluster directly, pincite by pincite.
3. Use the three concessions (43938 ¶5, 43941 ¶11, 43942 ¶1) as the
agency-record predicate for the PCM-1/2/3 code family (notebook Section 3):
a care-management track for the population CMS's own data shows the current
family fails to reach.

View File

@@ -0,0 +1,57 @@
# Palliative RFI Finishing Pass — Run Record (2026-08-20)
> Not a forward plan — the run record of the "full analysis and full
> documentation" pass that closed out P42/P43's open analysis items.
> Forward work remaining for P44 is listed at the end.
**Goal:** Every open analysis input for the P44 comment (due 2026-09-12,
docket closes 2026-09-14) either done or running to completion; documentation
current (notebook, tracker, spec, memory).
## What was done
- [x] **Stage-3 PRISMA eligibility + extraction launched** (rig 4090,
`qwen2.5:14b-ctx32k` created via Ollama /api/create; `stack prisma eligible
palliative-rfi --max-chars 60000`; chained `extract`). Two fixes en route:
`--max-chars` cap so bounded-context models keep the criteria in window, and
a deterministic `uncertain / unavailable-fulltext` path for items with no
retrieved full text (they also tripped the qwen/Ollama empty-response quirk;
the eligibility prompt got the same one-sentence-system restructure that
fixed screening). Log: `.state/prisma-stage3.log`.
- [x] **#649 closed** — § II.E close read; pincite analysis in
`docs/spec/2026-08-20-cy2027-iie-crossread-palliative-rfi.md`, condensed as
notebook Section 6. Headline: II.E proposes nothing; the only operative text
is II.D's G2211 changes; three CMS concessions anchor part (d).
- [x] **#648 closed** — claims utilization methodology exhibit (notebook
Section 5) over the synthetic Tuva CCLF (962 beneficiaries, 2016-2018):
ACP/CCM/TCM/Home-E/M sparse but concentrated in serious illness (75-91% of
users), CCM reaching ~1/7 of the 611 seriously-ill; PCM/APCM structurally
absent (post-window codes). Scope-disclosed as methodology, not empirics.
- [x] **#644 closed** — sixth cited source captured: MLN909188 (June 2025)
CCM/PCM/APCM coding booklet, bib `PV8APQ4A`, synced to Zotero
(`--tag source:rfi-cited`).
- [x] **#645 closed** — sibling rules: FY2027 Hospice NPRM is 2026-06604 at
91 FR 17338 (the rule's "90 FR 17360" cite is a volume typo), ESRD is
2026-12925 at 91 FR 38784. Both created as bib rule items (KUZC5FN2,
IGXTEJU3), fr-grabbed (322 ¶/42 pp; 887 ¶/87 pp), fr-jump verified.
- [x] **#663 implemented** — `stack comments extract-ocr` (RapidOCR ONNX,
pip-only; PDFs rasterized via PyMuPDF), TDD'd, smoke-verified; full run over
2,738 queued comments launched, chained with a palliative re-sweep. Log:
`.state/comments/ocr.log`.
- [x] Notebook updated: Sections 5 (claims) and 6 (II.E) added, Provenance →
Section 7 with today's pipeline lines, stage-3 methods disclosure current.
Headless nb_integration: pass.
## Still open / running when this record was written
- Stage-3 eligibility+extraction run (hours; queue-driven and idempotent —
re-run `stack prisma eligible palliative-rfi --max-chars 60000` to sweep any
stragglers, then `stack prisma extract palliative-rfi`).
- OCR run over 2,738 comments (hours) → auto re-sweep updates `topic:palliative`.
- Europe PMC tier armed but EBI unreachable two days running — when it
recovers, `stack prisma fetch palliative-rfi -w 8` for ~400 author
manuscripts, then re-run eligibility for newly-fetched texts.
- #652 stays open by design: PCM-1/2/3 descriptors await human review; CBE
3665 reporting-condition decision; time thresholds.
- #615 (post-close re-farm of CMS-2026-2377) after 2026-09-14.
- P44: #650 draft (target 2026-09-12), #651 submit + archive receipt.

View File

@@ -155,10 +155,16 @@ def _(mo):
> dual-screening yet); records the 14B screener marked `uncertain` > dual-screening yet); records the 14B screener marked `uncertain`
> were adjudicated in a second pass by a larger model > were adjudicated in a second pass by a larger model
> (qwen2.5:32b) with the first-pass rationale withheld for > (qwen2.5:32b) with the first-pass rationale withheld for
> independence; stage-3 full-text eligibility and data extraction > independence; grey literature (standards documents,
> have not run; grey literature (standards documents,
> OIG/GAO/MedPAC/CMMI) bypasses clinical screening per the > OIG/GAO/MedPAC/CMMI) bypasses clinical screening per the
> project criteria. > project criteria. **Stage-3 full-text eligibility** runs locally
> (qwen2.5:14b, 32k context, per-item markdown capped at 60k chars
> with an explicit truncation marker — the criteria stay in
> window). Full-text retrieval: Unpaywall → PMC OA (S3) → Europe
> PMC → mirror fallback; items with no retrievable full text
> resolve `uncertain / unavailable-fulltext` rather than silently
> dropping. The flow diagram above reflects whatever stage the
> pipeline has reached — it is computed live.
""") """)
return return
@@ -1089,7 +1095,180 @@ def _(mo):
return return
# ── 5. Provenance ────────────────────────────────────────────────────── # ── 5. Claims utilization (methodology exhibit) ────────────────────────
@app.cell(hide_code=True)
def _(mo):
mo.md("""
## 5. Claims Utilization — Methodology Exhibit (Synthetic CCLF)
How often are the care-management services the RFI names actually
billed, for whom, and do they reach the seriously ill? This section
demonstrates the analysis on the repo's **synthetic Tuva CCLF**
(962 beneficiaries, claims 2016-2018) so the identical SQL can run
against real CCLFs when available.
> **Scope disclosure (per #648):** synthetic claims support
> *methodology* exhibits, not empirical utilization claims. Two
> structural limits of this data: the 2016-2018 window predates
> PCM (2020) and APCM G0556-G0558 (2025), so those families are
> structurally absent; and Tuva's synthetic code frequencies do
> not model real billing behavior. What the exhibit *does* show is
> the shape of the question — and even here the sparsity echoes
> CMS's own finding that "uptake of the care management codes has
> been limited" (91 FR 43938, § II.E).
""")
return
@app.cell(hide_code=True)
def _(connect, mo, pl):
_acon = connect.duckdb()
claims_util = _acon.execute("""
WITH fam AS (
SELECT hcpcs_code, person_id,
CASE
WHEN hcpcs_code IN ('99497','99498') THEN 'ACP'
WHEN hcpcs_code IN ('99490','99439','99487','99489',
'99491','99437') THEN 'CCM'
WHEN hcpcs_code IN ('99424','99425','99426','99427')
THEN 'PCM'
WHEN hcpcs_code IN ('99495','99496') THEN 'TCM'
WHEN hcpcs_code IN ('G0556','G0557','G0558') THEN 'APCM'
WHEN hcpcs_code BETWEEN '99341' AND '99350'
THEN 'Home E/M'
END AS family
FROM input_layer.medical_claim
),
serious AS (
SELECT DISTINCT person_id
FROM input_layer.medical_claim,
UNNEST([diagnosis_code_1, diagnosis_code_2,
diagnosis_code_3, diagnosis_code_4,
diagnosis_code_5]) AS t(dx)
WHERE dx IS NOT NULL AND (
dx LIKE 'C%' OR dx LIKE 'I50%' OR dx LIKE 'J44%'
OR dx LIKE 'G30%' OR dx LIKE 'N186%' OR dx LIKE 'I255%'
OR dx LIKE 'G20%' OR dx LIKE 'K74%')
)
SELECT fam.family,
count(*) AS claim_lines,
count(DISTINCT fam.person_id) AS beneficiaries,
count(DISTINCT CASE WHEN fam.person_id IN
(SELECT person_id FROM serious)
THEN fam.person_id END) AS with_serious_illness_dx
FROM fam
WHERE fam.family IS NOT NULL
GROUP BY fam.family
ORDER BY claim_lines DESC
""").pl()
_serious_n = _acon.execute("""
SELECT count(DISTINCT person_id)
FROM input_layer.medical_claim,
UNNEST([diagnosis_code_1, diagnosis_code_2, diagnosis_code_3,
diagnosis_code_4, diagnosis_code_5]) AS t(dx)
WHERE dx IS NOT NULL AND (
dx LIKE 'C%' OR dx LIKE 'I50%' OR dx LIKE 'J44%'
OR dx LIKE 'G30%' OR dx LIKE 'N186%' OR dx LIKE 'I255%'
OR dx LIKE 'G20%' OR dx LIKE 'K74%')
""").fetchone()[0]
_tbl = claims_util.with_columns(
(pl.col("with_serious_illness_dx") / pl.col("beneficiaries") * 100)
.round(0)
.alias("pct_serious")
)
mo.vstack(
[
mo.ui.table(
_tbl.to_pandas(),
label="Palliative-relevant service utilization (synthetic CCLF, live)",
),
mo.md(f"""
Reading it the way the RFI would: **care-management billing
concentrates in the seriously ill** (75-91% of each
family's users carry a serious-illness diagnosis — cancer,
HF, COPD, dementia, ESRD, Parkinson's, cirrhosis) **yet
reaches only a sliver of them** — {_serious_n} of 962
synthetic beneficiaries carry such a diagnosis, and the
largest family (CCM) touches barely a seventh of that
population. PCM and APCM show zero lines here because the
synthetic window (2016-2018) predates both — on real
current CCLFs those columns are the interesting ones. The
same query, pointed at real claims, quantifies the access
gap RFI parts (b)-(d) ask about.
"""),
]
)
return
# ── 6. Section II.E cross-read ─────────────────────────────────────────
@app.cell(hide_code=True)
def _(fr_md, mo):
mo.md(f"""
## 6. Section II.E Cross-Read — Pincites for RFI Part (d)
RFI part (d) explicitly ties to section II.E of the same rule
({fr_md("91 FR 43935")}-43946), where CMS reconsiders primary-care
valuation and the care-management code family. A close read of the
full section (#649) yields one load-bearing fact and a pincite
map:
> **Nothing in II.E is proposed.** The entire section is an RFI —
> every policy idea is "seeking comment," "considering," or
> "may consider in future rulemaking." The only operative
> care-management-adjacent text is the **G2211 changes proposed in
> section II.D** (cross-referenced at {fr_md("91 FR 43937")} ¶3).
> A part-(d) answer must therefore *answer II.E's questions*, not
> "support" nonexistent proposals — and can cite CMS's own
> concessions as the agency-record predicate.
**CMS's concessions on the record** (each a predicate for a
palliative-specific recommendation):
- *"uptake of the care management codes has been limited"* and
CMS "seek[s] feedback on whether a different payment structure
might be more appropriate" — {fr_md("91 FR 43938")} ¶5.
- APCM *"retains the fundamental structure of FFS billing and may
not provide sufficient incentives... to focus on proactive,
population-based non-visit care management activities"* —
{fr_md("91 FR 43941")} ¶11.
- APCM billing runs higher among ACO-assigned beneficiaries,
suggesting *"accountability and care management infrastructure"*
drives adoption — {fr_md("91 FR 43942")} ¶1.
**The part-(d) question cluster to answer directly:**
| Pincite | Gist | Status |
|---|---|---|
| {fr_md("91 FR 43936")} ¶5 | two-track (tech vs traditional) care-management code set | RFI question |
| {fr_md("91 FR 43937")} ¶4 | longitudinal-visit category; between-visit work in valuation | discussed (future rulemaking) |
| {fr_md("91 FR 43938")} ¶2 | which care-management services to bundle into longitudinal visits | RFI question |
| {fr_md("91 FR 43938")} ¶4 | 14-year unbundling history; APCM "interprofessional care teams" | discussed |
| {fr_md("91 FR 43938")} ¶6 | reconfigure the code family; supervision in tech-enabled models | RFI question |
| {fr_md("91 FR 43939")} ¶2 | open data invitation: advanced-primary-care resource costs | RFI question |
| {fr_md("91 FR 43939")} ¶6 | technology-enabled care-management codes / differentiation | RFI question |
| {fr_md("91 FR 43944")} ¶16 | REACH/PC Flex PCC bundle includes **advance care planning** | discussed |
| {fr_md("91 FR 43945")} ¶16 | risk stratification targeting enhanced care management | RFI question |
| {fr_md("91 FR 43946")} ¶2 | primary-care "global period" bundling AWV, E/M, APCM | discussed |
Vocabulary note for drafting: II.E never says "serious illness" —
its terms are *chronic conditions*, *complex condition*, and
*high-risk beneficiaries*; the P44 comment should mirror that
vocabulary when mapping palliative care onto II.E's constructs.
The Section 3 code family (PCM-1/2/3) answers II.E's
consolidation question directly: it is a care-management track
for the population II.E's own data shows the current family
fails to reach.
""")
return
# ── 7. Provenance ──────────────────────────────────────────────────────
@app.cell(hide_code=True) @app.cell(hide_code=True)
@@ -1129,18 +1308,25 @@ def _(mo, q):
mo.vstack( mo.vstack(
[ [
mo.md(""" mo.md("""
## 5. Provenance ## 7. Provenance
Ingest-log rows for the lake tables Section 2 reads, plus Ingest-log rows for the lake tables Section 2 reads, plus
the evidence-base pipeline: identification — the evidence-base pipeline: identification —
`dev/scripts/search_pubmed_palliative_rfi.py` (E-utilities `dev/scripts/search_pubmed_palliative_rfi.py` (E-utilities
database searches, uncapped, plus elink forward snowball database searches, uncapped, plus elink forward snowball
and grey-literature standards documents; run 2026-08-18); and grey-literature standards documents; run 2026-08-18);
screening — `stack prisma screen palliative-rfi` with the screening — `stack prisma screen palliative-rfi` (stage 2,
project's Zotero criteria anchors; flow — `prisma.flow` 2026-08-18) and `stack prisma eligible palliative-rfi
over live Zotero tags. Section 4's comment record — --max-chars 60000` (stage 3, 2026-08-20, qwen2.5:14b-ctx32k
`dev/scripts/tag_palliative_comments.py` (lexical sweep, on local GPU); flow — `prisma.flow` over live Zotero tags.
run 2026-08-19; stats in `bib_meta.palliative_sweep`). Section 4's comment record —
`dev/scripts/tag_palliative_comments.py` (lexical sweep
over the Mirrulations-completed corpus, 2026-08-19; stats
in `bib_meta.palliative_sweep`). Section 5 —
`input_layer.medical_claim` (synthetic Tuva CCLF) read
live from aco.duckdb. Section 6 — close read of
`data/fr_downloads/2026-14327.txt` lines 8278-9564 (#649);
jump links resolve via `bib.frlink` anchor maps.
`cms.primary_care_service_code` is the aco module's `cms.primary_care_service_code` is the aco module's
attribution reference list (P39), not an FR ingest. attribution reference list (P39), not an FR ingest.
"""), """),