From 9a4b7b7270d06b4cfb117a10305fdfd73b290eca Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Mon, 5 Oct 2026 17:34:35 -0400 Subject: [PATCH 1/3] Use 18% of the federal EITC for the Illinois EIC before 2023 35 ILCS 5/212(b-5), (b-10) and (b-15) extend the credit to childless filers aged 18-24 and 65+ and to ITIN filers only for taxable years beginning on or after January 1, 2023. Fixes #9823. Co-Authored-By: Claude Opus 5.5 --- changelog.d/il-eitc-pre-2023-federal.fixed.md | 1 + .../credits/eitc/expansion_in_effect.yaml | 15 +++ .../states/il/tax/income/credits/il_eitc.yaml | 2 +- .../tax/income/credits/il_eitc_pre_2023.yaml | 121 ++++++++++++++++++ .../states/il/tax/income/credits/il_eitc.py | 9 +- 5 files changed, 144 insertions(+), 4 deletions(-) create mode 100644 changelog.d/il-eitc-pre-2023-federal.fixed.md create mode 100644 policyengine_us/parameters/gov/states/il/tax/income/credits/eitc/expansion_in_effect.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc_pre_2023.yaml 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..2fb018d4be5 --- /dev/null +++ b/changelog.d/il-eitc-pre-2023-federal.fixed.md @@ -0,0 +1 @@ +Limit the Illinois EIC to 18% of the federal EITC before 2023, when the age and ITIN expansion starts. 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..3c79360512e --- /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, when this is true. Before then, the credit is a match of the federal Earned Income Tax Credit. +values: + 2018-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/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 14c1be44cb2..81880a687cd 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..c7e614c3b63 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc_pre_2023.yaml @@ -0,0 +1,121 @@ +- 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 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 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 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 b51831b58bb..bc9e7d0d4c7 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,11 @@ 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 match of the federal credit + # (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) @@ -34,7 +39,6 @@ def formula(tax_unit, period, parameters): ) & 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) ) @@ -46,5 +50,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 From d7ce1afbac6776981fefd4388383abc7301f3e89 Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Thu, 8 Oct 2026 09:32:58 -0400 Subject: [PATCH 2/3] Pin the 2023 IL EIC ITIN expansion boundary with 2022 and 2023 cases Co-Authored-By: Claude Opus 5.5 --- .../tax/income/credits/il_eitc_pre_2023.yaml | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) 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 index c7e614c3b63..118430f00d3 100644 --- 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 @@ -119,3 +119,57 @@ # 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-5) 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 From 6280f440cf4a291370e77e58f2f41c5293b0f862 Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Mon, 26 Oct 2026 07:49:13 -0400 Subject: [PATCH 3/3] Add the 2000-2017 Illinois EIC match rates and pin the 2021 age-65 case - match.yaml now has the full 35 ILCS 5/212(a) schedule: 5% (2000), 7.5% (2012), 10% (2013), 14% (2017), 18% (2018) and 20% (2023), with the statute reference. Before, 18% was extrapolated back from 2021. - expansion_in_effect starts at 2000-01-01: false, and its description uses the "if this is true" form; the note on the earlier credit moves to the il_eitc code comment. - New cases: a 2017 childless filer gets 14% of the federal EITC (53.55), and a 2021 childless filer aged 65 gets 18% through the federal credit under IRC 32(n) (137.70). - The 2023 ITIN case cites 35 ILCS 5/212(b-15), not (b-5). Co-Authored-By: Claude Opus 5.5 --- changelog.d/il-eitc-pre-2023-federal.fixed.md | 2 +- .../credits/eitc/expansion_in_effect.yaml | 4 +- .../il/tax/income/credits/eitc/match.yaml | 10 +++- .../tax/income/credits/il_eitc_pre_2023.yaml | 55 ++++++++++++++++++- .../states/il/tax/income/credits/il_eitc.py | 5 +- 5 files changed, 68 insertions(+), 8 deletions(-) diff --git a/changelog.d/il-eitc-pre-2023-federal.fixed.md b/changelog.d/il-eitc-pre-2023-federal.fixed.md index 2fb018d4be5..1558ef1434f 100644 --- a/changelog.d/il-eitc-pre-2023-federal.fixed.md +++ b/changelog.d/il-eitc-pre-2023-federal.fixed.md @@ -1 +1 @@ -Limit the Illinois EIC to 18% of the federal EITC before 2023, when the age and ITIN expansion starts. +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 index 3c79360512e..a4e2b7edc7d 100644 --- 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 @@ -1,6 +1,6 @@ -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, when this is true. Before then, the credit is a match of the federal Earned Income Tax Credit. +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: - 2018-01-01: false + 2000-01-01: false 2023-01-01: true metadata: unit: bool 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_pre_2023.yaml b/policyengine_us/tests/policy/baseline/gov/states/il/tax/income/credits/il_eitc_pre_2023.yaml index 118430f00d3..d3513efdb08 100644 --- 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 @@ -71,6 +71,33 @@ # 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 @@ -95,6 +122,32 @@ # 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 @@ -170,6 +223,6 @@ members: [head] state_code: IL output: - # From 2023 35 ILCS 5/212(b-5) accepts an ITIN. Childless phase-in 7.65% + # 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 8f59b1143d5..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 @@ -22,8 +22,9 @@ class il_eitc(Variable): 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 match of the federal credit - # (Schedule IL-E/EIC Step 4, lines 5 and 6). + # 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)