Skip to content

AL, AR, MS and NJ add tax unit dependents' income to the filer's state income (Iowa net income too), although federal AGI leaves it out #9814

Open

Description

@PavelMakarchuk

Summary

irs_gross_income multiplies every source by ~is_tax_unit_dependent, so a dependent's income never enters the filer's federal AGI. The dependent reports it on their own return. A child's interest and dividends reach a parent's federal return only through the Form 8814 election (26 USC 1(g)(7)), which the model does not implement (see the net_investment_income documentation added in #9784).

The state income definitions of five states do the opposite. They add every tax unit member's income, dependents included, to the filer's state income:

State Variable on main How a dependent's income gets in
AL al_agi (TaxUnit) adds = "gov.states.al.tax.income.agi.gross_income_sources" sums the person-level sources over every member
AR ar_agi_indiv, ar_agi_joint (Person) explicit block: "allocate any dependent gross income to tax unit head"
IA ia_net_income (Person) explicit block: "allocate any dependent net_income to tax unit head"
MS ms_agi (Person) explicit block: "Allocate income from dependents to tax unit head."
NJ nj_gross_income → nj_total_income (Person) → nj_agi (TaxUnit) nj_agi uses add(tax_unit, period, ["nj_total_income"]) over every member

This applies to all of a dependent's income in these lists (wages, interest, dividends, pensions and so on), not only investment income. The PRD comparison found it through interest and dividends.

For Iowa, the tax from 2023 starts from federal taxable income (ia_taxable_income_consolidated), so the dependent's income does not change ia_income_tax in 2023 and later in the cases below. It still changes ia_net_income (Iowa's entry in state_agi) and the tax for 2022 and earlier.

What the state returns say

  • Arkansas. 2025 AR1000F/AR1000NR instructions, printed page 11, "Income": the return has a column for the primary's income and a column for the spouse's income, and for other filing statuses "write all income in column A only". No line adds a dependent's income.
  • Mississippi. 2024 Form 80-100 instructions, printed page 3, "Filing requirements": minor resident taxpayers file their own return when their gross income exceeds the personal exemption plus the standard deduction. Income goes in Column A (Taxpayer) and Column B (Spouse).
  • New Jersey. 2025 NJ-1040 instructions, page 3: anyone whose gross income is over the filing threshold ($10,000 single, $20,000 head of household) must file, with no exception for dependents. Worksheet L refers to "dependents who do not file a New Jersey tax return", that is, dependents can file their own return.
  • Alabama, Iowa. Sources not cited here.

Reproduction

from policyengine_us import Simulation

YEAR = 2025
STATE_INCOME = {"AL": "al_agi", "AR": "ar_agi_indiv", "IA": "ia_net_income",
                "MS": "ms_agi", "NJ": "nj_agi", "GA": "ga_agi"}


def situation(state, child_income):
    return {
        "people": {
            "parent": {"age": {YEAR: 40}, "employment_income": {YEAR: 40_000}},
            "child": {"age": {YEAR: 16}, **{k: {YEAR: v} for k, v in child_income.items()}},
        },
        "tax_units": {"tu": {"members": ["parent", "child"]}},
        "households": {"hh": {"members": ["parent", "child"], "state_name": {YEAR: state}}},
    }


for state, income_var in STATE_INCOME.items():
    for child_income in ({}, {"taxable_interest_income": 8_000}, {"employment_income": 5_000}):
        sim = Simulation(situation=situation(state, child_income))
        print(state, child_income,
              "federal AGI", sim.calculate("adjusted_gross_income", YEAR)[0],
              income_var, sim.calculate(income_var, YEAR).sum(),
              "state income tax", round(float(sim.calculate("state_income_tax", YEAR)[0]), 2))

A single parent with $40,000 of wages and one dependent child aged 16, TY2025. Federal AGI is $40,000 in every row. The expected state income and tax are the values in the "child has no income" row, because the child's income belongs on the child's own return.

State State income variable Child has no income Child has $8,000 interest Child has $5,000 wages
AL al_agi / tax 40,000 / 1,607.00 48,000 / 2,007.00 45,000 / 1,837.88
AR ar_agi_indiv / tax 40,000 / 956.71 48,000 / 1,268.71 45,000 / 1,151.71
IA ia_net_income / tax 40,000 / 252.15 48,000 / 252.15 45,000 / 252.15
MS ms_agi / tax 40,000 / 752.40 48,000 / 1,104.40 45,000 / 972.40
NJ nj_agi / tax 40,000 / −80.68 48,000 / 59.32 45,000 / 6.82
GA (control) ga_agi / tax 40,000 / 1,245.60 40,000 / 1,245.60 40,000 / 1,245.60

