diff --git a/changelog.d/il-eitc-pre-2023-federal.fixed.md b/changelog.d/il-eitc-pre-2023-federal.fixed.md new file mode 100644 index 00000000000..1558ef1434f --- /dev/null +++ b/changelog.d/il-eitc-pre-2023-federal.fixed.md @@ -0,0 +1 @@ +Base the Illinois EIC on the federal EITC alone before 2023, when the age and ITIN expansion starts, and add the 35 ILCS 5/212(a) match rates for 2000 to 2017 (5%, 7.5%, 10% and 14%). diff --git a/policyengine_us/parameters/gov/states/il/tax/income/credits/eitc/expansion_in_effect.yaml b/policyengine_us/parameters/gov/states/il/tax/income/credits/eitc/expansion_in_effect.yaml new file mode 100644 index 00000000000..a4e2b7edc7d --- /dev/null +++ b/policyengine_us/parameters/gov/states/il/tax/income/credits/eitc/expansion_in_effect.yaml @@ -0,0 +1,15 @@ +description: Illinois extends its Earned Income Tax Credit to filers without a qualifying child aged 18 to 24 or 65 or older, and to ITIN filers, if this is true. +values: + 2000-01-01: false + 2023-01-01: true +metadata: + unit: bool + period: year + label: Illinois EITC expanded eligibility in effect + reference: + - title: 35 ILCS 5/212(b-5), (b-10), (b-15) - for taxable years beginning on or after January 1, 2023 + href: https://www.ilga.gov/legislation/ilcs/fulltext.asp?DocName=003500050K212 + - title: Illinois Department of Revenue 2022 Schedule IL-E/EIC - you must have claimed the federal Earned Income Credit + href: https://taxarchive.illinois.gov/content/dam/soi/en/web/taxarchive/forms/income-tax/2022/individual/il-1040-schedule-il-e-eic.pdf#page=1 + - title: Illinois Department of Revenue 2023 Schedule IL-E/EIC - New for 2023, Illinois Expanded EITC Worksheet + href: https://taxarchive.illinois.gov/content/dam/soi/en/web/taxarchive/forms/income-tax/2023/individual/il-1040-schedule-il-e-eic.pdf#page=1 diff --git a/policyengine_us/parameters/gov/states/il/tax/income/credits/eitc/match.yaml b/policyengine_us/parameters/gov/states/il/tax/income/credits/eitc/match.yaml index ef91c0ad708..00bf141c277 100644 --- a/policyengine_us/parameters/gov/states/il/tax/income/credits/eitc/match.yaml +++ b/policyengine_us/parameters/gov/states/il/tax/income/credits/eitc/match.yaml @@ -1,12 +1,18 @@ description: Illinois matches this fraction of the federal Earned Income Tax Credit. values: - 2021-01-01: 0.18 - 2023-01-01: 0.20 + 2000-01-01: 0.05 + 2012-01-01: 0.075 + 2013-01-01: 0.1 + 2017-01-01: 0.14 + 2018-01-01: 0.18 + 2023-01-01: 0.2 metadata: unit: /1 period: year label: Illinois EITC match reference: + - title: 35 ILCS 5/212(a) + href: https://www.ilga.gov/Documents/legislation/ilcs/documents/003500050K212.htm - title: Illinois Department of Revenue 2021 Schedule IL-E/EIC href: https://taxarchive.illinois.gov/content/dam/soi/en/web/taxarchive/forms/income-tax/2021/individual/il-1040-schedule-il-e-eic.pdf#page=2 - title: Illinois Department of Revenue 2022 Schedule IL-E/EIC diff --git a/policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc.yaml b/policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc.yaml index d43f6df3d5d..b624c2f02e7 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc.yaml @@ -12,7 +12,7 @@ tax_units: tax_unit: members: [head, child] - filer_adjusted_earnings: 2_941.176470588235 + eitc_earned_income: 2_941.176470588235 adjusted_gross_income: 2_941.176470588235 households: household: diff --git a/policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc_pre_2023.yaml b/policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc_pre_2023.yaml new file mode 100644 index 00000000000..d3513efdb08 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc_pre_2023.yaml @@ -0,0 +1,228 @@ +- name: Childless filer aged 18 in 2021 gets no IL EIC (federal EITC is 0) + period: 2021 + absolute_error_margin: 0.01 + input: + people: + head: + age: 18 + employment_income: 5_000 + is_tax_unit_head: true + tax_units: + tax_unit: + members: [head] + filing_status: SINGLE + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IL + output: + # The 2021 federal minimum age for a childless filer is 19, so the federal + # EITC is 0 and Schedule IL-E/EIC line 6 is 18% of 0. + il_eitc: 0 + +- name: Childless filer aged 24 in 2022 gets no IL EIC (federal EITC is 0) + period: 2022 + absolute_error_margin: 0.01 + input: + people: + head: + age: 24 + employment_income: 5_000 + is_tax_unit_head: true + tax_units: + tax_unit: + members: [head] + filing_status: SINGLE + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IL + output: + # The 18-24 expansion in 35 ILCS 5/212(b-5) starts in 2023. + il_eitc: 0 + +- name: Childless filer aged 65 in 2022 gets no IL EIC (federal EITC is 0) + period: 2022 + absolute_error_margin: 0.01 + input: + people: + head: + age: 65 + employment_income: 5_000 + is_tax_unit_head: true + tax_units: + tax_unit: + members: [head] + filing_status: SINGLE + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IL + output: + # The 65+ expansion in 35 ILCS 5/212(b-10) starts in 2023. + il_eitc: 0 + +- name: Childless filer aged 65 in 2021 gets 18% of the federal EITC + period: 2021 + absolute_error_margin: 0.01 + input: + people: + head: + age: 65 + employment_income: 5_000 + is_tax_unit_head: true + tax_units: + tax_unit: + members: [head] + filing_status: SINGLE + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IL + output: + # IRC 32(n)(2) drops the federal maximum age for 2021 and 32(n)(3) sets + # the childless phase-in rate at 15.3%: 15.3% x 5,000 = 765 (below the + # 32(n)(4) $9,820 earned income amount and $11,610 phase-out). The IL EIC + # comes from the federal credit, not 35 ILCS 5/212(b-10): 18% of 765. + il_eitc: 137.7 + +- name: Childless filer aged 40 in 2022 gets 18% of the federal EITC + period: 2022 + absolute_error_margin: 0.01 + input: + people: + head: + age: 40 + employment_income: 5_000 + is_tax_unit_head: true + tax_units: + tax_unit: + members: [head] + filing_status: SINGLE + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IL + output: + # Federal EITC is 7.65% x 5,000 = 382.50; 18% of it is 68.85. + il_eitc: 68.85 + +- name: Childless filer aged 40 in 2017 gets 14% of the federal EITC + period: 2017 + absolute_error_margin: 0.01 + input: + people: + head: + age: 40 + employment_income: 5_000 + is_tax_unit_head: true + tax_units: + tax_unit: + members: [head] + filing_status: SINGLE + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IL + output: + # Rev. Proc. 2016-55: 2017 childless maximum 510, phase-out from 8,340. + # Federal EITC 7.65% x 5,000 = 382.50; 35 ILCS 5/212(a)(iv) gives 14% for + # 2017, so 53.55. + il_eitc: 53.55 + +- name: Childless filer aged 70 in 2023 gets the expanded IL EIC + period: 2023 + absolute_error_margin: 0.01 + input: + people: + head: + age: 70 + employment_income: 5_000 + is_tax_unit_head: true + tax_units: + tax_unit: + members: [head] + filing_status: SINGLE + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IL + output: + # 35 ILCS 5/212(b-10): 20% of the credit without the federal age limit, + # 20% x 7.65% x 5,000 = 76.50. + il_eitc: 76.5 + +- name: Childless filer aged 40 with an ITIN in 2022 gets no IL EIC + period: 2022 + absolute_error_margin: 0.01 + input: + people: + head: + age: 40 + employment_income: 5_000 + is_tax_unit_head: true + has_tin: true + ssn_card_type: OTHER_NON_CITIZEN + tax_units: + tax_unit: + members: [head] + filing_status: SINGLE + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IL + output: + # Before 2023 the IL EIC is 18% of the federal EITC, which needs a + # Social Security number (IRC 32(m)), so an ITIN filer gets 0. + il_eitc: 0 + +- name: Childless filer aged 40 with an ITIN in 2023 gets the expanded IL EIC + period: 2023 + absolute_error_margin: 0.01 + input: + people: + head: + age: 40 + employment_income: 5_000 + is_tax_unit_head: true + has_tin: true + ssn_card_type: OTHER_NON_CITIZEN + tax_units: + tax_unit: + members: [head] + filing_status: SINGLE + spm_units: + spm_unit: + members: [head] + households: + household: + members: [head] + state_code: IL + output: + # From 2023 35 ILCS 5/212(b-15) accepts an ITIN. Childless phase-in 7.65% + # of 5,000 = 382.50 (below the 2023 maximum of 600); IL EIC 20% = 76.50. + il_eitc: 76.5 diff --git a/policyengine_us/variables/gov/states/il/tax/income/credits/il_eitc.py b/policyengine_us/variables/gov/states/il/tax/income/credits/il_eitc.py index 6b35fa1328e..0b750caab1c 100644 --- a/policyengine_us/variables/gov/states/il/tax/income/credits/il_eitc.py +++ b/policyengine_us/variables/gov/states/il/tax/income/credits/il_eitc.py @@ -20,6 +20,12 @@ class il_eitc(Variable): defined_for = StateCode.IL def formula(tax_unit, period, parameters): + p = parameters(period).gov.states.il.tax.income.credits.eitc + if not p.expansion_in_effect: + # Before 2023 the IL EIC is a percentage of the federal credit + # allowed, with no age or ITIN route (35 ILCS 5/212(a); Schedule + # IL-E/EIC Step 4, lines 5 and 6). + return tax_unit("eitc", period) * p.match person = tax_unit.members age = person("age", period) has_tin = person("has_tin", period) @@ -29,7 +35,6 @@ def formula(tax_unit, period, parameters): qualifying_child = person("is_eitc_qualifying_child", period) & has_tin child_count = tax_unit.sum(qualifying_child) filer_has_tin = tax_unit.sum(is_head_or_spouse & ~has_tin) == 0 - p = parameters(period).gov.states.il.tax.income.credits.eitc demographic_eligible = (child_count > 0) | tax_unit.any( is_head_or_spouse & (age >= p.childless_min_age) ) @@ -41,5 +46,4 @@ def formula(tax_unit, period, parameters): demographic_eligible, filer_has_tin, ) - match = parameters(period).gov.states.il.tax.income.credits.eitc.match - return state_eitc * match + return state_eitc * p.match