Skip to content

Add California premium assistance (Covered California state subsidy) - #9233

Merged
hua7450 merged 5 commits into
mainfrom
ca-premium-assistance
Aug 11, 2026
Merged

Add California premium assistance (Covered California state subsidy)#9233
hua7450 merged 5 commits into
mainfrom
ca-premium-assistance

Conversation

@DTrim99

@DTrim99 DTrim99 commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Add California Premium Subsidy (Covered California, PY2026)

Summary

Implements the California Premium Subsidy — the statutory "Individual Market Assistance" program (state advance premium assistance subsidies) administered by Covered California — as a state top-up to the federal ACA premium tax credit for on-Exchange enrollees with household income from 100% to 165% of the federal poverty level.

This is the plan-year 2026 revival of the SB 78 (2019) program: with the enhanced federal PTC expiring after 2025, the Covered California board adopted the 2026 Program Design on July 28, 2025 (effective January 1, 2026), funded by a $190 million appropriation from the Health Care Affordability Reserve Fund. The subsidy zeroes out the expected premium contribution up to 150% FPL and applies a reduced applicable-percentage schedule (3.19%–3.91%, versus the federal 4.19%–4.91%) from 150% to 165% FPL.

New variables:

  • ca_premium_subsidy — annual state subsidy amount (TaxUnit, year)
  • ca_premium_subsidy_eligible — eligibility flag (federal APTC eligibility plus the 100–165% FPL band)
  • ca_premium_subsidy_applicable_percentage — CA expected-contribution percentage (linear interpolation within tiers)

