Skip to content

Make rules for a filer claimed elsewhere independent of which spouse is labelled head - #10024

Merged
MaxGhenis merged 14 commits into
mainfrom
head-dependent-elsewhere-swap
Oct 14, 2026
Merged

MaxGhenis merged 14 commits into
mainfrom
head-dependent-elsewhere-swap

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

On a joint return, which spouse is listed first is a convention of the form. But the federal standard deduction and 16 state formulas read only head_is_dependent_elsewhere (is the person labelled head claimed as a dependent on another return?), so a couple where one spouse can be claimed was taxed differently depending on the label. The review of #9981 gave the case: married adults aged 20 earning $8,000 each in 2025, only one of them claimable by a parent (a joint return filed only to recover withholding can meet the federal exception, IRS Publication 501).

2025, reviewer's couple Claimable spouse is head Claimable spouse is spouse This PR (either)
Federal basic standard deduction $16,450 $31,500 $16,450
New York standard deduction $3,100 $16,050 $16,050
Michigan exemptions $3,000 $11,600 $7,300
Hawaii food/excise credit $0 $400 $200

(main and branch values from Simulation runs of that household; log: ~/reviews/us-hub/head-dep-elsewhere-swap/logs/smoke-{main,branch}-2025.txt.)

Each formula applies its jurisdiction's rule independently of the arbitrary head/spouse labels. The stable helper family now means general claimability: head_is_dependent_elsewhere, spouse_is_dependent_elsewhere, head_or_spouse_is_dependent_elsewhere, head_spouse_count_not_dependent_elsewhere, and every_filer_is_dependent_elsewhere. The last helper is false for a unit with neither filer. The earlier main 09d7d9d dataset/model had 252 such units; every unit had a head in the later 0d93495 dataset/model run described below. Michigan's dependent_on_other_return amount remains per individual.

Input contract. claimed_as_dependent_on_another_return retains main's public meaning: an actual or expected actual claim in another tax unit. New Person input claimable_as_dependent_on_another_return represents an allowable section 151 dependency deduction in another tax unit, claimed or not. Its formula defaults to the existing input, preserving callers that provide only that input. New Person input dependent_claimant_filing_exception is true when the would-be claimant is not required to file and either files no return or files solely for a refund of withholding or estimated payments; a return claiming EITC or other refundable credits is outside it. Claimability remains true in those cases. The Person helper is_dependent_elsewhere_without_filing_exception and TaxUnit helper head_or_spouse_is_dependent_elsewhere_without_filing_exception expose claimable-and-not-excepted. EITC Rule 12 and rules applying the Dependent Taxpayer Test consume these helpers. The same 26-year-old with $2,000 wages can therefore be EITC-eligible while retaining the $2,450 limited basic standard deduction, and the exception restores lawful own-dependent exemptions. General claimability rules never consume the exception. Sources: Pub 596 p.18, Pub 501 pp.11 and 24, and for the no-return case of the Dependent Taxpayer Test the 2025 Instructions for Form 1040 ("Who Qualifies as Your Dependent": check "No" when the person who could claim you is not required to file and either isn't filing or files only to claim a refund). The line 12a instruction on the same page has no such carve-out for the dependent standard deduction.

Confirmed state readings. Max answered yes in d1191 on 2026-10-10, confirming this PR's defaults for NY, MI, VA, NM, ME, HI, and Oregon. The source table distinguishes explicit form/statutory rules from the confirmed mixed-return interpretations.

The rule per provision, and the source

Formula Rule now Source Mixed joint case explicit?
basic_standard_deduction (federal) Either spouse claimable: the dependent worksheet on the couple's earned income (net of the deductible part of self-employment tax, Schedule 1 line 15), capped at the joint amount 2025 Form 1040 instructions, Standard Deduction Worksheet for Dependents: "Use this worksheet only if someone can claim you, or your spouse if filing jointly, as a dependent." (p.35) Yes
ny_standard_deduction $3,100 only for single filers; MFJ $16,050, MFS $8,000, HOH $11,200, QSS $16,050 2025 IT-201 instructions table, p.11: "Single and you marked item C Yes … $3,100" Yes (table). Confirmed by Max (d1191, 2026-10-10): Tax Law 614(e) gives the dependent amount to "a resident individual whose federal exemption amount is zero" without naming a status
mi_exemptions Per spouse: $1,500 for each claimable spouse in place of their personal exemption; the other keeps theirs ($7,300 in 2025); no dependency exemptions unless the Dependent Taxpayer Test filing exception applies MCL 206.30(2), (4): "An individual with respect to whom a deduction under subsection (2) is allowable to another taxpayer … is not entitled to an exemption … but may subtract $1,500.00"; MI-1040 line 9e, p.10; Pub 501 p.11: "you and your spouse can't claim any dependents on your joint return" Statute is per individual; the mixed joint case is an inference. Confirmed by Max (d1191, 2026-10-10)
or_standard_deduction Either spouse, and the same worksheet earned income (as federal) ORS 316.695(8) limits the deduction to the IRC 63(c)(5) amount; OR-17 p.96 "Standard deduction worksheet for married filing jointly (MFJ) dependents" Medium
va_low_income_tax_credit_eligible Either spouse claimable bars the return Va. Code 58.1-339.8: the credit "shall not be allowed against such tax of a dependent"; 760 instructions p.30: "You are claimed as a dependent on another taxpayer's return" No. Confirmed by Max (d1191, 2026-10-10)
mo_wftc_eligible The dependent stop never applies to a joint return 2025 MO-1040 instructions p.6: a federal MFJ filer who can be claimed "will select the filing status of 'married filing combined'"; MO-WFTC asks about "a filing status of … claimed as a dependent" Yes
nm_2021_income_rebate, nm_additional_2021_income_rebate, nm_supplemental_2021_income_rebate, nm_deduction_for_certain_dependents_eligible, nm_medical_expense_credit, nm_cdcc_eligible Barred only when every filer is a dependent elsewhere NMSA 7-2-7.6, 7-2-7.7, 7-2-7.5, 7-2-39, 7-2-18.13, 7-2-18.1 ("not a dependent of another individual/taxpayer"); TRD's PIT-RC instructions read that test per spouse: "If you are a dependent with a spouse who was not a dependent of another taxpayer, your spouse may still qualify to claim rebates or credits" (2025 p.2, 2021 p.2-3) Yes for the PIT-RC credits; the one-off rebates and the PIT-1 deduction follow the same phrase. Confirmed by Max (d1191, 2026-10-10)
nm_medical_expense_credit age test When a filer is a dependent elsewhere, a filer who is not must be 65 or older (unchanged when nobody is claimed) NMSA 7-2-18.13(A): "who is sixty-five years of age or older and who is not a dependent of another taxpayer" Yes
eitc_demographic_eligible (federal, childless branch) Neither filer may be claimable without the nonrequired-claimant filing exception IRC 32(c)(1)(A)(ii)(III); Publication 596 p.18: "neither you nor your spouse can be claimed as a dependent by another person if you claim the EIC on your joint return". Needed so Missouri's credit, which requires a federal EITC, does not reach such a couple Yes
me_sales_tax_fairness_credit_eligible Barred only when every filer is claimable 36 MRSA 5213-A(6)(C) lists "Individuals who may be claimed as a dependent" among those who do not qualify; (2) allows "a resident individual" the base credit for the return's filing status; Schedule PTFC/STFC says "You cannot claim the Sales Tax Fairness Credit if you are claimed as a dependent" (p.3), and its table puts the dependent note under the Single column only (p.4) No. Confirmed by Max (d1191, 2026-10-10)
hi_deductions Either spouse (as federal); the limited standard deduction now applies HRS 235-2.4(a)(3) makes IRC 63(c)(5) operative with a $500 floor; N-11 instructions pp.15, 20 Medium
hi_act_115_rebate, hi_food_excise_credit (+ hi_food_excise_exemption_amount), renters credit eligibility and amount Count only the filers who cannot be claimed; a return with a claimable filer generally counts no dependents unless the Dependent Taxpayer Test filing exception applies; separately, minor children receiving public support who cannot themselves be claimed elsewhere still count for the food/excise credit (HRS 235-55.85(c); N-311 line 3) Act 115 SLH 2022 §3(b); HRS 235-54(a) zeroes a claimable individual's exemption; Form N-311 line 2: "List YOURSELF, YOUR SPOUSE, AND YOUR DEPENDENTS … Cannot be claimed as a dependent by another taxpayer"; HRS 235-55.7(b) and Schedule X lines 8-10 Medium

