Skip to content
Closed
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/fix-ma-tafdc-noncountable-income.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Implement Massachusetts TAFDC noncountable income per 106 CMR 704.250, including conditional exclusions for SSI recipients (A), dependent child earned income (U), and lump sum income cap (B), wired into countable income calculations.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: Massachusetts sets this age threshold for unconditional dependent child earned income exclusion under the Transitional Aid to Families with Dependent Children program.
metadata:
unit: year
period: year
label: Massachusetts TAFDC child earned income exclusion age threshold
reference:
- title: 106 CMR 704.250(U) - Earned Income of Dependent Children
href: https://www.law.cornell.edu/regulations/massachusetts/106-CMR-704-250
values:
0001-01-01: 16
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: Massachusetts sets the maximum noncountable lump sum income to this amount under the Transitional Aid to Families with Dependent Children program.
metadata:
unit: currency-USD
period: month
label: Massachusetts TAFDC lump sum income exclusion cap
reference:
- title: 106 CMR 704.250(B) - Lump Sum Income Exclusion
href: https://www.law.cornell.edu/regulations/massachusetts/106-CMR-704-250
values:
0001-01-01: 600
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
description: Massachusetts excludes these income sources from countable income under the Transitional Aid to Families with Dependent Children program.
metadata:
type: list
period: month
label: Massachusetts TAFDC noncountable income sources
reference:
- title: 106 CMR 704.250 - Noncountable Income Sources
href: https://www.law.cornell.edu/regulations/massachusetts/106-CMR-704-250
values:
0001-01-01:
# (A)(2) State supplement program benefits
- ma_state_supplement
# (C) SNAP benefits
- snap
# (D)+(F) School lunch subsidies
- spm_unit_school_lunch_subsidy
# (J) Financial aid (Pell Grants)
- spm_unit_pell_grant
# (S) Housing subsidies
- spm_unit_capped_housing_subsidy
# (BB) Home Energy Assistance Program
- ma_liheap
1 change: 0 additions & 1 deletion policyengine_us/reforms/congress/golden/fisc_act.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ class family_income_supplement_credit(Variable):
reference = "https://golden.house.gov/sites/evo-subsites/golden.house.gov/files/evo-media-document/GoldenFISC.pdf"

def formula(tax_unit, period, parameters):

p = parameters(
period
).gov.contrib.congress.golden.fisc_act.family_income_supplement
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@


def create_family_security_act_2024_eitc() -> Reform:

class eitc_maximum(Variable):
value_type = float
entity = TaxUnit
Expand Down
1 change: 0 additions & 1 deletion policyengine_us/reforms/ctc/ctc_per_child_phase_in.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ class ctc_phase_in_relevant_earnings(Variable):
reference = "https://www.law.cornell.edu/uscode/text/26/24#d"

def formula(tax_unit, period, parameters):

ctc = parameters(period).gov.irs.credits.ctc

earnings = tax_unit("tax_unit_earned_income", period)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ class de_dependent_credit(Variable):
defined_for = StateCode.DE

def formula(tax_unit, period, parameters):

maximum = tax_unit("de_dependent_credit_maximum", period)
phaseout = tax_unit("de_dependent_credit_phaseout", period)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,6 @@ class ny_exemptions(Variable):
defined_for = StateCode.NY

def formula(tax_unit, period, parameters):

