Skip to content
Open
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
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:
- NY Assembly Bill A06774 Enhanced Child and Dependent Care Credit reform.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: The New York Enhanced Child and Dependent Care Credit Act (Assembly Bill A06774) applies if this is true.
metadata:
unit: bool
period: year
label: NY A06774 Enhanced Child and Dependent Care Credit in effect
reference:
- title: NY Assembly Bill 2025-A6774
href: https://www.nysenate.gov/legislation/bills/2025/A6774
values:
0000-01-01: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: The maximum New York adjusted gross income to qualify for the enhanced child and dependent care credit under Assembly Bill A06774.
metadata:
unit: currency-USD
period: year
label: NY A06774 enhanced child and dependent care credit income threshold
reference:
- title: NY Assembly Bill 2025-A6774 Section 1
href: https://www.nysenate.gov/legislation/bills/2025/A6774
values:
2025-01-01: 50_000
10 changes: 10 additions & 0 deletions policyengine_us/parameters/gov/contrib/states/ny/a06774/match.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: New York matches this percentage of the federal Child and Dependent Care Credit for eligible taxpayers under the Enhanced Child and Dependent Care Credit Act.
metadata:
unit: /1
period: year
label: NY A06774 enhanced child and dependent care credit match
reference:
- title: NY Assembly Bill 2025-A6774 Section 1
href: https://www.nysenate.gov/legislation/bills/2025/A6774
values:
2025-01-01: 1.1
5 changes: 5 additions & 0 deletions policyengine_us/reforms/reforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
from .eitc import create_halve_joint_eitc_phase_out_rate_reform
from .states.ny.wftc import create_ny_working_families_tax_credit_reform
from .states.sc.h3492 import create_sc_h3492_eitc_refundable_reform
from .states.ny.a06774 import create_ny_a06774_enhanced_cdcc_reform
from .harris.lift.middle_class_tax_credit import (
create_middle_class_tax_credit_reform,
)
Expand Down Expand Up @@ -182,6 +183,9 @@ def create_structural_reforms_from_parameters(parameters, period):
sc_h3492_eitc_refundable = create_sc_h3492_eitc_refundable_reform(
parameters, period
)
ny_a06774_enhanced_cdcc = create_ny_a06774_enhanced_cdcc_reform(
parameters, period
)