Unchanged because they already read both spouses: Arizona aged exemption, Illinois personal exemption, Minnesota renters and homestead credits, Utah homeowner/renter relief, Vermont personal exemptions.

These changes reach beyond joint returns, because the jurisdiction's own rule requires them:

  • New York heads of household, separate filers and surviving spouses who can be claimed now get their regular amount, not $3,100 (the IT-201 table gives $3,100 only to status 1).
  • Hawaii filers who can be claimed now get the limited standard deduction of HRS 235-2.4(a)(3), using the worksheet's earned income (net of the deductible part of self-employment tax). hi_deductions already computed a version of that amount (as the floor for itemizing) but always used the full amount as its standard-deduction candidate, before comparing it with allowable itemization.
  • Federal and Oregon dependent worksheets: earned income is now net of the deductible part of self-employment tax, as the worksheet defines it (a claimable single filer with $3,000 of self-employment income: $3,450 before, $3,238.06 now, federally).
  • Federal EITC: a childless filer who can be claimed is denied unless the nonrequired-claimant filing exception applies (IRC 32(c)(1)(A)(ii)(III), Pub 596 Rule 12).
  • Hawaii food/excise counts: externally claimable people are excluded from both ordinary persons and public-support minors, including when neither filer is claimable. Filers are excluded from the minor-child count (N-311 lines 2–3). The independent joint filers aged 17 and 20 with a publicly supported minor filer and $16,000 AGI intentionally change from $180 to $140 in 2022: the minor filer belongs only in the ordinary count.
  • New Mexico medical care credit: unchanged when nobody is claimed; the review found that otherwise a claimable 70-year-old's age would qualify an independent 60-year-old spouse.

An independent GPT-6.1 Sol research pass reached the same rule for every formula (~/reviews/us-hub/head-dep-elsewhere-swap/research/sol-research.md); the rule table with sources is decisions.md in the same folder.

Invariants

  1. Swap invariance. Exchanging the two adults' head and spouse labels leaves federal income tax, state income tax (before and after refundable credits) and each changed formula unchanged, whether neither, one or both spouses are claimed elsewhere.
  2. Monotonicity (for current parameters and inputs the model derives). Marking another filer as claimed elsewhere never raises any of the checked amounts or turns an eligibility on. An input below Hawaii's itemization threshold supplied as the standard deduction could break it; current parameters never do.
  3. Helper identities (general claimability). head_or_spouse_is_dependent_elsewhere == head_is_dependent_elsewhere | spouse_is_dependent_elsewhere; for a couple, every_filer_is_dependent_elsewhere == head_is_dependent_elsewhere & spouse_is_dependent_elsewhere; head_spouse_count_not_dependent_elsewhere plus the claimable filers equals the number of filers.
  4. Backward compatibility. A caller supplying only the existing input gets claimability equal to that input and exception false. Outputs equal main apart from the intended provision changes: symmetric jurisdiction-specific mixed returns; NY's single-only reduced deduction; MI's per-person allowance and own-dependent restriction; federal/OR earned-income netting; HI's dependent deduction and person counts; childless EITC Rule 12; and NM's dependent/independent age attribution. The nobody-claimed branch remains unchanged except the intentional Hawaii minor-filer correction ($180 → $140 in the 2022 example) and the externally claimable child ordinary-count correction, including when claimability defaults from the existing input. The every-filer gate stays false for a unit with no head or spouse, preserving the earlier NM/ME headless-unit fix. The property test compares omitted new inputs with explicit claimability equal to the old input within this branch; it does not compare two main/branch model instances. Legacy YAML expectations and the documented historical main runs supply separate evidence.
  5. Exception isolation. Holding actual claims and general claimability fixed, the exception changes only EITC eligibility (and its downstream credit/tax amounts) and the Dependent Taxpayer Test own-dependent counts (and their downstream amounts). Missouri’s federal-EITC prerequisite therefore changes when EITC eligibility is restored; its separate state claimability gate stays fixed (RSMo 143.177.2, MO-WFTC lines 1–2). It never changes federal, OR or HI dependent deduction limits, other direct claimability restrictions, claimable persons' personal/age exemptions, or Medicaid membership. The property test checks this boundary directly; separate YAML establishes the legal amounts.

