Skip to content

Compute a tax-unit dependent's own income tax return #9618

Open

Description

@MaxGhenis

Summary

A person who is a tax-unit dependent contributes no income to any return. irs_gross_income zeroes every income source for dependents:

# policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/irs_gross_income.py
        not_dependent = ~person("is_tax_unit_dependent", period)
        for source in sources:
            # Add positive values only - losses are deducted later.
            total += not_dependent * max_(0, add(person, period, [source]))

Nothing computes the dependent's own return, so a dependent's earnings leave the income tax base. The one path that remains is self-employment: self_employment_tax_ald adds self_employment_tax_ald_person over every member, so the deductible share of a dependent's self-employment tax still lowers the filer's AGI.

Why it matters now

The fix in #9617 honors the tax-unit roles that the certified Populace build supplies. Those roles make 1,161 adults dependents who were spouses under age ordering, most of them students aged 18–23. On that build this takes $35.9B out of 2024 AGI. The roles are right; the missing return is the gap.

Example (policyengine-us at #9617, TX, 2024)

A parent aged 50 with $60,000 of wages and a 21-year-old full-time student with $27,000 of wages:

Setup Filing status AGI Income tax
Age ordering (student becomes the spouse) JOINT $87,000 $6,472
Supplied roles (student is a dependent) HEAD_OF_HOUSEHOLD $60,000 $3,741
The student alone, claimed_as_dependent_on_another_return: true SINGLE $27,000 $1,256

The model can already compute the dependent's own return (last row) when the dependent is its own unit. It does not do so for a dependent inside the claimant's unit, so the modelled total is $3,741 rather than $3,741 + $1,256.

Options

  1. Compute a dependent's own liability inside the claimant's unit (a person-level "dependent's own return" with the dependent standard deduction, and the kiddie tax where it applies) and add it to the unit's or household's tax.
  2. Have the dataset producer emit a separate filing unit for each dependent who must file, with claimed_as_dependent_on_another_return. That changes the unit structure every consumer sees.

🤖 Generated with Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions