Skip to content

Add Connecticut premium assistance (Covered Connecticut) - #9246

Draft
DTrim99 wants to merge 5 commits into
mainfrom
ct-premium-assistance
Draft

Add Connecticut premium assistance (Covered Connecticut)#9246
DTrim99 wants to merge 5 commits into
mainfrom
ct-premium-assistance

Conversation

@DTrim99

@DTrim99 DTrim99 commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

Closes #9226.

Adds the Covered Connecticut Program — Connecticut's state-funded premium wrap that pays the enrollee's residual benchmark silver-plan premium (after the federal APTC) down to $0 for Access Health CT enrollees at or below 175% of the federal poverty level who are eligible for the federal ACA premium tax credit.

Scope is the premium axis only (residual premium to $0) for plan year 2026. The program's separate cost-sharing, dental, and non-emergency medical transportation benefits are not modeled (see Not modeled), which is why the programs.yaml status is partial.

Authority: June Special Session, Public Act No. 21-2 (2021), §16.

Regulatory authority

The program is created by June Sp. Sess., Public Act No. 21-2 (2021), §16 (Senate Bill No. 1202) — session law, not codified as a standalone CGS section. Program text spans PDF pages 21–24 (#page=21 anchors the §16 body).

  • §16(b) — establishes the Covered Connecticut program within the Office of Health Strategy.
  • §16(b)(1) — directs OHS to "provide premium and cost-sharing subsidies that are sufficient to ensure fully subsidized coverage" (the residual-to-zero design).
  • §16(b)(1)(B)(iv) — household income up to "one hundred seventy-five per cent of the federal poverty level" (fpl_limit = 1.75).
  • §16(b)(1)(B)(ii) — enrollees must be "eligible for premium and cost-sharing subsidies for a qualified health plan" (federal APTC-eligible).
  • §16(b)(1)(B)(iii) — ineligible for Medicaid because income exceeds Medicaid limits (inherited from the APTC gate).
  • §16(b)(1)(B)(v) — coverage under the benchmark silver qualified health plan (modeled via slcsp).
  • §16(d) — the subsidy is not counted as income for CT personal income tax (chapter 229); satisfied by construction (not added to ct_agi).

Operational references: CT DSS and Access Health CT Covered Connecticut program pages.

Eligibility

A tax unit is eligible when all three hold (ct_covered_connecticut_eligible, defined_for = StateCode.CT):

  1. In effect — the in_effect parameter is true (2026-01-01 onward).
  2. APTC-eligible — at least one member is federal-APTC-eligible: tax_unit.any(members("is_aca_ptc_eligible")). This embeds on-Marketplace enrollment, the MFS exclusion, and the federal required-contribution income test.
  3. Incomeaca_magi_fraction <= 1.75 (175% FPL).

Notes:

  • No explicit lower FPL floor. The is_aca_ptc_eligible gate already excludes Medicaid/HUSKY-eligible people (~≤138% FPL for CT adults), so Covered Connecticut effectively covers the ~138–175% FPL band.
  • No age gate. The statute limits eligibility to nonpregnant adults 18–64 (plus family-variant dependents ≤26), but the MAGI + APTC structure captures the population; matches the MD/VT sibling design.

Benefit calculation

Residual-to-zero premium (a 0% target-contribution case):

ct_covered_connecticut = max_(0, add(tax_unit, period, ["slcsp"]) - aca_ptc)
  • slcsp (the benchmark second-lowest-cost silver plan premium) proxies the statutory benchmark; it is MONTH-period and annualized by summing 12 months via add(...).
  • aca_ptc is the annual federal advance premium tax credit.
  • Because aca_ptc <= slcsp for benchmark enrollees, the result is implicitly capped at slcsp and never negative — no separate cap term is needed. This is the VT premium-assistance formula with the CT target contribution set to 0%, so the reduction machinery collapses to the residual; it is implemented directly.
  • The amount variable is gated by defined_for = "ct_covered_connecticut_eligible", so ineligible tax units return 0.

Requirements coverage

40/40 YAML tests pass; ruff format clean.

Requirement Status Covered by
REQ-1 in_effect gate Done ct_covered_connecticut_eligible.py, eligible cases
REQ-2 APTC-eligible (any member) Done ct_covered_connecticut_eligible.py
REQ-3 aca_magi_fraction <= 1.75 Done eligible + boundary cases
REQ-4 Eligibility composition, defined_for CT Done ct_covered_connecticut_eligible.py
REQ-5 Residual max_(0, slcsp - aca_ptc) Done ct_covered_connecticut.py, amount cases
REQ-6 Amount gated on eligibility Done ct_covered_connecticut.py
REQ-7 Medicaid floor inherited Documented variable docstring
REQ-8 Silver benchmark via slcsp Documented variable docstring
REQ-9 No explicit age gate Documented variable docstring
REQ-10 Not CT-taxable (§16(d)) By construction not added to ct_agi
REQ-11 fpl_limit.yaml = 1.75 Done parameter
REQ-12 in_effect.yaml (false → 2026 true, open-ended) Done parameter
REQ-13 ct_covered_connecticut.py (float/TaxUnit/YEAR) Done variable
REQ-14 ct_covered_connecticut_eligible.py (bool/TaxUnit/YEAR/CT) Done variable
REQ-15 Tests: residual, >175%=0, not-APTC=0, pre-2026=0, boundary Done 4 YAML test files
REQ-16 Wired into healthcare_benefit_value.adds Done healthcare_benefit_value.py + Case 7
REQ-17 programs.yaml entry (status partial) Done programs.yaml
REQ-18 Changelog fragment Done changelog.d/
REQ-19 make format Done ruff clean
REQ-20 Node gov/states/ct/dss/covered_connecticut/ Done all artifacts

Test files (40 cases total):

  • ct_covered_connecticut_eligible.yaml — 9 cases
  • ct_covered_connecticut.yaml — 13 cases
  • integration.yaml — 11 cases, including two scenarios derived from raw income (no injected ACA inputs) at ~150% and ~160% FPL
  • household/healthcare_benefit_value.yaml — 7 cases (Case 7 asserts flow-through)

Not modeled

The Covered Connecticut Program does more than the premium wrap. The following are a separate benefits axis, deliberately out of scope for this PR — hence programs.yaml status partial:

  • Cost-sharing reduction to $0 — deductibles, copays, coinsurance, out-of-pocket max (§16(b)(1)/(2)).
  • Dental benefits (§16(b)(2), on/after July 1, 2022).
  • Non-emergency medical transportation (NEMT) (§16(b)(2)).

Also not modeled:

  • The separate 2026 Connecticut Option / BHP program (2026 SB-3, within OPM; a ≤200% FPL band for households ineligible for Covered Connecticut, plus a 400–600% band). This is a distinct program — a candidate for a future PR — and does not change Covered Connecticut's 175% FPL ceiling.
  • Enrollment / take-up mechanics, quarterly carrier reimbursement operations, §1332/§1115 waiver machinery, and advance-payment reconciliation. Modeled as a static benefit value.
  • Explicit age gate (18–64 / 19–64) and the family-variant dependents-≤26 distinction.

Files added

changelog.d/
  ct-premium-assistance.added.md
policyengine_us/
  programs.yaml   (entry added)
  parameters/gov/states/ct/dss/covered_connecticut/
    fpl_limit.yaml
    in_effect.yaml
  variables/gov/states/ct/dss/covered_connecticut/
    ct_covered_connecticut.py
    ct_covered_connecticut_eligible.py
  variables/household/
    healthcare_benefit_value.py   ("ct_covered_connecticut" added to adds)
  tests/policy/baseline/gov/states/ct/dss/covered_connecticut/
    ct_covered_connecticut.yaml
    ct_covered_connecticut_eligible.yaml
    integration.yaml
  tests/policy/baseline/household/
    healthcare_benefit_value.yaml   (Case 7 added)

@codecov

codecov Bot commented Aug 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (63bcfc5) to head (15cdb86).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #9246    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           12         3     -9     
  Lines          192        38   -154     
==========================================
- Hits           192        38   -154     
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 and others added 5 commits August 6, 2026 14:08
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ance

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The fpl_limit reference title cites Sec. 16(b)(1)(B)(iv), whose "one
hundred seventy-five per cent of the federal poverty level" text is on
FILE page 23 of the P.A. 21-2 PDF; #page=21 landed on the Sec. 16 header.
Reference href only; no value change (1.75 verbatim-confirmed in statute).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Retarget P.A. 21-2 reference anchors to the operative pages: in_effect
  and both variables to #page=22 (the "fully subsidized coverage" mandate
  Sec. 16(b)(1)); add #page=24 for Sec. 16(d) (not-CT-taxable) which the
  ct_covered_connecticut documentation cites.