Tests

  • YAML: swap pairs (the same couple with each spouse as head) in the changed variables' files, plus both-claimed cases, a new ny_standard_deduction.yaml, and tests for the ordinary and exception-aware helpers. Two variables have no swap pair in their own file: hi_food_excise_exemption_amount and hi_food_excise_credit_minor_child_count are covered through the food credit's YAML and the property test. Legacy cases that supplied an aggregated dependency helper now supply the Person fact; the new claimability input defaults to that fact. Arizona and the actual-claim reform fixtures also now supply actual Person claims, retaining their existing expected outputs. The MI case for a married dependent now has two claimed spouses ($3,000, unchanged). Results: at 436805e the 57 targeted files (every changed YAML file, all federal EITC tests, and every test that sets a claimed-elsewhere input) pass, 506 cases (logs/yaml-branch-5.log); at 1f0cd1b, 42 of the then 210 cases failed on main, including at least one labelling of every new pair (logs/yaml-main-1.log).
  • Property test policyengine_us/tests/core/test_dependent_elsewhere_head_spouse_swap_invariance.py directly checks the swap/helper invariants plus fallback equivalence and exception isolation: Hypothesis batches of married couples (0-2 dependents) in HI, ME, MI, MO, NM, NY, OR, VA and CA for 2021-2026 with neither, either or both spouses claimed; a seeded population with the review case, a child case and an older renter couple every year; and the review case in every state for 2026. At 436805e all 8 tests pass on this branch and all 8 fail on main 0d93495 (logs logs/property-branch-5.log, logs/property-main-5.log). On main the failures include NY, MI and ME state income tax and federal income tax, for example "state_income_tax in 2025 changes when the head and spouse labels are exchanged: … MI claimed=(True, False) 2107.06 -> 1741.57".
  • Cost (local, macOS arm64, not CI): at 436805e, 91 s of test time and 137 s wall including imports, with a 4.98 GB peak RSS for the file alone (at 8da8312 the per-test peaks ran from 3.15 GB after the Hypothesis test to 4.97 GB after the last; the seeded years add 0.1-0.6 GB each). The file runs in the Rest "core" group, which took 10:23 wall and peaked at 6,736,924 KiB RSS (6.899 GB) on main ff479aa74a882a9a91053d651973ddf59b238511 in run 37926760594 (rest-python-core-resources.txt); the other Rest groups peak at up to 13,844,632 KiB (14.177 GB, policy) on the 16 GB runner. How much of this file's 5 GB the core process already holds is not measured; the whole group was not rerun locally.
  • Code health: the reference-URL, parameter-key and Rest-group routing tests (tests/code_health/, 165 cases) pass at 436805e (logs/code-health-5.log).
  • Make state income taxes independent of which spouse is labelled head #9981's property test leaves claimed_as_dependent_on_another_return at its default. A patch extending it with claimed spouses (adults draw claimed_as_dependent_on_another_return; the review case runs in every state in 2026) is at ~/reviews/us-hub/head-dep-elsewhere-swap/ssw-test-claimed-spouse.patch, for whichever of the two PRs lands second. On Make state income taxes independent of which spouse is labelled head #9981 alone (d464128) with the patch, all 8 of its tests fail (for example "state_income_tax in 2021 changes when the head and spouse labels are exchanged: MO 2678.56 -> 3417.57, … OK 2234.05 -> 2869.05": Missouri, Oklahoma and Iowa inherit the federal standard deduction); on Make state income taxes independent of which spouse is labelled head #9981 merged with this branch (41fb4a5) all 8 pass (logs logs/ssw-ext-ssw-alone-ext.log, logs/ssw-ext-ssw-hde-merge-3.log).

Hub microsimulation impact (current head)

A real microsimulation on the default dataset, main at the merge base f4539bc050 against this PR's head 2ddb85235b, for 2025 and 2026. 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)
standard_deduction +0 +0 0 (0) 0 (0)
eitc +0 +0 0 (0) 0 (0)
eitc_eligible +0 +0 0 (0) 0 (0)
hi_food_excise_credit +0 +0 0 (0) 0 (0)
mi_exemptions +0 +0 0 (0) 0 (0)
ny_standard_deduction +0 +0 0 (0) 0 (0)
or_standard_deduction +0 +0 0 (0) 0 (0)
va_income_tax +0 +0 0 (0) 0 (0)
nm_income_tax +0 +0 0 (0) 0 (0)
me_income_tax +0 +0 0 (0) 0 (0)
hi_income_tax +0 +0 0 (0) 0 (0)
mi_income_tax +0 +0 0 (0) 0 (0)
ny_income_tax +0 +0 0 (0) 0 (0)
or_income_tax +0 +0 0 (0) 0 (0)
state_income_tax +0 +0 0 (0) 0 (0)
income_tax +0 +0 0 (0) 0 (0)
household_net_income +0 +0 0 (0) 0 (0)
household_benefits +0 +0 0 (0) 0 (0)

No record changes in either year in any output listed, as at the earlier heads 2d2db2ce84 and c7f969f872. The historical run below found that the dataset sets claimed_as_dependent_on_another_return for nobody, so the dependency gates this PR changes don't activate on it.

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

Microsimulation impact

A real microsimulation, main (0d93495) against this branch (436805e, which merges that main), on the default dataset populace_us_2024.h5@populace-us-2024-spm-20260909, run through lockrun.sh for 2025 and 2026 (arrays in ~/reviews/pe-us-merge-backlog-2026-10-02/impact/out/hde-{b5,p5}.*, comparison in ~/reviews/us-hub/head-dep-elsewhere-swap/impact-{2025,2026}.json):

  • No record changes in either year in any of the 21 policy outputs compared: federal income tax ($2,418B in 2025, $2,591B in 2026), eitc, state income tax before and after refundable credits ($549B, $578B), household net income, and basic_standard_deduction, ny_standard_deduction, mi_exemptions, or_standard_deduction, va_low_income_tax_credit_eligible, mo_wftc_eligible, nm_deduction_for_certain_dependents_eligible, nm_medical_expense_credit, nm_cdcc_eligible, me_sales_tax_fairness_credit_eligible, hi_deductions, hi_food_excise_exemption_amount, hi_food_excise_credit, hi_food_excise_credit_minor_child_count, and the Hawaii renters credit and its eligibility. Not measured: the three New Mexico 2021 rebates and Hawaii's Act 115 refund, which exist only for 2021; eitc_demographic_eligible is checked through eitc.
  • In that historical run, the dataset sets claimed_as_dependent_on_another_return for nobody (0 persons; 0 tax units with a claimed head or spouse), so the dependency gates did not activate. The intentional minor-filer correction is independent of this flag; no round-4 microsimulation was run.
  • An earlier run (main 09d7d9d against an earlier version of this branch) caught a regression: that main had 252 tax units with neither a head nor a spouse, and a gate treated them as "every filer claimed", removing New Mexico's dependents deduction from 16 records and Maine's sales tax fairness credit from 2. every_filer_is_dependent_elsewhere fixed it (no change at 8da8312 against 09d7d9d). On main 0d93495 every tax unit has a head.

Overlaps

Follow-ups (not in this PR)

Rules for a claimed filer that the model never applies or applies only in part (the EITC with a qualifying child when a filer is the qualifying child of another taxpayer, IRC 32(c)(1)(B); dependents on a joint return with a claimable spouse per Publication 501; Oregon's personal exemption credit, ORS 316.085(1)(b); Maine and Hawaii personal exemptions; New York household and NYC credits gated on item C; New Mexico LICTR household members and child income tax credit; Virginia's dependent standard deduction), and nm_medical_expense_credit counting a dependent's age 65+ when nobody is claimed, are being handled in a separate stack of PRs (branches claimable-filer-*), which builds on this one.

Round 4: contract, consumer audit, and Hawaii ordinary counts

Restored the actual/expected-claim contract, introduced claimability with the old-input formula fallback, and modeled the nonrequired-claimant refund-only/no-return exception separately. EITC and the Michigan/Hawaii Dependent Taxpayer Test counts now use the exception-aware helpers; all deduction limits remain general claimability. Hawaii N-311 ordinary counts now exclude every externally claimable person. Two independent joint filers plus a publicly supported child claimable elsewhere at AGI $4,000 produce 2 × $110 = $220 in 2022, and 2 × $220 = $440 in 2025, rather than $330/$660; 2022 N-311 lines 2–3, 7–10, 2025 N-311 lines 2–3, 7–9. d1191 confirms the state defaults listed above.

The following audit covers every direct or helper consumer found by searching variables, parameters, reforms and tests. A = actual/expected claim; C = general claimability; X = claimable and not within the claimant filing exception. No parameter consumes the Boolean input; dependent_elsewhere in NY's standard-deduction parameter is an amount.

