Add New Jersey premium assistance (NJ Health Plan Savings) - #9244
Add New Jersey premium assistance (NJ Health Plan Savings)#9244DTrim99 wants to merge 5 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9244 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 12 4 -8
Lines 192 62 -130
==========================================
- Hits 192 62 -130
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:
|
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>
- DOBI FY2026 budget $212.2M/remain-flat continuity citation moved from #page=6 to #page=8 (pmpm.yaml, in_effect.yaml) where that sentence appears; fpl_limit.yaml keeps #page=6 (the 600% FPL ceiling statement) - Get Covered NJ href pointed at the NJHPS-specific /premiums/ sub-page (the bare /financialhelp/ page served only special-enrollment content) - Reference hrefs only; no parameter values, thresholds, dates, or formulas changed. The OTA §1332 addendum p.8 remains the verbatim value source. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- De-duplicate nj_njhps eligibility: defined_for = "nj_njhps_eligible" and return min_(base_annual, residual), dropping the redundant where() gate (matches the co_omnisalud sibling pattern; output unchanged). - fpl_limit 6.0 -> 6; repoint OTA-addendum reference anchors to the Table 2 value table (#page=12); clarify enhanced-vs-superseded-initial schedule. - Fix $20-band threshold 1.38 -> 1.3799 so the inclusive 138% FPL floor engages under float32 aca_magi_fraction (float32(1.38) = 1.37999...). - Add tests: fully income-derived integration scenario (nj_njhps=1_200 at 274% FPL), exact-138%-floor case, aca_ptc>slcsp residual-clamp case, negative-MAGI member guard, and a derived healthcare_benefit_value case. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Review fixes applied (
|
ca5bddf to
0c03df6
Compare
Summary
Closes #9224.
Adds the New Jersey Health Plan Savings (NJHPS) state marketplace premium subsidy — a flat per-member-per-month (PMPM) dollar top-up that stacks on top of the federal Advance Premium Tax Credit (APTC) for Get Covered NJ enrollees from 138% through 600% FPL. NJHPS is administered by Get Covered New Jersey under the NJ Department of Banking and Insurance (DOBI), with subsidies paid from the Health Insurance Affordability Fund (held in the Department of the Treasury). It was established by P.L. 2020, c.61 (codified in part at N.J.S.A. 17B:27A-67) and began lowering premiums for coverage starting January 1, 2021.
This PR encodes the enhanced (post-ARP) schedule in force for plan year 2026: a
single_amountbracket overaca_magi_fractionreturning a monthly PMPM amount per covered member, multiplied by covered members × 12 and capped at the post-APTC premium residual. Modeled on the WA Cascade Care Savings and MA ConnectorCare branches, with the key difference that the band amount is the subsidy itself (added atop APTC), not an enrollee contribution.Regulatory Authority
The exact PY2026 schedule required a two-source corroboration chain because no single source both states the per-band dollar values and confirms they remain current for PY2026:
https://www.cms.gov/files/document/1332-ota-methodology-addendum-nj-pass-through.pdf#page=8https://pub.njleg.state.nj.us/publications/budget/governors-budget/2026/dobi_response_2026.pdfTogether the two sources establish both the values and their currency for PY2026; the parameter files carry this chain in their comments. Supporting sources:
#page):https://pub.njleg.gov/bills/2020/AL20/61_.HTMhttps://www.nj.gov/getcoverednj/financialhelp/premiums/Eligibility
A tax unit qualifies (
nj_njhps_eligible) when it is in effect (PY2026), has MAGI within 138%–600% FPL, and has at least one eligible covered member. NJ residency is enforced bydefined_for = StateCode.NJ(no redundant residency test). Members below 138% FPL are routed to NJ FamilyCare/Medicaid and excluded.Design note — the 400–600% band uses non-income internals. NJHPS covers the full 138–600% FPL range, but
is_aca_ptc_eligiblecannot be reused directly for the 400–600% band: in the 2026 baseline the federal APTC 400% cliff reverts, soptc_income_eligibilityat the 400% threshold isfalsefrom 2026-01-01 andis_aca_ptc_eligiblereturnsFalse(withaca_ptc = 0) above 400% FPL. Reusing it would silently drop the single most policy-relevant PY2026 band.Instead,
nj_njhps_member_eligiblereproduces the non-income components of federal APTC eligibility plus an NJHPS-own income gate:pays_aca_premium(Person-level: TIN, lawful presence, no other MEC, age-based premium) carries no income test, so it fires across the whole 138–600% range; the MFS exclusion mirrors federal APTC. This mirrors the NM My Health Insurance (MIH) and WA Cascade Care Group 3 handling of the above-400% band.Benefit Calculation
Flat PMPM by FPL band (per covered member, per month), stored as a
single_amountbracket overaca_magi_fraction(upper-inclusive,x.0001thresholds,0000-01-01: 0base):The annual subsidy is:
where
n_members = add(tax_unit, period, ["nj_njhps_member_eligible"]). NJHPS is added atop APTC and capped at the remaining premium after APTC — it lowers the net premium and cannot exceed it; it is not a cash transfer. A family of 4 at 300% FPL yields a $100 × 4 × 12 = $4,800 base (before the cap), matching the published "$400/month for a family of four at 300% FPL."In the 400–600% band
aca_ptc = 0(the reverted federal cliff), so the residual equalsslcsp_annualand NJHPS =min($50 × n × 12, slcsp_annual)— the sole subsidy in that band, with no clawback or negative.SLCSP proxy.
slcsp(aMONTHTaxUnit variable) is summed to the year viaaddand used as the benchmark/enrolled-premium cap. This slightly overstates the cap where the enrolled plan is cheaper than the second-lowest silver plan — the same approximation WA/MA document. Full-year enrollment is assumed viaMONTHS_IN_YEAR.Requirements Coverage
All 33 requirements from the requirements checklist are in scope and implemented. 67/67 tests pass.
defined_for/economy: falsesingle_amountbracket + corroboration-chain commentfpl_floor1.38 /fpl_limit6.0in_effectbool, 2026-01-01, open-endedwithin_band, member count, eligibility, amount, SLCSP sum, 400–600%aca_ptc=0healthcare_benefit_value.addswiringprograms.yamlentry (nj_njhps,verified_start_year: 2026)make format/ branch fromupstream/mainTest files (run individually):
nj_njhps_member_eligible.yaml— 11 passednj_njhps_eligible.yaml— 10 passednj_njhps.yaml— 29 passedintegration.yaml— 10 passedhousehold/healthcare_benefit_value.yaml— 7 passedNot Modeled
MONTHS_IN_YEAR.Files Added