Skip to content
Draft
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
1 change: 1 addition & 0 deletions changelog.d/cdcc-expense-distribution.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add care expenses for a disabled adult dependent or spouse to the Child and Dependent Care Credit base, via a new care_expenses input, so a disabled qualifying individual age 18 or older is no longer attributed $0 of care expenses; the federal credit and its state mirrors (e.g. Kansas) previously returned $0 in this case.
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,19 @@
min_head_spouse_earned: 8_000
output:
cdcc_relevant_expenses: 5_000

- name: Adult dependent care expenses add to the childcare base
absolute_error_margin: 0.01
period: 2024
input:
people:
person1:
pre_subsidy_care_expenses: 2_000
tax_units:
tax_unit:
members: [person1]
tax_unit_childcare_expenses: 1_000
cdcc_limit: 6_000
min_head_spouse_earned: 10_000
output:
cdcc_relevant_expenses: 3_000 # 1_000 childcare + 2_000 adult care
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,36 @@
output: # expected results from patched TAXSIM35 2023-01-13 version
taxsim_tfica: 11_130.24
income_tax: 24_507.2

- name: Disabled adult dependent's care expenses reach the CDCC via care_expenses
absolute_error_margin: 0.01
period: 2024
input:
people:
person1:
age: 40
employment_income: 40_000
is_tax_unit_head: true
person2: # earning spouse: the earned-income test passes without deemed income
age: 38
employment_income: 30_000
is_tax_unit_spouse: true
person3: # disabled adult dependent: care billed as adult care, not childcare
age: 18
is_incapable_of_self_care: true
is_tax_unit_dependent: true
pre_subsidy_care_expenses: 6_000
tax_units:
tax_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: KS
output:
# The childcare pipeline is untouched (no children under 13); the adult-care
# expense enters the CDCC base via care_expenses.
tax_unit_childcare_expenses: 0
care_expenses: [0, 0, 6_000]
cdcc_relevant_expenses: 3_000 # min(6_000, $3,000 cap for one individual, earnings)
cdcc: 600 # 20% x 3_000 at $70,000 joint AGI
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,32 @@
state_code: KS
output:
ks_cdcc: 0.25 * 1_000

- name: Disabled adult dependent's care expenses count toward Kansas CDCC
absolute_error_margin: 0.01
period: 2024
input:
people:
person1:
age: 40
employment_income: 40_000
is_tax_unit_head: true
person2:
age: 38
employment_income: 30_000
is_tax_unit_spouse: true
person3:
age: 18
is_incapable_of_self_care: true
is_tax_unit_dependent: true
pre_subsidy_care_expenses: 6_000
tax_units:
tax_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: KS
output:
cdcc: 600 # federal credit, fed by the adult-care expense
ks_cdcc: 300 # Kansas share of the federal credit
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,8 @@
pre_subsidy_care_expenses: 100
output:
care_expenses: 100

- name: Care expenses default to zero
period: 2024
output:
care_expenses: 0
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,14 @@ class cdcc_relevant_expenses(Variable):
)

def formula(tax_unit, period, parameters):
expenses = tax_unit("tax_unit_childcare_expenses", period)
# Section 21 employment-related expenses cover care for any qualifying
# individual: childcare for children under 13
# (tax_unit_childcare_expenses) plus care for a disabled qualifying
# individual of any age — a disabled adult dependent or spouse
# (care_expenses, a person-level monthly input summed to the year).
childcare = tax_unit("tax_unit_childcare_expenses", period)
adult_care = add(tax_unit, period, ["care_expenses"])
expenses = childcare + adult_care
cdcc_limit = tax_unit("cdcc_limit", period)
eligible_capped_expenses = min_(expenses, cdcc_limit)
# cap further to the lowest earnings between the taxpayer and spouse
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
class care_expenses(Variable):
value_type = float
entity = Person
label = "Care expenses"
label = "Care expenses for a disabled adult dependent or spouse"
unit = USD
definition_period = MONTH
definition_period = YEAR
reference = "https://www.law.cornell.edu/uscode/text/26/21#b_2"

def formula(person, period, parameters):
# No public subsidy applies to adult dependent care, so this passes
# through the pre-subsidy amount (mirrors childcare_expenses).
return person("pre_subsidy_care_expenses", period)

# Add subsidies in a .yaml file once added to the model
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
class pre_subsidy_care_expenses(Variable):
value_type = float
entity = Person
label = "Pre subsidy care expenses"
definition_period = MONTH
label = "Pre-subsidy care expenses for a disabled adult dependent or spouse"
definition_period = YEAR
unit = USD
reference = "https://www.law.cornell.edu/uscode/text/26/21#b_2"
Loading