Implement Maryland Premium Assistance - #9218
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9218 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 12 5 -7
Lines 192 87 -105
==========================================
- Hits 192 87 -105
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:
|
Starting implementation of Maryland Premium Assistance. Documentation and parallel development will follow. 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>
- Simplify the target-% bracket interpolation: bracket_end = thresholds[bracket_idx + 1] (the old where() false-branch was provably unreachable since bracket_idx is clipped to [0,4]); mirrors the canonical aca_required_contribution_percentage interpolation. Behavior-preserving. - md_premium_assistance_eligible: any(is_aca_ptc_eligible) -> add(...) > 0 (codebase idiom). Add defensive income = max_(aca_magi, 0) clamp (VT parity; no-op given the provably-safe gap). - fpl_limit 4.0 -> 4; strip trailing zeros in the threshold array. - Expand the 200%-FPL typo NOTE to cite all four corroborators (HGO full- replacement label, the same row's 2.0% 2025-ePTC endpoint, MIA Exhibit 2a 2.03% actual, and the 2025 ARPA schedule); reword the COMAR reference as the delegating authority (the schedule lives on HGO p58 + MIA Exhibit 2a); state the .04E plan-years-2026-2027 sunset in the in_effect COMAR title. - Add tests: interior 300-400% interpolation, a fully income-derived integration scenario (2_101.82), PY2027, negative-MAGI (0), 150-200% interior (1.75->1.00%) and just-below-200% (1.99->1.96%), young-adult ages 36/37 through the target-% subtraction, a multi-enrollee MAX edge, a young-adult target-% floor case, and a derived healthcare_benefit_value case. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
d485071 to
df12185
Compare
Review fixes applied (
|
Maryland Premium Assistance (State-Based Health Insurance Subsidies Program)
Summary
Implements the Maryland State-Based Health Insurance Subsidies Program ("Maryland Premium Assistance") in PolicyEngine — a PY2026–2027 state top-up to the federal ACA premium tax credit. Maryland fills part of the gap created by the expiration of the enhanced federal premium tax credits (ARPA/IRA eAPTC): full replacement of the lost federal help up to 200% FPL, a linear phase-down from 100% to 50% replacement over 200–250% FPL, 50% replacement over 250–400% FPL, and no subsidy above 400% FPL. The pre-existing Young Adult Subsidy (ages 18–37) is maintained as an overlay that further reduces the target contribution percentage. The subsidy is administered by the Maryland Health Benefit Exchange (MHBE) and applied automatically on top of the federal APTC.
Closes #9217
Regulatory Authority
Note: the primary consumer page (marylandhealthconnection.gov/maryland-premium-assistance) is bot-blocked (HTTP 403); its content was corroborated via a govdelivery bulletin and secondary sources.
Eligibility
A tax unit is eligible (
md_premium_assistance_eligible) when all of the following hold:is_aca_ptc_eligible(COMAR 14.35.21.03A(1), cross-referencing COMAR 14.35.07.08). Because eligibility is gated on the federal APTC, OBBBA immigration-related APTC losses (2026 and 2027) flow through automatically with no MD-specific code.state_codeis MD.aca_magi_fraction <= 4.0(fpl_limit.yaml); no state subsidy above 400% FPL (HGO briefing p.58; MIA Exhibit 2a 401% rows). The FPL year follows the "FPL as of the first day of open enrollment" convention (COMAR 14.35.21.02B(3)) — PY2026 uses 2025 FPL guidelines, which matches the prior-year FPG convention already encoded inaca_magi_fraction.in_effect.yaml; Ins. Art. §31-125(D); COMAR 14.35.21.04E).The COMAR 14.35.21.03A(2) requirement that the enrollee "experience an increase in the applicable percentages" versus CY2025 falls out of the benefit formula (the
max_(0, ...)floor) rather than a separate flag.Benefit Calculation
Target contribution percentage schedule (MD target vs federal 2026 applicable %)
The Maryland target is derived as: 2025 enhanced (ARPA) % + replacement share × (2026 non-enhanced % − 2025 enhanced %), where the replacement share is 1.0 up to 200% FPL, tapers linearly 1.0 → 0.5 over 200–250% FPL, and is 0.5 over 250–400% FPL (HGO briefing p.58; interpolation validated against MIA Exhibit 2a).
Encoded as a threshold/initial/final bracket triple with linear interpolation within bands (
target_contribution_percentage/{threshold,initial,final}.yaml), cloning the mechanism of the federalaca_required_contribution_percentage. The schedule ends at 4.0, so the 400% FPL limit is encoded explicitly in the MD parameters rather than relying on the federalptc_income_eligibilitycutoff (REQ-014).Core formula (COMAR 14.35.21.04; HGO p.58)
slcspvariable (MONTH-period, summed to annual).max_(0, ...)floor implements the COMAR 14.35.21.03A(2) "experiences an increase" condition.Young Adult Subsidy overlay (Final 2026 Parameters p.14)
Maryland's pre-existing Young Adult Subsidy is maintained on top of the all-ages subsidy for PY2026. It reduces the target contribution percentage, floored at 0:
Encoded as an age-bracket parameter (
young_adult/reduction.yaml) with a person-level variable (md_premium_assistance_young_adult_reduction) aggregated to the tax unit and subtracted from the MD target percentage (floored at 0) inmd_premium_assistance_target_contribution_percentage. Validated against the Final 2026 Parameters p.14 expected-contribution table (e.g., at 200% FPL: 2.00% → 0.00% for ages 18–33; at 400% FPL: 8.50% → 6.00%) and the HGO p.59 age-30 example.Validation
Integration tests target the MIA Exhibit 2a illustrative net premiums (single age 40 and family of four at 138–401% FPL, annualized) and the HGO p.59 savings examples. The ~$1/mo residual MIA shows at ≤150% FPL is a non-EHB artifact (see Not Modeled).
Requirements Coverage
md_premium_assistance_eligible(any-memberis_aca_ptc_eligible)md_premium_assistance_eligible.yamlcases 1/4/8max_(0, gap)inmd_premium_assistancemd_premium_assistance.yamlcase 13 (negative gap floored)fpl_limit.yaml(4.0)md_premium_assistance_eligibleaca_magi_fractionmd_premium_assistancemd_premium_assistance.yamlcases 1–4, 16target_contribution_percentage/{threshold,initial,final}.yaml..._target_contribution_percentagefpl_limit.yamlmd_premium_assistance_eligiblemd_premium_assistancereusesslcspmin_withmax_(0, slcsp − aca_ptc)md_premium_assistancedocumentation stringyoung_adult/reduction.yaml..._young_adult_reduction+ target-% floor..._young_adult_reduction.yaml(14 cases); target % cases 8–10/20; integration scenarios 6/8ain_effect.yamlis_aca_ptc_eligiblegate)healthcare_benefit_valuehealthcare_benefit_valueadds listhousehold/healthcare_benefit_value.yamlprograms.yaml(idmd_premium_assistance, agency MHBE, verified_years "2026-2027")All 78 test cases across 6 files pass locally.
Not Modeled
pays_aca_premiumin_effectswitch, not structural coupling (see Historical Notes)slcsp; the non-EHB increment is not separately observed. Documented in themd_premium_assistancedocumentation string. This is why MIA Exhibit 2a shows a ~$1/mo residual at ≤150% FPLHistorical Notes
target_contribution_percentage/initial.yamlandfinal.yamlcomments.in_effectending 2028-01-01. Update the target schedule when the Board adopts 2027 parameters (expected by December 31, 2026); note the federal 2027 applicable percentages will also shift via Rev. Proc. indexing.gov.states.md.mhbe.premium_assistance.in_effectto false.Files Added