Parameter tree: gov.states.ca.hbex.premium_subsidy (HBEX = California Health Benefit Exchange, Covered California's statutory name — mirrors the NM hca and MD mhbe agency-node pattern).

Closes #9220.

Note: issue #1394 covers the legacy 2020 FTB Form 3849 "California Premium Assistance Subsidy" (SB 78 vintage, paused in 2021 under ARPA); this PR models the revived PY2026 program under the continuously-in-force Title 25 authority (see Historical Notes) and supersedes that stub.

Regulatory Authority

Eligibility

An "applicable return filer" qualifies when all of the following hold (Program Design subdiv. (c), (d)(7), p.1–2):

  1. On-Exchange subsidized application — enrollment through Covered California's single streamlined application (W&I Code §15926; PD (c)(1), p.1). Captured by the existing Marketplace-enrollment machinery (is_aca_ptc_eligible / pays_aca_premium); takeup is assigned during microdata construction.
  2. Full federal §36B APTC eligibility (PD (c)(2), p.2) — modeled as tax_unit.any(is_aca_ptc_eligible). This inherits the married-filing-jointly requirement with its 26 CFR 1.36B-2(b)(2) exceptions (PD (d)(7)(A), p.3), the dependent exclusion (PD (d)(7)(B), p.3 — structural in the model), and the Medi-Cal interaction at ≤138% FPL (Policy Explainer Table 1 notes, p.2).
  3. Household income from 100% to 165% FPL (PD (d)(7), p.2) — encoded as explicit fpl_floor (1.0) and fpl_limit (1.65) gates on aca_magi_fraction. The floor is explicit rather than inherited because the federal gate includes the below-poverty immigration exception, which the CA statutory "applicable return filer" definition excludes.

Household income is ACA MAGI (26 CFR 1.36B-1(e); PD (d)(12), p.3), and the FPL vintage is the level in effect on the first day of open enrollment — the prior-year FPL, matching the existing aca_magi_fraction convention (PD (d)(11), p.3).

Benefit Calculation

The applicable-percentage schedule (PD (d)(4), p.2; cross-checked against Policy Explainer Table 1, p.2):

Household income (% FPL) Initial premium % Final premium %
100% up to 150% 0% 0%
Above 150% up to 165% 3.19% 3.91%

The percentage rises linearly within each tier ("on a sliding scale in a linear manner", PD (d)(4)) — the formula reuses the searchsorted bracket interpolation from aca_required_contribution_percentage, so at 157.5% FPL the applicable percentage is 3.55%.

The subsidy is the residual after the federal APTC (PD (b), p.1):

ca_premium_subsidy = max(0, SLCSP − aca_ptc − ca_applicable_pct × max(aca_magi, 0))

gated by ca_premium_subsidy_eligible, with the SLCSP benchmark annualized from the monthly slcsp variable and the result floored at $0 ("the excess (if any)", PD (b)(1)(B)). Below 150% FPL the CA percentage is zero, so the state fills the full post-APTC gap to the benchmark (net consumer premium of approximately $0); from 150% to 165% FPL it pays the difference between the federal (4.19%–4.91%) and CA (3.19%–3.91%) expected-contribution amounts. Above 165% FPL only the federal APTC applies — unlike New Mexico, the program has no above-400%-FPL component.

Requirements Coverage

REQ Description Parameter Variable Test
REQ-001/023 In effect PY2026 (carried through PY2027) in_effect.yaml ca_premium_subsidy_eligible eligible cases 9–11; subsidy cases 8, 13; integration scenario 7
REQ-002 On-Exchange subsidized application via is_aca_ptc_eligible machinery documented in eligible variable
REQ-003 Full federal §36B APTC eligibility tax_unit.any(is_aca_ptc_eligible) eligible cases 6–7
REQ-004/021/022 100–165% FPL band, explicit floor and cap fpl_floor.yaml, fpl_limit.yaml ca_premium_subsidy_eligible eligible cases 1–5, 12
REQ-005 MFJ requirement (with 1.36B-2(b)(2) exceptions) inherited via federal gate documented
REQ-006 No subsidy for claimed dependents structural (TaxUnit-level) documented
REQ-007 Medi-Cal ≤138% FPL interaction inherited via federal gate documented
REQ-008/018/019/020 CA applicable-percentage schedule applicable_percentage/{threshold,initial,final}.yaml ca_premium_subsidy_applicable_percentage percentage cases 1–12
REQ-009/025 Linear interpolation within tiers searchsorted interpolation (federal clone) percentage cases 5–7, 12
REQ-010/026 Residual formula net of APTC ca_premium_subsidy subsidy cases 1–13
REQ-011 Floor at zero outer max_(0, ...) subsidy case 5; integration scenario 5
REQ-012 Enrolled-plan premium cap SLCSP-path approximation, documented see Not Modeled note
REQ-013 Income = ACA MAGI, clamped at zero max_(aca_magi, 0) subsidy case 6
REQ-014 Benchmark = SLCSP, annualized add(tax_unit, period, ["slcsp"]) all subsidy/integration cases
REQ-015 Prior-year FPL vintage inherited via aca_magi_fraction covered by band tests
REQ-016 Annual amount (sum of coverage months) year definition period all cases
REQ-017 Net of federal APTC aca_ptc subtrahend subsidy cases 1–2; integration 1–5
REQ-024 Eligibility variable ca_premium_subsidy_eligible (TaxUnit, defined_for CA) eligible cases 1–12
REQ-027 Household healthcare aggregate healthcare_benefit_value adds entry healthcare_benefit_value case 7
REQ-028 Program registry programs.yaml entry (verified_years: "2026-2027")
REQ-029 Changelog fragment changelog.d/ca-premium-assistance.added.md
REQ-030 Per-variable unit tests three unit YAMLs (37 cases)
REQ-031 Boundary tests at 0.99/1.00/1.50/1.575/1.65/1.66 FPL eligible cases 1–5; percentage cases 1–3, 5, 9–10
REQ-032 Integration tests (full pipeline, non-CA, pre-2026, both bands) integration.yaml scenarios 1–7

All 51 tests pass (12 eligibility, 12 applicable percentage, 13 subsidy, 7 integration, 7 healthcare_benefit_value).

Not Modeled

  • REQ-012 — Enrolled-plan premium cap (PD (a), (b)(1)(A)): the subsidy cannot exceed the premiums of the plan actually enrolled in; the model lacks plan-selection inputs, so it uses the SLCSP-benchmark path — the same approximation as aca_ptc and the NM program. Documented in the variable.
  • REQ-033 — FTB reconciliation and repayment caps (PD (e)–(g); GC §100810): a static annual calculation with projected income equal to actual income produces no reconciliation delta.
  • REQ-034 — $190M appropriation cap / non-entitlement (GC §100825): a discretionary funding cap not derivable per household.
  • REQ-035 — Advance-payment mechanics and the CA Enhanced CSR wrap (GC §100805; AB 2530): payment plumbing and the separate cost-sharing program are out of scope.

Historical Notes

  • SB 78 (2019) created the original Individual Market Assistance program; the California Premium Subsidy operated for plan year 2020 (and into 2021) before ARPA's enhanced federal PTC superseded it. The program paused in 2021 when ARPA's enhanced federal PTC superseded it. Title 25 has NOT been repealed: SB 78's §100825(b)(1) sunset ("only until January 1, 2023") was deleted by SB 184 §6 (Stats. 2022, ch. 47, eff. June 30, 2022) before it triggered, and AB 118 (2023) subsequently amended §100800 — so Title 25 has been continuously in force since June 27, 2019. The PY2026 program is a re-funding of that live authority upon appropriation (§100800(c)), not a re-enactment.
  • With the enhanced federal PTC expiring after 2025, the Budget Act of 2025 (item 4800-101-3381) appropriated $190 million from the Health Care Affordability Reserve Fund and the Covered California board adopted the 2026 Program Design on July 28, 2025, conditioned on the federal enhanced PTC not being extended by September 30, 2025 (the condition was met). Covered California reports about 389,590 enrollees receiving the state subsidy in 2026 (roughly $45/month on average).
  • Carry-forward assumption: PY2026 board-adopted values are carried through PY2027 (in_effect true 2026-01-01, false 2028-01-01). A PY2027 Program Design exists (board meeting May 21, 2026), confirming continuation, but its values have not been verified against this implementation — programs.yaml records verified_years: "2026-2027" and the assumption is documented in in_effect.yaml.

Files Added

changelog.d/
  ca-premium-assistance.added.md
policyengine_us/parameters/gov/states/ca/hbex/premium_subsidy/
  applicable_percentage/
    threshold.yaml        # [1.0, 1.5, 1.65]
    initial.yaml          # [0, 0.0319]
    final.yaml            # [0, 0.0391]
  fpl_floor.yaml          # 1.0
  fpl_limit.yaml          # 1.65
  in_effect.yaml          # true 2026-01-01, false 2028-01-01
policyengine_us/variables/gov/states/ca/hbex/premium_subsidy/
  ca_premium_subsidy.py
  ca_premium_subsidy_applicable_percentage.py
  ca_premium_subsidy_eligible.py
policyengine_us/tests/policy/baseline/gov/states/ca/hbex/premium_subsidy/
  ca_premium_subsidy.yaml                        # 13 cases
  ca_premium_subsidy_applicable_percentage.yaml  # 12 cases
  ca_premium_subsidy_eligible.yaml               # 12 cases
  integration.yaml                               # 7 scenarios

Modified: policyengine_us/variables/household/healthcare_benefit_value.py (adds ca_premium_subsidy), policyengine_us/tests/policy/baseline/household/healthcare_benefit_value.yaml (new case 7), policyengine_us/programs.yaml (new entry).

🤖 Generated with Claude Code

@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (a6acf1f) to head (c1120a4).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #9233   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            5         6    +1     
  Lines           83        81    -2     
=========================================
- Hits            83        81    -2     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@DTrim99

DTrim99 commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator Author

Review fixes applied (/review-program/fix-pr)

Full multi-agent review pass (regulatory, references, code patterns, test coverage, PDF value audit against the 2026 Program Design + Policy Explainer). 0 critical, 0 value mismatches — the applicable-% schedule ([1, 1.5, 1.65] → 0% / 3.19%→3.91%), the 100–165% FPL band, the residual formula, and every #page anchor verified; the exactly-150%-FPL knot confirmed as the documented Explainer/federal convention (right-continuous bracketing). Applied all should-address items and suggestions:

Code / docs

  • .any()add(...) > 0 in ca_premium_subsidy_eligible.py (house idiom; behavior-identical).
  • Dropped trailing .0 on the integer 1 in fpl_floor.yaml and the first threshold element (numerically identical).
  • ca_premium_subsidy.py docstring: documented that the raw (ungated) subsidy is summed into healthcare_benefit_value following the sibling-program convention (co_omnisalud, or_healthier_oregon_cost) — a take-up-gated assigned_ variant is a possible future refinement — and that FTB reconciliation, repayment caps, and the $190M appropriation cap are out of scope.
  • fpl_floor.yaml: section-anchored the CA Gov. Code reference to §100800(d)(7); dual #page anchor on the eligibility reference.

Tests (58/58 passing)

  • A derived-from-raw-income integration scenario: aca_magi_fraction, slcsp, and aca_ptc all derive from raw employment_income (→ 157% FPL), asserting a genuine $246.85 state subsidy — so a change to the federal ACA chain would be caught rather than silently pass.
  • A multi-member asymmetric-eligibility case (one member APTC-eligible, one not) asserting a full positive amount (not halved/zeroed).
  • Applicable-% clamp cross-checks (amount = 0 in the ineligible region), a dual-nonzero healthcare_benefit_value case, a positive-amount PY2027 carry-forward case, and a slcsp == aca_ptc floor case.

No parameter values (beyond 1.01 formatting) or formula logic changed. CI green.

🤖 Generated with Claude Code

@DTrim99
DTrim99 marked this pull request as ready for review August 10, 2026 13:00
@DTrim99
DTrim99 requested a review from hua7450 August 10, 2026 13:00

@hua7450 hua7450 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR #9233 — California Premium Assistance (Covered California state subsidy)

Program Review

Source Documents

# Document URL
1 2026 California Premium Subsidy Program Design (board-adopted 2025-07-28, 5 pp) https://board.coveredca.com/meetings/2025/July%2028,%202025/CoveredCA_2026_Premium_Subsidy_Program_Design_Final.pdf
2 2026 State Premium Subsidy Policy Explainer (HBEX, pub. 2026-02-20, 3 pp) https://hbex.coveredca.com/stakeholders/PDFs/2026-02_StatePremiumSub_PolicyExplainer-Final.pdf
3 CA Gov. Code Title 25 §§100800–100825, current text (leginfo capture, 3 pp) https://leginfo.legislature.ca.gov/faces/codes_displayText.xhtml?lawCode=GOV&division=&title=25.&part=&chapter=&article=
4 Discovered: 2027 Premium Subsidy Program Design V4 (May 21, 2026; adopted June 18, 2026) https://board.coveredca.com/meetings/2026/May%2021,%202026/CoveredCA_2027_Premium_Subsidy_Program_Design_V4_05-19-26.pdf
5 Discovered: Board Resolution 2026-22 (adoption, June 18, 2026; budget contingency satisfied) https://board.coveredca.com/meetings/2026/June%2018,%202026/2026-22.pdf
6 Discovered: May 21, 2026 board slides (impact counts, 2026/2027 schedule side-by-side; deck file URL not recoverable) https://board.coveredca.com/meetings/ (May 21, 2026 meeting)
7 Discovered: SB 78 (2019) enrolled text + SB 184 (Stats. 2022, Ch. 47) chaptered text — sunset history https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202120220SB184

Ancillary corroboration: Covered California press release July 21, 2026 ($300M HCARF, 200% FPL expansion); 2024/2025 Enhanced CSR Program Designs (pre-2026 window check); Policy Explainer Brief-1 (2020–21 predecessor program).

Reviewed head SHA: 5f05623
Mode: full
Year: 2026-2027
Scope: PR changes only

Strengths first. This is a well-built implementation: the benefit formula is the correct direct residual (max_(0, slcsp − aca_ptc − ca_pct × max_(magi, 0))) — not the buggy min_(gap, premium_after_aptc) shape seen in a sibling PR; every numeric parameter value is exactly supported by the cited pages (zero deviations across 22 design-document checks); all #page anchors were opened and verified; the code is clean (no hardcoded values, correct entities/periods, correct adds-vs-formula usage); and the test arithmetic is hand-verifiable to the cent, including the fully derived integration Scenario 8, whose apparent circularity was resolved by closed-form derivation from parameters alone.


Critical (Must Fix)

C1 — No filer gate: non-filers absorb the entire federal share as state benefit.
ca_premium_subsidy_eligible.py:30-39 gates only on in_effect, any-member is_aca_ptc_eligible, and the FPL band; aca_ptc.py:26-29 zeroes the subtrahend for non-filers, so a single non-filer at 140% FPL with SLCSP $6,000 is paid $6,000 where the law pays $0 and an identical filer gets ≈$750 (hand-reproduced by codepath-1). Evidence: PD p.1 preamble grants subsidies "to the applicable return filers"; (d)(7) "'Applicable return filer' means … a return filer whose household income…" (PD #page=2); GC §100810(a)(6) "a responsible individual shall file a California income tax return … notwithstanding the return filing thresholds". Fix: add tax_unit_is_filer as a conjunct in ca_premium_subsidy_eligible, reword the docstring's "statutory definition" to "Program Design (d)(7)" (pdf-statute X2), and add the non-filer YAML case from tests F2. Codepath-1 CONFIRMED CRITICAL — CA's text is strictly stronger than NM #9232's, where the same defect class was already rated critical.

C2 — PY2027 parameter carry-forward contradicts the adopted 2027 Program Design.
All six parameters carry single 2026-01-01 entries through 2027 (in_effect.yaml:10-12 true until 2028-01-01). The adopted 2027 PD (V4; Board Res. 2026-22, June 18, 2026; contingency satisfied by the enacted Budget Act of 2026 — $300M HCARF) lowers the 150–165% schedule to 2.69%→3.41%, adds a 165–<200% tier at 3.41%→5.1%, and redefines the band as "at or above 100 percent and under 200 percent" (exclusive upper bound; 2027 PD #page=2, verified at 600 DPI). ~218,340 newly eligible consumers per the board slides. Fix: add 2027-01-01 entries — threshold [1, 1.5, 1.65, 2.0], initial [0, 0.0269, 0.0341], final [0, 0.0341, 0.051], fpl_limit 1.99 (≡ "under 200%" under the 2-decimal truncation, so <= needs no formula change); update tests (pct Case 12: 0.0355→0.0305; subsidy Case 16: 3,112.50→3,237.50; add a 2027 case in (1.65, 2.00) and the 1.99/2.00 edge pair); refresh the now-stale in_effect.yaml comment ("values … unverified" — they are now verified and different), add the missing carry-forward notes flagged in fpl_floor/fpl_limit (references F6), and fix programs.yaml verified_years: "2026-2027", which overclaims until real 2027 entries land (references F4). Mismatch-1 CONFIRMED on all counts. Keeping in_effect true through 2027 is correct (see Investigated and cleared).

C3 — ca_premium_subsidy missing from parameters/gov/household/household_health_benefits.yaml (4th occurrence in this PR series).
The subsidy is added to healthcare_benefit_value.py:22 but absent from the parameter list at household_health_benefits.yaml:3-10, which is what household_health_benefits.py:20 sums into household_benefitshousehold_net_income when include_health_benefits_in_net_income is on. Both sibling state marketplace programs (co_omnisalud, or_healthier_oregon_cost) are dual-registered; as shipped, the two canonical health aggregates diverge and net-income-with-health analyses silently drop up to ~$3.5k/yr per recipient. Fix: register it (register the take-up-gated variant once A1 lands), and sweep the identical omission in NM #9232, MD #9218, VT #9245. Codepath-2 Claim A CONFIRMED.


Should Address

A1 — Take-up asymmetry: raw state subsidy beside the take-up-gated assigned_aca_ptc.
healthcare_benefit_value.py:16-25 counts the federal side via assigned_aca_ptctakes_up_aca_if_eligible) but the state side raw; a non-taker unit is credited $3,461.31 (Scenario 3 inputs) computed net of a $3,200 federal credit it is simultaneously modeled as not receiving. PD p.1 (a) caps the amount at premiums of plans "enroll[ed] through the Exchange" and (c)(1) requires applying through the Exchange — a non-enrollee gets $0. The docstring's co_omnisalud/or_healthier_oregon_cost precedent is inapposite (those populations are PTC-ineligible, so the take-up flag is vacuous there — verified in their code). Fix: an assigned_ca_premium_subsidy twin used in both aggregates, resolving A1 and C3 in one move. Codepath-2 Claim B CONFIRMED (Should Address, matching NM #9232's A3 disposition on weaker text).

A2 — fpl_floor.yaml cites a nonexistent statutory subdivision.
fpl_floor.yaml:12-13 cites "CA Gov. Code Title 25 Section 100800(d)(7)"; §100800(d) contains only paragraphs (1)–(2), and the section's sole FPL figure is the 600% ceiling in (b) — neither "100 percent" nor "165 percent" appears anywhere in it (verified at 600 DPI; references F1 / pdf-statute X1 / regulatory S3 / ext-1 unanimous). The (d)(7) band definition is a subdivision of the 2026 Program Design, already cited as reference #1. Fix: drop the statute reference, or retitle it "CA Gov. Code § 100800(c) (Exchange adopts annual program design upon appropriation)". The trailing-period sectionNum=100800. URL form is leginfo-canonical and resolves — not an error.

A3 — PR-body legislative history is wrong: Title 25 was never repealed.
The PR body claims §100800 "was repealed effective January 1, 2023" and frames PY2026 as "re-enacted Title 25 authority". Verified chain (ext-1): SB 78 (2019) added the title with a §100825(b)(1) sunset ("shall remain in effect only until January 1, 2023"); SB 184 §6 (Stats. 2022, Ch. 47, eff. June 30, 2022) deleted the sunset before it triggered; AB 118 (2023) then amended §100800. Title 25 has been continuously in force since June 27, 2019. No parameter value depends on the wrong narrative — fix the PR body Historical Notes and the issue #1394 supersession note.

A4 — Eligibility documentation misstates the legal basis (comment rewrite required; no logic change).
ca_premium_subsidy_eligible.py:18-35: (i) §100805(b) disclaims the federal income requirements ("shall not be subject to the income requirements of that section") — the docs present the inherited test as a feature of the gate; (ii) the inherited test is an FPL-band test (ptc_income_eligibility), not a "required-contribution income test" as the comment says; (iii) record the load-bearing contingency: the inherited gate is provably non-binding only while the CA band ⊆ federal [1.00, 4.00) — if CA ever bands above 400% FPL (the 2020–21 predecessor went to 600%) or a reform narrows the federal band, decompose the gate to pays_aca_premium & ~separate + CA band (ext-1 item 3). Also add one sentence noting the unmodeled 26 CFR 1.36B-2(b)(2)(ii)–(v) MFS exceptions (PD p.3 (d)(7)(A)) — a simplification shared with the federal model (regulatory S6).

A5 — REQ-xxx planning markers survive in production test files.
Headers of ca_premium_subsidy.yaml:2 (REQ-010/011/013/014/016/017/026), ca_premium_subsidy_applicable_percentage.yaml:2 (REQ-008/009/025), ca_premium_subsidy_eligible.yaml:2 (REQ-001/003/004/024) plus inline (REQ-017, Case 6 "(REQ-003)"). Strip before merge per series convention; also remove the review-history meta comment in subsidy Case 13 ("the amount file previously tested only…").

A6 — Deprecated documentation = (...) field on all three variables, including future-editor commentary.
ca_premium_subsidy.py:15-30, ca_premium_subsidy_eligible.py:15-29, ca_premium_subsidy_applicable_percentage.py:14-18. Convention for new code: reference tuple + short inline comments. The closing "…a take-up-gated assigned_ variant … is a possible future refinement" (lines 26-30) is PR-description material, not durable documentation — and is superseded by A1.

A7 — programs.yaml placement and agency label deviate from convention.
programs.yaml:1126-1135: the entry is inserted between co_chp and co_omnisalud, splitting the Colorado block — move it to the CA cluster. agency: HBEX (Covered California) deviates from the agency: State convention used by all 20 comparable state entries. (verified_years handled under C2.)

A8 — §100825 citations use the whole-Title landing URL instead of section URLs.
in_effect.yaml:21-22, ca_premium_subsidy.py:13, ca_premium_subsidy_eligible.py:13 all cite codes_displayText.xhtml?…title=25.… (renders the entire title; the href does not land on the section named in the title). Fix: codes_displaySection.xhtml?lawCode=GOV&sectionNum=100825. for in_effect (and consider adding §100800(c), the better authority for a time-limited switch); sectionNum=100805. / 100810. for the variables' actual reliance (references F3, code M5, pdf-statute X5).


Suggestions

S1 — Record the 150%-boundary resolution in applicable_percentage/threshold.yaml. The PD's "100% up to 150%" / "Above 150% up to 165%" leaves exactly 150% untiered (a drafting gap); the Explainer's "150% – At or Below 165%", 26 CFR 1.36B-3(g)(2)'s "at least 150% but less than 200%", and the truncation-mass argument (all of raw [150%, 151%) collapses onto 1.50) put it in the 3.19% band — the code is right; the file should say why (~$749–1,538/yr swing per mismatch-2).

S2 — Add an in_effect.yaml doc line on the ePTC condition precedent. Record that the PD's trigger (ePTC "not extended by September 30, 2025") fired, and that no conditioning logic is needed: for filers the residual telescopes to max_(0, (fed_pct − ca_pct) × income) and self-extinguishes under an ePTC-restoration reform (mismatch-2 item 4; the non-filer caveat is C1's fix).

