Add New Mexico premium assistance (BeWell NM state subsidy) - #9232
Add New Mexico premium assistance (BeWell NM state subsidy)#9232DTrim99 wants to merge 4 commits into
Conversation
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>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9232 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 12 5 -7
Lines 192 93 -99
=========================================
- Hits 192 93 -99
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:
|
- Use add(...) > 0 instead of tax_unit.any(members(...)) in nm_premium_assistance_eligible.py and nm_mih_eligible.py (house idiom; behavior-identical) - benchmark_gross_up/rate.yaml: approved-verb description - nm_premium_assistance.py: strengthen the MIH -aca_ptc comment (intentional, inert in the PY2026 baseline where federal APTC is $0 above 400% FPL, retained for reform-robustness); comment the searchsorted interpolation - in_effect.yaml: document the PY2027 carry-forward / 2028-sunset assumption - Tests: 2028 amount-level sunset (base + MIH), 2028 nm_mih_eligible, a MIH case with non-zero APTC exercising the -aca_ptc term, a mid-bracket interpolation case, and a derived-from-raw-income integration scenario asserting a genuine $2,549.86 top-up (81/81 NM tests passing) No parameter values or formula logic changed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review fixes applied (
|
Implement New Mexico Premium Assistance (NMPA + MIH)
Summary
Implements the New Mexico Premium Assistance program (NMPA), the premium top-up component of New Mexico's Health Insurance Marketplace Affordability Program (MAP), funded by the Health Care Affordability Fund (HCAF) and administered by the NM Health Care Authority (HCA) via the BeWell Marketplace.
Two components, combined in a single output variable
nm_premium_assistance:The implementation covers plan years 2026–2027 (PY2026 authoritative values carried forward to PY2027), integrates into
healthcare_benefit_value, and adds aprograms.yamlregistry entry. All 75 tests across 6 test files pass.Closes #9219
Regulatory Authority
Page anchors are file pages of each PDF, verified against extracted text.
Eligibility
Base NMPA (≤400% FPL) —
nm_premium_assistance_eligible(Manual p.4):pays_aca_premiuminsideis_aca_ptc_eligible).is_aca_ptc_eligible(Manual p.4; SB 317 Sec. 5(A)(2), p.9).aca_magi_fraction <= 4.0); "consumers with household income over 400% of the FPL do not qualify" for base NMPA (Manual p.6).MIH (>400% FPL) —
nm_mih_eligible(Addendum p.2):is_aca_ptc_eligibleembeds the ≤400% income test (which fails above 400% in 2026), the formula uses its non-income internals directly:pays_aca_premiumand the married-filing-separately exclusion.aca_magi_fraction > 4.0, sharing the samefpl_limitparameter so the band boundary is defined once).Both variables use
defined_for = StateCode.NMand are gated by their respectivein_effectparameters.Benefit Calculation
Target contribution schedule (Table 1, PY2026) — the household's expected benchmark-premium contribution as a share of ACA MAGI, linearly interpolated within brackets (Manual p.4–p.5):
Encoded as
target_contribution_percentage/{threshold, initial, final}.yaml(thresholds[0, 1.5, 2.0, 2.5, 3.0, 4.0]), mirroring the federalgov/aca/required_contribution_percentagestructure, withnm_premium_assistance_target_contribution_percentageperforming the bracket interpolation overaca_magi_fraction.Benchmark gross-up (≤200% FPL): for enrollees at or below 200% FPL, the NMPA benchmark is 110% of the SLCSP ("the benchmark plan used to calculate the New Mexico Premium Assistance amount will be 10% above the price of the second lowest cost Silver plan"; Manual p.5). The gross-up affects only the state calculation, never the federal APTC. This is not a no-op even though the target percentage is 0% below 200% FPL — it adds 10% of the SLCSP on top of the
SLCSP − APTCresidual, which is why the implementation uses the manual's direct-residual formulas rather than Maryland's contribution-gap form. Parameters:benchmark_gross_up/{rate, fpl_limit}.yaml(0.1, 2.0).Formulas (annualized; the manual states them monthly, dividing annual income by 12; Manual p.5; Addendum p.3):
NMPA = max(0, 1.1 × SLCSP − APTC − target% × ACA MAGI)NMPA = max(0, SLCSP − APTC − target% × ACA MAGI)NMPA = max(0, SLCSP − APTC − 8.5% × ACA MAGI)— the Addendum formula has no APTC term because federal APTC is $0 above 400% FPL in the 2026 baseline; subtractingaca_ptcanyway is a no-op in baseline and keeps the formula robust under reform scenarios. Rate parameter:mih/rate.yaml(0.085).slcspis a MONTH-period variable, annualized viaadd(tax_unit, period, ["slcsp"]). ACA MAGI is clamped at zero (max_(aca_magi, 0)) so negative income cannot inflate the top-up. The $0 floor applies in every band: the consumer's net premium cannot fall below $0 (Manual p.6). The manual's selected-plan premium cap is approximated by the SLCSP-based residual, since the selected plan is unknown in the model (the same simplification as Maryland Premium Assistance).Requirements Coverage
20 of 30 extracted requirements are in scope; all 20 are implemented and tested (see Not Modeled for the rest).
is_aca_ptc_eligible/pays_aca_premiumgates in both eligibility variablesnm_premium_assistance_eligible(tax_unit.any)fpl_limit.yaml(4.0)nm_premium_assistance_eligiblefpl_limit.yaml,mih/in_effect.yamlnm_mih_eligiblemih/in_effect.yaml(clause documented)nm_mih_eligibleaca_magiinnm_premium_assistanceaca_magi_fraction(reused)add(tax_unit, period, ["slcsp"])target_contribution_percentage/{threshold,initial,final}.yamlnm_premium_assistance_target_contribution_percentagebenchmark_gross_up/{rate,fpl_limit}.yamlnm_premium_assistancenm_premium_assistancenm_premium_assistancemih/rate.yaml(0.085)nm_premium_assistancemax_(0, ...)innm_premium_assistancein_effect.yamlmih/in_effect.yamlnm_mih_eligibleis_aca_ptc_eligiblegatehealthcare_benefit_valueintegrationaddsentry inhealthcare_benefit_valueprograms.yamlregistry entryprograms.yaml(idnm_premium_assistance, agency HCA, prefixgov.states.nm.hca.premium_assistance, verified_years 2026–2027)changelog.d/nm-premium-assistance.added.mdTest totals: 75 passing across 6 files (eligible 12, MIH eligible 8, target percentage 18, amount 19, integration 11, healthcare_benefit_value 7).
Not Modeled
Documented per the scope decision; excluded from the model:
Historical Notes
mih/in_effect.yamlencodes this directly (true from 2026-01-01) with the clause documented in its description, rather than deriving it from federal parameters.in_effecttrue 2026-01-01, false 2028-01-01), matching the Maryland Premium Assistance approach, pending official PY2027 parameters. The carry-forward is documented in the parameter descriptions.Files Added