bib: public-reaction series per code family — docket comment counts + stance, and FR Comment/Response pairs as the pre-2017 proxy #690

Closed
opened 2026-09-09 14:30:04 +00:00 by kert · 2 comments
Owner

Spec docs/superpowers/specs/2026-09-09-code-family-longitudinal-design.md (bib/reaction.py).

What is in the corpus. Ten sealed dockets CMS-2017-0092 … CMS-2026-2377. Abstract-level mentions per docket (2017→2026): CCM 5 / 19 / 6 / 11 / 24 / 2 / 5 / 10 / 174 / 27; APCM 19 in CMS-2024-0256 (the year it was proposed), 25, 5; G2211 3,353 in CMS-2023-0121 (the year it was activated), then 146 and 190; telehealth ≈10–13k per docket 2020–2023. These are abstract hits — chunk-level counts after the anchors issue will be higher (1,507 comment items mention 99490/CCM in chunk text).

Before 2017 the only public record is the FR itself: Comment: / Response: paragraph pairs, e.g. CY2015 CCM valuation ("Many commenters recommended a higher valuation … adopt the RUC-recommended values for CPT code 99490", DE2VH9PD ¶1255, 79 FR 67717) and the calendar-month dispute (¶1248/¶1249). That series runs back to CY2002 (84 anchored rules).

What. pfs.code_reaction(family, docket_or_rule, year, n_comments, share_of_docket, stance_support, stance_oppose, stance_modify, top_orgs_json, sample_anchors_json). Stance = closed vocabulary via the local model (P35 pipeline); orgs from existing org: tags. FR pairs: pair each Comment: paragraph with its following Response: when either mentions a family code.

Done when a notebook plots CCM, APCM, G2211 and telehealth reaction over 2015–2026 from the table, every bar drills to anchored comments/paragraphs, and the chat's sources for "what did commenters say about G2211 in 2023" include CMS-2023-0121 comments.

Spec docs/superpowers/specs/2026-09-09-code-family-longitudinal-design.md (`bib/reaction.py`). **What is in the corpus.** Ten sealed dockets CMS-2017-0092 … CMS-2026-2377. Abstract-level mentions per docket (2017→2026): CCM 5 / 19 / 6 / 11 / 24 / 2 / 5 / 10 / **174** / 27; APCM **19** in CMS-2024-0256 (the year it was proposed), 25, 5; G2211 **3,353** in CMS-2023-0121 (the year it was activated), then 146 and 190; telehealth ≈10–13k per docket 2020–2023. These are abstract hits — chunk-level counts after the anchors issue will be higher (1,507 comment items mention 99490/CCM in chunk text). Before 2017 the only public record is the FR itself: `Comment:` / `Response:` paragraph pairs, e.g. CY2015 CCM valuation ("Many commenters recommended a higher valuation … adopt the RUC-recommended values for CPT code 99490", `DE2VH9PD` ¶1255, [79 FR 67717](https://www.federalregister.gov/citation/79-FR-67717)) and the calendar-month dispute (¶1248/¶1249). That series runs back to CY2002 (84 anchored rules). **What.** `pfs.code_reaction(family, docket_or_rule, year, n_comments, share_of_docket, stance_support, stance_oppose, stance_modify, top_orgs_json, sample_anchors_json)`. Stance = closed vocabulary via the local model (P35 pipeline); orgs from existing `org:` tags. FR pairs: pair each `Comment:` paragraph with its following `Response:` when either mentions a family code. **Done when** a notebook plots CCM, APCM, G2211 and telehealth reaction over 2015–2026 from the table, every bar drills to anchored comments/paragraphs, and the chat's sources for "what did commenters say about G2211 in 2023" include CMS-2023-0121 comments.
kert added this to the P49: Code families as first-class objects — element model, lineage anchors, longitudinal chat milestone 2026-09-09 14:30:04 +00:00
kert added the llmbibnotebooks labels 2026-09-09 14:30:04 +00:00
Author
Owner

Progress (branch worktree-p49-anchors-2, unmerged): stack pfs reaction --family … [--code …] [--stance-sample N] [--write] (5af8c1f + fix 9b173d3) builds the public-reaction series per family and stores pfs.code_reaction. Per docket: distinct commenters whose chunks carry the family (n_items) over the docket's distinct commenters (n_total), one GROUP BY over the comments collection; optional stance sample (newest N commenters, one chunk each, self-hosted closed-vocab classifier: support/oppose/modify/unclear). Pre-2017 proxy: FR Comment:/Response: pairs per rule that name a family code (a comment spans its continuation paragraphs up to the response).

Live: G2211 spikes exactly where expected — 3,663 of 22,021 commenters in CMS-2023-0121 (CY2024 cycle), versus 29 in CMS-2022-0113 and 126 in CMS-2024-0256. CCM runs 29 (2017) → 62 (2019) → 155 (CMS-2025-0304) commenters per docket; APCM first appears in CMS-2025-0304 (39). CCM FR pairs back to CY2015: 47 pairs across the rules (the continuation-paragraph fix added 8, including CY2015's 3). The 30-sample CCM stance run finished in under a minute (273 classifier calls); classification now runs before the DuckDB write lock is taken.

Progress (branch worktree-p49-anchors-2, unmerged): `stack pfs reaction --family … [--code …] [--stance-sample N] [--write]` (5af8c1f + fix 9b173d3) builds the public-reaction series per family and stores `pfs.code_reaction`. Per docket: distinct commenters whose chunks carry the family (`n_items`) over the docket's distinct commenters (`n_total`), one GROUP BY over the comments collection; optional stance sample (newest N commenters, one chunk each, self-hosted closed-vocab classifier: support/oppose/modify/unclear). Pre-2017 proxy: FR `Comment:`/`Response:` pairs per rule that name a family code (a comment spans its continuation paragraphs up to the response). Live: G2211 spikes exactly where expected — 3,663 of 22,021 commenters in CMS-2023-0121 (CY2024 cycle), versus 29 in CMS-2022-0113 and 126 in CMS-2024-0256. CCM runs 29 (2017) → 62 (2019) → 155 (CMS-2025-0304) commenters per docket; APCM first appears in CMS-2025-0304 (39). CCM FR pairs back to CY2015: 47 pairs across the rules (the continuation-paragraph fix added 8, including CY2015's 3). The 30-sample CCM stance run finished in under a minute (273 classifier calls); classification now runs before the DuckDB write lock is taken.
Author
Owner

Merged to main as 4616d36 (branch worktree-p49-anchors-2, Tasks 4–8 of the anchors plan; suite 14,944 passed). Residue parked by rulings is tracked in #705 (CPT manual as a chat source, IOM page locating, MLN resolver, shared SQL predicate, key case).

Merged to main as 4616d36 (branch worktree-p49-anchors-2, Tasks 4–8 of the anchors plan; suite 14,944 passed). Residue parked by rulings is tracked in #705 (CPT manual as a chat source, IOM page locating, MLN resolver, shared SQL predicate, key case).
kert closed this issue 2026-09-10 05:30:34 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: homelab/stack#690