S3 — Document the truncation edges. Raw income in [165%, 166%) truncates to 1.65 → eligible above the stated ceiling (mirrors the federal 400% edge; do not fork a CA-specific fraction), and the same truncation is what makes 2027's "under 200%" ≡ ≤ 1.99.

S4 — Add derived-chain tests: a Medi-Cal-intercepted case (e.g. single, $18,780, fraction 1.20 but Medicaid-eligible → subsidy $0; tests F1), a derived MFS exclusion case (F3), a dependent-only unit (F6), and truncation boundary pairs (F4). The non-filer case lands with C1.

S5 — Scenario 8 comment: state the income × (fed_pct − ca_pct) identity so the "model-derived" assertion is visibly non-circular (tests hand-verified 246.85 from parameters alone).

S6 — Interpolation clone: ca_premium_subsidy_applicable_percentage.py:40-51 carries two dead defensive branches, and this is the third verbatim copy of the federal searchsorted+interpolate block — a shared-helper candidate to file separately.

S7 — Gating shape: consider defined_for = "ca_premium_subsidy_eligible" on the amount variable, dropping the explicit where() (sibling/federal convention; current form is correct, just nonstandard).

S8 — PR-body hygiene: test counts are stale (claims 13 subsidy / 7 integration / 51 total vs actual 18 / 8 / 52); add a one-line scope note that the distinct 2020–2021 predecessor premium subsidy is out of scope (ext-1 item 4); the rate assertions inside mixed dollar cases are non-binding at the 0.01 margin (documenting only — the dedicated pct file pins them at 0.0001).