count_dependents = add(tax_unit, period, ["ny_exemptions_dependent"])
dependent_exemption = parameters(
period
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ class ri_dependent_exemption(Variable):
defined_for = StateCode.RI

def formula(tax_unit, period, parameters):

maximum = tax_unit("ri_dependent_exemption_maximum", period)
phaseout = tax_unit("ri_dependent_exemption_phaseout", period)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ class va_dependent_exemption(Variable):
defined_for = StateCode.VA

def formula(tax_unit, period, parameters):

maximum = tax_unit("va_dependent_exemption_maximum", period)
phaseout = tax_unit("va_dependent_exemption_phaseout", period)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
- name: Child under 16 has earned income excluded
period: 2024-01
absolute_error_margin: 0.01
input:
people:
parent:
age: 35
employment_income_before_lsr: 0
is_tax_unit_dependent: false
child1:
age: 14
employment_income_before_lsr: 6_000 # YEAR -> 500/mo
is_tax_unit_dependent: true
spm_units:
spm_unit:
members: [parent, child1]
tax_units:
tax_unit:
members: [parent, child1]
households:
household:
members: [parent, child1]
state_code: MA
output:
ma_tafdc_dependent_child_earned_income_exclusion:
- 0 # parent: not a dependent child
- 500 # child1: under 16, full exclusion

- name: Child 16+ full-time student has earned income excluded
period: 2024-01
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income_before_lsr: 0
is_tax_unit_dependent: false
child1:
age: 17
is_full_time_student: true
employment_income_before_lsr: 6_000 # YEAR -> 500/mo
is_tax_unit_dependent: true
spm_units:
spm_unit:
members: [parent, child1]
tax_units:
tax_unit:
members: [parent, child1]
households:
household:
members: [parent, child1]
state_code: MA
output:
ma_tafdc_dependent_child_earned_income_exclusion:
- 0 # parent
- 500 # child1: 16+ student, excluded

- name: Child 16+ non-student does NOT have earned income excluded
period: 2024-01
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income_before_lsr: 0
is_tax_unit_dependent: false
child1:
age: 17
is_full_time_student: false
employment_income_before_lsr: 6_000 # YEAR -> 500/mo
is_tax_unit_dependent: true
spm_units:
spm_unit:
members: [parent, child1]
tax_units:
tax_unit:
members: [parent, child1]
households:
household:
members: [parent, child1]
state_code: MA
output:
ma_tafdc_dependent_child_earned_income_exclusion:
- 0 # parent
- 0 # child1: 16+ non-student, NOT excluded

- name: Child exactly age 16, not a student, no exclusion.
period: 2024-01
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income_before_lsr: 0
is_tax_unit_dependent: false
child1:
age: 16
is_full_time_student: false
employment_income_before_lsr: 6_000 # YEAR -> 500/mo
is_tax_unit_dependent: true
spm_units:
spm_unit:
members: [parent, child1]
tax_units:
tax_unit:
members: [parent, child1]
households:
household:
members: [parent, child1]
state_code: MA
output:
ma_tafdc_dependent_child_earned_income_exclusion:
- 0 # parent
- 0 # child1: age 16, NOT under 16, not a student -> no exclusion

- name: Child exactly age 16, full-time student, gets exclusion.
period: 2024-01
absolute_error_margin: 0.01
input:
people:
parent:
age: 40
employment_income_before_lsr: 0
is_tax_unit_dependent: false
child1:
age: 16
is_full_time_student: true
employment_income_before_lsr: 6_000 # YEAR -> 500/mo
is_tax_unit_dependent: true
spm_units:
spm_unit:
members: [parent, child1]
tax_units:
tax_unit:
members: [parent, child1]
households:
household:
members: [parent, child1]
state_code: MA
output:
ma_tafdc_dependent_child_earned_income_exclusion:
- 0 # parent
- 500 # child1: age 16, full-time student -> full exclusion
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
- name: Lump sum under cap is fully excluded
period: 2024-01
absolute_error_margin: 0.01
input:
people:
person1:
ma_tafdc_lump_sum_income: 400
spm_units:
spm_unit:
members: [person1]
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MA
output:
ma_tafdc_lump_sum_income_exclusion: 400

- name: Lump sum at cap is fully excluded
period: 2024-01
absolute_error_margin: 0.01
input:
people:
person1:
ma_tafdc_lump_sum_income: 600
spm_units:
spm_unit:
members: [person1]
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MA
output:
ma_tafdc_lump_sum_income_exclusion: 600

- name: Lump sum over cap is partially excluded
period: 2024-01
absolute_error_margin: 0.01
input:
people:
person1:
ma_tafdc_lump_sum_income: 1_000
spm_units:
spm_unit:
members: [person1]
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MA
output:
# Capped at $600
ma_tafdc_lump_sum_income_exclusion: 600

- name: No lump sum income
period: 2024-01
absolute_error_margin: 0.01
input:
people:
person1:
ma_tafdc_lump_sum_income: 0
spm_units:
spm_unit:
members: [person1]
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: MA
output:
ma_tafdc_lump_sum_income_exclusion: 0
Loading