Skip to content

Set Idaho's 2026 and 2027 retirement benefits deduction cap from SSA's maximum benefit - #10717

Open
MaxGhenis wants to merge 4 commits into
mainfrom
fix-id-retirement-cap-2026
Open

MaxGhenis wants to merge 4 commits into
mainfrom
fix-id-retirement-cap-2026

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

What was wrong

PolicyEngine-US had no Idaho retirement benefits deduction cap after 2025, so IRS uprating carried the 2025 amounts forward: $49,309 for unmarried filers and $73,963 on a joint return in 2026, and $50,778 and $76,167 in 2027. Idaho Code § 63-3022A(2) ties the cap to the Social Security Administration's maximum benefit, and SSA has published that benefit for both years. Its maximum rises only 0.87% from 2026 to 2027 ($4,152 to $4,188 a month), while IRS uprating rises 2.98%, so uprating can't track it.

The law

Idaho Code § 63-3022A(2) limits the deduction to "an amount not in excess of maximum retirement benefits under the social security act" and has the State Tax Commission "publish the appropriate deduction amounts ... annually." It defines those benefits by filing status:

  • (a), a joint return: "the maximum social security benefits payable for the tax year to a person attaining full retirement age in the tax year who has earned the maximum earnings creditable under social security", where the spouse "has no social security benefits except those payable on his record of earnings."
  • (b), an unmarried taxpayer: the same benefit for the worker alone.
  • (c), an unremarried widow or widower: the maximum benefit for a survivor reaching full retirement age on the record of a deceased spouse who had the maximum earnings.
  • (e): taxpayers outside (a) through (d) deduct nothing, so a married person filing separately gets $0.

The amounts

