Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
1f0cd1b
Make head_is_dependent_elsewhere consumers independent of the head label
MaxGhenis Oct 8, 2026
3ecc675
Keep tax units without a filer eligible where only claimed filers are…
MaxGhenis Oct 9, 2026
8da8312
Address review: Hawaii worksheet earnings, NM same-filer age, childle…
MaxGhenis Oct 9, 2026
e838623
Allow a cent of rounding in the Hawaii self-employed joint pair
MaxGhenis Oct 9, 2026
41fb4a5
Address review round 2: worksheet earnings, minors' own status, input…
MaxGhenis Oct 9, 2026
527d47f
Merge remote-tracking branch 'upstream/main' into head-dependent-else…
MaxGhenis Oct 9, 2026
436805e
Merge the Hawaii deductions references after syncing main
MaxGhenis Oct 9, 2026
23c6229
Apply the federal rules for a filer who can be claimed as a dependent
MaxGhenis Oct 9, 2026
f3467ae
Apply IA, KS, LA and MD rules for a filer who can be claimed as a dep…
MaxGhenis Oct 10, 2026
704a604
Limit Maryland's aged dependent exemption by federal AGI
MaxGhenis Oct 10, 2026
4597c55
Address the federal claimable-filer review
MaxGhenis Oct 10, 2026
e4b8f36
Separate dependency facts and fix Hawaii qualified-person counts
MaxGhenis Oct 10, 2026
c7f969f
Clarify claimability outside the current tax unit
MaxGhenis Oct 10, 2026
4c8ed81
Merge commit 'c7f969f872' into claimable-filer-federal
MaxGhenis Oct 10, 2026
3f88702
Read the split dependency inputs from #10024
MaxGhenis Oct 10, 2026
b2771d2
Follow the corrected exemption count in three Hawaii credits
MaxGhenis Oct 10, 2026
163fcd4
Address the second federal claimable-filer review
MaxGhenis Oct 10, 2026
3d0864f
Address the third federal claimable-filer review
MaxGhenis Oct 10, 2026
35a2cbc
Give the spouse without an SSN a card type in the recovery rebate test
MaxGhenis Oct 10, 2026
795cb43
Merge remote-tracking branch 'upstream/claimable-filer-federal' into …
MaxGhenis Oct 11, 2026
61275e9
Read the split dependency inputs in the IA, KS, LA and MD rules
MaxGhenis Oct 11, 2026
5459eee
Test the split inputs, the filing exception and the unchanged case
MaxGhenis Oct 11, 2026
18240a3
Merge main after federal claimable-filer squash merge (#10045)
MaxGhenis Oct 16, 2026
228b34a
Merge main to finish claimable-filer verification
MaxGhenis Oct 16, 2026
0af443e
Merge remote-tracking branch 'gh/main' into claimable-filer-ia-ks-ky-…
MaxGhenis Oct 16, 2026
d151671
Clarify Iowa claimed-filer exemption descriptions (#10045)
MaxGhenis Oct 16, 2026
594045e
Test Maryland exemption independence from federal repeal (#10045)
MaxGhenis Oct 16, 2026
5e4bd89
Merge main into claimable filer state fixes
MaxGhenis Oct 18, 2026
e72137e
Merge remote-tracking branch 'gh/main' into claimable-filer-ia-ks-ky-…
MaxGhenis Oct 18, 2026
f9f707b
Use taxable wages for Maryland poverty credit earned income
MaxGhenis Oct 19, 2026
2608e69
Respect actual claims in Kansas consolidated exemption reforms
MaxGhenis Oct 19, 2026
e0eaf47
Complete Kansas joint-filer credit coverage and Iowa citation
MaxGhenis Oct 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/claimable-filer-ia-ks-ky-la-md.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Apply Iowa, Kansas, Louisiana and Maryland rules for a filer who can be claimed as a dependent: no dependent exemptions or credits on a return with a claimable filer outside the claimant filing exception (Iowa dependent credit, Kansas dependent exemption and food sales tax credit child, Louisiana dependent exemption, Maryland dependent and aged-dependent exemptions and child tax credit); a claimed Iowa filer gets the low-income exemption only as a single filer with income below $5,000, and no tax reduction; a claimed Kansas filer has no exemptions in 2021-2023; a Maryland filer who can be claimed gets no personal exemption, poverty line credit or childless EITC, and the poverty line credit stays for a spouse who cannot be claimed. Also limit Maryland's aged dependent exemption by federal AGI under Tax-General 10-211(c), as for the personal exemption. Use federal taxable wages, net of pretax payroll contributions, for each spouse's Maryland poverty line credit earned income. Prevent negative Kansas exemptions in the dependent exemption reform for actually claimed filers with the claimant filing exception in the consolidated regime.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
description: Iowa exempts a single filer who is claimed as a dependent on another return from income tax when that filer's income is below this amount.
values:
2021-01-01: 5_000

metadata:
label: Iowa tax exemption income limit for single filers claimed as dependents
period: year
unit: currency-USD
reference:
- title: Iowa Code 422.13(1)(a), filing requirement for a claimed dependent
href: https://www.legis.iowa.gov/docs/code/2026/422.pdf#page=46
- title: 2021 IA1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/2650/download?inline#page=38
- title: 2022 IA1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/2721/download?inline#page=37
- title: 2023 IA 1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/2811/download?inline#page=12
- title: 2024 IA 1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/4152/download?inline#page=10
- title: 2025 IA 1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/4435/download?inline#page=11
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
description: Iowa compares this income of a single filer who can be claimed as a dependent on another return with the dependent tax exemption limit.
values:
# Net income from all sources, IA 1040 line 26.
2021-01-01:
- ia_net_income
# Iowa taxable income, IA 1040 line 4, without adding back deductions.
2023-01-01:
- ia_taxable_income_consolidated

metadata:
unit: list
period: year
label: Iowa tax exemption income sources for single filers claimed as dependents
reference:
- title: 2021 IA1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/2650/download?inline#page=38
- title: 2022 IA1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/2721/download?inline#page=37
- title: 2023 IA 1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/2811/download?inline#page=12
- title: 2024 IA 1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/4152/download?inline#page=10
- title: 2025 IA 1040 Income Tax Return instructions
href: https://revenue.iowa.gov/media/4435/download?inline#page=11
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,13 @@ class md_total_personal_exemptions(Variable):
defined_for = StateCode.MD

def formula(tax_unit, period, parameters):
# Get md_personal_exemption from tax_unit multiplied by tax_unit_size
# Only the filers' own exemptions remain; a filer who can be
# claimed as a dependent has none (filing status 6).
md_personal_exemption = tax_unit("md_personal_exemption", period)
tax_unit_size = tax_unit("head_spouse_count", period)
return md_personal_exemption * tax_unit_size
own_exemptions = tax_unit(
"head_spouse_count_not_dependent_elsewhere", period
)
return md_personal_exemption * own_exemptions

class mi_personal_exemptions(Variable):
value_type = float
Expand Down Expand Up @@ -351,6 +354,11 @@ def formula(tax_unit, period, parameters):
joint = filing_status == statuses.JOINT
hoh = filing_status == statuses.HEAD_OF_HOUSEHOLD
adults = where(joint | hoh, 2, 1)
# A filer who is claimed as a dependent enters "0" exemptions.
person = tax_unit.members
filer = person("is_tax_unit_head_or_spouse", period)
claimed = person("claimed_as_dependent_on_another_return", period)
adults = where(tax_unit.any(filer & claimed), 0, adults)
return adults * p.consolidated.amount + veterans_exemption_amount

class ma_income_tax_exemption_threshold(Variable):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,12 @@ def formula(tax_unit, period, parameters):
# dependent is age-eligible, matching the baseline count.
person = tax_unit.members
age = person("age", period)
is_dependent = person("is_tax_unit_dependent", period)
# A return on which the filer (or, if joint, either spouse) can be
# claimed as a dependent has no dependents (IRC 152(b)(1)), unless
# the would-be claimant meets the filing exception (Publication 501).
is_dependent = person("is_tax_unit_dependent", period) & ~person.tax_unit(
"head_or_spouse_is_dependent_elsewhere_without_filing_exception", period
)
if c.age_limit.in_effect:
eligible = is_dependent & (age < c.age_limit.threshold)
else:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,21 @@ def formula(tax_unit, period, parameters):

person = tax_unit.members
age = person("age", period)
# A return on which the filer (or, if joint, either spouse) can be
# claimed as a dependent has no dependents (IRC 152(b)(1)), unless
# the would-be claimant meets the filing exception (Publication 501).
no_dependents = tax_unit(
"head_or_spouse_is_dependent_elsewhere_without_filing_exception", period
)
state_exemptions = parameters(period).gov.states.ks.tax.income.exemptions
if not state_exemptions.by_filing_status.in_effect:
# The consolidated regime's Total Kansas exemptions are zero
# when a filer is actually claimed, even with the federal
# filing exception. Match ks_count_exemptions so subtracting
# this count cannot leave negative personal exemptions.
filer = person("is_tax_unit_head_or_spouse", period)
claimed = person("claimed_as_dependent_on_another_return", period)
no_dependents = no_dependents | tax_unit.any(filer & claimed)
is_dependent = person("is_tax_unit_dependent", period)

# Apply age limit if in effect.
Expand All @@ -24,7 +39,7 @@ def formula(tax_unit, period, parameters):
else:
eligible_dependents = is_dependent

return tax_unit.sum(eligible_dependents)
return where(no_dependents, 0, tax_unit.sum(eligible_dependents))

class ks_dependent_exemption(Variable):
value_type = float
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,12 @@ def formula(tax_unit, period, parameters):
p = parameters(period).gov.contrib.states.md.dependent_exemption
person = tax_unit.members
age = person("age", period)
is_dependent = person("is_tax_unit_dependent", period)
# A return on which the filer (or, if joint, either spouse) can be
# claimed as a dependent has no dependents (IRC 152(b)(1)), unless
# the would-be claimant meets the filing exception (Publication 501).
is_dependent = person("is_tax_unit_dependent", period) & ~person.tax_unit(
"head_or_spouse_is_dependent_elsewhere_without_filing_exception", period
)
if p.age_limit.in_effect:
eligible = is_dependent & (age < p.age_limit.threshold)
else:
Expand Down Expand Up @@ -97,7 +102,12 @@ class md_older_dependents_count(Variable):

def formula(tax_unit, period, parameters):
person = tax_unit.members
is_dependent = person("is_tax_unit_dependent", period)
# A return on which the filer (or, if joint, either spouse) can be
# claimed as a dependent has no dependents (IRC 152(b)(1)), unless
# the would-be claimant meets the filing exception (Publication 501).
is_dependent = person("is_tax_unit_dependent", period) & ~person.tax_unit(
"head_or_spouse_is_dependent_elsewhere_without_filing_exception", period
)
total_dependents = tax_unit.sum(is_dependent)
eligible = tax_unit("md_eligible_dependents_count", period)
return max_(0, total_dependents - eligible)
Expand All @@ -112,12 +122,15 @@ class md_total_personal_exemptions(Variable):

def formula(tax_unit, period, parameters):
# Personal portion keeps the baseline per-person (AGI-stepped)
# amount; dependents are separated out.
# amount; dependents are separated out. These are the filers' own
# exemptions (none for a filer who can be claimed as a dependent)
# plus over-age dependents.
per_person = tax_unit("md_personal_exemption", period)
tax_unit_size = tax_unit("tax_unit_size", period)
dependents = tax_unit("tax_unit_dependents", period)
own_exemptions = tax_unit(
"head_spouse_count_not_dependent_elsewhere", period
)
older_dependents = tax_unit("md_older_dependents_count", period)
personal_count = tax_unit_size - dependents + older_dependents
personal_count = own_exemptions + older_dependents
personal_amount = personal_count * per_person

dependent_exemption_amount = tax_unit("md_dependent_exemption", period)
Expand Down
Loading