Skip to content

Count military retired pay in New Mexico and Oklahoma credit income tests - #10769

Open
DTrim99 wants to merge 1 commit into
PolicyEngine:mainfrom
DTrim99:veteran-retired-pay-fixes
Open

DTrim99 wants to merge 1 commit into
PolicyEngine:mainfrom
DTrim99:veteran-retired-pay-fixes

Conversation

@DTrim99

@DTrim99 DTrim99 commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

New Mexico and Oklahoma count pensions and annuities in the income tests for their low-income credits, whether or not the state taxes them. PolicyEngine-US counted only pension_income, which leaves out military retired pay. A military retiree's credit income was therefore understated, and some retirees kept credits they don't qualify for.

Changes

State Income concept Law Credits it gates
New Mexico Modified gross income (gov.states.nm.tax.income.modified_gross_income) NMSA 1978 § 7-2-2(L): all income from whatever source, including "(9) annuities" and "(11) pensions". The 2025 PIT-RC instructions list "an annuity, pension, retirement pay" (p. 10). Low income comprehensive tax rebate, property tax rebate, child day care credit
Oklahoma Gross household income (gov.states.ok.tax.income.credits.gross_income_sources) OAC 710:50-15-96(c): "the gross income of every type", including "pensions, annuities", and "It is not relevant whether or not the income is taxable". Form 538-S Part 3 asks for "taxable and nontaxable gross income", line 6 "Other pensions, annuities, and Individual Retirement Accounts". Sales tax relief credit (538-S), property tax credit (538-H)

Both lists now include military_retirement_income, which adds the retiree's pay (military_retirement_pay) and military Survivor Benefit Plan annuities (military_retirement_pay_survivors). Both lists sit under tax/, so the military retirement readers guard (#10317) allows either input. The total is used because a survivor annuity is an annuity under both rules.

These are income tests only. New Mexico still exempts up to $30,000 of military retired pay from its income tax (NMSA 1978 § 7-2-5.13), and Oklahoma exempts all of it (68 O.S. § 2358(E)(17)).

Effect

The state-law check of the Veterans Day post (PolicyEngine/policyengine-app-v2#1523) found this gap. A retired couple, both 67, with $45,000 of military retired pay and $30,000 of Social Security has $30,000 of New Mexico modified gross income and Oklahoma gross household income on main. With the pay counted, it's $75,000:

  • in New Mexico the couple loses the low income comprehensive tax rebate ($152);
  • in Oklahoma it loses the sales tax relief credit ($80), as it is over the $50,000 limit for filers 65 and older.

The same couple with a civilian pension already got these results.

Tests

  • nm_modified_gross_income.yaml: wages $20,000, military retired pay $30,000 and a $6,000 survivor annuity give $56,000.
  • ok_gross_income.yaml: wages $10,000, military retired pay $15,000 and a $2,000 survivor annuity give $27,000.

Locally, the NM modified gross income, NM rebate and NM child day care files, and the OK gross income, sales tax credit and property tax credit files, all pass.

Not included

The Kansas disabled veteran exemption fix the same check recommended is in Ziming's #10768.

axiom: TheAxiomFoundation/rulespec-us#2146 queued (New Mexico § 7-2-2(L)(9), (11)); TheAxiomFoundation/rulespec-us#2147 queued (Oklahoma OAC 710:50-15-96(c))

🤖 Generated with Claude Code

https://claude.ai/code/session_01LqCGPgxDukji8Bhs57c5rH

…ests

New Mexico's modified gross income (NMSA 1978 § 7-2-2(L)(9), (11)) and
Oklahoma's gross household income (OAC 710:50-15-96(c); Form 538-S
line 6) count pensions and annuities whether or not they are taxed, but
both lists counted only pension_income, which leaves out military
retired pay. Add military_retirement_income, which also carries military
survivor annuities, with a test for each.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LqCGPgxDukji8Bhs57c5rH

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