Skip to content

Count taxable employment disability benefits in federal gross income (IRC 105(a)) - #10185

Open
MaxGhenis wants to merge 18 commits into
mainfrom
fix-disability-benefits-gross-income
Open

MaxGhenis wants to merge 18 commits into
mainfrom
fix-disability-benefits-gross-income

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

disability_benefits ("Disability benefits from employment (not Social Security), except for worker's compensation") was in no federal gross income list, so the model never taxed employer-paid disability benefits or disability pensions. Several state provisions also subtracted it from a federal AGI that never contained it.

Law

  • IRC 105(a): amounts an employee receives through an accident or health plan are gross income to the extent they come from employer contributions not included in the employee's income, or are paid by the employer. IRC 104(a)(3) excludes the rest (plans the employee paid for with after-tax dollars).
  • IRS Pub. 525 (2024), file page 18:
    • Benefits from a plan "paid for by your employer" are income.
    • If both paid, only the part "due to your employer's payments" is income.
    • If you pay the entire cost, none is.
    • Premiums paid pre-tax through a cafeteria plan count as employer-paid.
    • Disability pensions go on Form 1040 line 1h until minimum retirement age, then line 5.

Change

  • New Person input tax_exempt_disability_benefits (IRC 104(a)(3)), default 0, uprated like disability_benefits.
  • New taxable_disability_benefits = max(0, disability_benefits - tax_exempt_disability_benefits) (IRC 105(a)), listed in gov.irs.gross_income.sources. It therefore reaches irs_gross_income, AGI, provisional income for Social Security and dependent_gross_income (the qualifying-relative test).
  • State provisions that remove disability income from a federal starting point now read the taxable part:
State Provision Law Change
VA va_disability_income_subtraction_person § 58.1-322.02(4): "to the extent included in federal adjusted gross income" taxable part
MT mt_disability_income_exclusion_person former MCA 15-30-2110(10) taxable part
LA la_disability_income_exemption_person R.S. 47:44.1(B); Schedule E code 49E taxable part (the old comment claimed the input was already taxable-only)
AR retirement/disability exemption sources; gross income lines 18A/18B § 26-51-307; AR1000F: "federal taxable amount from box 2a" taxable part
SC subtractions list § 12-6-1140(4) taxable part
OH deductions list R.C. 5747.01(A)(4): "to the extent included in federal adjusted gross income" taxable part
CO pension subtraction sources C.R.S. 39-22-104(4)(f): "to the extent included in federal adjusted gross income" taxable part
PA PIT: nontaxable_income_sources Tax Reform Code § 301(d)(i); 61 Pa. Code 101.6(c)(1); 2024 PA-40 instructions pp. 8, 13 taxable part subtracted (PA does not tax disability benefits other than regular wages)
PA Property Tax/Rent Rebate income PA-1000 line 11e (gross disability benefits) adds only the exempt part (the taxable part is in AGI)
  • Benefit programs (SNAP, SSI, TANF, LIHEAP, CCAP and the rest), Michigan household resources and Denver property tax relief still count total disability_benefits, as their income definitions require.

  • Earned income. Taxable disability pensions received before the plan's minimum retirement age are earned income and go on Form 1040 line 1h (Pub. 596 (2024), file page 8; railroad benefits excluded). New input disability_benefits_before_minimum_retirement_age (default 0; the model has no plan retirement age) gives earned_disability_benefits = min(input, taxable_disability_benefits). It counts in:

    • eitc_earned_income (EITC, and the ACTC through ctc_phase_in_relevant_earnings);
    • the dependent standard deduction in basic_standard_deduction (worksheet line 1z);
    • adjusted_earnings (child and dependent care credit; Pub. 503 (2024), file page 4).

    It also counts in:

    • filer_adjusted_earnings (kiddie-tax AMT exemption; IN, OK and WA federal-style credits);
    • IRA compensation (ira_compensation; Pub. 4491 (Rev. 10-2025), file page 144);
    • the federal filing requirement's unearned-income test (tax_unit_is_required_to_file) and Medicaid's filer test (medicaid_person_is_required_to_file).

    earned_income and tax_unit_earned_income themselves are unchanged, because benefit programs and state rules read them.

  • State disability income exclusions modelled on former IRC 105(d). These apply to people who retired on permanent and total disability. Each excludes disability pay up to $100 a week ($5,200 a year), reduced dollar for dollar by federal AGI over $15,000. They read the new permanent_disability_retirement_pay: retired_on_total_disability × total_disability_payments. total_disability_payments is the explicit input the Schedule R credit and DC already read. Its documentation now states the IRC 22(c)(2)(B)(iii) definition: the taxable part of wage-replacement pay from a plan that provides for disability retirement. taxable_disability_benefits alone doesn't show the plan qualifies. A limit to the wages and taxable disability benefits in federal AGI catches entries with nothing in AGI.