Consumer Law Fact / action Primary source
medicaid_is_tax_dependent, medicaid_household_size, medicaid_household_income, medicaid_uses_missing_claimant_fallback 42 CFR 435.603(f)(1)-(3), household formed from expected claiming A; retain old input 435.603
ca_medicaid_household_pregnancies Same MAGI household membership plus California pregnancy sizing A; retain old input 435.603
savers_credit_eligible_person IRC 25B(c)(2)(A), deduction allowed to another A; retain old input 25B
basic_standard_deduction IRC 63(c)(5), either-filer worksheet C; generic filer helper 1040 2025 p.35, Pub 501 p.24
eitc_demographic_eligible IRC 32(c)(1)(A)(ii)(III), Pub 596 Rule 12 X; exception-aware filer helper Pub 596 p.18
ny_standard_deduction IT-201 line 34 dependent amount only for single / item C C; confirmed d1191 IT-201 p.11
ny_cdcc (2026 decoupled gate) Tax Law 606(c-2)(2)(A)(i), taxpayer not another's dependent under 152 C; existing head helper now means C 606(c-2)
mi_exemptions personal replacement MCL 206.30(2),(4), individual dependent allowance C; count claimable and independent filers; confirmed d1191 206.30, MI-1040 p.9
mi_exemptions own dependent exemptions MCL 206.8 federal dependency definition; IRC 152(b)(1) Dependent Taxpayer Test X; exception-aware gate, not C 206.8, Pub 501 p.11, 1040 instructions 2025, dependent steps
mi_home_heating_credit_eligible_rate Official home-heating instructions exclude full-time students actually claimed A; retain old input 2025 home-heating booklet, Treasury eligibility
or_standard_deduction ORS 316.695(8) incorporates 63(c)(5) C; generic filer helper; confirmed Oregon default ORS 316, OR-17 p.96
va_low_income_tax_credit_eligible Code 58.1-339.8(B)(1) dependent's tax exclusion, 58.1-301 federal meanings C; confirmed d1191 either-filer interpretation (instructions use actual wording) 339.8, 301
mo_wftc_eligible MO-WFTC dependent filing-status gate, MFJ selects combined status, federal EITC prerequisite C for existing single-dependent state status gate; joint return bypasses it MO-1040 p.6, MO-WFTC
nm_2021_income_rebate, nm_additional_2021_income_rebate, nm_supplemental_2021_income_rebate NMSA 7-2-7.6, 7-2-7.7, 7-2-7.5 C; every-filer helper; confirmed d1191 mixed-return interpretation HB163 p.13, HB547 p.31, HB2 p.1
nm_deduction_for_certain_dependents_eligible, nm_cdcc_eligible NMSA 7-2-39 and 7-2-18.1 taxpayer eligibility C for taxpayer eligibility; lawful own dependents separately need X; confirmed d1191 HB218 p.160, SB299 p.3, PIT-RC p.2
nm_medical_expense_credit NMSA 7-2-18.13(A), age and nondependency on same taxpayer C; repoint person input and generic filer helper; confirmed d1191 PIT-RC p.10
me_sales_tax_fairness_credit_eligible 36 MRSA 5213-A(6)(C), may be claimed C; every-filer helper; confirmed d1191 5213-A
me_affordability_payment 2026 Public Law 650 Part T Sec T-1(1)(C)(3), individual may not be claimed on another return C; repoint person input Act p.157
hi_deductions HRS 235-2.4(a)(3), incorporated 63(c)(5) limit C; generic filer helper; confirmed d1191 HRS 235-2.4, N-11 p.20
hi_act_115_rebate Act 115 3(b), exemptions claimant eligible to claim C for each recipient's own exemption; X for own dependents; confirmed d1191 Act 115, announcement, Pub 501 p.11
hi_food_excise_credit, hi_food_excise_exemption_amount, hi_food_excise_credit_minor_child_count HRS 235-55.85; N-311 qualified-person and public-support-minor counts C for own eligibility and exclusion of every externally claimable person; X for filer's own ordinary dependents; qualifying public-support minors independent of X; confirmed d1191 N-311 2022 lines 2-3,7-10, N-311 2025 lines 2-3,7-9, Pub 501 p.11
hi_tax_credit_for_low_income_household_renters_eligible, hi_tax_credit_for_low_income_household_renters HRS 235-55.7(b),(c); HAR 18-235-55.7(c) C for own admission and personal/age exemptions; X for own dependents; confirmed d1191 Schedule X lines3,8-10, HAR p.105, Pub 501 p.11
az_aged_exemption_eligible_person ARS 43-1023(E), Form 140 Box 8 specifically addresses both filers A for both filer labels; replace claimability-helper reads with person actual-role masks 43-1023, 2025 Form 140 p.6 Box8
il_personal_exemption_eligibility_status IL-1040 Step1 LineC and Step4 Line10a chart C; retain names of head/spouse helper family Line C, Line10a
mn_renters_credit_eligible 290.0693(5)(a), individual other than dependent defined under 151/152 C; retain eligibility helper names 290.0693
mn_renters_credit_household_agi 290.0693(1)(b),(h), dependent must have been claimed; income of that dependent excluded A; retain old person input 290.0693
mn_homestead_credit_refund_eligible, mn_homestead_credit_refund_household_income 290A.03(5),(7),(8) C; retain eligibility helper names and repoint direct person read in income 290A.03
oh_personal_exemptions_eligible_person, same variable in repeal_state_dependent_exemptions reform ORC 5747.025(B), exemption allowable to another C; repoint both person reads 5747.025
ut_homeowner_renter_relief_pre_one_claimant_eligible 59-2a-205(4), 59-2a-305(2)(a), personal exemption or section24 credit actually claimed by another A; replace claimability-helper reads with actual filer masks Utah Chapter2A pp.12,14-15
vt_personal_exemptions, same variable in repeal_state_dependent_exemptions and vt_dependent_exemption_reform IN-111 lines5a/b, can be claimed C for each filer's own exemption; retain helper names. Dependent child gates belong to stacked federal/state work IN-111 official 2023 lines5a/b, current official personal-exemption worksheet
watca_alternative_tax_eligible reform Existing implementation documents actual-claim exclusion; cited bill 1A(b)(2) currently instead cross-references 63(c)(6) Preserve modeled A gate with person actual-role masks; authority mismatch disclosed below cited Senate bill p.2
ct_hb5114_eligible reform Existing implementation documents actual-claim exclusion; cited proposed bill contains no dependency provision Preserve modeled A gate with person actual-head mask; source gap disclosed below cited HB5114

The WATCA and CT HB5114 reforms have preexisting authority gaps: the cited WATCA bill cross-references IRC 63(c)(6), and the cited CT bill does not state the modeled dependency gate. This round preserves their documented actual-claim behavior and discloses those gaps. The existing NY CDCC 2026 head-only gate consumes C; its broader filer restriction belongs to the separate stack. No tax_unit_dependent_elsewhere variable or utility exists at the starting head.

The supplied law hints also identify preexisting missing gates; none consumes the old input/helper at this head, so there is no existing dependency read to repoint. Adding them here would change legacy outputs beyond this PR. Their correct facts are documented for the stacked follow-ups:

