Repository navigation
Conversation
Idaho Code 63-3022A(1)(b), as amended by 2025 House Bills 40 and 479 (retroactive to January 1, 2025), counts military retirement benefits toward the retirement benefits deduction for a recipient who is disabled, is 62 or older by the end of the year, or worked enough to have to file a federal return. The benefits share the deduction's cap, which the taxpayer's and spouse's Social Security and Railroad Retirement benefits reduce (63-3022A(2) and (3); Form 39R line 8). From 2025 the model subtracted all of a head's or spouse's military retired pay through a separate id_military_retirement_deduction, at any age and with no cap. Military pay now runs through id_retirement_benefits_deduction with its own eligibility test, and the separate deduction and its applies parameter are removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
David, Idaho's statute and the Form 39R instructions leave two points open here, and I'd like your call on both:
If you can look by Tuesday afternoon, we can merge it before the Veterans Day post (PolicyEngine/policyengine-app-v2#1523). |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10715 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 1 4 +3
Lines 37 78 +41
Branches 0 2 +2
=========================================
+ Hits 37 78 +41
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:
|
PR Review: Apply Idaho's 2025 eligibility tests and cap to military retired paySummaryThe PR gets the 2025 law right. Idaho Code 63-3022A(1)(b), as 2025 H.B. 40 and H.B. 479 restated it with effect from January 1, 2025, admits military retirement benefits for a retired member, or the member's unremarried widow or widower, "who: (i) Is classified as disabled...; (ii) Has attained the age of sixty-two (62) years by the end of the tax year; or (iii) Was employed during the tax year and received sufficient income from such employment to be required to file a federal return under section 6012(a)(1)". Subsections (2) and (3) put those benefits under the same single cap as the (1)(a) civil service, firefighter and police benefits. The PR replaces main's uncapped, untested-for-age
Pre-2025 results are unchanged. The removed variable and parameter have no remaining readers on the tree merged with main. The PR composes cleanly with sibling #10717. Four items are left, none of them a wrong result against binding law:
On the two readings the author asks about, I recommend keeping both (reasons under Should 2). Critical (must fix)None. Should address
Suggestions
Verified correct
Axiom line assessment
rulespec-us#2077 is OPEN, labelled For
Fix: change the line to CI statusAt head Branch status1 ahead, 40 behind Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting changes per the review above: 0 critical, 4 should (two unpinned income sources; three readings to record, incl. 6012(f) vs the statute's 6012(a)(1); multi-page reference titles; axiom line needs a status word and #2077 a blocker), 5 suggestions. The 2025 rules match the bill text and compose cleanly with #10717.
What was wrong
From 2025, PolicyEngine-US subtracted all of a head's or spouse's military retired pay in Idaho through a separate
id_military_retirement_deduction, at any age, with no work or disability test and no cap. Idaho's 2025 law counts military retirement benefits only for recipients who meet one of three tests, and only within the retirement benefits deduction's cap, which Social Security benefits reduce.The law
(i) Is classified as disabled, as defined in subsection (4) of this section;
(ii) Has attained the age of sixty-two (62) years by the end of the tax year; or
(iii) Was employed during the tax year and received sufficient income from such employment to be required to file a federal return under section 6012(a)(1) of the Internal Revenue Code."
Change
id_eligible_military_retirement_income, which keeps its unremarried-survivor rule and moves todeductions/retirement_benefits/) count inid_retirement_benefits_deduction_relevant_incomewhen the newid_retirement_benefits_deduction_military_eligible_personis true, so they share the cap and the Social Security offset inid_retirement_benefits_deduction.id_retirement_benefits_deduction_military_eligible_person: head or spouse, and age at leastmilitary.age_eligibility.main(65 before 2025, 62 from 2025) or, if disabled,military.age_eligibility.disabled(62 before 2025, 0 from 2025), or the employment test.id_retirement_benefits_deduction_military_employment_eligible: from 2025 (military.employment.in_effect), the person's income from employment (military.employment.income_sources: wages, business profit and farm profit, each floored at zero) by itself meets the gross income test of the federal filing requirement for the person's return, using the thresholds oftax_unit_is_required_to_filefor a return nobody can claim: section 6012(f) for 2025 (more than the standard deduction) and section 6012(a)(1)(A) and (B) from 2026 (at least the basic standard deduction plus the additions for age).income_sources.yamlnow lists only the (1)(a) benefits (public_pension_income) in every year. Pre-2025 results don't change: the military age parameters repeat the (1)(a) test for 2021-2024.id_military_retirement_deduction, itssubtractions.military_retirement.appliesparameter and the 2025 entry ofsubtractions.yamlthat listed it.Readings to check
Neither the statute nor the Form 39R instructions settle two points, so this PR takes a reading on each:
income_sources.yamlgives the wages-only reading.Invariants
For every input:
tax_unit_is_required_to_filedoes and that income is positive.id_retirement_benefits_deduction= min(counted benefits, max(cap − head and spouse Social Security, 0)), so it lies between 0 and the counted benefits; for 2025 the cap is $48,216, $72,324 joint and $0 separate.tests/core/test_id_military_retirement_deduction_invariants.pychecks all five, with the thresholds and caps restated from Chart A of the 2025 Form 1040 instructions, Rev. Proc. 2025-32 and Form 39R. A grid covers every filing status, ages on both sides of 62 and 65, disability, blindness, and wages or profit a dollar under, at and over each year's threshold for 2024-2026. A Hypothesis test draws further units. Three mutations each fail it: dropping the eligibility tests, a strict comparison in 2026, and dropping the age addition.Tests
id_retirement_benefits_deduction_military_employment_eligible.yaml(15 cases): the 2025 and 2026 thresholds for single and joint returns, a dollar under, at and over; age and blindness; self-employment profit; a business loss against wages; pension and interest income; no test before 2025.id_retirement_benefits_deduction_military_eligible_person.yaml(11 cases): the age, disability and employment tests in 2024 and 2025, and a dependent.id_military_retirement_benefits_deduction.yaml(14 cases, replacingid_military_retirement_hb40_integration.yaml): eligibility, the shared $48,216 cap, the Social Security offset, a working couple, the retired couple (72,324 − 30,000 = 42,324), a separate return, unremarried survivors under and at 62, and the effect onid_subtractions.id_eligible_military_retirement_income.yaml(5 cases): the survivor cases from the removedid_military_retirement_deduction.yaml, now on the income variable and the deduction.All 481 cases under
tests/policy/baseline/gov/states/idpass. Locally,tests/code_healthpasses except twotest_selective_test_batches.pycoverage cases, which fail because the local environment has nocoveragemodule.test_state_tax_head_spouse_swap_invariance.pypasses.Before and after
Idaho income tax for 2025 (negative amounts are grocery credit refunds larger than the tax):
The first now pays tax on all of the pay: $30,000 less the $15,750 standard deduction leaves $14,250, taxed at 5.3% above $4,811 ($500), less the $145 grocery credit. The second deducts $48,216, the 2025 cap.
Not changed
This PR leaves the 2026 cap at PolicyEngine-US's uprated estimate ($49,309 single). #10717 sets it from SSA's 2026 maximum benefit at full retirement age ($49,824 single, $74,736 joint), as section 63-3022A(2) directs; the two PRs change different files.
axiom: TheAxiomFoundation/rulespec-us#2077
🤖 Generated with Claude Code