State Provision Law Notes
WI wi_disability_income_exclusion Schedule 2440W; Wis. Stat. 71.05(6)(b)4 under 65; joint return required (no separate return, and no head of household return by a separated spouse)
NY ny_disability_income_exclusion Tax Law 612(c)(3-b); IT-221 under 65; separate filers only if they lived apart all year; split between spouses in proportion to pay (IT-221 Example 5); with the pension exclusion, at most $20,000 per person
IA ia_disability_income_exclusion IA 2440; Schedule 1 line 19b code h (2023+) under 65; married filers who don't file jointly only if they did not live together
IN in_disability_retirement_deduction IC 6-3-2-9; Bulletin 70; Schedule 2 code 602 per person, no age limit; $7,500 threshold for separate filers

The employer's mandatory retirement age is not modelled.

Tests

  • Federal cases from Pub. 525's rules, all failing on main and passing here:
    • employer-paid, employee-paid, shared and joint-return cases;
    • 2024 income tax on a $30,000 disability pension (taxable income 15,400, tax 1,616);
    • provisional income for Social Security (taxable benefits 2,500);
    • dependent gross income;
    • the qualifying-relative $5,050 limit.
  • One case per state switch, each with a partly exempt amount, so the switch matters. 10 of 10 fail on main and pass here.
  • The PA PIT case fails with the PA line removed and the federal change kept.
  • Earned income:
    • a dependent filer with a $10,000 pre-retirement-age disability pension gets a standard deduction of $10,450 and owes no tax (2024 dependent worksheet);
    • a single filer with $10,000 gets EITC earned income $10,000 and EITC $632;
    • earned income is capped at the taxable part.
  • State exclusions:
    • WI 2440W: full, phased-down, two-spouse, age-65, not-retired, separate-return and self-paid-insurance cases;
    • NY: IT-221 Example 5, $5,520 and $3,680;
    • IA 2440 phase-down, and IN Bulletin 70 per-person, separate-filer and no-age-limit cases.
  • At head 2c76dd1, the 99 YAML files that read the new or changed variables pass (830 cases). At 3990a89, the WI, NY, IA and IN tax test folders and the federal EITC, child care credit and standard deduction folders passed.

Evidence is in ~/reviews/disability-benefits-gross-income-2026-10/: evidence/fails-on-main.md, research reports and the 51-state differential.

Invariants

  • Taxable disability benefits equal total benefits minus the exempt part, floored at zero; earned disability benefits are nonnegative and never exceed the taxable part.
  • In seeded Hypothesis batches of single-person households for 2024, 2025 and 2026, irs_gross_income equals the positive-source gross-income reference. basic_standard_deduction and standard_deduction match the Form 1040 dependent worksheet, including earned disability, the deductible self-employment tax, and age/blindness additions.
  • tax_unit_is_required_to_file matches an independent IRC 6012/Publication 501 Table 2 reference, including claimability and the 2026 age-only threshold and equality rule for filers nobody can claim. medicaid_person_is_required_to_file matches its separate Table 2 reference.
  • The Montana elderly-credit invariants count every household member's disability benefits once through federal AGI/dependent gross income and the exempt addback. Holding total benefits fixed, fully taxable, mixed and fully exempt benefits give the same household income and credit for a dependent, a separate household member with their own return, and a joint-filing spouse.

Review (merge): responses. P3-1: a person marked both a tax-unit dependent and a head has inconsistent inputs; main already drops their taxable pension through the same paths, so this tests-only follow-up leaves it unchanged. P3-2: H1/H1b pin the per-person earned-disability subtraction; H2 and H3a/H3b pin the worksheet and Medicaid merge interactions. P3-3: added the Hypothesis worksheet/filing references, taxable and mixed Montana fixtures, and these invariants. P3-4: the pre-existing wage-deferral treatment in the dependent worksheet and Medicaid earned-income threshold is reserved for a separate PR; elective deferrals are zero in the randomized worksheet reference, while H3a/H3b exercise netting of deferred wages in the Medicaid unearned-income test. No formula or methodology default changes; the d1466 merge hold remains.