- Clarify the in_effect comment: statutory launch was July 1 2021
  (parents/caretakers) and July 1 2022 (all adults 18-64); 2026-01-01 is
  the modeled verified-coverage-start floor, not the standing-law year.
- Add the CT DSS program page as a second in_effect reference (ongoing
  status) and repoint the fpl_limit DSS href off the navigation stub.
- programs.yaml agency "DSS (Access Health CT)" -> "State" (sibling
  convention); document the statutory age-cohort scope choice in the
  eligible-variable docs; comment the defensive max_(0,...) floor.
- Add tests: 1.7501 FPL epsilon boundary, MFS-via-derived-is_aca_ptc_
  eligible, immigration-ineligible arm, a derived low-income integration
  scenario (documents the Medicaid/APTC split lower bound at ~140% FPL in
  this expansion state), a derived healthcare_benefit_value case, a 2027
  carry-forward case, and a negative-income case.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@DTrim99
DTrim99 force-pushed the ct-premium-assistance branch from 32ef05c to 15cdb86 Compare August 6, 2026 18:09
@DTrim99

DTrim99 commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator Author

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

Ran the full multi-agent local review — regulatory, references, code patterns, test coverage, and a sighted value-audit against June Sp. Sess. P.A. 21-2 (2021) §16 (the 790-page implementer, §16 on file pages 21–24) and the CT DSS Covered Connecticut page. Zero critical findings — the residual formula max_(0, slcsp − aca_ptc), the ≤175% FPL gate, the federal-APTC prerequisite, the no-minimum-floor rationale, and the §16(d) not-CT-taxable treatment are all correct and production-ready. Applied all should-address items and every suggestion:

References / documentation (the main theme)

  • Retargeted the P.A. 21-2 anchors to the operative pages: in_effect and both variables now point to #page=22 (the "fully subsidized coverage" mandate §16(b)(1)), and the ct_covered_connecticut documentation's §16(d) not-taxable citation gets a #page=24 anchor. (fpl_limit's §16(b)(1)(B)(iv) #page=23 was already correct.)
  • Clarified the in_effect comment: the program launched July 1 2021 (parents/caretakers) and July 1 2022 (all adults 18–64) — 2026-01-01 is the modeled verified-coverage-start floor, not the year it became standing. Added the CT DSS program page as a second reference to corroborate ongoing status, and repointed the fpl_limit DSS href off a navigation stub.
  • programs.yaml agency "DSS (Access Health CT)"State (sibling convention); made the statutory age-cohort scope choice (adults 18–64, dependents ≤26, parents/caretakers not separately gated) explicit in the eligible-variable docs; commented the defensive max_(0, …) floor.

Tests (all passing — 40+ CT cases)

  • 1.7501 FPL epsilon just above the inclusive ceiling (→ ineligible), MFS-driven ineligibility via a real filing_status: SEPARATE (exercising the derived federal-PTC gate rather than injecting it), and an immigration-ineligible arm.
  • A fully income-derived integration scenario that surfaced a real modeling nuance: at ~140% FPL a single CT adult derives into Medicaid (an expansion state), so is_aca_ptc_eligible is false and the residual is $0 — documented as the effective lower bound. A companion derived healthcare_benefit_value case at 150% FPL (above the Medicaid split) shows a genuine non-zero residual (988.84) flowing into net income.
  • A 2027 carry-forward case and a negative-income case.

No value (fpl_limit 1.75, in_effect date), the residual formula, or the .any() idiom changed. Rebased onto current main.

Note: a GitHub Actions infrastructure incident earlier today ("Service Unavailable" on action downloads) caused unrelated transient job failures on some sibling branches; those are being re-run and are not code issues.

🤖 Generated with Claude Code

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 Connecticut Covered Connecticut ($0 premium / $0 cost-sharing wrap ≤175% FPL)

1 participant