Verified correct (strongest confirmations)

  • All nine numeric parameter values verified against PD p.2 (d)(4)/(d)(7) and Explainer Table 1 p.2 — zero deviations; every #page anchor opened as an image and the cited value confirmed visible.
  • Formula shape is the correct direct residual per PD (b)(1)(B) − (b)/(f)(2), with the "excess (if any)" floor; subtracting the allowed PTC (aca_ptc, the (f)(2) form) is the right choice for a YEAR-period static model, and the negative-MAGI clamp is sound.
  • Federal ≥ CA premise hand-verified from repo parameters: the fed-minus-CA wedge is strictly positive on [1.00, 1.65], minimum exactly 1.000 pp at 1.50 — the "CA = federal − 1 pt" design signature (mismatch-2 item 4b; no external fetch needed).
  • Eligibility operators inclusive at both ends per (d)(7); the explicit 100% floor correctly excludes the below-FPL immigration exception the federal gate admits; FPL vintage (prior-year FPG via period.last_year) exactly matches (d)(11); household income = §36B MAGI per (d)(12)–(13).
  • Medi-Cal interaction captured via ineligible_coverage; dependent exclusion handled structurally; MFS exclusion inherited correctly from the federal gate.
  • SB 184 continuity: Title 25 continuously in force since 2019 — the program rests on live law.
  • Res. 2026-22 adoption + $300M HCARF funding: PY2027 program is real; in_effect true through 2027 with a 2028-01-01 conservative sunset is the correct window.
  • Tests: boundary coverage on both sides of 0.99/1.00/1.50/1.65/1.66, all dollar expectations re-derived to the cent, slcsp YEAR-injection round-trip exact, Scenario 8 hand-verified dataset-independently, changelog fragment and parameter file formats clean, no reinvented variables.