Consumer / related output Law Correct fact Existing code
Federal education credits IRC 25A(g)(3), deduction allowed to another A No dependency-elsewhere gate; law
student_loan_interest_ald_eligible IRC 221(c), deduction allowed to another A Only tax-unit head/spouse role and filing-status test; law
ny_college_tuition_credit_eligible, ny_allowable_college_tuition_expenses Tax Law 606(t), own-tuition provision / claimant deduction allocation A No external-claim gate; law
ny_inflation_refund_credit Tax Law 606(qqq)(2), person actually claimed in2023 A Filing status/AGI only; law
rrc_cares, rrc_caa, rrc_arpa, rrc_adult_count_with_valid_ssn IRC6428(d)(2),6428A(d)(2) allowable;6428B(c)(2),(e)(1) statutory dependent C for eligible adult; lawful own dependents separately X No dependency-elsewhere gate; 6428, 6428B
tuition_and_fees_deduction_eligible Former IRC222(c)(3), deduction may be allowed C Only filing-status and education-credit exclusions; Form8917 p.2

The hub must update issue contracts, rather than file new issues: #1614 MI C/X and restored-own-dependent/no-return fixtures; #1620 HI C/X and independent-filer externally claimable child $220/$440 fixtures; #1621 EITC separate exception plus both refund-only/no-return $2,450 controls; #1616 VA's C contract and separate actual input description; #1400 unchanged deduction-limit exception control. #1613/#1615/#1617/#1618/#1619 need input-binding/head-reference refresh without changing ordinary fixture amounts. Confirmed d1191 interpretations must be reflected. All ten linked issues are open and labelled pe-parity, so queued is accurate.

The existing Hawaii renters externally claimable child exclusion remains for the stacked state work: two independent filers plus that child still count three ($150 at $50), while Schedule X line 8(c) counts two ($100). This round fixes the analogous food/excise ordinary-count defect in P1-2. Stacked changes to exemptions_count must avoid double subtraction in Hawaii formulas that currently remove externally claimable persons from its raw tax-unit-size count.

Current-head merge-main validation at 2ddb85235b173ecfbe0d8f469e2adfa3e82981f8: 34 YAML files, 374 cases, plus 28 Python tests in 3 files passed. Coverage is every test file changed by this PR relative to the merged main parent, including test_medical_expense_premium_conservation.py, the NM medical credit YAML and the head/spouse swap properties. Every file ran directly in its own fresh sequential foreground process with OMP/OpenBLAS/MKL/VECLIB/NUMEXPR thread caps of 4 and OMP_WAIT_POLICY=PASSIVE. make format (format and lint) and git diff --check passed. Current main merged without conflicts.

The #10055 conservation fixture supplied only head_is_dependent_elsewhere while person claims remained false, so #10024's person-derived spouse-independent gate saw an independent 65-year-old and awarded $2,800. The fixture now sets the head's Person claim, allowing claimability and both aggregate helpers to derive consistently, and retains every conservation assertion and oracle amount; fixed examples reproduce the CI case in both properties, and a two-household NM YAML checks credits [2_800, 0].

Main #10055 removes federally deducted self-employed premiums from computed Schedule A medical expenses, but deliberately restores the applied exclusion for NM's gross-cost credit. This merge retains that behavior together with #10024's symmetric same-filer age/claimability gate and MFS half credit. All 17 existing NM credit cases retain their numerical outputs; two new mirrored interaction cases bring that file to 19. Their arithmetic is 6,000 + 22,000 - 1,000 = 27,000 federally, then 27,000 + 1,000 = 28,000 for NM; the independent 70-year-old spouse qualifies for 2,800 / 1 = 2,800 in either role. The supplied-subtotal control remains 27,999 + 0 < 28,000, yielding zero.

medical_expense = itemized_medical_expenses + itemized_medical_expenses_applied_exclusion
age_eligible = where(dependent_filer, any(filer & ~claimable & aged), any(aged))
credit = (age_eligible & (medical_expense >= p.min_expenses)) * p.amount / where(separate, 2, 1)

axiom: us/statutes/26/63/c/5 TheAxiomFoundation/rulespec-us#1400 queued | us/statutes/26/32 [IRC 32(c)(1)(A)(ii)(III)] TheAxiomFoundation/rulespec-us#1621 queued | us-ny/statutes/TAX/614 TheAxiomFoundation/rulespec-us#1613 queued | MCL 206.30(2)/(4) TheAxiomFoundation/rulespec-us#1614 queued | us-or/policies/income_tax/resident_core_liability_pipeline [ORS 316.695(8)] TheAxiomFoundation/rulespec-us#1615 queued | us-va/statutes/58.1/58/1-339/8 TheAxiomFoundation/rulespec-us#1616 queued | RSMo 143.177 + MO-1040 filing status TheAxiomFoundation/rulespec-us#1617 queued | NMSA 7-2-7.5 n/a: expired one-off, no module | NMSA 7-2-7.6 n/a: expired one-off, no module | NMSA 7-2-7.7 n/a: expired one-off, no module | NMSA 7-2-39 TheAxiomFoundation/rulespec-us#1618 queued | NMSA 7-2-18.13 TheAxiomFoundation/rulespec-us#1618 queued | NMSA 7-2-18.1 TheAxiomFoundation/rulespec-us#1618 queued | us-me/statutes/36/5213-A TheAxiomFoundation/rulespec-us#1619 queued | us-hi/policies/income_tax/resident_core_liability_pipeline [HRS 235-2.4(a)(3)] TheAxiomFoundation/rulespec-us#1620 queued | Act 115 SLH 2022 n/a: expired 2021-only refund, no module | us-hi/statutes/235-55/85 TheAxiomFoundation/rulespec-us#1620 queued | us-hi/statutes/235-55/7 TheAxiomFoundation/rulespec-us#1620 queued | us-hi/statutes/235-54 TheAxiomFoundation/rulespec-us#1620 queued

No existing rulespec-us module gets the mixed joint case right (assessment against origin/main 207486d8b5: ~/reviews/us-hub/head-dep-elsewhere-swap/axiom/axiom-parity.md). The ten items marked queued are filed, open pe-parity issues: #1400 and #1613–#1621, dispatched by the hub on 2026-10-09 under d1144. Signed encoder runs remain subject to their production-signing gate. This round files no issues; the hub will update affected issue contracts.

🤖 Generated with Claude Code

Historical round 4 expanded property cost (local macOS arm64, direct interpreter): 232.17s pytest, 345.18s wall including setup, 5.850 GB peak RSS. Historical head 436805e3e0 measured 90.56s pytest, 136.93s wall and 4.984 GB peak RSS. These local runs have different machine load; this is not a Linux CI group measurement. The Rest/core routing and runner budget are unchanged.

