Skip to content

Apply Idaho's 2025 eligibility tests and cap to military retired pay - #10715

Open
MaxGhenis wants to merge 1 commit into
mainfrom
fix-id-military-retirement-deduction
Open

MaxGhenis wants to merge 1 commit into
mainfrom
fix-id-military-retirement-deduction

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

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

  • Idaho Code 63-3022A(1) lets an individual deduct "an amount specified by subsection (2) of this section of the following retirement benefits". From 2025, (1)(b) lists "Retirement benefits paid by the United States of America to a retired member of the military services of the United States, or the unremarried widow or widower of such member, who:
    (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."
  • (2) caps the deduction at the maximum Social Security benefit ($48,216 single and $72,324 joint for 2025; nothing for a married taxpayer filing separately, (2)(e)). (3) reduces the cap by the Social Security and Railroad Retirement benefits of the taxpayer and spouse and limits the deduction to the qualifying benefits included in gross income.
  • 2025 House Bill 40, section 2, moved military benefits out of the age test of (1)(a) (age 65, or 62 and disabled) and added the disability, age-62 and employment tests. House Bill 479, section 1, restated them as (1)(b)(i)-(iii). Both apply retroactively to January 1, 2025 (H0040 section 5; H0479 section 9). H0040's statement of purpose describes the change as expanding the exemption to "certain disabled veterans under age 62, all veterans aged 62-64, and undisabled veterans under age 62 who are also employed".
  • The 2025 Form 39R instructions put military benefits on line 8 with the other qualifying benefits: line 8a is the cap, lines 8b and 8c subtract Railroad Retirement and Social Security benefits, line 8e takes qualifying benefits, and line 8f is the smaller of 8d and 8e. For retired service members, line 8e requires "Classified as disabled (any age)", "Age 62 or older", or "Under age 62, employed during the year, and received sufficient income from such employment to be required to file a federal return."

Change

  • Military retirement benefits (id_eligible_military_retirement_income, which keeps its unremarried-survivor rule and moves to deductions/retirement_benefits/) count in id_retirement_benefits_deduction_relevant_income when the new id_retirement_benefits_deduction_military_eligible_person is true, so they share the cap and the Social Security offset in id_retirement_benefits_deduction.
  • id_retirement_benefits_deduction_military_eligible_person: head or spouse, and age at least military.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 of tax_unit_is_required_to_file for 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.yaml now 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.
  • Removed id_military_retirement_deduction, its subtractions.military_retirement.applies parameter and the 2025 entry of subtractions.yaml that listed it.

Readings to check

Neither the statute nor the Form 39R instructions settle two points, so this PR takes a reading on each:

  1. Self-employment. (1)(b)(iii) says "employed" and "income from such employment" without defining employment. The PR counts business and farm profits as well as wages, matching the bill's stated purpose (working veterans). Dropping two entries from income_sources.yaml gives the wages-only reading.
  2. Joint returns. The employed person's own employment income must meet the threshold of the return they file, so on a joint return the PR compares it with the joint threshold ($32,200 in 2026). Section 6012(a)(1)(A)(iv) tests a married couple's combined income against that threshold.

Invariants

For every input:

  • Before 2025, nothing changes: military retired pay counts exactly when the recipient is 65, or 62 and disabled.
  • From 2025, military retired pay counts exactly when the recipient is a head or spouse who is disabled, is 62 or older, or meets the employment test.
  • On a return whose only gross income is one person's wages or business profit, the employment test holds exactly when tax_unit_is_required_to_file does 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.
  • More military retired pay never lowers the deduction and never raises it by more than the added pay; for a recipient who fails the tests it leaves the deduction unchanged.

tests/core/test_id_military_retirement_deduction_invariants.py checks 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, replacing id_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 on id_subtractions.
  • id_eligible_military_retirement_income.yaml (5 cases): the survivor cases from the removed id_military_retirement_deduction.yaml, now on the income variable and the deduction.

All 481 cases under tests/policy/baseline/gov/states/id pass. Locally, tests/code_health passes except two test_selective_test_batches.py coverage cases, which fail because the local environment has no coverage module. test_state_tax_head_spouse_swap_invariance.py passes.

Before and after

Idaho income tax for 2025 (negative amounts are grocery credit refunds larger than the tax):

Household Before After
Single, 45, $30,000 of military retired pay, no job −$145 $355
Single, 66, $80,000 of military retired pay −$145 −$76

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

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>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

David, Idaho's statute and the Form 39R instructions leave two points open here, and I'd like your call on both:

  1. Whether business and farm profit count as "income from such employment" under 63-3022A(1)(b)(iii). The PR counts them along with wages.
  2. Whether to compare the employed spouse's own income with the joint filing threshold on a joint return ($32,200 in 2026), as the PR does.

If you can look by Tuesday afternoon, we can merge it before the Veterans Day post (PolicyEngine/policyengine-app-v2#1523).

@codecov

codecov Bot commented Nov 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (aae7f98) to head (f994b5b).
⚠️ Report is 93 commits behind head on main.

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     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@DTrim99

DTrim99 commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

PR Review: Apply Idaho's 2025 eligibility tests and cap to military retired pay

Summary

The 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 id_military_retirement_deduction with that structure:

  • a per-person test in which each spouse, or the survivor, is tested on their own facts;
  • the survivor rule kept in id_eligible_military_retirement_income;
  • one cap, shared on Form 39R line 8e, less Social Security.

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:

  1. Two employment-income list entries are unpinned.
  2. The PR takes three interpretive readings without recording them as CLAUDE.md requires. Two of them are the ones the author asks about; the third, which 6012 subsection governs 2025, isn't flagged at all.
  3. Two reference titles cite several pages but give only one.
  4. The axiom line has no status word.

On the two readings the author asks about, I recommend keeping both (reasons under Should 2).

Critical (must fix)

None.

Should address

  1. Two income sources in the employment test are unpinned (parameters/.../retirement_benefits/military/employment/income_sources.yaml:14-15).

    • Deleting sstb_self_employment_income or farm_operations_income fails no test. The YAML exercises only employment_income and self_employment_income, and the Python invariant test's adult() sets only those two.
    • Under the mutation rule, each list entry needs a case.
    • Fix: add two cases to id_retirement_benefits_deduction_military_employment_eligible.yaml, for example 2026, single, age 45, with farm_operations_income: 20_000 → true, and the same with sstb_self_employment_income: 20_000 → true (20,000 ≥ 16,100).
  2. The interpretive readings aren't recorded per CONTRIBUTING.md#source-conflicts. CLAUDE.md: "Where the text and the canons ... don't settle a reading, follow the administering agency's reading. Record every such choice in the shared source-conflict register". The PR body says the statute and Form 39R line 8e (which repeats the statute's words) leave (a) and (b) below open, but the PR adds no source_conflicts/candidates.yaml entry. A third reading, (c), is taken silently. My recommendations follow; whichever readings are chosen, record them as candidates. Sources: 63-3022A(1)(b)(iii), Form 39R line 8e, and 26 USC 6012(a)(1) and (f).

    • (a) Business and farm profit as "income from such employment": keep it.
      • "Employed" in ordinary usage includes the self-employed.
      • H0040's statement of purpose speaks of veterans "who are also employed".
      • The measure the statute borrows, the 6012 gross income test, counts business and farm income.
      • A wages-only reading would deny the deduction to a veteran with the same work income from a business.
      • The Tax Commission hasn't published a contrary reading.
    • (b) Own employment income against the joint threshold on a joint return: keep it.
      • 6012 gives a married individual no threshold of their own. Under (a)(1)(A) the requirement turns on the (iv) joint exception, and for 2018-2025 on (f)(2).
      • "Sufficient income from such employment" requires the employment income itself to be enough, so the joint threshold is the closest fit.
      • A single threshold for each spouse has no footing in 6012.
      • "Any employment income when the couple must file" reads "sufficient ... from such employment" out of the statute.
      • Probe at the head: a 2026 joint return with the retiree's $20,000 of wages and the spouse's $40,000 fails the test under this reading, even though the couple must file. Record that this is a choice.
    • (c) Not flagged: which 6012 subsection governs 2025.
      • The statute requires a return "under section 6012(a)(1)". For 2018-2025, 6012(f) says "subsection (a)(1) shall not apply" and requires a return from an individual with gross income over the standard deduction. The Form 39R wording drops the section number: "required to file a federal return".
      • The PR applies (f) for 2025: more than the standard deduction, with blindness counted. Applying (a)(1)'s own thresholds instead gives at least the basic standard deduction plus the age additions, with no blindness addition.
      • The choice changes 2025 results. The PR's own cases pin a blind single filer with $17,750 of wages (fails under (f); meets the (a)(1) threshold of $15,750) and wages exactly at $15,750 (fails under (f); meets (a)(1)). A probe of a blind single filer with $16,000 of wages also fails.
      • I think (f) is the better reading: it is the federal requirement actually in force, and a literal "(a)(1)" reading would admit nobody under (iii) in 2025. Still, say so in the variable's documentation and record it.
      • The PR also correctly leaves out the section 6017 self-employment filing rule ($400 of net earnings). The statute names 6012(a)(1), and the form's broader wording could suggest otherwise, so that deserves one line in the documentation too.
  3. Reference titles cite several pages but give one (military/employment/in_effect.yaml:13-16).

    • "2025 Idaho House Bill 40, sections 2 and 5" links H0040.pdf#page=5, but section 5 (the retroactivity clause) is on file page 8.
    • "2025 Idaho House Bill 479, sections 1 and 9" links H0479.pdf#page=2, but section 9 is on file page 17.
    • CLAUDE.md: "Several cited pages: the href opens the first, and the title ends with #page ...". Fix: titles ending "... #page 5,8" and "... #page 2,17", quoted.
  4. Axiom line has no status word.

    • axiom: TheAxiomFoundation/rulespec-us#2077 isn't one of the valid forms. See the Axiom section.

Suggestions

  1. Railroad Retirement and SSDI offsets (pre-existing, now applied to military pay).
    • id_retirement_benefits_deduction.py:26 subtracts only social_security_retirement.
    • 63-3022A(3) reduces the cap by "federal railroad retirement act and federal social security act retirement benefits received by either the taxpayer or the taxpayer's spouse". Form 39R line 8b subtracts Railroad Retirement benefits (RRB-1099 box 5, RRB-1099-R box 7 less box 8), and line 8c subtracts "Box 5 of your Form SSA-1099s", which includes disability benefits.
    • Probes at the head (2025, single):
      • age 66, $40,000 of military pay and $20,000 of railroad_benefits → deduction $40,000. The statute and the form give 48,216 − 20,000 = $28,216.
      • disabled, age 50, $40,000 of military pay and $20,000 of social_security_disability → $40,000. The form gives $28,216; the statute's "retirement benefits" arguably excludes SSDI, so that one is a source-conflict candidate.
    • The diff doesn't touch this code, and before the PR, 2025 military pay was uncapped, so the PR still moves results toward the law. Worth a follow-up issue.
    • The new YAML header and the Python docstring say Railroad Retirement benefits reduce the cap, which describes the law, not the model.
  2. Test file name. id_military_retirement_benefits_deduction.yaml isn't a variable name. Its cases test id_retirement_benefits_deduction and id_retirement_benefits_deduction_relevant_income. Consider moving them into those variable-named files; Set Idaho's 2026 retirement benefits deduction cap from SSA's maximum benefit #10717 appends to id_retirement_benefits_deduction.yaml without conflict.
  3. The filing-threshold logic is a copy of tax_unit_is_required_to_file's.
    • Any later fix to the federal thresholds would have to be repeated here. One example is a change to the 2026+ rule if section 6012(f) is found to continue past 2025.
    • The differential property in the Python test catches drift only for returns whose sole income is the retiree's wages or profit.
    • Consider a shared helper that returns the gross-income threshold for a tax unit.
  4. Python test cost (CLAUDE.md "Test design and CI cost").
    • The PR body reports no timing. CI run 42658779959 (Linux, Rest Python shard 3, group core-2) shows test_grid at 2.51 s and test_drawn_units at 1.22 s. That's cheap, and the test carries independent reference thresholds and caps, so the coverage is justified.
    • Add those figures to the PR body, and say that CI gives no peak-memory figure.
  5. Optional YAML pins. The separate-return threshold and the employed gate (needed only in 2026, where a separate filer's threshold is $0) are pinned only by the Python grid. Two YAML cases would make them visible in the ID suite, for example a 2025 SEPARATE filer with $5,000 of wages → true, and a 2026 SEPARATE filer with no wages → false.

Verified correct

  • Law. The text in the PR matches the enrolled 63-3022A on the legislature site (history: am. 2025, ch. 13 and ch. 302). Checked points:
    • (1)(b)(i)-(iii);
    • the (1)(a) age test (65, or 62 and disabled);
    • (2)(a)-(c) and (e): no deduction on a separate return;
    • the (3) single cap and gross-income limit.
    • H0040 section 2 (military text on file page 5) and section 5 (retroactive to Jan. 1, 2025, page 8); H0479 section 1 (page 2) and section 9 (retroactive, page 17).
    • 2025 Form 39R instructions, page 45: lines 8a ($48,216 / $72,324), 8b, 8c and 8e ("Classified as disabled (any age)", "Age 62 or older", "Under age 62, employed during the year, and received sufficient income from such employment to be required to file a federal return"). 2024 instructions, page 31: age 65, or 62 and disabled.
  • The Veterans Day post's summary is accurate, with four nuances:
    • the tests also apply to an unremarried survivor;
    • "worked and had to file" means income from the employment sufficient to require a federal return under 6012, not merely filing, and not Idaho's filing threshold;
    • the cap is also reduced by Railroad Retirement benefits and is shared with civil service, firefighter and police benefits;
    • a married taxpayer filing separately gets nothing.
  • Eligibility.
    • Military 62 / disabled 0 from 2025, and 65 / 62 before.
    • A head or spouse only.
    • Each person is tested on their own facts; the survivor is tested as the recipient, which matches H0040's "a person receiving such retirement benefits".
  • Cap sharing. Line 8e sums the (1)(a) benefits (with the (1)(a) age test) and the military benefits (with the (1)(b) test), and line 8f takes min(cap − Social Security, total). One cap per return, no ordering needed.
  • Pinning. Each of these fails a test if deleted:
    • in_effect, both age parameters and the disabled where;
    • head_or_spouse (the dependent aged 70);
    • the general/military split (the 40-year-old with a public pension);
    • the per-source floor (the business loss);
    • the 2025 > and 2026 >=;
    • the 2025 blindness addition and the 2026 age addition;
    • the removal of military pay from income_sources.yaml (the 2024 66-year-old would get 45,864 instead of 30,000).
    • The separate-return branch and the employed gate are pinned by the Python grid.
  • Hand checks:
    1. 2025 single, $15,750 of wages: 6012(f) needs more than $15,750 → false. $15,751 → true.
    2. 2025 blind single: 15,750 + 2,000 = 17,750; $17,750 is not more → false.
    3. 2026 single: basic $16,100 (Rev. Proc. 2025-32); $16,099 → false, $16,100 → true.
    4. 2026 joint: $32,200; $32,199 → false, $32,200 → true for the earner only.
    5. 2026 joint, spouse 66: 32,200 + 1,650 = 33,850; $33,849 → false, $33,850 → true.
    6. 2025 joint, spouse 66: 31,500 + 1,600 = 33,100; $33,100 is not more → false.
    7. 2025, age 66, $40,000 military + $20,000 public pension: min(48,216, 60,000) = $48,216.
    8. 2025, age 66, $40,000 military, $20,000 Social Security: 48,216 − 20,000 = $28,216.
    9. 2025 retired couple: 72,324 − 30,000 = 42,324 < 45,000 → $42,324.
    10. 2026, $20,000 wages and a $10,000 business loss: floor → 20,000 ≥ 16,100 → true.
    11. 2025 working 40-year-old: 50,000 > 15,750 → $30,000 deducted, and id_subtractions $30,000.
    12. The PR body's before/after table, by probe: single 45 with $30,000 → id_income_tax $355.27 (14,250 taxable; (14,250 − 4,811) × 5.3% = $500, less the $145 grocery credit). Single 66 with $80,000 → $48,216 deducted and −$75.94. That row's taxable income of 6,114 includes the $5,700 phased senior deduction and a $2,220 Medicare Part B subtraction.
  • Probes.
    • An unremarried widow aged 50 with $40,000 of wages and $25,000 of SBP → eligible, $25,000 deducted.
    • A five-person, four-household vectorized run (ID and CA, single and separate returns): the CA household gets 0; the separate filer meets the employment test but gets $0 (cap 0); the spouse with no income gets false; a disabled 30-year-old gets $10,000.
  • Entities and vectorization. Person-level formulas read tax-unit values through person.tax_unit(...). They use scalar parameter branches only, with where/&. New variables are bool and are not used as parameter keys, so the NH Add New Hampshire state supplementation for 2026 #10156 pattern doesn't apply.
  • Callers. No reader of id_military_retirement_deduction, subtractions.military_retirement.applies, the old paths, the retirement income_sources or id_retirement_benefits_deduction_relevant_income remains outside the ID retirement folder on the merged tree. Neither the partner tests nor programs.yaml reference them.
  • Removed tests. The coverage from the two removed files is retained: the survivor cases moved to id_eligible_military_retirement_income.yaml, and the dependent case to the eligible-person file.
  • Guards on the merged tree.
    • test_military_retirement_readers.py passes. The ID reader of military_retirement_pay sits under tax/, and its survivor input is read separately.
    • test_source_conflicts.py passes except test_unscannable_files_fail_closed. That is a self-test on inline strings that depends on the local Python tokenizer, and it passed in CI. test_conflict_sounding_comments_do_not_grow passes.
    • No programs.yaml entry references the removed parameter.
  • Sibling Set Idaho's 2026 retirement benefits deduction cap from SSA's maximum benefit #10717. It changes different files. A three-way merge of main, Apply Idaho's 2025 eligibility tests and cap to military retired pay #10715 and Set Idaho's 2026 retirement benefits deduction cap from SSA's maximum benefit #10717 has no conflicts. Apply Idaho's 2025 eligibility tests and cap to military retired pay #10715 pins no 2026 deduction amount (its YAML 2026 cases test only eligibility, and the Python test checks the cap only for 2025), so the two compose in either order. Until Set Idaho's 2026 retirement benefits deduction cap from SSA's maximum benefit #10717 merges, 2026 military pay is capped at the uprated $49,309 rather than $49,824.
  • Changelog. Top-level fix-id-military-retirement-deduction.fixed.md and .removed.md; the types fit.

Axiom line assessment

axiom: TheAxiomFoundation/rulespec-us#2077 has no status word, so it isn't a valid form.

rulespec-us#2077 is OPEN, labelled pe-parity and names head f994b5b718. It quotes (1)(b) verbatim, gives the module gap (us-id/statutes/63-3022A), lists required outputs and test cases, and asks that the two readings be recorded.

For queued it still needs:

  • A recorded encoder blocker. "Use queued only when the signed encoder is blocked; record the blocker in the issue." The issue describes an encoding gap, not a blocker.
  • A correction or note on the offset. The issue says the cap is offset by "Social Security and Railroad Retirement" benefits, while PE-US subtracts only social_security_retirement (Suggestion 1). The oracle comparison in ask 5 would diverge on Railroad Retirement or SSDI cases.

Fix: change the line to axiom: TheAxiomFoundation/rulespec-us#2077 queued once the blocker and the offset note are in the issue. Alternatively, run the approved encoder and use <rulespec PR> encoded.

CI status

At head f994b5b718: 38 pass and 3 skipping. The skipped checks are from an earlier superseded run. Nothing pending or failed. The passing checks include Quick Feedback, all Baseline and Contrib shards, the nine Rest Python shards and Household API Partners.

Branch status

1 ahead, 40 behind main. git merge-tree --write-tree with main succeeds with no conflicts. Since the merge base, main has changed only programs.yaml (no ID entries involved) and a KNOWN_UNMARKED line for an MD file in test_source_conflicts.py. Neither touches this PR's files. It composes cleanly with #10717. No other open Idaho PR touches these files (#10278 and #10050 change other ID subtractions).

Verdict: REQUEST_CHANGES

@DTrim99 DTrim99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

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.

2 participants