Skip to content

Commit

Permalink
Adjust the NYWFTC to reflect the newest reform structure (#5056)
Browse files Browse the repository at this point in the history
* Include 18 year olds in the NYWFTC as younger children
Fixes #5055

* use reform parameter

* change NYWFTC child definition

* reformatting

* reference link

* format

* tests and age thresholds

* dependent definitions

* children

* fix the dependent definitions

* law and reference, format

* format

* reference

* final checks
  • Loading branch information
PavelMakarchuk authored Sep 23, 2024
1 parent e204f02 commit dddd7ad
Show file tree
Hide file tree
Showing 12 changed files with 408 additions and 110 deletions.
4 changes: 4 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- bump: minor
changes:
added:
- Include 17 year olds in the NYWFTC as younger children.
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ metadata:
interval: 50
label: New York Working Families Tax Credit max amount
reference:
- title: New York Senate Bill S277B (2)(C)
href: https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B
- title: New York Senate Bill S277C §3(c-2)(2)(C)
href: https://legislation.nysenate.gov/pdf/bills/2023/S277C

values:
2024-01-01: 0

# 2024-01-01: 800
# 2025-01-01: 1_100
# 2026-01-01: 1_350
# 2027-01-01: 1_600
# 2024: 550
# 2025: 800
# 2026: 1,000
# 2027: 1,200
# 2028: 1,600
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,8 @@ metadata:
period: year
label: New York Working Families Tax Credit minimum amount
reference:
- title: New York Senate Bill S277B (2)(C)
href: https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B
- title: New York Senate Bill S277C §3(c-2)(2)(C)
href: https://legislation.nysenate.gov/pdf/bills/2023/S277C

values:
2024-01-01: 0
# 2024-01-01: 150
# 2025-01-01: 250
# 2026-01-01: 400
# 2027-01-01: 500
2024-01-01: 0 # 100
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,14 @@ metadata:
period: year
label: New York Working Families Tax Credit child age threshold
reference:
- title: New York Senate Bill S277B (C-2)(C)
href: https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B
- title: New York Senate Bill S277C §4(c)
href: https://legislation.nysenate.gov/pdf/bills/2023/S277C

values:
2024-01-01: 0 # 18
2024-01-01: 0 # 17

# The age threshold is applied to is applied to different provisions of the Working Families Tax Credit
# at different time periods
# The Working Families defines child dependents as defined in 26 USC §24(c)(1) with the exception
# of the age threshold and student dependents

Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ metadata:
period: year
label: New York Working Families Tax Credit EITC match
reference:
- title: New York Senate Bill S277B Subs. 1 (9)
href: https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B
- title: New York Senate Bill S277C Subs. 1 (9)
href: https://legislation.nysenate.gov/pdf/bills/2023/S277C

values:
2024-01-01: 0
# 2023-01-01: 0.3
# 2024-01-01: 0.21
# 2025-01-01: 0.15
# 2026-01-01: 0.1
# 2027-01-01: 0
# 2025: 25%
# 2026: 20%
# 2027: 15%
# 2028: 10%
# 2029: 0
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
description: New York limits the exemptions under the Working Families Tax Credit to children below this age.
description: New York limits the exemptions under the Working Families Tax Credit to children younger than this age.
metadata:
unit: year
period: year
label: New York Working Families Tax Credit exemptions child age threshold
reference:
- title: New York Senate Bill S277B (C-2)(C)
href: https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B
- title: New York Senate Bill S277C §4(c)
href: https://legislation.nysenate.gov/pdf/bills/2023/S277C

values:
2024-01-01: 0 # 18
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: The Exemption reform of the New York Working Families Tax Credit reform applies if this is true.
metadata:
unit: bool
period: year
label: New York Working Families Tax Credit exemption reform applies
reference:
- title: New York Senate Bill S277C §4(c)
href: https://legislation.nysenate.gov/pdf/bills/2023/S277C

values:
2025-01-01: false
# Applies in the second taxable year after the bill is enacted
2026-01-01: true
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ metadata:
period: year
label: New York Working Families Tax Credit reform in effect
reference:
- title: New York Senate Bill S277B
href: https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B
- title: New York Senate Bill S277C
href: https://legislation.nysenate.gov/pdf/bills/2023/S277C

values:
0000-01-01: false
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ metadata:
period: year
label: New York working families tax credit married reduction
reference:
- title: New York Senate Bill S277B (2)(B)
href: https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B
- title: New York Senate Bill S277C §3(c-2)(2)(B)
href: https://legislation.nysenate.gov/pdf/bills/2023/S277C

brackets:
- threshold:
Expand All @@ -17,10 +17,9 @@ brackets:
- threshold:
values:
2024-01-01: 0
# 2024-01-01: 130_000
# 2025-01-01: 110_000
# 2026-01-01: 90_000
# 2027-01-01: 50_000
# 2025: 110,000
# 2028: 90,000
# 2029: 50,000
uprating:
parameter: gov.irs.uprating
rounding:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ metadata:
period: year
label: New York working families tax credit single reduction
reference:
- title: New York Senate Bill S277B (2)(B)
href: https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B
- title: New York Senate Bill S277C §3(c-2)(2)(B)
href: https://legislation.nysenate.gov/pdf/bills/2023/S277C

brackets:
- threshold:
Expand All @@ -17,10 +17,11 @@ brackets:
- threshold:
values:
2024-01-01: 0
# 2024-01-01: 65_000
# 2025-01-01: 55_000
# 2026-01-01: 45_000
# 2027-01-01: 25_000
# 2025: 75,000
# 2026: 65,000
# 2027: 55,000
# 2028: 45,000
# 2029: 25,000
uprating:
parameter: gov.irs.uprating
rounding:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,30 @@ def formula(tax_unit, period, parameters):
min_amount = p.amount.min * children
return max_(min_amount, max_amount - reduction)

class ny_wftc_eligible_children(Variable):
value_type = float
entity = TaxUnit
class ny_wftc_eligible_child(Variable):
value_type = bool
entity = Person
label = "New York Working Families Tax Credit"
unit = USD
definition_period = YEAR
defined_for = StateCode.NY

def formula(tax_unit, period, parameters):
person = tax_unit.members
def formula(person, period, parameters):
age = person("age", period)
is_dependent = person("is_tax_unit_dependent", period)
p = parameters(period).gov.contrib.states.ny.wftc
age_eligible = age < p.child_age_threshold
eligible_child = is_dependent & age_eligible
return tax_unit.sum(eligible_child)
age_eligible = age <= p.child_age_threshold
return is_dependent & age_eligible

class ny_wftc_eligible_children(Variable):
value_type = float
entity = TaxUnit
label = "New York Working Families Tax Credit"
unit = USD
definition_period = YEAR
defined_for = StateCode.NY

adds = ["ny_wftc_eligible_child"]

# Replicating the relevant parts of the EITC for for younger
# and older dependents separately
Expand All @@ -49,16 +57,14 @@ class is_younger_child_dependent(Variable):
value_type = bool
entity = Person
label = "Is a younger child dependents"
reference = (
"https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B"
)
reference = "https://legislation.nysenate.gov/pdf/bills/2023/S277C"
definition_period = YEAR

def formula(person, period, parameters):
is_dependent = person("is_tax_unit_dependent", period)
age = person("age", period)
p = parameters(period).gov.irs.dependent.ineligible_age
age_eligible = age < p.non_student
p = parameters(period).gov.contrib.states.ny.wftc
age_eligible = age < p.child_age_threshold
return is_dependent & age_eligible

class eitc_younger_children_count(Variable):
Expand Down Expand Up @@ -224,19 +230,18 @@ class is_older_child_dependent(Variable):
value_type = bool
entity = Person
label = "Is a older child dependents"
reference = (
"https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B"
)
reference = "https://legislation.nysenate.gov/pdf/bills/2023/S277C"
definition_period = YEAR
defined_for = StateCode.NY

def formula(person, period, parameters):
is_dependent = person("is_tax_unit_dependent", period)
age = person("age", period)
p = parameters(period).gov.irs.dependent.ineligible_age
p_irs = parameters(period).gov.irs.dependent.ineligible_age
student = person("is_full_time_student", period)
student_age_eligible = age < p.student
older_student_age_eligible = p.non_student <= age
student_age_eligible = age < p_irs.student
p_ref = parameters(period).gov.contrib.states.ny.wftc
older_student_age_eligible = p_ref.child_age_threshold <= age
age_eligible = student_age_eligible & older_student_age_eligible
return is_dependent & student & age_eligible

Expand Down Expand Up @@ -415,9 +420,7 @@ class ny_eitc(Variable):
label = "New York EITC"
unit = USD
definition_period = YEAR
reference = (
"https://www.nysenate.gov/legislation/bills/2023/S277/amendment/B"
)
reference = "https://legislation.nysenate.gov/pdf/bills/2023/S277C"
defined_for = StateCode.NY

def formula(tax_unit, period, parameters):
Expand All @@ -434,6 +437,23 @@ def formula(tax_unit, period, parameters):
household_credit = tax_unit("ny_household_credit", period)
return max_(0, total_credit - household_credit)

class ny_exemptions_dependent(Variable):
value_type = bool
entity = Person
label = "Dependent under the New York exemptions definition"
unit = USD
definition_period = YEAR
reference = "https://www.nysenate.gov/legislation/laws/TAX/616"
defined_for = StateCode.NY

def formula(person, period, parameters):
p = parameters(period).gov.contrib.states.ny.wftc.exemptions
if p.in_effect:
child_dependent = person("is_child_dependent", period)
wftc_eligible_child = person("ny_wftc_eligible_child", period)
return child_dependent & ~wftc_eligible_child
return person("is_tax_unit_dependent", period)

class ny_exemptions(Variable):
value_type = float
entity = TaxUnit
Expand All @@ -444,14 +464,10 @@ class ny_exemptions(Variable):
defined_for = StateCode.NY

def formula(tax_unit, period, parameters):
person = tax_unit.members
dependent = person("is_tax_unit_dependent", period)
p = parameters(period).gov.contrib.states.ny.wftc
age = person("age", period)
eligible_dependent = dependent & (
age >= p.exemptions.child_age_threshold

count_dependents = add(
tax_unit, period, ["ny_exemptions_dependent"]
)
count_dependents = tax_unit.sum(eligible_dependent)
dependent_exemption = parameters(
period
).gov.states.ny.tax.income.exemptions.dependent
Expand All @@ -474,6 +490,7 @@ def formula(tax_unit, period, parameters):
class reform(Reform):
def apply(self):
self.update_variable(ny_working_families_tax_credit)
self.update_variable(ny_wftc_eligible_child)
self.update_variable(ny_wftc_eligible_children)
self.update_variable(is_younger_child_dependent)
self.update_variable(eitc_younger_children_count)
Expand All @@ -499,6 +516,7 @@ def apply(self):
self.update_variable(older_eitc)
self.update_variable(ny_eitc)
self.neutralize_variable("ny_ctc")
self.update_variable(ny_exemptions_dependent)
self.update_variable(ny_exemptions)
self.update_variable(ny_refundable_credits)

Expand Down
Loading

0 comments on commit dddd7ad

Please sign in to comment.