Merge-main single-file validation: all 37 files at 2ddb852
policyengine_us/tests/core/test_medical_expense_premium_conservation.py: 5 passed
policyengine_us/tests/policy/baseline/gov/states/nm/tax/income/credits/nm_medical_expense_credit.yaml: 20 passed
policyengine_us/tests/core/test_dependent_elsewhere_head_spouse_swap_invariance.py: 8 passed
policyengine_us/tests/core/test_me_standard_deduction_federal_conformity.py: 15 passed
policyengine_us/tests/policy/baseline/gov/hhs/medicaid/income/medicaid_is_tax_dependent.yaml: 3 passed
policyengine_us/tests/policy/baseline/gov/irs/credits/earned_income/eitc_demographic_eligible.yaml: 21 passed
policyengine_us/tests/policy/baseline/gov/irs/credits/retirement_saving/savers_credit_eligible_person.yaml: 4 passed
policyengine_us/tests/policy/baseline/gov/irs/deductions/standard/basic_standard_deduction.yaml: 16 passed
policyengine_us/tests/policy/baseline/gov/states/az/tax/income/exemptions/az_aged_exemption_eligible_person.yaml: 6 passed
policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/act_163_sunset.yaml: 6 passed
policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/food_excise/hi_food_excise_credit.yaml: 30 passed
policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/hi_act_115_rebate.yaml: 14 passed
policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/hi_low_income_household_renters/hi_low_income_household_renters_tax_credit.yaml: 8 passed
policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/hi_low_income_household_renters/hi_tax_credit_for_low_income_household_renters_eligible.yaml: 7 passed
policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/hi_deductions.yaml: 14 passed
policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/deductions/itemized/hi_salt_deduction_integration.yaml: 3 passed
policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/sales_tax_fairness_credit/me_sales_tax_fairness_credit_eligible.yaml: 6 passed
policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/exemptions/mi_exemptions.yaml: 23 passed
policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/credits/wftc/mo_wftc_eligible.yaml: 18 passed
policyengine_us/tests/policy/baseline/gov/states/nm/tax/income/credits/cdcc/nm_cdcc_eligible.yaml: 15 passed
policyengine_us/tests/policy/baseline/gov/states/nm/tax/income/deductions/certain_dependents/nm_deduction_for_certain_dependents_eligible.yaml: 6 passed
policyengine_us/tests/policy/baseline/gov/states/nm/tax/income/rebates/2021_income/nm_2021_income_rebate.yaml: 8 passed
policyengine_us/tests/policy/baseline/gov/states/nm/tax/income/rebates/2021_income/nm_additional_2021_income_rebate.yaml: 9 passed
policyengine_us/tests/policy/baseline/gov/states/nm/tax/income/rebates/2021_income/nm_supplemental_2021_income_rebate.yaml: 9 passed
policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/taxable_income/deductions/ny_standard_deduction.yaml: 6 passed
policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/exemptions/personal/oh_personal_exemptions_eligible.yaml: 4 passed
policyengine_us/tests/policy/baseline/gov/states/or/tax/income/deductions/standard/or_standard_deduction.yaml: 16 passed
policyengine_us/tests/policy/baseline/gov/states/ut/tax/property/homeowner_renter_relief/ut_homeowner_renter_relief_pre_one_claimant_eligible.yaml: 2 passed
policyengine_us/tests/policy/baseline/gov/states/va/tax/income/credits/low_income_credit/va_low_income_tax_credit_eligible.yaml: 5 passed
policyengine_us/tests/policy/baseline/household/demographic/person/claimable_as_dependent_on_another_return.yaml: 4 passed
policyengine_us/tests/policy/baseline/household/demographic/person/is_dependent_elsewhere_without_filing_exception.yaml: 4 passed
policyengine_us/tests/policy/baseline/household/demographic/tax_unit/every_filer_is_dependent_elsewhere.yaml: 5 passed
policyengine_us/tests/policy/baseline/household/demographic/tax_unit/head_or_spouse_is_dependent_elsewhere.yaml: 6 passed
policyengine_us/tests/policy/baseline/household/demographic/tax_unit/head_or_spouse_is_dependent_elsewhere_without_filing_exception.yaml: 6 passed
policyengine_us/tests/policy/baseline/household/demographic/tax_unit/head_spouse_count_not_dependent_elsewhere.yaml: 6 passed
policyengine_us/tests/policy/contrib/congress/watca.yaml: 47 passed
policyengine_us/tests/policy/contrib/states/ct/hb5114/ct_hb5114.yaml: 17 passed

MaxGhenis and others added 4 commits October 8, 2026 11:03
The federal standard deduction and 17 state formulas read only whether the
tax-unit head is claimed elsewhere, so a joint return where one spouse can be
claimed was taxed differently depending on which spouse was labelled head.
Each formula now applies its jurisdiction's rule for that case (either spouse,
single filers only, per spouse, or only when every filer is claimed), using
two new label-independent helpers. Adds swap-pair YAML cases and a Hypothesis
property test.

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

The New Mexico, Maine and Hawaii renters gates counted filers who are not
claimed elsewhere, so a tax unit with neither a head nor a spouse (252 in
the default dataset) looked like one whose every filer was claimed. A new
helper, every_filer_is_dependent_elsewhere, requires a claimed filer and no
unclaimed one.

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

- Hawaii's dependent standard deduction uses earned income net of the
  deductible part of self-employment tax, as the N-11 worksheet does.
- New Mexico's medical care credit needs a filer who is both 65 or older
  and not a dependent when a filer is a dependent elsewhere (NMSA 7-2-18.13).
- The federal EITC without a qualifying child requires that no filer can be
  claimed as a dependent (IRC 32(c)(1)(A)(ii)(III), Publication 596), so
  Missouri's working family credit no longer reaches such a couple.
- Hawaii's food/excise credit keeps minor children receiving public support
  (HRS 235-55.85(c)) on a joint return where one spouse can be claimed.
- Comments label the readings the law does not settle, and the property
  test covers the EITC and the food/excise exemption amount.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 9, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 3 commits October 9, 2026 10:25
… meaning

- The federal and Oregon dependent worksheets use earned income net of the
  deductible part of self-employment tax, as Hawaii's now does.
- Hawaii's food/excise minor-child count excludes children who can be
  claimed by another taxpayer and the filers themselves (Form N-311 line 3).
- claimed_as_dependent_on_another_return documents what it stands for: a
  §151 deduction for the person is allowable to another taxpayer, so a
  person whose would-be claimer files only for a refund is not one
  (Publications 501 and 596); rules on actually being claimed read it too.
- Hawaii's renters comment labels the mixed joint reading as an inference;
  the Hawaii dependent threshold cites HRS 235-2.4(a)(3) on its page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 9, 2026
MaxGhenis added a commit that referenced this pull request Oct 10, 2026
#10024 now separates three facts: is claimed, can be claimed, and the would-be
claimant's filing exception.

- IRC 152(b)(1) gates (child tax credit, credit for other dependents, under-13
  care child and its expenses, dependents in exemptions_count, ARPA dependents,
  Ohio dependents, the Hawaii and Wisconsin reforms) read
  head_or_spouse_is_dependent_elsewhere_without_filing_exception, so a filer
  within the Publication 501 exception keeps their dependents.