Validation of merge-review test additions

All six files passed, one file per foreground process with OMP_NUM_THREADS, OPENBLAS_NUM_THREADS, MKL_NUM_THREADS, VECLIB_MAXIMUM_THREADS and NUMEXPR_NUM_THREADS set to 4 and OMP_WAIT_POLICY=PASSIVE: general filing 39; dependent filing 55; basic standard deduction 20; Medicaid filing 13; disability properties 1 (8 passing Hypothesis batches, max_examples=8, seed 20261007); Montana invariants 17. Total: 145 pytest items. make format and git diff --check pass. Main was already contained at f9b55fc4dd05f1bed921a4dd06cb8c81f6ceb2c7; no new merge resolutions were needed.

Mutation checks each produced the expected single assertion failure, then the original formula was restored: M4 (subtract tax-unit earned disability instead of the person's) makes H1 incorrectly return false; replacing Medicaid's positive gross earned-source netting with raw earned income makes H3a incorrectly return false; M5 (omit earned disability from the positive gross earned amount removed) makes H3b incorrectly return true. H3b also fails when both PR earned-disability additions are removed from the Medicaid formula. No production formula or parameter changes are included.

Python coverage adds generated cross-variable references and taxability-split invariance that individual YAML examples cannot express. The property test uses 18 fixed anchors plus 24-32 generated single-person filers per batch in one shared-system simulation for all three years. Montana preserves its 216-household original grid and adds only 18 taxable/mixed households in the same simulation. Local macOS measurements including process setup: new property file 40.98 s, peak RSS 1.03 GiB; Montana before 54.77 s (13 tests), after 29.91 s (17 tests), peak RSS after 1.90 GiB. Baseline peak memory was unavailable because the sandbox denied /usr/bin/time -l's sysctl access; its pytest run passed. These are individual local samples, not Linux CI aggregate measurements.

Routing is unchanged: the new file joins Rest Python core (shard 2), and Montana stays in remaining (shard 1). Existing artifacts from run 39206204721 at the reviewed head show core 39:48 / 9.97 GiB peak RSS and remaining 19:52 / 7.67 GiB. Those aggregate groups were not rerun locally; no CI jobs, concurrency or full-model copies were added.

Methodology choice: Max's decision d1466

The law is settled, but the CPS-based input records the payer type (DIS_SC), not who paid the premiums.

  • CPS 2024 non-workers'-comp disability income is $41.8bn.
  • About 13% of it is "accident or disability insurance" (code 7), which Census's CPS tax model and CBO's public CPS code both treat as not taxable.
  • About 38% is government, military or railroad disability pensions (codes 3–6), which many states exempt through their pension exclusions.

This PR's default treats all of the input as employer-paid, matching the variable's definition. The recommended follow-up is a Microcosm change that supplies tax_exempt_disability_benefits (codes 7 and 8) and tags the government, military and railroad parts. d1466 also lays out the alternatives: hold the PR for that split, use a share parameter, or keep the status quo. Hold the merge for the ruling.

Known limitations and follow-ups

These are separate tasks; none is introduced by this PR except as noted:

  • Earned income default. disability_benefits_before_minimum_retirement_age defaults to 0. Whether the microdata should assume a part of the benefits is earned (an age proxy) is the earned-income sub-question in d1466. State rules that read tax_unit_earned_income (e.g. CO's refundable CTC, DC's EITC, HI and OR deductions) don't include it yet.
  • State exclusions still missing. DC D-2440, MN M1R and the federal Schedule R credit read total_disability_payments and have the consumer bugs found in review. NJ-2440 (NJ builds income from components) and KY are in the state follow-ups. Government, military and railroad disability pensions that some states exempt need the Microcosm split.
  • States that build income from components (AL, MS, IA 2022, NJ) don't add the taxable part. AL, which deducts federal income tax, now shows a small decrease for these filers.
  • Other gaps found along the way:
    • Montana still applies the disability exclusion after its 2024 repeal.
    • Louisiana's blind-exemption default blocks the disability exemption.
    • VA, SC, OH and CO skip permanent-and-total and plan-type conditions.
    • disability_benefits is missing from household net income.
    • The Schedule R and DC/MN/NJ consumers of total_disability_payments have bugs found in review. Wiring total_disability_payments to this PR's variable was tried, then reverted, for that reason.
  • Montana elderly credit (Count disability benefits and 2020 excluded unemployment compensation in Montana's elderly homeowner/renter credit income #10163). Completed in this merge: all three source periods now use tax_exempt_disability_benefits, because the taxable part reaches the credit through AGI. The original disability fixtures explicitly supply the exempt amount and keep their expected values. This fulfills the agreement with Count disability benefits and 2020 excluded unemployment compensation in Montana's elderly homeowner/renter credit income #10163's session.

Merge with main

Merged main at f9b55fc4dd05f1bed921a4dd06cb8c81f6ceb2c7 into this branch without rebasing. The resolutions retain main's filing, claimable-filer and Medicaid MAGI rules alongside this PR's taxable disability income treatment.

Conflicted file Main's change This PR's change Resolution
tax_unit_is_required_to_file.py Claimable-filer rules independent of head/spouse labels; unearned test limited to claimable filers; section 6012(a)(1) thresholds from 2026. Disability pensions before minimum retirement age count as earned income. Keep main's thresholds and per-spouse claimability gate; remove the earned disability subset from taxable disability income in the unearned test.
tax_unit_is_required_to_file.yaml Claimability, spouse, age/blindness, 2026 and foreign-income cases. Disability pay treated as wages does not trigger the unearned test. Retain both sets and add four disability/filing interaction cases.
basic_standard_deduction.py Either claimable spouse triggers the joint dependent worksheet; deduct self-employment tax from worksheet earnings. Include earned disability benefits in dependent worksheet earnings. Combine both spouses' earnings, add earned disability benefits, then subtract the deductible self-employment tax before applying the dependent limit.
basic_standard_deduction.yaml Joint claimability, swapped head/spouse labels and net self-employment earnings cases. Dependent's disability pension increases the worksheet deduction. Retain both sets; add two joint disability/self-employment cases with the head/spouse labels swapped.
medicaid_person_is_required_to_file.py Preserve positive-source gross-income treatment and wage deferrals when deriving unearned income, alongside the Medicaid MAGI and per-spouse deduction rules. Treat disability pensions before minimum retirement age as earned. Keep main's calculation; include earned disability in earned income and in the positive gross-income amount removed to derive unearned income.
medicaid_person_is_required_to_file.yaml Medicaid filing cases covering losses and wage deferrals. Dependent with a disability pension below the earned-income filing threshold need not file. Retain both sets; add disability combined with a business loss and with deferred wages.
pa_property_tax_or_rent_rebate_income.yaml 2026 State Supplementary Payment cases. Count taxable disability through federal AGI and exempt disability through the addback. Retain supplementation cases and the mixed disability case; mark the existing nontaxable fixture as exempt and set pa_ssp: 0 in the isolated disability example, as main does in its other examples.

All existing YAML cases from both parents are retained. An inherited extra blank line at the end of charitable_deduction.yaml was removed so git diff --check is clean. The eight additional merge cases cover two joint worksheet label swaps ($10,000 earned disability plus $3,000 self-employment income, net of deductible self-employment tax), four filing interactions (2024 earned/unearned disability and 2026 blind claimable/nondependent filers), and two Medicaid loss/401(k) interactions.

Revalidation of the two commits: 825 pytest items pass across 76 files (652 in 62 merge files at 629cf47b38, then 173 in 14 Montana files at 8225a56ffd), one file at a time in the foreground with every requested thread cap set to 4. This includes all conflicted YAML, the PR's 25 YAML/Python test files, the complete standard-deduction/EITC/child-care folders, all 13 Montana credit YAML files, and test_mt_elderly_credit_nontaxable_income.py (13 passed). The new Pennsylvania disability fixture also sets pa_ssp: 0 to isolate disability income from the supplementation now counted on main.

Against main f9b55fc4dd05f1bed921a4dd06cb8c81f6ceb2c7, all 59 original new YAML cases fail: six reach numerical assertions and 53 fail because main lacks variables introduced here. Five additional main-compatible probes all fail numerically (qualifying-relative status; federal gross income $40,000 vs $60,000; employer-paid benefits $0 vs $24,000; disability pension AGI $0 vs $30,000; taxable Social Security $0 vs $2,500). Four probes retain the complete original case; one retains all inputs and drops only the unavailable taxable_disability_benefits output while preserving its gross-income and AGI assertions.

Taxable employer-funded disability benefits enter gross income under IRC 61 and 105(a). Taxable disability pensions before minimum retirement age count as earned income (IRS Publication 596); the dependent worksheet includes their Form 1040 line 1h amounts through line 1z (Form 1040 instructions). Thus the explicit earned subset increases 63(c)(5) worksheet earnings and is excluded from the 6012(a)(1)(C)(i) unearned test; the taxable remainder remains in that test for claimable filers. Gross income includes both taxable portions.

The owed Montana switch replaces disability_benefits with tax_exempt_disability_benefits in all three elderly-credit source periods (2009, 2017 and 2023), and marks #10163's disability fixtures as exempt so their expected values remain valid. Three additional worked cases cover fully taxable and mixed benefits across the three source periods. Taxable disability already reaches this credit through federal AGI. Montana's 2023 Form 2 instructions, printed page 45, elderly-credit line 8 list disability benefits among income not included on earlier lines; line 1 includes federal AGI.

axiom: TheAxiomFoundation/rulespec-us#1512 queued (Montana elderly-credit income; existing #10163 parity item)

The d1466 merge hold and this PR's defaults remain unchanged. The hub reran the impact at this merged head; the table below is current.

Hub microsimulation impact (current head)

A real microsimulation on the default dataset, main at the merge base f9b55fc4dd against this PR's merged head 8225a56ffd, for 2025 and 2026 (rerun 2026-10-19; the earlier run, 2f3053c845 against e9efd0f877, differs only by small merge effects, e.g. 2025 taxable income +$3.3M and Ohio deductions -$0.9M). The runs went one at a time under the shared heavy-job lock. Sums are weighted.

Output 2025 change 2026 change 2025 records changed (weighted) 2026 records changed (weighted)
disability_benefits +0 +0 0 (0) 0 (0)
irs_gross_income +22.95bn +24.04bn 680 (1,669,167) 679 (1,693,012)
adjusted_gross_income +22.95bn +24.04bn 635 (1,495,658) 635 (1,506,339)
taxable_income +16.27bn +17.27bn 558 (1,224,186) 562 (1,232,929)
income_tax_before_credits +2.55bn +2.71bn 556 (1,222,749) 560 (1,231,482)
taxable_social_security +2.70bn +2.94bn 100 (386,426) 103 (413,037)
eitc -65.35M -65.40M 53 (184,037) 51 (176,326)
refundable_ctc -19.45M -20.29M 36 (48,373) 37 (70,198)
is_qualifying_relative_dependent -141,741 -142,753 17 (141,741) 17 (142,753)
va_disability_income_subtraction +0 +0 0 (0) 0 (0)
oh_deductions +290.28M +313.50M 18 (66,735) 18 (67,211)
sc_subtractions +2,630 +1,629 2 (1) 5 (1)
co_pension_subtraction +28.37M +29.20M 2 (3,728) 2 (3,755)
la_disability_income_exemption_person +0 +0 0 (0) 0 (0)
mt_disability_income_exclusion +0 +0 0 (0) 0 (0)
ar_retirement_or_disability_benefits_exemption +0 +0 0 (0) 0 (0)
pa_property_tax_or_rent_rebate +0 +0 0 (0) 0 (0)
total_disability_payments +0 +0 0 (0) 0 (0)
section_22_income -58.72M -58.82M 6 (11,378) 6 (11,460)
elderly_disabled_credit +0 +0 0 (0) 0 (0)
tax_unit_is_required_to_file +217,563 +207,530 75 (217,563) 72 (207,530)
basic_standard_deduction -199.38M -205.26M 1 (12,659) 1 (12,749)
state_income_tax +660.07M +676.99M 380 (850,685) 379 (853,005)
income_tax +2.59bn +2.75bn 549 (1,230,263) 552 (1,239,050)
household_net_income -3.27bn -3.45bn 565 (1,321,297) 566 (1,326,979)
household_benefits -14 -14 3 (0) 3 (0)

The microdata supplies only disability_benefits: tax_exempt_disability_benefits, disability_benefits_before_minimum_retirement_age, total_disability_payments and retired_on_total_disability are unset, so the whole input is treated as taxable (the d1466 default) and the earned-income and WI/NY/IA/IN exclusion changes don't move these aggregates. The state subtraction switches show no change for the same reason: taxable equals total. OH, CO and the section 22 base move only through AGI and taxable Social Security.

One surviving spouse becomes single. One 2025 record (weight 12,659) changes filing_status from surviving spouse to single, so its basic standard deduction falls from $31,500 to $15,750 (the -$199M basic_standard_deduction row). Its 29-year-old dependent has $6,238 of disability benefits, which now count in dependent_gross_income, so the dependent fails the qualifying-relative gross income test in is_qualifying_relative_dependent. Main's surviving_spouse_eligible needs a child dependent through is_child_dependent, which includes that test. IRC 2(a)(1)(B) instead tests the child "without regard to" section 152(d)(1)(B), the gross income test, so this record should stay a surviving spouse. The gap is on main and predates this PR; the hub has proposed it as a separate fix. Traced at ~/reviews/us-hub/fixes/10185-impact/trace/.

Comparison files are in fixes/10185-impact/ on the hub host.

axiom: us/statute/26/104/a/3 TheAxiomFoundation/rulespec-us#1724 queued; earned income us/statute/26/32/c/2 TheAxiomFoundation/rulespec-us#1748 queued; states TheAxiomFoundation/rulespec-us#1740 (VA), #1741 (MT), #1742 (AR), #1743 (SC), #1744 (OH), #1745 (CO), #1746 (PA-1000), #1747 (PA § 301(d)), #1749 (WI 2440W), #1750 (NY IT-221), #1751 (IA 2440), #1752 (IN 6-3-2-9) queued, LA extends #1493 (comment)

🤖 Generated with Claude Code

MaxGhenis and others added 3 commits October 12, 2026 19:08
Adds tax_exempt_disability_benefits (IRC 104(a)(3)) and taxable_disability_benefits
(IRC 105(a)) and lists the taxable part in gov.irs.gross_income.sources. State
subtractions that remove disability income from federal AGI (VA, MT, LA, AR, SC,
OH, CO) now read the taxable part; PA's rebate income adds only the exempt part.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 3 commits October 12, 2026 20:36
total_disability_payments (IRC 22(c)(2)(B)(iii)) now defaults to
taxable_disability_benefits for someone retired on permanent and total
disability, with tests from the 2024 Schedule R instructions' examples.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pennsylvania starts from federal gross income in the model, so the taxable
disability benefits now in federal gross income need a PA subtraction:
sick pay and disability benefits other than regular wages, including
third-party insurer payments, and disability distributions are not taxable
(61 Pa. Code 101.6(c)(1); 2024 PA-40 instructions pages 8 and 13).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 13, 2026
MaxGhenis and others added 4 commits October 13, 2026 03:50
…ate disability income exclusions

- disability_benefits_before_minimum_retirement_age (input, default 0) and
  earned_disability_benefits feed EITC/ACTC earned income, a dependent's
  standard deduction and child and dependent care credit earnings (Pub. 596
  p.8, Pub. 503 p.4).
- permanent_disability_retirement_pay (retired on permanent and total
  disability) feeds new exclusions modelled on former IRC 105(d): Wisconsin
  Schedule 2440W, New York IT-221, Iowa IA 2440 (from 2023) and Indiana
  IT-2440 (code 602).

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

Cases from the 2024 dependent standard deduction worksheet, Pub. 596, Pub. 503,
Schedule 2440W, IT-221 Example 5, IA 2440 and Indiana Bulletin 70.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 3 commits October 13, 2026 04:35
…Y limit, IRA and filing earned income

- permanent_disability_retirement_pay reads the explicit total_disability_payments
  input (payments from a plan providing for disability retirement), limited to
  wages and taxable disability benefits in federal AGI.
- WI and IA treat a separated spouse filing as head of household as married.
- Restore New York's ,000 combined disability and pension limit, which binds
  when above-the-line deductions keep AGI low.
- Disability pay treated as wages counts as IRA compensation and as earned
  income in the filing requirement's unearned-income test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…disability pay in Medicaid's filer test

- total_disability_payments documents IRC 22(c)(2)(B)(iii): the taxable part of
  qualifying disability pay. permanent_disability_retirement_pay keeps the
  wages-plus-taxable-benefits limit only as a consistency check.
- medicaid_person_is_required_to_file counts earned_disability_benefits as
  earned income.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Feeds the kiddie-tax AMT exemption and the federal-style IN, OK and WA credits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 13, 2026 09:14
…fits-gross-income

# Conflicts:
#	policyengine_us/tests/policy/baseline/gov/irs/credits/earned_income/eitc_earned_income.yaml
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Hand-off to the US + core hub (session local_baf7c8a1-e7e2-41ac-9fb9-718d62c46acf, 2026-10-13)

Brings in main through 1661d71, including #10145's Colorado SSI supplement changes, so CI runs on the combined tree.

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