Investigated and cleared

  • "Repealed 2023" narrative — the legal-continuity worry is defused (SB 184 deleted the sunset before it triggered); only the PR prose is wrong (A3).
  • Pre-2026 in_effect window — the §100800(d)(1) CY2024 $82.5M (and CY2025 $165M) funded the Enhanced Cost-Sharing Reduction wrap, not premium assistance, verified from the operative 2024/2025 program designs; false before 2026-01-01 stands (ext-1 item 4).
  • in_effect through 2027 — pdf-design M1 ("PY2027 unsupported, maybe end 2027-01-01") adjudicated a false positive: the 2027 design is adopted and funded; the parameters, not the window, are what need fixing (→ C2).
  • 150% boundary — keep code and document (S1); references F5's remedy (shift to 1.5001 / exclusive bracket) rejected — the PD does not actually decide the point, and three independent tiebreakers favor the code (mismatch-2 item 1).
  • Enrolled-plan premium cap — closed as not-modeled-with-federal-precedent: the federal aca_ptc carries the identical unmodeled §36B(b)(2)(A) cap and no plan-choice input exists; already disclosed in the CA docstring (mismatch-2 item 2).
  • ePTC condition precedent — pdf-design M5's reform-interaction premise is materially wrong: the residual self-neutralizes under restoration; doc line only (S2).
  • Scenario 8 circularity — resolved: the 246.85 assertion is derivable from parameter files alone.
  • Truncation + FPL vintage — vintage faithful to (d)(11); the Form 8962 2-dp truncation is unsupported-but-reasonable and not contradicted (both PDFs silent on rounding); do not fork a CA-specific fraction (mismatch-2 item 3).
  • Trailing-period sectionNum= URLs — leginfo-canonical, verified resolving; not an error.
  • 0.99-fraction injected eligibility cases — reachable states (via the pre-2026 immigration exception, exactly the population the CA floor excludes); no unreachable assertions.