- Own exemptions, recovery rebates and the tuition deduction read claimability.
- Education credits and student loan interest keep reading the claimed input.
- Tests: the filing exception and a filer who can be claimed but is not.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 10, 2026
Dependent rules (child care credit child, certain-dependents deduction) and the
childless EITC read the claimable-and-not-within-the-filing-exception helper;
the "not a dependent of another individual" rules read claimability.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 11, 2026
#10024 now separates claimability (`claimable_as_dependent_on_another_return`)
from an actual claim (`claimed_as_dependent_on_another_return`) and adds the
claimant filing exception. Each rule now reads the fact its law names:
- IRC 152(b)(1) "no dependents" rules (Iowa dependent credit, Kansas
  dependents and food sales tax credit child, Louisiana dependent exemption,
  Maryland dependents, aged dependents and CTC, and the childless pro forma
  EITC) read `head_or_spouse_is_dependent_elsewhere_without_filing_exception`,
  as the federal formulas do.
- Rules whose text says "claimed" read the claim: Iowa's low-income
  exemption and tax reduction ("not claimed as a dependent on another
  person's Iowa return") and Kansas's 2021-2023 zero exemptions ("If you are
  claimed as a dependent").
- Maryland's filing status 6 ("Any person who can be claimed") keeps reading
  claimability for the own exemption and the poverty line credit.
Maryland now counts its own exemptions in `md_personal_exemptions_count`
instead of reading federal `exemptions_count`, so a federal-only reform of
that count no longer changes Maryland's exemptions (review r1 finding 1).
The changelog names the aged dependent AGI limit (r1 finding 2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 11, 2026
#10024 now separates claimability (claimable_as_dependent_on_another_return,
read by head_or_spouse_is_dependent_elsewhere) from an actual claim
(claimed_as_dependent_on_another_return), and the federal branch applies the
Dependent Taxpayer Test (IRC 152(b)(1)) through
head_or_spouse_is_dependent_elsewhere_without_filing_exception. So:

- Dependent counts (RI rebate, SC exemption and under-six deduction, UT
  dependents, birth-year dependent, at-home parent child and contributed
  reform, VT dependent exemptions and CTC, WI homestead $500 deduction) use the
  Dependent Taxpayer Test helper, keeping dependents when the would-be
  claimant meets the filing exception.
- Wisconsin's $250 exemption reads claimability: a filer who can be claimed
  is not "allowed the $700 exemption" even when no one claims them.
- Vermont's renter credit bars a claimant actually claimed (6066(c)(2)).
- Wisconsin's care subtraction and credit read cdcc_qualifying_childcare_expenses,
  so a claimable filer's childcare for a nonqualifying child drops out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 11, 2026
…role-less units

- is_aca_tax_family_member reads claimable_as_dependent_on_another_return
  (#10024's split input: 36B(c)(1)(D) and 1.36B-1(d)(2) turn on being
  claimable, and Form 1040 line 12a, which Form 8962 line 1 keys on, has no
  refund-only carve-out). The return keeps its dependents when the would-be
  claimant meets the refund-only filing exception (Pub 501, Dependent
  Taxpayer Test), a return with no applicable taxpayer has no family, and a
  tax unit with neither a head nor a spouse uses each member's own
  claimability (a lone claimable minor no longer gets the credit).
- aca_magi leaves out the tax-exempt interest and Social Security of the
  return's dependents who are outside the tax family (26 CFR 1.36B-1(e)(1)).
- used_aca_ptc is capped at the coverage family's share of the selected plan
  premium (new aca_ptc_coverage_family_premium; 26 CFR 1.36B-3(d)(1)(i),
  (h)(1)), not the whole policy's premium.
- marketplace_csr_eligible applies 45 CFR 155.305(g)(3): the model prices one
  policy per tax unit, and a policy that also covers an enrollee without
  credit eligibility gets no cost-sharing reductions.
- aca_fpg documents that it sizes the family for the tax year; the NJHPS
  exclusion is labelled an interpretation; one reference per source in
  is_aca_coverage_family_member.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis MaxGhenis closed this Oct 11, 2026
@MaxGhenis MaxGhenis reopened this Oct 11, 2026
@MaxGhenis MaxGhenis closed this Oct 11, 2026
@MaxGhenis MaxGhenis reopened this Oct 11, 2026
MaxGhenis added a commit that referenced this pull request Oct 11, 2026
The repeal reform's personal-exemption overrides counted every head and
spouse, so a filer whom another taxpayer can claim kept a personal
exemption under the reform that the baseline denies once #10024 and the
claimable-filer PRs apply IRC 151(d)(2). Delaware, Hawaii, Nebraska,
Rhode Island, West Virginia and Wisconsin now count
head_spouse_count_not_dependent_elsewhere (West Virginia keeps its $500
exemption for a return on which no filer has one), Virginia's per-person
exemption and Hawaii's aged exemption skip a claimable filer, and
Vermont's count no longer depends on which spouse is labelled head.

Michigan's baseline computes a claimable filer's return outside
mi_personal_exemptions and, when the would-be claimant meets the filing
exception, allows that return's dependents. The reform now overrides
mi_exemptions as well, so those dependent exemptions are repealed too.

California, Kansas, Maryland, Ohio and Oklahoma follow their baselines
in the claimable-filer PRs that changed them. Georgia, Indiana, Iowa,
Kansas from 2024, Kentucky and Massachusetts let a claimable filer keep
the exemption, so their overrides are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 12, 2026
…deduction

When a spouse can be claimed, the Standard Deduction Worksheet for
Dependents limits the joint standard deduction, which PR #10024 adopts.
The case now isolates the per-spouse unearned income test under either
deduction.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Preserve the symmetric NM medical credit age and claimability rule alongside main's federal premium exclusion and NM computed-expense restoration. Retain every original case and add a computed-expense swap pair.
@MaxGhenis MaxGhenis closed this Oct 13, 2026
@MaxGhenis MaxGhenis reopened this Oct 13, 2026
MaxGhenis added a commit that referenced this pull request Oct 14, 2026
…ed as dependents (#10135)

* Apply the unearned income filing test only to filers who can be claimed as dependents

The federal filing requirement tested every tax unit's unearned income
against $500 plus the additional standard deduction. Under 26 U.S.C.
6012(a)(1)(C)(i)(I) and (f)(2)(D) that test applies only to an individual
described in section 63(c)(5), and the amount is the section 63(c)(5)(A)
amount for the year ($1,350 in 2025), not the unindexed $500.

- Apply the test to the head, and on a joint return each spouse, who can be
  claimed as a dependent on another return.
- Read the amount from gov.irs.deductions.standard.dependent.amount and add
  that person's own additional standard deduction for age or blindness.
- Count gross income from every source except wages and self-employment
  income, so a self-employment loss or a tax unit dependent's wages no longer
  change the filer's unearned income.

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

* Add invariant tests and boundary cases for the dependent filing requirement

- Hypothesis properties: split invariance for filers nobody can claim,
  monotonicity in income, claimability never removing the requirement, and
  tax unit dependents' income never mattering.
- A boundary grid checked against Publication 501 (2025), Table 2, computed
  directly from its published amounts, and against
  medicaid_person_is_required_to_file, the other Table 2 implementation.
- Keep the YAML cases a dollar away from the two thresholds where the statute
  and the IRS charts differ at the exact dollar, and say in the formula that
  the joint return test follows Table 2.

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

* Keep the joint return attribution case valid under the limited joint deduction

When a spouse can be claimed, the Standard Deduction Worksheet for
Dependents limits the joint standard deduction, which PR #10024 adopts.
The case now isolates the per-spouse unearned income test under either
deduction.

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

* Keep the 2026 dependent cases off the exact-dollar boundary

Section 6012(a)(1)(A) excuses a filer only when gross income is less than
the basic standard deduction, while Chart B says more than; the 2026
instructions are not yet out.

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

* Address review round 1: earned sources parameter, open points kept out of tests

- Move the earned income sources of the unearned income test into
  gov.irs.income.filing_requirement.dependent.earned_income_sources, citing
  the IRS dependent worksheet, and count Schedule F farm income as earned.
  A test checks that every listed source is a gross income source.
- Stop pinning decision d1395: drop the 2025 case of a claimed spouse aged 65
  at exactly $2,950 and the case of a claimable filer filing separately,
  limit the joint grid to claimed spouses under 65 and not blind, and compare
  with medicaid_person_is_required_to_file only in 2025.
- Start every Hypothesis batch with a unit that must file and one that need
  not, and assert each property has rows to check.
- Drop the duplicate section 6012 reference entry.

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

* Address review round 2: keep separate filers out of the claimability invariant, test farm income

- Property 7 (claimability never removes a requirement) now leaves out
  separate filers as well as blind ones: Table 2 and the statute differ for a
  claimable married dependent filing separately (decision d1395).
- Add a 2025 joint case where a claimed spouse's $2,000 of farm profit is
  earned income; dropping farm income from the earned sources fails it.
- Correct the docstring's claim about what the anchor units guarantee.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 14, 2026
* Apply the unearned income filing test only to filers who can be claimed as dependents

The federal filing requirement tested every tax unit's unearned income
against $500 plus the additional standard deduction. Under 26 U.S.C.
6012(a)(1)(C)(i)(I) and (f)(2)(D) that test applies only to an individual
described in section 63(c)(5), and the amount is the section 63(c)(5)(A)
amount for the year ($1,350 in 2025), not the unindexed $500.

- Apply the test to the head, and on a joint return each spouse, who can be
  claimed as a dependent on another return.
- Read the amount from gov.irs.deductions.standard.dependent.amount and add
  that person's own additional standard deduction for age or blindness.
- Count gross income from every source except wages and self-employment
  income, so a self-employment loss or a tax unit dependent's wages no longer
  change the filer's unearned income.

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

* Add invariant tests and boundary cases for the dependent filing requirement

- Hypothesis properties: split invariance for filers nobody can claim,
  monotonicity in income, claimability never removing the requirement, and
  tax unit dependents' income never mattering.
- A boundary grid checked against Publication 501 (2025), Table 2, computed
  directly from its published amounts, and against
  medicaid_person_is_required_to_file, the other Table 2 implementation.
- Keep the YAML cases a dollar away from the two thresholds where the statute
  and the IRS charts differ at the exact dollar, and say in the formula that
  the joint return test follows Table 2.

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

* Keep the joint return attribution case valid under the limited joint deduction

When a spouse can be claimed, the Standard Deduction Worksheet for
Dependents limits the joint standard deduction, which PR #10024 adopts.
The case now isolates the per-spouse unearned income test under either
deduction.

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

* Keep the 2026 dependent cases off the exact-dollar boundary

Section 6012(a)(1)(A) excuses a filer only when gross income is less than
the basic standard deduction, while Chart B says more than; the 2026
instructions are not yet out.

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

* Address review round 1: earned sources parameter, open points kept out of tests

- Move the earned income sources of the unearned income test into
  gov.irs.income.filing_requirement.dependent.earned_income_sources, citing
  the IRS dependent worksheet, and count Schedule F farm income as earned.
  A test checks that every listed source is a gross income source.
- Stop pinning decision d1395: drop the 2025 case of a claimed spouse aged 65
  at exactly $2,950 and the case of a claimable filer filing separately,
  limit the joint grid to claimed spouses under 65 and not blind, and compare
  with medicaid_person_is_required_to_file only in 2025.
- Start every Hypothesis batch with a unit that must file and one that need
  not, and assert each property has rows to check.
- Drop the duplicate section 6012 reference entry.

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

* Apply the 6012(a)(1) filing requirement from 2026

Section 6012(f) covers only taxable years 2018 through 2025, and
Pub. L. 119-21 does not amend section 6012, so section 6012(a)(1) governs
from 2026. For a tax unit nobody can claim as a dependent, a return is
required when gross income is at least the basic standard deduction plus
one additional standard deduction for each spouse aged 65 or older.
Blindness does not raise the threshold. A new boolean parameter switches
between the two rules by year. Tax units whose head or spouse can be
claimed keep the standard deduction test (decision d1395).

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

* Add property tests for the 6012(a)(1) and 6012(f) filing thresholds

A boundary grid over every filing status and combination of age 65 and
blindness checks the model against both rules computed from the published
2025 and 2026 amounts. Hypothesis properties check blindness, age, the
parameter switch, and that claimable units keep their 2026 result. The
dependent invariants' claimability property now skips the 2026 threshold
dollar, where 6012(a)(1)(A) requires a return and the claimable-filer test
does not (d1395); a pinned test shows the case. The 2025 YAML cases cite
decision d1403.

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

* Count the WFTCA bonus in the 2026 threshold; test without a second system

The WFTCA contributed reform's bonus guaranteed deduction is, in its own
parameter's words, an increase to the basic standard deduction, so it is part
of the 6012(a)(1) threshold (it is zero unless the reform is on). Two
contrib cases pin it.

The property tests no longer build a reformed tax-benefit system, which
held a second parameter tree (about 0.7 GB) in the CI core group, already
at 13.3 GB. Claimable units are now checked against the standard
deduction and unearned income tests directly, and 6012(a)(1) against a
6012(f) reference with the 2026 amounts. Two fixed anchor units keep
every example non-vacuous.

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

* Hold tax-unit roles fixed in the property tests; document the $0 guard

Review round 1 found that the age property could fail for a reason
unrelated to age: with roles left to age order, raising both spouses to 65
can make a younger claimable spouse the head, which limits the joint
standard deduction. Every test unit now supplies its roles, and the
reviewer's counterexample is a fixed anchor. Without the roles the
property fails on that anchor; with them it passes.

The positive gross income guard for a separate filer keeps the model's
existing behaviour. The formula now says why, citing the National
Taxpayer Advocate's account of the zero exemption amount and the IRS's $5
relief; the reading is queued with decision d1403. The section 6012
references are consolidated into one entry.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis merged commit 2e15904 into main Oct 14, 2026
27 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

US + core hub merge audit, us#10024 at 2ddb85235b173ecfbe0d8f469e2adfa3e82981f8 (squash): Make rules for a filer claimed elsewhere independent of which spouse is labelled head.

@MaxGhenis
MaxGhenis deleted the head-dependent-elsewhere-swap branch October 14, 2026 12:48
MaxGhenis added a commit that referenced this pull request Oct 15, 2026
Preserve the stacked branch history and reviewed #10024 changes from main.
Keep the federal-only patch, combining its California CDCC changes with
main's newer implementation and regression cases. Remove the inherited
#10024 changelog fragment already consumed on main.
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