From 8f14d62f3a2b23af886ed9601ce90a84c79bff5e Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Wed, 21 Oct 2026 12:32:18 -0400 Subject: [PATCH 1/2] Base the 2021 New York supplemental EITC payment on the New York EIC ny_supplemental_eitc paid 25% of the federal EITC. Tax Law 606(d)(8) pays 25% of the New York State EIC, and sets a $25 minimum payment. S.8009-C/A.9009-C (Ch. 59, L. 2022), Part NN section 2, adding Tax Law 606(d)(8), bill page 88: > (8) For tax year two thousand twenty-one, the commissioner shall issue > a payment of a supplemental earned income tax credit to resident > taxpayers in the amount of twenty-five percent of the earned income tax > credit calculated and allowed pursuant to this subsection. Such payment > will be allowed to resident taxpayers who timely filed returns pursuant > to section six hundred fifty-one of this article, determined with > regard to extensions pursuant to section six hundred fifty-seven of > this article. Provided, however, that no payment shall be issued if it > is less than twenty-five dollars. "This subsection" is 606(d), the New York State EIC: 30% of the federal EITC "(ii) reduced by the credit permitted under subsection (b)" (the household credit). PE's ny_eitc is that amount (with the 2021 pre-ARPA decoupling), so the payment now reads ny_eitc. NY Tax Department, Additional New York State child and earned income tax payments (archived 2022-10-20): > The payment for the earned income credit (or noncustodial parent > earned income credit) is 25% of the amount of the credit you received > for 2021. The page also limits payments to filers who received "at least $100" of the credit, the same rule as the $25 minimum (25% x $100). Changes: - ny_supplemental_eitc = supplemental_match x ny_eitc, or 0 when that payment is less than the new supplemental_minimum_payment ($25). - supplemental_match description now names the New York State EIC; the bill page and the Tax Department page are added as references. - Not modeled: the 606(d-1)(9) supplemental payment on the noncustodial parent (enhanced) EIC, because PE-US does not model the 606(d-1) credit. Example (PolicyEngine/policyengine-taxsim#1185), 2021 head of household, one child, wages $24,097.71: - Federal EITC: 3,618 - 0.1598 x (24,097.71 - 19,520) = 2,886.48 (TAXSIM v25: 2,886.48). - NY EIC: 0.30 x 2,886.48 - $60 household credit = 805.94 (TAXSIM v39: 805.94). - Payment: 0.25 x 805.94 = 201.49. The old formula gave 0.25 x 2,886.48 = 721.62. Changed existing tests (ny_supplemental_eitc.yaml): - "Supplemental EITC is 25% in 2021" (eitc: 100 -> 25) set the federal EITC as input, which the law does not use. It is replaced with ny_eitc inputs: $300 -> $75 (the Tax Department's own example), $100 -> $25, and $99 -> $0 (payment below $25). - "Supplemental EITC is 0% in 2022" now sets ny_eitc instead of eitc; the expected value stays 0. New tests: the #1185 household (201.49), a 2021 childless filer aged 22 with a $1,224 federal EITC but no NY EIC (0), and 2018, 2020 and 2022 (0). Co-Authored-By: Claude Opus 5.5 --- .../ny-supplemental-eitc-state-base.fixed.md | 1 + .../credits/eitc/supplemental_match.yaml | 6 +- .../eitc/supplemental_minimum_payment.yaml | 14 ++ .../income/credits/ny_supplemental_eitc.yaml | 133 +++++++++++++++++- .../income/credits/ny_supplemental_eitc.py | 21 ++- 5 files changed, 165 insertions(+), 10 deletions(-) create mode 100644 changelog.d/ny-supplemental-eitc-state-base.fixed.md create mode 100644 policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_minimum_payment.yaml diff --git a/changelog.d/ny-supplemental-eitc-state-base.fixed.md b/changelog.d/ny-supplemental-eitc-state-base.fixed.md new file mode 100644 index 00000000000..5debfe6ff65 --- /dev/null +++ b/changelog.d/ny-supplemental-eitc-state-base.fixed.md @@ -0,0 +1 @@ +Base the 2021 New York supplemental EITC payment on the New York State EIC instead of the federal EITC, and apply the $25 minimum payment. diff --git a/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_match.yaml b/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_match.yaml index d5d294d452f..f2d84a1dd08 100644 --- a/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_match.yaml +++ b/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_match.yaml @@ -1,4 +1,4 @@ -description: New York matches this fraction of the federal earned income tax credit in its supplemental EITC. +description: New York pays this fraction of the New York State earned income tax credit as a supplemental earned income tax credit payment. values: 2019-01-01: 0 2021-01-01: 0.25 @@ -10,6 +10,10 @@ metadata: reference: - title: Section 606 Credits against tax (d)(8) href: https://www.nysenate.gov/legislation/laws/TAX/606 # (d)(8) + - title: S.8009-C/A.9009-C (Chapter 59 of the Laws of 2022), Part NN section 2 + href: https://legislation.nysenate.gov/pdf/bills/2021/S8009C#page=88 + - title: NY Tax Department, Additional New York State child and earned income tax payments + href: https://web.archive.org/web/20221020033542/https://www.tax.ny.gov/pit/child-earned-payments.htm - title: New York Instructions for Form IT-201 Line 65 href: https://www.tax.ny.gov/forms/html-instructions/2023/it/it201i-2023.htm#step-8 - title: 2025 Form IT-201-I Instructions diff --git a/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_minimum_payment.yaml b/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_minimum_payment.yaml new file mode 100644 index 00000000000..ac9619e3668 --- /dev/null +++ b/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_minimum_payment.yaml @@ -0,0 +1,14 @@ +description: New York does not issue a supplemental earned income tax credit payment below this amount. +values: + 2021-01-01: 25 +metadata: + unit: currency-USD + period: year + label: New York supplemental EITC minimum payment + reference: + - title: Section 606 Credits against tax (d)(8) + href: https://www.nysenate.gov/legislation/laws/TAX/606 # (d)(8) + - title: S.8009-C/A.9009-C (Chapter 59 of the Laws of 2022), Part NN section 2 + href: https://legislation.nysenate.gov/pdf/bills/2021/S8009C#page=88 + - title: NY Tax Department, Additional New York State child and earned income tax payments + href: https://web.archive.org/web/20221020033542/https://www.tax.ny.gov/pit/child-earned-payments.htm diff --git a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/credits/ny_supplemental_eitc.yaml b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/credits/ny_supplemental_eitc.yaml index 04794537e88..b797b7c555d 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/credits/ny_supplemental_eitc.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/credits/ny_supplemental_eitc.yaml @@ -1,15 +1,140 @@ -- name: Supplemental EITC is 25% in 2021 +# Tax Law 606(d)(8), added by Ch. 59 L. 2022 Part NN section 2 (S.8009-C, +# page 88): "For tax year two thousand twenty-one, the commissioner shall +# issue a payment of a supplemental earned income tax credit to resident +# taxpayers in the amount of twenty-five percent of the earned income tax +# credit calculated and allowed pursuant to this subsection. ... Provided, +# however, that no payment shall be issued if it is less than twenty-five +# dollars." +# The NY Tax Department states the same rule as "at least $100" of credit +# (25% x $100 = $25). + +- name: 2021 payment is 25% of the New York State EIC + # Tax Department example: line 65 of $300 x 0.25 = $75. + period: 2021 + input: + state_code: NY + ny_eitc: 300 + output: + ny_supplemental_eitc: 75 + +- name: 2021 payment of exactly $25 is issued + # 25% x $100 = $25, not "less than twenty-five dollars". period: 2021 input: - eitc: 100 state_code: NY + ny_eitc: 100 output: ny_supplemental_eitc: 25 -- name: Supplemental EITC is 0% in 2022 +- name: 2021 payment below $25 is not issued + # 25% x $99 = $24.75 < $25. + period: 2021 + input: + state_code: NY + ny_eitc: 99 + output: + ny_supplemental_eitc: 0 + +- name: 2021 payment ignores the federal EITC + # The base is the New York State EIC, not the federal EITC. + period: 2021 + input: + state_code: NY + eitc: 1_000 + ny_eitc: 0 + output: + ny_supplemental_eitc: 0 + +- name: No payment in 2020 + period: 2020 + input: + state_code: NY + ny_eitc: 805.94 + output: + ny_supplemental_eitc: 0 + +- name: No payment in 2022 period: 2022 input: - eitc: 100 state_code: NY + ny_eitc: 805.94 + output: + ny_supplemental_eitc: 0 + +- name: No payment in 2018 + # supplemental_match's first entry (0 in 2019) is backdated to 2015. + period: 2018 + input: + state_code: NY + ny_eitc: 805.94 + output: + ny_supplemental_eitc: 0 + +- name: 2021 head of household with one child (taxsim issue 1185) + # Federal EITC, one qualifying child, 2021 (Rev. Proc. 2020-45 section + # 3.07; ARPA did not change these amounts): max $3,618, phase-out from + # $19,520 at 15.98%. + # 3,618 - 0.1598 x (24,097.71 - 19,520) = 3,618 - 731.52 = 2,886.48 + # (TAXSIM v25: 2,886.48) + # NY EIC, Tax Law 606(d)(1): 30% of the federal EITC, reduced by the + # household credit. 0.30 x 2,886.48 = 865.94. + # Household credit, 606(b)(2)(B), head of household, AGI over $22,000 + # but not over $25,000: $50 plus $10 x (2 exemptions - 1) = $60. The NY + # tax before credits (4% x 11,897.71 = 475.91) exceeds $60. + # 865.94 - 60 = 805.94 (TAXSIM v39: 805.94) + # Payment: 0.25 x 805.94 = 201.49 (25% of the federal EITC would be + # 721.62). + period: 2021 + absolute_error_margin: 0.01 + input: + people: + head: + age: 30 + employment_income: 24_097.71 + child: + age: 10 + tax_units: + tax_unit: + members: [head, child] + spm_units: + spm_unit: + members: [head, child] + households: + household: + members: [head, child] + state_code: NY + output: + eitc: 2_886.48 + ny_household_credit: 60 + ny_eitc: 805.94 + ny_supplemental_eitc: 201.49 + +- name: 2021 childless filer age 22 gets a federal EITC but no payment + # ARPA section 9621 lets a childless filer aged 19 to 24 claim the 2021 + # federal EITC: 15.3% x 8,000 = 1,224 (below the $9,820 earned income + # amount and the $11,610 phase-out start). + # New York decoupled from ARPA for 2021 (Tax Law 607(a); 2021 IT-215 + # instructions), so the pre-ARPA age test (25 to 64) applies and the + # NY EIC is 0. The payment is 25% x 0 = 0 (25% of the federal EITC + # would be 306). + period: 2021 + absolute_error_margin: 0.01 + input: + people: + person: + age: 22 + employment_income: 8_000 + tax_units: + tax_unit: + members: [person] + spm_units: + spm_unit: + members: [person] + households: + household: + members: [person] + state_code: NY output: + eitc: 1_224 + ny_eitc: 0 ny_supplemental_eitc: 0 diff --git a/policyengine_us/variables/gov/states/ny/tax/income/credits/ny_supplemental_eitc.py b/policyengine_us/variables/gov/states/ny/tax/income/credits/ny_supplemental_eitc.py index 3ba4de38dd0..c1b4141f705 100644 --- a/policyengine_us/variables/gov/states/ny/tax/income/credits/ny_supplemental_eitc.py +++ b/policyengine_us/variables/gov/states/ny/tax/income/credits/ny_supplemental_eitc.py @@ -4,13 +4,24 @@ class ny_supplemental_eitc(Variable): value_type = float entity = TaxUnit - label = "NY Supplemental EITC" + label = "New York supplemental EITC" unit = USD definition_period = YEAR defined_for = StateCode.NY - reference = "https://www.nysenate.gov/legislation/laws/TAX/606" # (d)(8) + reference = ( + "https://www.nysenate.gov/legislation/laws/TAX/606", # (d)(8) + "https://legislation.nysenate.gov/pdf/bills/2021/S8009C#page=88", + "https://web.archive.org/web/20221020033542/https://www.tax.ny.gov/pit/child-earned-payments.htm", + ) def formula(tax_unit, period, parameters): - federal_eitc = tax_unit("eitc", period) - p = parameters(period).gov.states.ny.tax.income.credits - return federal_eitc * p.eitc.supplemental_match + # Tax Law 606(d)(8) pays a share "of the earned income tax credit + # calculated and allowed pursuant to this subsection", i.e. the + # New York State EIC of 606(d) after the household credit + # reduction, not the federal EITC. The 606(d-1)(9) payment on the + # noncustodial parent (enhanced) EIC is not modeled, as the + # 606(d-1) credit itself is not modeled. + p = parameters(period).gov.states.ny.tax.income.credits.eitc + payment = tax_unit("ny_eitc", period) * p.supplemental_match + # "no payment shall be issued if it is less than twenty-five dollars" + return where(payment < p.supplemental_minimum_payment, 0, payment) From 15818b376a4bac1807ae2586132421e6c202bc6c Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Thu, 22 Oct 2026 15:25:18 -0400 Subject: [PATCH 2/2] Drop later-year IT-201 references and note the timely-filing assumption The 2023 and 2025 IT-201 instructions do not show the 2021 supplemental EIC payment, and the 2025 link opened the IT-195 page. The variable and the test file now say that the 606(d)(8) timely-filing condition is assumed met, because filing dates are not modeled. Co-Authored-By: Claude Opus 5.5 --- .../states/ny/tax/income/credits/eitc/supplemental_match.yaml | 4 ---- .../states/ny/tax/income/credits/ny_supplemental_eitc.yaml | 2 ++ .../gov/states/ny/tax/income/credits/ny_supplemental_eitc.py | 4 +++- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_match.yaml b/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_match.yaml index f2d84a1dd08..b67f1da4129 100644 --- a/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_match.yaml +++ b/policyengine_us/parameters/gov/states/ny/tax/income/credits/eitc/supplemental_match.yaml @@ -14,7 +14,3 @@ metadata: href: https://legislation.nysenate.gov/pdf/bills/2021/S8009C#page=88 - title: NY Tax Department, Additional New York State child and earned income tax payments href: https://web.archive.org/web/20221020033542/https://www.tax.ny.gov/pit/child-earned-payments.htm - - title: New York Instructions for Form IT-201 Line 65 - href: https://www.tax.ny.gov/forms/html-instructions/2023/it/it201i-2023.htm#step-8 - - title: 2025 Form IT-201-I Instructions - href: https://www.tax.ny.gov/pdf/current_forms/it/it201i.pdf#page=27 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/credits/ny_supplemental_eitc.yaml b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/credits/ny_supplemental_eitc.yaml index b797b7c555d..80f8d96ae65 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/credits/ny_supplemental_eitc.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ny/tax/income/credits/ny_supplemental_eitc.yaml @@ -7,6 +7,8 @@ # dollars." # The NY Tax Department states the same rule as "at least $100" of credit # (25% x $100 = $25). +# The omitted sentence limits the payment to returns filed on time (with +# extensions). Filing dates are not modeled, so the tests assume it is met. - name: 2021 payment is 25% of the New York State EIC # Tax Department example: line 65 of $300 x 0.25 = $75. diff --git a/policyengine_us/variables/gov/states/ny/tax/income/credits/ny_supplemental_eitc.py b/policyengine_us/variables/gov/states/ny/tax/income/credits/ny_supplemental_eitc.py index c1b4141f705..49caa41e532 100644 --- a/policyengine_us/variables/gov/states/ny/tax/income/credits/ny_supplemental_eitc.py +++ b/policyengine_us/variables/gov/states/ny/tax/income/credits/ny_supplemental_eitc.py @@ -20,7 +20,9 @@ def formula(tax_unit, period, parameters): # New York State EIC of 606(d) after the household credit # reduction, not the federal EITC. The 606(d-1)(9) payment on the # noncustodial parent (enhanced) EIC is not modeled, as the - # 606(d-1) credit itself is not modeled. + # 606(d-1) credit itself is not modeled. The payment also requires a + # timely filed return (with extensions); filing dates are not + # modeled, so that condition is assumed met. p = parameters(period).gov.states.ny.tax.income.credits.eitc payment = tax_unit("ny_eitc", period) * p.supplemental_match # "no payment shall be issued if it is less than twenty-five dollars"