Pre-existing upstream issues (not introduced by this PR)

  • The federal filer gate lives only inside the aca_ptc dollar formula, not is_aca_ptc_eligible — the structural reason state programs reusing the eligibility gate keep tripping over C1's defect class (NM, now CA).
  • Federal aca_ptc.py's docstring does not disclose its own §36B(b)(2)(A) enrolled-plan-cap omission (the CA file discloses it; the federal one doesn't).
  • The searchsorted+interpolate block is now cloned three times (federal, NM, CA) — shared-helper candidate.
  • (No report raised the ptc_income_eligibility 4.00-boundary issue for CA; the CA band sits far inside the federal band, so it cannot bind here.)

PDF Audit Summary

Document Pages examined Matches Mismatches raised Disposition
2026 Program Design (5 pp) all 5 @300 DPI; pp.1–4 re-rendered @600 DPI 22 (design audit) 5 M3 → C1; M1 superseded by 2027 docs → C2 window kept, parameters fixed; M2 → keep-code + S1; M4, M5 → closed
2026 Policy Explainer (3 pp) all 3 @300 DPI; p.2 @600 DPI corroborates full schedule; Table 1 row decisive at the 150% edge (counted above)
Title 25 capture (3 pp) all 3 @300 DPI; pp.1–2 @600 DPI 7 6 X1 → A2; X2 → folded into C1; X3/X4 → A3; X5 → A8; X6 → A4
2027 PD V4 + Res. 2026-22 + board slides key pages @600 DPI (slides @300) schedule/band/adoption confirmed ground truth for C2

