Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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/il-rebate-negative-agi.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Give the Illinois 2021 income tax rebate base amount to filers with negative federal AGI.
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,33 @@
tax_unit_dependents: 0
output:
il_income_tax_rebate: 50

- name: Single with negative AGI gets the base rebate
period: 2021
input:
adjusted_gross_income: -2_000
filing_status: SINGLE
state_code: IL
tax_unit_dependents: 0
output:
il_income_tax_rebate: 50

- name: Single with negative AGI and one dependent
period: 2021
input:
adjusted_gross_income: -2_000
filing_status: SINGLE
state_code: IL
tax_unit_dependents: 1
output:
il_income_tax_rebate: 150

- name: Joint with negative AGI and two dependents
period: 2021
input:
adjusted_gross_income: -500_000
tax_unit_is_joint: true
state_code: IL
tax_unit_dependents: 2
output:
il_income_tax_rebate: 300
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,14 @@ class il_income_tax_rebate(Variable):
def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.il.tax.income.credits.income_tax_rebate
federal_agi = tax_unit("adjusted_gross_income", period)
# Section 212.1(a) sets only an upper AGI limit, so a negative AGI
# receives the full base amount; the scales start at zero.
scale_agi = max_(federal_agi, 0)
joint = tax_unit("tax_unit_is_joint", period)
base_amount = where(
joint,
p.amount.joint.calc(federal_agi),
p.amount.other.calc(federal_agi),
p.amount.joint.calc(scale_agi),
p.amount.other.calc(scale_agi),
)
dependent_count = tax_unit("tax_unit_dependents", period)
capped_dependents = min_(dependent_count, p.max_dependents)
Expand Down
Loading