With YEAR = 2022, the Iowa tax also changes: 1,332.05 with no child income, 1,830.64 with $8,000 of child interest, and 1,643.14 with $5,000 of child wages.

These values are from policyengine-us 2.25.2 (the latest PyPI release on 2026-10-05). Version 1.811.2 (45d51ef5d4) gives the same values, except that the Arkansas tax is $0.04 lower in each row. The formulas listed above are unchanged on main at 4613f8c792.

Files on main

  • policyengine_us/variables/gov/states/al/tax/income/al_agi.py and policyengine_us/parameters/gov/states/al/tax/income/agi/gross_income_sources.yaml
  • policyengine_us/variables/gov/states/ar/tax/income/ar_agi_indiv.py, policyengine_us/variables/gov/states/ar/tax/income/ar_agi_joint.py
  • policyengine_us/variables/gov/states/ia/tax/income/net_income/ia_net_income.py
  • policyengine_us/variables/gov/states/ms/tax/income/ms_agi.py
  • policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_gross_income.py, nj_total_income.py, nj_agi.py

Possible fix

Sum the person-level sources over the head and spouse only, as irs_gross_income does:

  1. al_agi: replace the adds with a formula that uses tax_unit_non_dep_add (added in Leave dependents' investment income out of the filer's NIIT base #9784) for the gross income sources.
  2. ar_agi_indiv, ar_agi_joint, ia_net_income, ms_agi: remove the "allocate dependent income to the head" blocks and return 0 for dependents.
  3. NJ: mask dependents in nj_gross_income (or sum nj_total_income over non-dependents in nj_agi).
  4. Add one test per state with a dependent who has income, and a control in which only the head has income.

Related: #9699 lists this gap under "Not in this PR" ("AL, AR, MS and NJ count dependents' income in state gross income"). Its invariant grid found the remaining differences in AL, AR, IA (AGI only), MS, NJ and OK; the OK case is ok_gross_income in the sales tax relief credit, which is not covered here. Also related: #9784 (NIIT base), #9646 / #9647 (dependents' losses), #9579 (dependents' SALT refunds), #9635 (EITC investment income test).

Found by the PRD comparison (PolicyEngine/prd-comparison case-level explanations, cause state_tax.dependent_investment_income): 16 CPS tax units, with a $639K total gap.

🤖 Generated with Claude Code

Activity

  1. MaxGhenis commented on Oct 6, 2026

    @MaxGhenis
    Contributor

    Alabama sources for the AL row, and a fix in #9943:

    • Ala. Code § 40-18-2(a)(1) taxes "Every individual residing in the State of Alabama".
    • § 40-18-27(a) requires "Every taxpayer" over the threshold to file "a return stating specifically the items of gross income".
    • Ala. Admin. Code r. 810-3-27-.01(1)(b)1 lets only "A husband and wife" file "a joint return reporting their combined income and deductions".
    • r. 810-3-14-.01(7) points "the income of minors" to § 40-18-27, where (1)(d) has a guardian file the minor's own return.
    • The 2025 Form 40 booklet, PDF p. 5 says "Dependents who are residents of Alabama must file a return if they meet the requirements". The same paragraph is in every booklet from 2007 through 2025.
    • No pooling authority. I found nothing in Title 40, the 285 rules of ch. 810-3, or the booklets that puts a dependent's income on a parent's return or allows a Form 8814-style election.

    The reproduction above on the #9943 branch (TY2025, AL):

    Child income al_agi AL tax
    none 40,000 1,607.00
    interest 8,000 40,000 1,607.00
    wages 5,000 40,000 1,587.88

    The remaining $19.12 with child wages is a separate leak, #9941. The parent itemizes, and Alabama's itemized deduction for FICA adds the child's $382.50. That is 5% × 382.50.

    #9943 also pays the $1,000 dependent exemption at AGI of exactly $20,000 or $50,000, as § 40-18-19(a)(9) says ("equal to or less than"). That leaves AR, IA, MS and NJ open here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions