Skip to content
Merged
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/federal-ccdf-infrastructure.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add federal CCDF immigration eligibility variable and child care subsidies aggregator.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: The federal government counts these state programs as child care subsidies.
values:
2021-01-01:
- ca_child_care_subsidies # California Child Care
- co_child_care_subsidies # Colorado Child Care Assistance Program
- ma_child_care_subsidies # Massachusetts Child Care Financial Assistance
- ne_child_care_subsidies # Nebraska Child Care Subsidy

metadata:
unit: list
period: year
label: Child care subsidy programs
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
- name: Case 1, citizen child.
period: 2024
input:
immigration_status: CITIZEN
output:
is_ccdf_immigration_eligible_child: true

- name: Case 2, legal permanent resident child.
period: 2024
input:
immigration_status: LEGAL_PERMANENT_RESIDENT
output:
is_ccdf_immigration_eligible_child: true

- name: Case 3, refugee child.
period: 2024
input:
immigration_status: REFUGEE
output:
is_ccdf_immigration_eligible_child: true

- name: Case 4, asylee child.
period: 2024
input:
immigration_status: ASYLEE
output:
is_ccdf_immigration_eligible_child: true

- name: Case 5, deportation withheld child.
period: 2024
input:
immigration_status: DEPORTATION_WITHHELD
output:
is_ccdf_immigration_eligible_child: true

- name: Case 6, Cuban or Haitian entrant child.
period: 2024
input:
immigration_status: CUBAN_HAITIAN_ENTRANT
output:
is_ccdf_immigration_eligible_child: true

- name: Case 7, conditional entrant child.
period: 2024
input:
immigration_status: CONDITIONAL_ENTRANT
output:
is_ccdf_immigration_eligible_child: true

- name: Case 8, paroled for at least one year child.
period: 2024
input:
immigration_status: PAROLED_ONE_YEAR
output:
is_ccdf_immigration_eligible_child: true

- name: Case 9, undocumented child.
period: 2024
input:
immigration_status: UNDOCUMENTED
output:
is_ccdf_immigration_eligible_child: false

- name: Case 10, DACA child.
period: 2024
input:
immigration_status: DACA
output:
is_ccdf_immigration_eligible_child: false

- name: Case 11, TPS child.
period: 2024
input:
immigration_status: TPS
output:
is_ccdf_immigration_eligible_child: false
11 changes: 11 additions & 0 deletions policyengine_us/variables/gov/hhs/ccdf/child_care_subsidies.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from policyengine_us.model_api import *


class child_care_subsidies(Variable):
value_type = float
entity = SPMUnit
definition_period = YEAR
label = "Child care subsidies"
unit = USD

adds = "gov.hhs.ccdf.child_care_subsidy_programs"
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from policyengine_us.model_api import *


class is_ccdf_immigration_eligible_child(Variable):
value_type = bool
entity = Person
definition_period = YEAR
label = "Immigration eligibility for CCDF"
reference = (
"https://www.law.cornell.edu/uscode/text/8/1641",
"https://www.law.cornell.edu/cfr/text/45/98.20",
)

def formula(person, period, parameters):
p = parameters(period).gov.dhs.immigration
immigration_status = person("immigration_status", period)
immigration_status_str = immigration_status.decode_to_str()
is_qualified_noncitizen = np.isin(
immigration_status_str,
p.qualified_noncitizen_status,
)
is_citizen = immigration_status == immigration_status.possible_values.CITIZEN
return is_citizen | is_qualified_noncitizen
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,5 @@ def formula(spm_unit, period, parameters):
pre_subsidy_childcare_expenses = add(
spm_unit, period, ["pre_subsidy_childcare_expenses"]
)
# States where we model childcare subsidies.
STATES_WITH_CHILD_CARE_SUBSIDIES = ["CA", "CO", "NE", "MA"]
subsidy_variables = [
i.lower() + "_child_care_subsidies"
for i in STATES_WITH_CHILD_CARE_SUBSIDIES
]
subsidies = add(spm_unit, period, subsidy_variables)
subsidies = spm_unit("child_care_subsidies", period)
return max_(pre_subsidy_childcare_expenses - subsidies, 0)
Loading