feat(notebooks): live FR jump links in CY2027 NPRM citations (closes #638)
Some checks failed
CI / lint (push) Successful in 33s
CI / notebooks-smoke (push) Has been cancelled
Deploy / notebooks (push) Has been cancelled
Deploy / zotero (push) Has been cancelled
Deploy / docs (push) Has been cancelled
CI / test (push) Has been cancelled
Deploy / api (push) Has been cancelled
Deploy / llm (push) Has been cancelled
Deploy / mc (push) Has been cancelled
Deploy / report (push) Has been cancelled
Infra CI / mc (push) Has been cancelled
Infra CI / notebooks (push) Has been cancelled
Infra CI / zotero (push) Has been cancelled
Infra CI / docs (push) Has been cancelled
Infra CI / api (push) Has been cancelled
Infra CI / llm (push) Has been cancelled

This commit is contained in:
kert
2026-08-17 14:44:37 -04:00
parent e5e5eb8659
commit d7adf59af8

View File

@@ -66,6 +66,18 @@ def _():
def q(sql): def q(sql):
return con.execute(sql).pl() return con.execute(sql).pl()
def fr_md(ref, text=""):
"""FR web jump link as markdown (P40, #638) — page, ¶-ordinal,
or quote refs resolve against the bib anchor map; degrades to
plain text when bib.sqlite or the map is unavailable so the
notebook never breaks offline."""
try:
from bib import frlink
return frlink.md_link(ref, store=connect.bib(), text=text or ref)
except Exception:
return text or ref
return ( return (
AMBER, AMBER,
GRAY, GRAY,
@@ -77,6 +89,7 @@ def _():
alt, alt,
con, con,
for_payment_year, for_payment_year,
fr_md,
pfs_payment, pfs_payment,
pl, pl,
proposed_for, proposed_for,
@@ -128,7 +141,7 @@ def _(RULES, pl, proposed_for):
@app.cell(hide_code=True) @app.cell(hide_code=True)
def _(alt, cf_walk, mo): def _(alt, cf_walk, fr_md, mo):
_vintage_order = ["CY2026 Final", "CY2027 Proposed (final rule pending)"] _vintage_order = ["CY2026 Final", "CY2027 Proposed (final rule pending)"]
_track_domain = ["Non-QP", "QP"] _track_domain = ["Non-QP", "QP"]
@@ -151,14 +164,14 @@ def _(alt, cf_walk, mo):
mo.vstack( mo.vstack(
[ [
cf_chart, cf_chart,
mo.md(""" mo.md(f"""
*CY2026 Final anesthesia QP is not shown — that CF is not *CY2026 Final anesthesia QP is not shown — that CF is not
captured in the `pfs.rules` registry (see module docstring). captured in the `pfs.rules` registry (see module docstring).
No CY2027-final bars appear anywhere in this notebook — the No CY2027-final bars appear anywhere in this notebook — the
Final Rule (CMS-1848-F) has not been published.* Final Rule (CMS-1848-F) has not been published.*
**Sources:** CY2026 Final Rule — 90 FR 49266. CY2027 NPRM — **Sources:** CY2026 Final Rule — 90 FR 49266. CY2027 NPRM —
91 FR 43842 (CMS-1848-P). {fr_md("91 FR 43842")} (CMS-1848-P).
"""), """),
] ]
) )
@@ -1358,7 +1371,7 @@ def _(QPP, mo):
@app.cell(hide_code=True) @app.cell(hide_code=True)
def _(alt, apm_thresholds, mo): def _(alt, apm_thresholds, fr_md, mo):
_df = apm_thresholds.to_pandas() _df = apm_thresholds.to_pandas()
_df["apm_incentive_pct"] = _df["apm_incentive_pct"].fillna(0.0) _df["apm_incentive_pct"] = _df["apm_incentive_pct"].fillna(0.0)
_df["status"] = _df["apm_incentive_pct"].apply(lambda v: "Paid" if v > 0 else "None under current law") _df["status"] = _df["apm_incentive_pct"].apply(lambda v: "Paid" if v > 0 else "None under current law")
@@ -1391,8 +1404,9 @@ def _(alt, apm_thresholds, mo):
The Consolidated Appropriations Act, 2026 (CAA 2026, Pub. The Consolidated Appropriations Act, 2026 (CAA 2026, Pub.
L. 119-75) then **revives a 3.1% incentive for payment L. 119-75) then **revives a 3.1% incentive for payment
year 2028 only** — CMS-1848-P proposes to codify that year 2028 only** — CMS-1848-P proposes to codify that
revival into 42 CFR 414.1450(b)(1) (91 FR 44218-44219, revival into 42 CFR 414.1450(b)(1)
44286). Payment year 2029 (`QPP[2027]`, the year this ({fr_md("91 FR 44218")}-44219, {fr_md("91 FR 44286")}).
Payment year 2029 (`QPP[2027]`, the year this
notebook's own CF walk applies to) reverts to **no** notebook's own CF walk applies to) reverts to **no**
incentive — the amendatory text lists no applicable incentive — the amendatory text lists no applicable
percentage for payment year 2029 at all. So the pattern percentage for payment year 2029 at all. So the pattern