All parameter-value checks: 0 numeric deviations. All findings are coverage/formula-shape/citation issues, not transcription errors.

Validation Summary

Validator Findings raised Outcome after verification
regulatory 3 critical / 6 should / 5 sugg C1→C2 (renumbered), C2→C1, C3→C3 all confirmed; S1→A1, S2→A3, S3→A2, S4 folded into C2, S5→S1, S6→A4
references 7 F1→A2, F2→A3, F3→A8, F4/F6 folded into C2, F5 remedy rejected (finding valid, code kept), F7→A6
code 1 high / 5 med / 5 low H1→C3; M1→A5, M2→A6, M3/M4→A7, M5→A8; L1→S6, L2 noted, L3→S7, L4/L5→S8/A5
tests 3 med / 3 low F2→C1 test, F1/F3/F4/F6→S4, F5→A5; Scenario 8 cleared by hand derivation
pdf-design 22 matches / 5 mismatches M1 false positive; M2 keep-code; M3→C1; M4/M5 closed
pdf-statute 7 matches / 6 mismatches X1→A2; X2→C1 wording; X3/X4→A3; X5→A8; X6→A4; "live tension" resolved by ext-1
verifiers (5) mismatch-1: C2 confirmed incl. exact 2027 values; mismatch-2: 4 adjudications (all keep/close/document); codepath-1: C1 CRITICAL; codepath-2: C3 + A1 confirmed; ext-1: A2/A3/A4 confirmed, pre-2026 window cleared

Branch Status

47 commits behind main / 4 ahead; rebase recommended before fixes land. Staleness did not affect any finding (the NM sibling absent from this base was accounted for). CI: 33/33 passing at review time.

Review Severity

REQUEST_CHANGES — three confirmed criticals (C1 missing filer gate; C2 PY2027 parameters contradict the adopted 2027 Program Design; C3 missing household_health_benefits.yaml registration).

