Skip to content

Decide Maryland Premium Assistance's 400% ceiling on the exact FPL ratio - #10320

Draft
MaxGhenis wants to merge 1 commit into
mainfrom
md-premium-assistance-exact-fpl-ratio
Draft

MaxGhenis wants to merge 1 commit into
mainfrom
md-premium-assistance-exact-fpl-ratio

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Draft. Done: the fix and YAML cases. Pending: full-file impact, Axiom parity line, GPT-6.1 Sol review.

Bug

md_premium_assistance_eligible compared the truncated aca_magi_fraction (np.floor(100 * magi / fpg) / 100) with <= 4.0. Truncation maps every income from 400.00% to 400.99% of the poverty line to 4.00, so all of them passed. MHBE's adopted PY2026 parameters say "No state subsidy above 400% FPL", and the PY2027 parameters say "Eligibility: 400% FPL or below, eligible for APTC, and ineligible for Medicaid". No source I found prescribes truncating the percentage.

Under current law the gate also requires is_aca_ptc_eligible, whose income test ends at 400% from 2026, so incomes above 400% already failed end to end. The Maryland ceiling decides alone when a reform keeps the federal credit above 400%.

Executed on main (645fcd3; the file is unchanged at 740e1eb), single filer in Maryland, 2026, 2025 one-person guideline $15,650:

Income Exact % of FPL aca_magi_fraction Gate alone on main (is_aca_ptc_eligible supplied) Here
$62,600 400.000% 4.00 yes yes
$62,600.47 400.003% 4.00 yes no
$62,755.56 400.994% 4.00 yes no
$62,756.50 401.000% 4.01 no no

Fix

Decide the ceiling on the exact ratio max(aca_magi, 0) / tax_unit_fpg(period.last_year), the pattern of #10305. The target-contribution schedule still interpolates on aca_magi_fraction; only the eligibility edge moves.

Invariants

For every input, with the program in effect and an APTC-eligible member:

  1. Band = design. Eligible if and only if r <= 4, r = max(MAGI, 0) / FPG(prior year).
  2. Only the sliver changes. Relative to main, eligibility can only be lost, and only for r in (4.00, 4.01). Under current law that set is already federally ineligible, so baseline results should not move; the impact run is the check.

No Hypothesis test is added: the gate is one comparison on a ratio, and the YAML cases hit the limit, 0.003 and 0.994 points above it, plus a reform case. The repo's test-design rules keep such cases in YAML.

Tests

  • md_premium_assistance_eligible.yaml: cases that supplied aca_magi_fraction now supply aca_magi against a prior-year tax_unit_fpg of $10,000. New income-derived cases: $62,599 (399.994%) and $62,600 (400%) eligible; $62,600.47 (400.003%) and $62,755.56 (400.994%) ineligible. Case 18 sets gov.aca.ptc_income_eligibility[2].amount: true (federal credit above 400%): at $62,600.47 the household is federally eligible and Maryland-ineligible.
  • md_premium_assistance.yaml: seven cases supplied a fraction that disagreed with their own aca_magi, checked by re-deriving each fraction from its MAGI. With the gate reading MAGI, each would have judged eligibility and the target percentage on different incomes. None crossed 400%, so none changed result here; the inputs now agree, with expected values recomputed by hand:
    • Case 16, "225% FPL", used $35,000 (223.6% of $15,650): now $35,212.50; $1,061.50 → $1,052.77.
    • Case 17, a two-person unit "at 300% FPL", used $46,950 (222% of $21,150): now $63,450 with a self-consistent APTC of $2,680.38; $929.39 → $1,256.31.
    • Case 19, 2027 "250% FPL", used $39,125 (245% of the 2026 guideline $15,960): now $39,900; $66.425 → $18.22.
    • Case 21, "175% FPL", used $27,000 (172.5%): now $27,387.50 with APTC $4,630.625; $1,350 → $1,369.375.
    • Case 9 (2025), Case 10 (2028) and Case 12 (zero MAGI) are outside the program or have no income; their inputs are made consistent and their $0 / $2,500 results are unchanged.
  • Mutation check: main's gate fails exactly the three new above-limit cases (16, 17, 18); the recomputed amount cases pass on main too.
  • Local differential sweep (a script, not committed, per the repo's test-design rules): 256 tax units per year, 60% with income in cents within $2 of an edge and the rest uniform, guidelines $10,000-$80,000 including $20 multiples, comparing the eligibility gate with an exact-rational reading of the source on the float32 values the model receives. 0 mismatches here; on main the same draws give 93 mismatches, all in the truncation sliver.
  • Local run: the Maryland Premium Assistance YAML folder, 102 passed.

Impact

Pending: full-file microsimulation via the US hub impact queue, 2026 and 2027.

Coordination

#10041 (draft) edits md_premium_assistance.yaml and changes aca_magi_fraction's denominator to a new aca_fpg; if it lands, this gate's exact ratio should use the same denominator. Part of the aca_magi_fraction audit (table: #10329) begun with #10305; federal edge in #10312.

axiom: pending

🤖 Generated with Claude Code

MHBE's adopted PY2026 design provides "No state subsidy above 400% FPL"
and the PY2027 design "Eligibility: 400% FPL or below". The gate compared
the truncated aca_magi_fraction with 4.0, so every income from 400.00% to
400.99% passed. The federal PTC gate ends at 400% under current law, so
the error showed only when a reform extends the federal credit; test the
exact ratio of nonnegative ACA MAGI to the prior-year guideline anyway.

Seven amount cases supplied a fraction that disagreed with their own
aca_magi (for example "225% FPL" with $35,000, which is 223.6% of
$15,650). With the gate now reading MAGI, each case would have judged
eligibility and the target percentage on different incomes; their
incomes and expected amounts are recomputed so both agree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

1 participant