middle_class_tax_credit = create_middle_class_tax_credit_reform(
parameters, period
Expand Down Expand Up @@ -328,6 +332,7 @@ def create_structural_reforms_from_parameters(parameters, period):
halve_joint_eitc_phase_out_rate,
ny_wftc,
sc_h3492_eitc_refundable,
ny_a06774_enhanced_cdcc,
middle_class_tax_credit,
rent_relief_tax_credit,
end_child_poverty_act,
Expand Down
3 changes: 3 additions & 0 deletions policyengine_us/reforms/states/ny/a06774/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .ny_a06774_enhanced_cdcc import (
create_ny_a06774_enhanced_cdcc_reform,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
from policyengine_us.model_api import *


def create_ny_a06774_enhanced_cdcc() -> Reform:
"""
NY Assembly Bill A06774 - Enhanced Child and Dependent Care Credit

Increases the NY child and dependent care credit to 110% of the federal
credit for taxpayers with NY adjusted gross income up to $50,000.

Reference: https://www.nysenate.gov/legislation/bills/2025/A6774
"""

class ny_cdcc(Variable):
value_type = float
entity = TaxUnit
label = "NY CDCC"
unit = USD
definition_period = YEAR
reference = (
"https://www.nysenate.gov/legislation/bills/2025/A6774",
"https://www.nysenate.gov/legislation/laws/TAX/606",
)
defined_for = StateCode.NY

def formula(tax_unit, period, parameters):
p = parameters(period).gov.contrib.states.ny.a06774
ny_agi = tax_unit("ny_agi", period)
income_threshold = p.income_threshold
# Calculate the enhanced credit (110% of federal CDCC)
federal_cdcc = tax_unit("cdcc", period)
enhanced_cdcc = federal_cdcc * p.match

# Calculate the standard NY CDCC
cdcc_max = tax_unit("ny_cdcc_max", period)
expenses = tax_unit("cdcc_relevant_expenses", period)
ny_rate = tax_unit("ny_cdcc_rate", period)
federal_rate = tax_unit("cdcc_rate", period)
standard_ny_cdcc = min_(
cdcc_max, expenses * ny_rate * federal_rate
)

# Use enhanced credit if reform is in effect and income is
# at or below the threshold
eligible_for_enhanced = ny_agi <= income_threshold
return where(
eligible_for_enhanced, enhanced_cdcc, standard_ny_cdcc
)

class reform(Reform):
def apply(self):
self.update_variable(ny_cdcc)

return reform


def create_ny_a06774_enhanced_cdcc_reform(
parameters, period, bypass: bool = False
):
if bypass:
return create_ny_a06774_enhanced_cdcc()

p = parameters(period).gov.contrib.states.ny.a06774

if p.in_effect:
return create_ny_a06774_enhanced_cdcc()
else:
return None


ny_a06774_enhanced_cdcc = create_ny_a06774_enhanced_cdcc_reform(
None, None, bypass=True
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
# NY A06774 Enhanced Child and Dependent Care Credit Tests
# Tests the enhanced CDCC at 110% of federal credit for incomes up to $50,000

# Basic eligibility tests - income below threshold
- name: Enhanced CDCC - income $40k with one child gets 110% of federal
period: 2025
reforms: policyengine_us.reforms.states.ny.a06774.ny_a06774_enhanced_cdcc.ny_a06774_enhanced_cdcc
input:
gov.contrib.states.ny.a06774.in_effect: true
people:
person1:
age: 35
is_tax_unit_head: true
employment_income: 40_000
child1:
age: 5
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [person1, child1]
tax_unit_childcare_expenses: 3_000
households:
household:
members: [person1, child1]
state_code: NY
output:
# Federal CDCC: $3,000 * 22% = $660
# (rate is 22% for AGI around $40k)
# Enhanced: $660 * 1.1 = $726
ny_cdcc: 726

- name: Enhanced CDCC - income at $50k threshold still gets enhanced credit
period: 2025
reforms: policyengine_us.reforms.states.ny.a06774.ny_a06774_enhanced_cdcc.ny_a06774_enhanced_cdcc
input:
gov.contrib.states.ny.a06774.in_effect: true
people:
person1:
age: 35
is_tax_unit_head: true
employment_income: 50_000
child1:
age: 5
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [person1, child1]
tax_unit_childcare_expenses: 3_000
households:
household:
members: [person1, child1]
state_code: NY
output:
# Federal CDCC: $3,000 * 20% = $600
# (rate floors at 20% for AGI $43k+)
# Enhanced: $600 * 1.1 = $660
ny_cdcc: 660

# Income above threshold - uses standard NY CDCC
- name: Income above $50k threshold uses standard NY CDCC formula
period: 2025
absolute_error_margin: 1
reforms: policyengine_us.reforms.states.ny.a06774.ny_a06774_enhanced_cdcc.ny_a06774_enhanced_cdcc
input:
gov.contrib.states.ny.a06774.in_effect: true
people:
person1:
age: 35
is_tax_unit_head: true
employment_income: 60_000
child1:
age: 5
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [person1, child1]
tax_unit_childcare_expenses: 3_000
households:
household:
members: [person1, child1]
state_code: NY
output:
# Income above threshold, uses standard NY CDCC which applies
# NY-specific rate multipliers on top of federal rate
# Standard NY CDCC at $60k = $650.16
ny_cdcc: 650

# Reform not in effect
- name: Reform not in effect - uses standard NY CDCC
period: 2025
absolute_error_margin: 1
reforms: policyengine_us.reforms.states.ny.a06774.ny_a06774_enhanced_cdcc.ny_a06774_enhanced_cdcc
input:
gov.contrib.states.ny.a06774.in_effect: false
people:
person1:
age: 35
is_tax_unit_head: true
employment_income: 40_000
child1:
age: 5
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [person1, child1]
tax_unit_childcare_expenses: 3_000
households:
household:
members: [person1, child1]
state_code: NY
output:
# Without reform, uses standard NY CDCC formula
# Standard NY CDCC at $40k = $660
ny_cdcc: 660

# Two children test
- name: Enhanced CDCC - two children with $6k expenses
period: 2025
reforms: policyengine_us.reforms.states.ny.a06774.ny_a06774_enhanced_cdcc.ny_a06774_enhanced_cdcc
input:
gov.contrib.states.ny.a06774.in_effect: true
people:
person1:
age: 35
is_tax_unit_head: true
employment_income: 40_000
child1:
age: 5
is_tax_unit_dependent: true
child2:
age: 3
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [person1, child1, child2]
tax_unit_childcare_expenses: 6_000
households:
household:
members: [person1, child1, child2]
state_code: NY
output:
# Federal CDCC: $6,000 * 22% = $1,320
# Enhanced: $1,320 * 1.1 = $1,452
ny_cdcc: 1_452

# Edge case - no childcare expenses
- name: Enhanced CDCC - no childcare expenses returns zero
period: 2025
reforms: policyengine_us.reforms.states.ny.a06774.ny_a06774_enhanced_cdcc.ny_a06774_enhanced_cdcc
input:
gov.contrib.states.ny.a06774.in_effect: true
people:
person1:
age: 35
is_tax_unit_head: true
employment_income: 40_000
child1:
age: 5
is_tax_unit_dependent: true
tax_units:
tax_unit:
members: [person1, child1]
tax_unit_childcare_expenses: 0
households:
household:
members: [person1, child1]
state_code: NY
output:
ny_cdcc: 0
Loading