Next Steps

  1. Run the fix-pr workflow on C1–C3 and A1–A8. C3 and A1 should land as one move: create assigned_ca_premium_subsidy and register it in both aggregates (mirroring assigned_aca_ptc's slot).
  2. Sweep the household_health_benefits.yaml registration fix across the sibling PRs (NM #9232, MD #9218, VT #9245) — 4th consecutive occurrence.
  3. File separately (not this PR's scope): federal aca_ptc.py docstring disclosure of the §36B(b)(2)(A) cap omission; a shared interpolation helper for the thrice-cloned searchsorted block; whether the filer gate belongs in is_aca_ptc_eligible upstream.
  4. When the PY2027 Policy Explainer publishes (~Feb 2027, per the 2026 pattern), corroborate the 2027 schedule — currently sourced from the 2027 PD + Res. 2026-22 + the July 21, 2026 press release (single primary source).

DTrim99 and others added 5 commits August 10, 2026 17:28
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tests)

- ca_premium_subsidy_eligible.py: add(...) > 0 instead of tax_unit.any(members(...))
- fpl_floor.yaml / applicable_percentage/threshold.yaml: drop trailing .0 on the
  integer 1 (numerically identical)
- ca_premium_subsidy.py: docstring notes the raw-subsidy healthcare_benefit_value
  convention (sibling co_omnisalud/or pattern; takeup-gated variant a future
  refinement) and the out-of-scope reconciliation/appropriation caps
- fpl_floor.yaml: section-anchored CA Gov. Code Section 100800(d)(7) reference;
  eligible variable dual #page anchor
- Tests: derived-from-raw-income integration scenario asserting a genuine
  $246.85 subsidy; multi-member asymmetric-eligibility positive-dollar case;
  applicable-% clamp cross-checks; dual-nonzero healthcare_benefit_value case;
  positive PY2027 carry-forward case; slcsp==aca_ptc floor case (58/58 passing)

No parameter values (beyond 1.0->1 formatting) or formula logic changed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Critical:
- C1: add the federal filing requirement (tax_unit_is_filer) to the eligibility
  gate; without it a non-filer absorbed the entire federal PTC as state benefit.
- C2: the adopted 2027 Program Design (Board Res. 2026-22) changes the schedule
  - add 2027-01-01 entries: threshold [1,1.5,1.65,2.0], initial [0,0.0269,0.0341],
  final [0,0.0341,0.051], fpl_limit 1.99 (the new 165-<200% tier and lower 150-165%
  rates); update the affected pct/subsidy test values.
- C3: register the benefit (via the take-up twin) in household_health_benefits.yaml.

Should-address / suggestions:
- A1: add the assigned_ca_premium_subsidy take-up twin + takeup flag (statute+reg
  condition the benefit on Exchange enrollment); wire both benefit lists to the twin.
- A2: drop the nonexistent GC §100800(d)(7) citation on fpl_floor (retitle to (c)).
- A4/A6/A7/A8: rewrite the eligibility docstring (§100805(b) disclaims the federal
  income test); reference over documentation=; move the entry to the CA cluster with
  agency: State; use section-anchored §100805/§100810/§100825 URLs.
- A5: strip REQ test markers. S1/S2/S6/S7: 150%-band note, ePTC-trigger note, remove
  dead interpolation branches, defined_for = eligible.
- Tests: non-filer + 2027-tier + 1.99/2.00-edge + household flow-through + take-up
  cases; derived Medi-Cal/MFS coverage.

Note: the earlier "repealed 2023" history is corrected in the PR body (SB 184 deleted
the sunset before it triggered; Title 25 has been continuously in force since 2019).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@DTrim99
DTrim99 force-pushed the ca-premium-assistance branch from 5f05623 to c1120a4 Compare August 11, 2026 14:13
@DTrim99

DTrim99 commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator Author

Review fixes applied (/fix-pr) — thanks @hua7450

Thorough review — thank you, especially for discovering the adopted 2027 Program Design. Applied all 3 criticals, all 8 should-address items, and all 8 suggestions; 76 CA tests pass; the 2026 parameter values were untouched (they audited clean).

Critical

  • C1 — filer gate. Added & tax_unit_is_filer to the eligibility gate (PD (d)(7) "applicable return filer"; GC §100810(a)(6)). Verified: a non-filer now gets $0, a filer positive.
  • C2 — 2027 schedule. Added 2027-01-01 parameter entries per the adopted 2027 PD (Board Res. 2026-22): threshold [1,1.5,1.65,2.0], initial [0,0.0269,0.0341], final [0,0.0341,0.051], fpl_limit 1.99. Verified: applicable % at 157.5% FPL is 0.0367 (2026) → 0.0317 (2027), and the new 165–<200% tier is eligible in 2027 but not 2026; updated the affected test values.
  • C3 — second registration list. Registered the benefit (via the take-up twin) in household_health_benefits.yaml, with a flow-through test.

Should-address

  • A1 — take-up twin. Given PD (a)/(c)(1) condition the benefit on Exchange enrollment, added assigned_ca_premium_subsidy = raw × takes_up_ca_premium_subsidy_if_eligible and wired both benefit lists to it (resolving A1+C3 in one move, as you suggested). Verified: takeup=false → $0.
  • A2 — dropped the nonexistent GC §100800(d)(7) citation on fpl_floor (retitled to §100800(c); the band definition is a Program Design subdivision, already cited).
  • A3 — PR body corrected. Fixed the "repealed 2023" history: SB 78's sunset was deleted by SB 184 §6 (2022) before it triggered, and AB 118 (2023) amended §100800 — Title 25 has been continuously in force since June 27, 2019; PY2026 is a re-funding upon appropriation, not a re-enactment.
  • A4/A6/A7/A8 — rewrote the eligibility docstring (§100805(b) disclaims the federal income test; the inherited test is an FPL-band test, non-binding only while the CA band ⊆ federal [1.00, 4.00)); reference over documentation=; moved the programs.yaml entry to the CA cluster with agency: State; section-anchored §100805/§100810/§100825 URLs.

Suggestions

  • A5 stripped REQ markers; S1 documented the 150%-band resolution; S2 the ePTC-trigger self-extinguishing note; S6 removed the two dead interpolation branches; S7 defined_for = "ca_premium_subsidy_eligible"; S4/S5 derived Medi-Cal/MFS coverage + the Scenario 8 identity comment.

No upstream issue needed (the CA band sits far inside the federal [400%] boundary). Rebased onto main; CI re-running.

@DTrim99
DTrim99 requested a review from hua7450 August 11, 2026 15:48
@hua7450
hua7450 merged commit a4c2f30 into main Aug 11, 2026
63 of 64 checks passed
@hua7450
hua7450 deleted the ca-premium-assistance branch August 11, 2026 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Model California state premium subsidy (Covered California PY2026 ARPA backfill ≤165% FPL)

2 participants