Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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,12 @@
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
- title: NY Tax Law Section 606 - Credits Against Tax
href: https://www.nysenate.gov/legislation/laws/TAX/606
values:
2025-01-01: 50_000
12 changes: 12 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,12 @@
description: New York provides this multiplier 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
- title: NY Tax Law Section 606 - Credits Against Tax
href: https://www.nysenate.gov/legislation/laws/TAX/606
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,76 @@
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
in_effect = p.in_effect
ny_agi = tax_unit("ny_agi", period)
income_threshold = p.income_threshold
match = p.match

# Calculate the enhanced credit (110% of federal CDCC)
federal_cdcc = tax_unit("cdcc", period)
enhanced_cdcc = federal_cdcc * 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 = in_effect & (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