Add Massachusetts premium assistance (ConnectorCare) - #9240
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9240 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 5 4 -1
Lines 86 57 -29
=========================================
- Hits 86 57 -29
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Review fixes applied (
|
eb95bb4 to
41046b5
Compare
29bc780 to
98d3ff0
Compare
hua7450
left a comment
There was a problem hiding this comment.
fix merge conflicts, then good to merge.
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>
…s, tests) - in_effect.yaml: fix the 404ing Seal-of-Approval Board Memo href to the working board_meetings/2025/07-10-25/ path (verified HTTP 200; #page=6 kept) - fpl_limit.yaml / fpl_floor.yaml: add a direct ConnectorCare Overview 2026 #page=1 (100-400% band) citation alongside the CMR sub-band cites - fpl_floor 1.0->1, fpl_limit 4.0->4, enrollee_premium first bracket 1.0->1 (bare-integer form; numerically identical) - programs.yaml: status complete->partial (premium axis only; cost-sharing/ dental/NEMT out of scope, per the registry convention), agency ->State and full_name trimmed to match sibling entries, notes added - ma_connector_care_member_eligible.py: trim docstring clauses that overclaimed the federal PTC-eligibility gate (removed non-incarceration / affordable-ESI) - Tests: new dedicated ma_connector_care_member_eligible.yaml (3 person-level cases) and a multi-member derived-from-raw-income integration scenario asserting derived aca_magi_fraction 1.89 / aca_ptc 9_572.08 / ma_connector_care 1_155.92 (50/50 passing) No parameter values (beyond 1.0->1 / 4.0->4 formatting) or formula logic changed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
98d3ff0 to
f8e47e3
Compare
Resolves a conflict in tests/policy/baseline/household/healthcare_benefit_value.yaml where main's WA Cascade Care Savings PR and this branch both added a "Case 16". Keeps main's WA cases 16-17 and renumbers the MA ConnectorCare case to 18. healthcare_benefit_value.py auto-merged with both ma_connector_care and wa_cascade_care_savings in the adds list. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Resolves two conflicts caused by sibling premium-assistance PRs landing in main (#9239 WA, #9240 MA): - tests/policy/baseline/household/healthcare_benefit_value.yaml: main's WA cases 16-17 and MA case 18 are kept; the two NJHPS cases are renumbered 19-20. The derived case's stale cross-reference to "Case 7" now points at Case 19, the forced NJHPS case it contrasts with. - programs.yaml: keeps main's ma_connector_care entry and re-inserts nj_njhps after it, preserving id order ahead of nj_unemployment_insurance. healthcare_benefit_value.py auto-merged with ma_connector_care, nj_njhps, and wa_cascade_care_savings all in the adds list. nj_njhps stays inert in main's non-NJ cases because nj_njhps_eligible is defined_for StateCode.NJ. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Resolves three conflicts caused by sibling premium-assistance PRs landing in main (#9239 WA, #9240 MA, #9244 NJ): - variables/household/healthcare_benefit_value.py: both sides appended to the adds list; keeps vt_premium_assistance and wa_cascade_care_savings in alphabetical order. - tests/policy/baseline/household/healthcare_benefit_value.yaml: main's cases 16-20 (WA, MA, NJ) are kept; the two Vermont cases are renumbered 21-22. The derived case's stale cross-reference to "Case 7" now points at Case 21, the forced Vermont case it contrasts with. - programs.yaml: both entries land at the tail of the state section; keeps vt_premium_assistance ahead of main's wa_cascade_care_savings. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Add Massachusetts ConnectorCare premium assistance (PY2026)
Closes #9223
Summary
Adds the Massachusetts ConnectorCare premium wrap — the Health Connector's state subsidy layered on top of the federal ACA premium tax credit under M.G.L. c. 176Q and 956 CMR 12.00. The state pays the gap between the benchmark plan premium, the federal APTC, and a flat per-person monthly enrollee contribution the Board sets annually by plan type (956 CMR 12.12(9)). This PR implements the plan year 2026 flat-dollar schedule ($0/$53/$103/$152/$235 per person per month across five FPL bands).
New node:
gov/states/ma/hic/connector_care/(HIC = Commonwealth Health Insurance Connector Authority). New variables:ma_connector_care,ma_connector_care_eligible,ma_connector_care_member_eligible. The benefit is added tohealthcare_benefit_valueand registered inprograms.yamlwithverified_start_year: 2026.Regulatory Authority
Local copies of all four PDFs live under
sources/(the mahealthconnector.org CDN returns 403 on generic user agents).Eligibility
Three modeled gates, matching the
in_effect & income_band & aptc_eligiblestructure of the other state premium-assistance implementations:defined_for = StateCode.MA(956 CMR 12.04(1)(c)).aca_magi_fractionagainstfpl_floor(1.0) andfpl_limit(4.0). For 2026 the operational program runs Plan Types 2A-3C only: Plan Type 1 (<100% FPL) is eliminated and the 3D tier (400.1-500%) lapsed with the enhanced APTCs, with only 3C (300.1-400%) surviving from the pilot.ma_connector_care_member_eligible=is_aca_ptc_eligible(956 CMR 12.04(3)(a)2 → 45 CFR 155.305(f)). Citizenship/lawful presence, incarceration, no-affordable-employer-coverage, and Medicare/MassHealth exclusions are inherited through the federal PTC eligibility chain rather than re-modeled.An
in_effectparameter gates the program to 2026 onward (pre-2026 program history unmodeled — see Not Modeled).Benefit Calculation
The PY2026 enrollee contribution is a flat per-person monthly dollar amount by FPL band — decoupled from the percent-of-income affordability schedule since 2025 (Affordability Memo p.2), so this is a
single_amountstep bracket overaca_magi_fractionwith no interpolation:Bracket thresholds use the
x.0001lower-exclusive convention (1.0 → 0, 1.5001 → 53, 2.0001 → 103, 2.5001 → 152, 3.0001 → 235) matching the published "150.1%" banding. A bracket comment notes the 3C tier is a pilot extended through FY2026 that may lapse.The subsidy:
gated by
ma_connector_care_eligible, wheren_eligible_memberscounts APTC-eligible members (the CO/WA convention). Documented approximations:slcsp(second-lowest-cost silver) as the benchmark, slightly overstating the wrap where the lowest-cost plan is cheaper.aca_ptcis netted out.MONTHS_IN_YEAR; floored at zero (no clawback where APTC plus contribution exceeds the benchmark, e.g. the $235 3C tier).healthcare_benefit_value, not routed through income.Requirements Coverage
28 requirements were extracted from the sources and approved at the scope checkpoint; all 46 tests pass.
ma_connector_care_member_eligiblehas no dedicated unit file and is asserted as an output within integration scenariosstate_implementationsitem under the ACA PTC parentTest files (run individually with
policyengine-core test):ma_connector_care_eligible.yamlma_connector_care.yaml(all 12 band boundaries 0.99-4.01, hand-computed $928 residual, zero-floor, edge cases)integration.yaml(incl. a scenario derivingslcsp/aca_ptc/is_aca_ptc_eligiblefrom raw employment income)household/healthcare_benefit_value.yaml(MA wrap case)Not Modeled
in_effectis false before 2026.Files Added
14 files changed, 1,290 insertions.
🤖 Generated with Claude Code