SSA monthly maximum at full retirement age Single, head of household, surviving spouse (12 ×) Joint (1.5 × single)
2025 (Commission's published amounts) $4,018 $48,216 $72,324
2026 $4,152 $49,824 $74,736
2027 $4,188 $50,256 $75,384
  • SSA's 2026 COLA fact sheet (Wayback capture, 2026-10-24) lists "Maximum Social Security Benefit: Worker Retiring at Full Retirement Age" as $4,018 a month for 2025 and $4,152 for 2026. SSA's 2027 COLA fact sheet (Wayback capture, 2026-10-31) lists $4,152 for 2026 and $4,188 for 2027. SSA's website answers scripted requests with a 403, so the figures come from the Wayback captures.
  • Each of the Tax Commission's 2021-2025 single amounts equals 12 times SSA's figure for that year (2025: 12 × $4,018 = $48,216, line 8a of the 2025 Form 39R instructions). Each joint amount equals 1.5 times the single amount, and each surviving spouse amount equals the single amount.

Change

  • cap.yaml: 2026 and 2027 values for every filing status from the table above. Separate returns stay at $0. 2028 and later years extrapolate with IRS uprating from the 2027 values.
  • References: SSA's 2026 and 2027 fact sheets under their page titles, and 42 U.S.C. §§ 402 and 415(g) for the joint factor.
  • Comments in each block mark the 2026 and 2027 values as derived, pending the Commission's own, and explain the joint factor.

Readings taken

  • Derived amounts until the Commission publishes. (2) has the Commission publish the amounts each year, and it hasn't published 2026 or 2027 yet: the 2025 instructions (posted 2026-03-02) are its latest, and IDAPA 35.01.01 Rule 130 states no amounts. These values follow the Commission's own 2021-2025 method. The Commission's figures replace them once it publishes.
  • The joint factor. (2)(a)'s couple draws the worker's maximum benefit plus the spouse's benefit on the worker's record, which 42 U.S.C. 402(b)(2) and (c)(2) set at one-half of the worker's primary insurance amount: 1.5 times in all. 42 U.S.C. 415(g) rounds each monthly benefit down to a whole dollar, so in a year with an odd monthly maximum, 12 times the two rounded benefits falls $6 short of the Commission's 1.5 times the annual amount (2022: $60,204 against $60,210). The 2026 and 2027 maximums are even, so both computations give $74,736 and $75,384.
  • Surviving spouses. Under 42 U.S.C. 402(e)(2)(A) and (f)(2)(A), a widow's or widower's benefit equals the deceased worker's primary insurance amount before any reduction for claiming early, and the Commission's (2)(c) amount has equaled its (2)(b) amount in every year it published, so this PR uses the single amount.

Invariants

For every input:

  • Before 2026, nothing changes.
  • In 2026 and 2027, the single, head of household and surviving spouse caps equal 12 times SSA's monthly maximum for the year, the joint cap equals 1.5 times that, and the separate cap equals $0.
  • id_retirement_benefits_deduction keeps its formula: min(qualifying benefits, max(cap − head and spouse Social Security retirement benefits, 0)). So against main, a 2026 deduction never falls and rises by at most the cap's increase ($515.29 single, $772.93 joint), and a deduction in 2027 or later never rises and falls by at most the cap's decrease (2027: $522.24 single, $783.36 joint; 2028: $534.05 and $801.08).

The change edits nothing but parameter values, so the example cases below test it.

Tests

id_retirement_benefits_deduction.yaml adds eleven cases:

  • 2026: the cap for single, joint, head of household and surviving spouse returns ($49,824 and $74,736); the single cap less $20,000 of Social Security ($29,824).
  • 2027: the cap for single, joint, head of household and surviving spouse returns ($50,256 and $75,384); a separate return ($0).
  • 2025: the single cap, unchanged at $48,216.

Removing any one of the eight new 2026 and 2027 values makes it revert to the uprated amount and fails that status's case for that year: one case each, and two for the 2026 single value, which the Social Security offset case also uses. On main, the nine 2026 and 2027 cap cases fail (the 2027 separate case passes at $0). With the change, all 19 cases in the file and all 462 cases under tests/policy/baseline/gov/states/id pass, and so do 270 code-health and parameter-file tests, among them test_military_retirement_readers.py, test_source_conflicts.py and test_parameter_files.py.

Before and after

Idaho income tax, single filer aged 67 with $90,000 of taxable public pension income:

Year Deduction on main Deduction with this PR Idaho tax on main Idaho tax with this PR
2025 $48,216 $48,216 $485.86 $485.86
2026 $49,309 $49,824 $389.58 $362.27
2027 $50,778 $50,256 $270.58 $298.26

The 2026 tax falls by $27.31, or 5.3% of the $515.29 rise in the cap, and the 2027 tax rises by $27.68, or 5.3% of the $522.24 drop. A joint couple aged 67 with $120,000 of public pension income deducts $74,736 instead of $73,963 in 2026 and $75,384 instead of $76,167 in 2027, and owes the same Idaho tax (−$300) either way. From 2028 the cap uprates from the 2027 values, so it sits 1.03% below main's: $51,393 against $51,927 single, and $77,089 against $77,890 joint, in 2028.

Not in this PR

id_retirement_benefits_deduction subtracts social_security_retirement from the cap but not the federal Railroad Retirement Act benefits that § 63-3022A(3) and Form 39R line 8b also subtract. That gap predates this PR and needs its own fix.

Related

#10715, which applies Idaho's 2025 tests to military retired pay, left the 2026 cap at the uprated estimate; this PR sets it. The two PRs change different files and merge cleanly.

axiom: TheAxiomFoundation/rulespec-us#2079 queued

🤖 Generated with Claude Code

MaxGhenis and others added 2 commits November 8, 2026 04:51
… benefit

Idaho Code 63-3022A(2) caps the deduction at the maximum Social Security
benefit for a worker reaching full retirement age in the tax year. SSA's
2026 fact sheet gives $4,152 a month, so the cap is $49,824 for unmarried
filers and unremarried survivors and $74,736 (1.5 times, adding the
spouse's benefit on the worker's record) on a joint return. PolicyEngine-US
had extrapolated $49,309 and $73,963 from 2025 with IRS uprating.

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

Copy link
Copy Markdown
Contributor Author

David, until the Idaho Tax Commission publishes its 2026 cap for the retirement benefits deduction, the PR sets it the way the Commission set 2025's. It takes 12 times SSA's maximum monthly benefit at full retirement age, $49,824, and 1.5 times as much, $74,736, on a joint return. Have you seen the Commission's figure, or another method? If you can look by Tuesday afternoon, we can merge it before the Veterans Day post (PolicyEngine/policyengine-app-v2#1523).

@DTrim99

DTrim99 commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

PR Review: Set Idaho's 2026 retirement benefits deduction cap from SSA's maximum benefit

Summary

The 2026 values are right. Idaho Code § 63-3022A(2) ties the cap to the maximum Social Security benefit for a worker reaching full retirement age (FRA). SSA's 2026 figure is $4,152 a month, and the Tax Commission's method for 2021-2025 (12 times the monthly amount, and 1.5 times that on a joint return) gives $49,824 and $74,736. The filing-status mapping matches (2)(a)-(c) and (e), every new value has a test, and the static guards pass on the tree merged with main.

Two things are left. First, SSA's 2027 fact sheet is already out. By the PR's own numbers, setting 2026 moves the extrapolated 2027 cap further from what the same method gives. Second, the axiom line has no status word.

Critical (must fix)

None.

Should address

  1. The 2027 cap is now further off, and SSA's 2027 figure is already published (cap.yaml, SINGLE / JOINT / SURVIVING_SPOUSE / HEAD_OF_HOUSEHOLD).
    • SSA's 2027 COLA fact sheet (Wayback capture, 2026-10-31) lists "Maximum Social Security Benefit: Worker Retiring at Full Retirement Age $4,152/mo. $4,188/mo." for 2026 and 2027. SSA's maximum-taxable benefit examples table gives the same $4,188 for retirement at 67 in January 2027, which is FRA for people born in 1960.
    • The method the PR uses for 2026 gives 12 × $4,188 = $50,256 for single filers, heads of household and surviving spouses, and 1.5 × $50,256 = $75,384 on a joint return.
    • The PR leaves 2027 to IRS uprating from the new 2026 values. Its body puts the result at $51,309 single and $76,963 joint, which I confirmed: the uprating ratio is 50,778 / 49,308.715 = 1.0298, and 49,824 × 1.0298 = 51,309.
    • Those figures overshoot the method's amounts by $1,053 and $1,579. Main's extrapolation ($50,778 and $76,167) overshoots by only $522 and $783, so this change doubles the 2027 error.
    • Uprating can't track this amount. SSA's figure rises only 0.87% from 2026 to 2027 (4,188 / 4,152), while IRS uprating gives 2.98% and SSA's COLA is 3.6%.
    • Fix: add 2027-01-01: 50_256 to SINGLE, SURVIVING_SPOUSE and HEAD_OF_HOUSEHOLD, add 2027-01-01: 75_384 to JOINT, and add the 2027 fact sheet as a reference. Then add two 2027 cases to id_retirement_benefits_deduction.yaml: single with $60,000 → 50,256, and joint with $80,000 → 75,384.
    • The Commission's own figures should replace both years once it publishes them.
  2. Axiom line has no status word. The PR body says axiom: TheAxiomFoundation/rulespec-us#2079, which is not one of the valid forms (encoded-correct, encoded, queued or n/a).
    • Issue New York TANF resource limit #2079 is OPEN, labelled pe-parity and pinned to head fdb199816e. It cites the statute, the SSA sheet and the 2025 Form 39R, and gives required outputs and test cases.
    • For queued, CONTRIBUTING.md#axiom-parity also needs the encoder blocker recorded in the issue. The issue names none: its "Encoding gap" section only says that no us-id/statutes/63-3022A module exists yet. It also paraphrases (2)(a)-(c) rather than quoting them verbatim.
    • Fix: change the line to axiom: TheAxiomFoundation/rulespec-us#2079 queued, add the blocker and the verbatim text of (2)(a), (b), (c) and (e) to the issue, and update its outputs and tests for 2027 if item 1 is adopted.

Suggestions

  1. Ground the 1.5 factor in the Social Security Act (cap.yaml, JOINT comment). Right now the comment rests only on the Commission's 2021-2025 practice.
    • Under 42 U.S.C. 402(b)(2), a spouse claiming at FRA gets 50% of the worker's primary insurance amount. So (2)(a)'s benefit for "a person ... whose spouse has no social security benefits except those payable on his record of earnings" is 1.5 times the worker's benefit.
    • The Commission applies 1.5 to the annual amount instead of rounding the spouse's benefit down to the dollar the way SSA does. In 2022, 1.5 × 40,140 = 60,210, while (3,345 + 1,672) × 12 = 60,204. With an even monthly amount ($4,152, or $4,188 in 2027) the two methods agree, but a comment would explain any future odd-dollar year.
  2. Reference title. The page's own title is "2026 Cost-of-Living Adjustment (COLA) Fact Sheet". Using it, perhaps prefixed with "Social Security Administration," would make the source easier to find than the descriptive title.
  3. Mark 2026 as derived until the Commission publishes. The PR body says the Commission's figures should replace these. A short YAML comment such as "derived pending the 2026 Form 39R instructions" would keep that visible in the file.
  4. Offset gap (pre-existing, outside this PR).
    • id_retirement_benefits_deduction subtracts only social_security_retirement. But § 63-3022A(3) and Form 39R lines 8b-8c (2025 instructions, p. 45) also subtract federal Railroad Retirement Act benefits.
    • The PR body's invariant restates the current formula, so this is a separate follow-up, not part of this PR.

Verified correct

  • Statute:
    • § 63-3022A(2) defines the cap by status: (a) for a joint return (worker plus a spouse drawing only on the worker's record), (b) for an unmarried taxpayer, and (c) for an unremarried widow or widower at FRA on a maximum earner's record, which equals (b). Under (e), anyone else deducts nothing.
    • The parameter maps these correctly: SINGLE and HEAD_OF_HOUSEHOLD to (b), JOINT to (a), SURVIVING_SPOUSE to (c) and SEPARATE to $0.
    • (2) also has the Commission "ascertain benefit changes ... and publish the appropriate deduction amounts ... annually."
  • SSA 2026 figure: the 2026 fact sheet (Wayback capture, 2026-10-24) lists the FRA maximum as $4,018/mo. for 2025 and $4,152/mo. for 2026. SSA's FAQ KA-01897 also gives $4,152 for 2026.
  • Commission method: each of the Commission's 2021-2025 single amounts is 12 times SSA's FRA maximum for that year:
    • 2021: 3,148 × 12 = 37,776
    • 2022: 3,345 × 12 = 40,140
    • 2023: 3,627 × 12 = 43,524
    • 2024: 3,822 × 12 = 45,864
    • 2025: 4,018 × 12 = 48,216, which matches line 8a of the 2025 Form 39R instructions
    • Each joint amount is exactly 1.5 times the single amount for the same year.
  • 2026 values: 12 × 4,152 = 49,824, and 1.5 × 49,824 = 74,736, which also equals (4,152 + 2,076) × 12.
  • No Commission 2026 figure exists yet. I checked the Commission's retirement-benefits deduction page, the latest instructions (2025, posted 2026-03-02) and IDAPA 35.01.01 Rule 130, which states no amounts. The PR's derived values are a reasonable placeholder.
  • Mutation rule: removing any one of the four new 2026 values reverts that status to the uprated $49,308.72 or $73,963.07, which fails the matching new case. The SEPARATE value stays $0 under uprating.
  • Changelog: top-level changelog.d/fix-id-retirement-cap-2026.fixed.md, with a sensible type.
  • Code and guards:
    • No variable changes and no new state-gated keys, so the NH Add New Hampshire state supplementation for 2026 #10156 pattern doesn't apply.
    • On the tree merged with main, test_military_retirement_readers.py (Count military SBP annuities in state benefit income lists #10317) and the source-conflict ratchet (test_conflict_sounding_comments_do_not_grow, KNOWN_UNMARKED counts) both pass. None of the new comments match the conflict regex.
    • One scanner self-test, test_unscannable_files_fail_closed, failed in the local run. It reads only synthetic strings, no repository files, so it is a local Python-build artifact. CI's Python shards run it.
  • PR body arithmetic:
    • 49,824 − 49,308.715 = 515.29 and 74,736 − 73,963.07 = 772.93.
    • The tax change in the before/after table is 389.58 − 362.27 = 27.31, which equals 5.3% × 515.29 at Idaho's 2026 rate in the model.
    • I checked only the change, not the absolute tax amounts.
  • Sibling Apply Idaho's 2025 eligibility tests and cap to military retired pay #10715:
    • It changes different files, and its head merges cleanly with this head.
    • Its tests pin only the 2025 cap (its invariant's CAP_2025 and the YAML values $48,216, $28,216 and $42,324) and no 2026 deduction amount, so the expectations don't conflict.
    • Once both merge, military retired pay that passes Apply Idaho's 2025 eligibility tests and cap to military retired pay #10715's tests shares the cap set here.
  • No pinned old values: no other test pins the old uprated 2026 cap, and no partner test files are touched.

Hand-checked expectations (formula: min(qualifying benefits, max(cap − head and spouse SS retirement, 0))):

  1. 2026 single, $60,000: min(60,000, 49,824) = 49,824 ✓
  2. 2026 joint, $80,000 + $0: min(80,000, 74,736) = 74,736 ✓
  3. 2026 single, $60,000 with SS $20,000: max(49,824 − 20,000, 0) = 29,824, and min(60,000, 29,824) = 29,824 ✓
  4. 2026 head of household, $60,000: 49,824 ✓
  5. 2026 surviving spouse, $60,000: 49,824 ✓
  6. 2025 single, $60,000: min(60,000, 48,216) = 48,216 ✓
  7. 2022 joint, head SS $15,000, spouse SS $10,000 and dependent SS $10,000 (excluded), with $45,000: 60,210 − 25,000 = 35,210, and min(45,000, 35,210) = 35,210 ✓
  8. 2022 single, SS $40,140, with $38,700: max(40,140 − 40,140, 0) = 0 ✓
  9. 2022 surviving spouse, SS $10,000, with $30,000: 40,140 − 10,000 = 30,140, and min(30,000, 30,140) = 30,000 ✓
  10. 2022 separate: cap 0 → 0 ✓

Axiom line assessment

axiom: TheAxiomFoundation/rulespec-us#2079 has no status word, so the form is invalid (Should address #2).

  • Issue New York TANF resource limit #2079 is OPEN, labelled pe-parity and matches head fdb199816e: $49,824 and $74,736 for 2026, $0 separate, and the PR's six cases.
  • Its test cases come from the same external figures as the YAML (SSA's monthly maximum and the Commission's published amounts).
  • For queued it still needs a recorded encoder blocker and verbatim statute text, plus 2027 outputs if those values are added.

CI status

At head fdb199816e, 9 checks pass and 17 are still pending; none have failed.

  • Passed:
    • Quick Feedback, which ran all 457 cases under tests/policy/baseline/gov/states/id and the changed file's 14 cases on the PR merge ref
    • PR validation
    • Package and compatibility
    • Household API Partners
    • Baseline household, reform, rest-a and rest-b
    • Plan Rest Python shards
  • Pending: Baseline contrib-hhs, irs, ssa-usda and states shards 1-4; Microsimulation; Rest Python shards 1-9.

Branch status

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, 2 should (add the 2027 cap from SSA's published $4,188 maximum — uprating from the new 2026 value doubles main's 2027 error; the axiom line needs a status word and #2079 needs its blocker and verbatim text), 4 suggestions. The 2026 values are correct.

MaxGhenis and others added 2 commits November 11, 2026 12:01
…ximum

SSA's 2027 COLA fact sheet puts the maximum benefit for a worker retiring
at full retirement age at $4,188 a month, so Idaho Code 63-3022A(2) gives
$50,256 for single filers, heads of household and surviving spouses and
$75,384 on a joint return. IRS uprating from the 2026 values overshot those
by $1,053 and $1,579.

Cite 42 U.S.C. 402(b)(2), (c)(2) and 415(g) for the joint factor, use the
SSA fact sheets' page titles, and mark the 2026 and 2027 values as derived
pending the Tax Commission's own. Add 2027 single, joint, head of
household, surviving spouse and separate cases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis MaxGhenis changed the title Set Idaho's 2026 retirement benefits deduction cap from SSA's maximum benefit Set Idaho's 2026 and 2027 retirement benefits deduction cap from SSA's maximum benefit Nov 11, 2026

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