policyengine-us 1.418.0__py3-none-any.whl → 1.420.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of policyengine-us might be problematic. Click here for more details.

Files changed (100) hide show
  1. policyengine_us/parameters/gov/dhs/immigration/qualified_noncitizen_status.yaml +18 -0
  2. policyengine_us/parameters/gov/states/tx/tanf/age_threshold/minor_child.yaml +13 -0
  3. policyengine_us/parameters/gov/states/tx/tanf/age_threshold/student_dependent.yaml +13 -0
  4. policyengine_us/parameters/gov/states/tx/tanf/income/deductions/child_support.yaml +14 -0
  5. policyengine_us/parameters/gov/states/tx/tanf/income/deductions/dependent_care.yaml +23 -0
  6. policyengine_us/parameters/gov/states/tx/tanf/income/deductions/work_expense.yaml +13 -0
  7. policyengine_us/parameters/gov/states/tx/tanf/income/disregards/applicant_fraction.yaml +12 -0
  8. policyengine_us/parameters/gov/states/tx/tanf/income/disregards/continuing_recipient_cap.yaml +13 -0
  9. policyengine_us/parameters/gov/states/tx/tanf/income/disregards/continuing_recipient_months.yaml +14 -0
  10. policyengine_us/parameters/gov/states/tx/tanf/income/disregards/continuing_recipient_rate.yaml +13 -0
  11. policyengine_us/parameters/gov/states/tx/tanf/income/sources/earned.yaml +15 -0
  12. policyengine_us/parameters/gov/states/tx/tanf/income/sources/unearned.yaml +28 -0
  13. policyengine_us/parameters/gov/states/tx/tanf/minimum_grant.yaml +13 -0
  14. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/budgetary_needs/additional_person.yaml +17 -0
  15. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/budgetary_needs/caretaker_with_second_parent.yaml +81 -0
  16. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/budgetary_needs/caretaker_without_second_parent.yaml +85 -0
  17. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/budgetary_needs/non_caretaker.yaml +85 -0
  18. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/recognizable_needs/additional_person.yaml +17 -0
  19. policyengine_us/parameters/gov/states/tx/tanf/needs_standard/recognizable_needs/rate.yaml +17 -0
  20. policyengine_us/parameters/gov/states/tx/tanf/ottanf/payment_amount.yaml +13 -0
  21. policyengine_us/parameters/gov/states/tx/tanf/payment_standard/additional_person.yaml +19 -0
  22. policyengine_us/parameters/gov/states/tx/tanf/payment_standard/caretaker_with_second_parent.yaml +105 -0
  23. policyengine_us/parameters/gov/states/tx/tanf/payment_standard/caretaker_without_second_parent.yaml +112 -0
  24. policyengine_us/parameters/gov/states/tx/tanf/payment_standard/non_caretaker.yaml +111 -0
  25. policyengine_us/parameters/gov/states/tx/tanf/resources/resource_limit.yaml +13 -0
  26. policyengine_us/parameters/gov/states/tx/tanf/resources/vehicle_exemption.yaml +11 -0
  27. policyengine_us/parameters/gov/states/tx/uct/lifeline/fpg_limit.yaml +10 -0
  28. policyengine_us/parameters/gov/states/tx/uct/lifeline/supplement.yaml +10 -0
  29. policyengine_us/tests/policy/baseline/gov/fcc/lifeline/is_lifeline_eligible.yaml +10 -0
  30. policyengine_us/tests/policy/baseline/gov/fcc/lifeline/is_lifeline_income_eligible.yaml +47 -0
  31. policyengine_us/tests/policy/baseline/gov/fcc/lifeline/lifeline.yaml +19 -0
  32. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_age_eligible_child.yaml +34 -0
  33. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_assistance_unit_size.yaml +62 -0
  34. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.yaml +49 -0
  35. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_eligible_child.yaml +34 -0
  36. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_eligible_parent.yaml +38 -0
  37. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_budgetary_needs.yaml +65 -0
  38. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_budgetary_needs_test.yaml +30 -0
  39. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_caretaker_type.yaml +116 -0
  40. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_eligible.yaml +123 -0
  41. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_income_eligible.yaml +69 -0
  42. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_recognizable_needs_test.yaml +54 -0
  43. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/eligibility/tx_tanf_resources_eligible.yaml +44 -0
  44. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/deductions/tx_tanf_child_support_deduction.yaml +55 -0
  45. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/deductions/tx_tanf_dependent_care_deduction.yaml +54 -0
  46. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/earned/tx_tanf_countable_earned_income.yaml +39 -0
  47. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/earned/tx_tanf_earned_income_after_disregard_person.yaml +36 -0
  48. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/tx_tanf_income_for_budgetary_needs_test.yaml +102 -0
  49. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/income/unearned/tx_tanf_countable_unearned_income.yaml +49 -0
  50. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/integration.yaml +291 -0
  51. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/ottanf/tx_ottanf.yaml +47 -0
  52. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/ottanf/tx_ottanf_crisis_criteria.yaml +17 -0
  53. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/ottanf/tx_ottanf_eligible.yaml +158 -0
  54. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/resources/tx_tanf_countable_resources.yaml +39 -0
  55. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/tx_regular_tanf.yaml +74 -0
  56. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/tx_tanf.yaml +89 -0
  57. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/tx_tanf_payment_standard.yaml +61 -0
  58. policyengine_us/tests/policy/baseline/gov/states/tx/uct/lifeline/integration.yaml +251 -0
  59. policyengine_us/tests/policy/baseline/household/demographic/person/is_citizen_or_legal_immigrant.yaml +55 -0
  60. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_eligible.py +3 -4
  61. policyengine_us/variables/gov/fcc/lifeline/is_lifeline_income_eligible.py +35 -0
  62. policyengine_us/variables/gov/fcc/lifeline/lifeline.py +5 -2
  63. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_age_eligible_child.py +27 -0
  64. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_assistance_unit_size.py +18 -0
  65. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.py +19 -0
  66. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_eligible_child.py +24 -0
  67. policyengine_us/variables/gov/states/tx/tanf/assistance_unit/tx_tanf_eligible_parent.py +24 -0
  68. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_budgetary_needs.py +57 -0
  69. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_budgetary_needs_test.py +21 -0
  70. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_caretaker_type.py +50 -0
  71. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_eligible.py +29 -0
  72. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_income_eligible.py +40 -0
  73. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_recognizable_needs_test.py +23 -0
  74. policyengine_us/variables/gov/states/tx/tanf/eligibility/tx_tanf_resources_eligible.py +19 -0
  75. policyengine_us/variables/gov/states/tx/tanf/income/deductions/tx_tanf_child_support_deduction.py +21 -0
  76. policyengine_us/variables/gov/states/tx/tanf/income/deductions/tx_tanf_dependent_care_deduction.py +39 -0
  77. policyengine_us/variables/gov/states/tx/tanf/income/earned/tx_tanf_countable_earned_income.py +28 -0
  78. policyengine_us/variables/gov/states/tx/tanf/income/earned/tx_tanf_earned_income_after_disregard_person.py +52 -0
  79. policyengine_us/variables/gov/states/tx/tanf/income/earned/tx_tanf_gross_earned_income.py +16 -0
  80. policyengine_us/variables/gov/states/tx/tanf/income/tx_tanf_countable_income.py +19 -0
  81. policyengine_us/variables/gov/states/tx/tanf/income/tx_tanf_income_for_budgetary_needs_test.py +47 -0
  82. policyengine_us/variables/gov/states/tx/tanf/income/unearned/tx_tanf_countable_unearned_income.py +27 -0
  83. policyengine_us/variables/gov/states/tx/tanf/income/unearned/tx_tanf_gross_unearned_income.py +16 -0
  84. policyengine_us/variables/gov/states/tx/tanf/ottanf/tx_ottanf.py +17 -0
  85. policyengine_us/variables/gov/states/tx/tanf/ottanf/tx_ottanf_crisis_criteria.py +21 -0
  86. policyengine_us/variables/gov/states/tx/tanf/ottanf/tx_ottanf_eligible.py +36 -0
  87. policyengine_us/variables/gov/states/tx/tanf/resources/tx_tanf_countable_resources.py +31 -0
  88. policyengine_us/variables/gov/states/tx/tanf/tx_regular_tanf.py +27 -0
  89. policyengine_us/variables/gov/states/tx/tanf/tx_tanf.py +25 -0
  90. policyengine_us/variables/gov/states/tx/tanf/tx_tanf_payment_standard.py +51 -0
  91. policyengine_us/variables/gov/states/tx/uct/lifeline/tx_lifeline_supplement.py +13 -0
  92. policyengine_us/variables/household/demographic/person/is_citizen_or_legal_immigrant.py +22 -0
  93. {policyengine_us-1.418.0.dist-info → policyengine_us-1.420.0.dist-info}/METADATA +1 -1
  94. {policyengine_us-1.418.0.dist-info → policyengine_us-1.420.0.dist-info}/RECORD +97 -12
  95. policyengine_us/parameters/gov/states/tx/tanf/monthly_income_limit.yaml +0 -31
  96. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/tx_tanf_income_limit.yaml +0 -17
  97. policyengine_us/variables/gov/states/tx/tanf/tx_tanf_income_limit.py +0 -18
  98. {policyengine_us-1.418.0.dist-info → policyengine_us-1.420.0.dist-info}/WHEEL +0 -0
  99. {policyengine_us-1.418.0.dist-info → policyengine_us-1.420.0.dist-info}/entry_points.txt +0 -0
  100. {policyengine_us-1.418.0.dist-info → policyengine_us-1.420.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,116 @@
1
+ - name: Case 1, child-only non-caretaker case.
2
+ period: 2025-01
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 10
7
+ is_tax_unit_head_or_spouse: false
8
+ spm_units:
9
+ spm_unit:
10
+ members: [person1]
11
+ households:
12
+ household:
13
+ members: [person1]
14
+ state_code: TX
15
+ output:
16
+ tx_tanf_caretaker_type: NON_CARETAKER
17
+ # 0 eligible parents → non-caretaker (child-only)
18
+
19
+ - name: Case 2, single parent caretaker without second parent.
20
+ period: 2025-01
21
+ input:
22
+ people:
23
+ person1:
24
+ age: 30
25
+ is_tax_unit_head_or_spouse: true
26
+ person2:
27
+ age: 10
28
+ is_tax_unit_head_or_spouse: false
29
+ spm_units:
30
+ spm_unit:
31
+ members: [person1, person2]
32
+ households:
33
+ household:
34
+ members: [person1, person2]
35
+ state_code: TX
36
+ output:
37
+ tx_tanf_caretaker_type: CARETAKER_WITHOUT_SECOND_PARENT
38
+ # 1 eligible parent → caretaker without second parent
39
+
40
+ - name: Case 3, two parent caretaker with second parent.
41
+ period: 2025-01
42
+ input:
43
+ people:
44
+ person1:
45
+ age: 30
46
+ is_tax_unit_head_or_spouse: true
47
+ person2:
48
+ age: 29
49
+ is_tax_unit_head_or_spouse: true
50
+ person3:
51
+ age: 10
52
+ is_tax_unit_head_or_spouse: false
53
+ spm_units:
54
+ spm_unit:
55
+ members: [person1, person2, person3]
56
+ households:
57
+ household:
58
+ members: [person1, person2, person3]
59
+ state_code: TX
60
+ output:
61
+ tx_tanf_caretaker_type: CARETAKER_WITH_SECOND_PARENT
62
+ # 2 eligible parents → caretaker with second parent
63
+
64
+ - name: Case 4, three parents still caretaker with second parent.
65
+ period: 2025-01
66
+ input:
67
+ people:
68
+ person1:
69
+ age: 30
70
+ is_tax_unit_head_or_spouse: true
71
+ person2:
72
+ age: 29
73
+ is_tax_unit_head_or_spouse: true
74
+ person3:
75
+ age: 28
76
+ is_tax_unit_head_or_spouse: true
77
+ person4:
78
+ age: 10
79
+ is_tax_unit_head_or_spouse: false
80
+ spm_units:
81
+ spm_unit:
82
+ members: [person1, person2, person3, person4]
83
+ households:
84
+ household:
85
+ members: [person1, person2, person3, person4]
86
+ state_code: TX
87
+ output:
88
+ tx_tanf_caretaker_type: CARETAKER_WITH_SECOND_PARENT
89
+ # 3+ eligible parents → caretaker with second parent
90
+
91
+ - name: Case 5, undocumented parent excluded from count.
92
+ period: 2025-01
93
+ input:
94
+ people:
95
+ person1:
96
+ age: 30
97
+ is_tax_unit_head_or_spouse: true
98
+ immigration_status: UNDOCUMENTED
99
+ person2:
100
+ age: 29
101
+ is_tax_unit_head_or_spouse: true
102
+ immigration_status: CITIZEN
103
+ person3:
104
+ age: 10
105
+ is_tax_unit_head_or_spouse: false
106
+ immigration_status: CITIZEN
107
+ spm_units:
108
+ spm_unit:
109
+ members: [person1, person2, person3]
110
+ households:
111
+ household:
112
+ members: [person1, person2, person3]
113
+ state_code: TX
114
+ output:
115
+ tx_tanf_caretaker_type: CARETAKER_WITHOUT_SECOND_PARENT
116
+ # Person1 not immigration eligible → only 1 eligible parent
@@ -0,0 +1,123 @@
1
+ - name: Case 1, meets all eligibility requirements.
2
+ period: 2025-01
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 10
7
+ tx_tanf_eligible_child: true
8
+ spm_units:
9
+ spm_unit:
10
+ members: [person1]
11
+ tx_tanf_income_eligible: true
12
+ tx_tanf_resources_eligible: true
13
+ households:
14
+ household:
15
+ members: [person1]
16
+ state_code: TX
17
+ output:
18
+ tx_tanf_eligible: true
19
+ # Has eligible child (true) AND income eligible (true) AND resources eligible (true) → Eligible
20
+
21
+ - name: Case 2, fails income test.
22
+ period: 2025-01
23
+ input:
24
+ people:
25
+ person1:
26
+ age: 10
27
+ tx_tanf_eligible_child: true
28
+ spm_units:
29
+ spm_unit:
30
+ members: [person1]
31
+ tx_tanf_income_eligible: false
32
+ tx_tanf_resources_eligible: true
33
+ households:
34
+ household:
35
+ members: [person1]
36
+ state_code: TX
37
+ output:
38
+ tx_tanf_eligible: false
39
+ # Has eligible child (true) but fails income test (false) → Not eligible
40
+
41
+ - name: Case 3, fails resources test.
42
+ period: 2025-01
43
+ input:
44
+ people:
45
+ person1:
46
+ age: 10
47
+ tx_tanf_eligible_child: true
48
+ spm_units:
49
+ spm_unit:
50
+ members: [person1]
51
+ tx_tanf_income_eligible: true
52
+ tx_tanf_resources_eligible: false
53
+ households:
54
+ household:
55
+ members: [person1]
56
+ state_code: TX
57
+ output:
58
+ tx_tanf_eligible: false
59
+ # Has eligible child (true) and income eligible (true) but fails resources test (false) → Not eligible
60
+
61
+ - name: Case 4, no eligible child.
62
+ period: 2025-01
63
+ input:
64
+ people:
65
+ person1:
66
+ age: 10
67
+ tx_tanf_eligible_child: false
68
+ spm_units:
69
+ spm_unit:
70
+ members: [person1]
71
+ tx_tanf_income_eligible: true
72
+ tx_tanf_resources_eligible: true
73
+ households:
74
+ household:
75
+ members: [person1]
76
+ state_code: TX
77
+ output:
78
+ tx_tanf_eligible: false
79
+ # No eligible child (false) even though passes financial tests → Not eligible
80
+ # Must have at least one eligible child
81
+
82
+ - name: Case 5, fails all tests.
83
+ period: 2025-01
84
+ input:
85
+ people:
86
+ person1:
87
+ age: 10
88
+ tx_tanf_eligible_child: false
89
+ spm_units:
90
+ spm_unit:
91
+ members: [person1]
92
+ tx_tanf_income_eligible: false
93
+ tx_tanf_resources_eligible: false
94
+ households:
95
+ household:
96
+ members: [person1]
97
+ state_code: TX
98
+ output:
99
+ tx_tanf_eligible: false
100
+ # Fails all three requirements → Not eligible
101
+
102
+ - name: Case 6, multiple eligible children.
103
+ period: 2025-01
104
+ input:
105
+ people:
106
+ person1:
107
+ age: 10
108
+ tx_tanf_eligible_child: true
109
+ person2:
110
+ age: 8
111
+ tx_tanf_eligible_child: true
112
+ spm_units:
113
+ spm_unit:
114
+ members: [person1, person2]
115
+ tx_tanf_income_eligible: true
116
+ tx_tanf_resources_eligible: true
117
+ households:
118
+ household:
119
+ members: [person1, person2]
120
+ state_code: TX
121
+ output:
122
+ tx_tanf_eligible: true
123
+ # Multiple eligible children AND passes financial tests → Eligible
@@ -0,0 +1,69 @@
1
+ - name: Case 1, applicant passes both tests.
2
+ period: 2025-01
3
+ input:
4
+ tx_tanf_budgetary_needs_test: true
5
+ tx_tanf_recognizable_needs_test: true
6
+ is_tanf_enrolled: false
7
+ state_code: TX
8
+ output:
9
+ tx_tanf_income_eligible: true
10
+ # Applicant: passes budgetary (true) AND recognizable (true) → Eligible
11
+
12
+ - name: Case 2, applicant passes budgetary but fails recognizable.
13
+ period: 2025-01
14
+ input:
15
+ tx_tanf_budgetary_needs_test: true
16
+ tx_tanf_recognizable_needs_test: false
17
+ is_tanf_enrolled: false
18
+ state_code: TX
19
+ output:
20
+ tx_tanf_income_eligible: false
21
+ # Applicant: passes budgetary (true) but fails recognizable (false) → Not eligible
22
+ # Must pass BOTH tests
23
+
24
+ - name: Case 3, applicant fails budgetary but passes recognizable.
25
+ period: 2025-01
26
+ input:
27
+ tx_tanf_budgetary_needs_test: false
28
+ tx_tanf_recognizable_needs_test: true
29
+ is_tanf_enrolled: false
30
+ state_code: TX
31
+ output:
32
+ tx_tanf_income_eligible: false
33
+ # Applicant: fails budgetary (false) even though passes recognizable (true) → Not eligible
34
+ # Must pass BOTH tests
35
+
36
+ - name: Case 4, applicant fails both tests.
37
+ period: 2025-01
38
+ input:
39
+ tx_tanf_budgetary_needs_test: false
40
+ tx_tanf_recognizable_needs_test: false
41
+ is_tanf_enrolled: false
42
+ state_code: TX
43
+ output:
44
+ tx_tanf_income_eligible: false
45
+ # Applicant: fails both tests → Not eligible
46
+
47
+ - name: Case 5, continuing recipient passes recognizable test.
48
+ period: 2025-01
49
+ input:
50
+ tx_tanf_budgetary_needs_test: false
51
+ tx_tanf_recognizable_needs_test: true
52
+ is_tanf_enrolled: true
53
+ state_code: TX
54
+ output:
55
+ tx_tanf_income_eligible: true
56
+ # Continuing: only needs to pass recognizable test (true) → Eligible
57
+ # Budgetary test result doesn't matter for continuing recipients
58
+
59
+ - name: Case 6, continuing recipient fails recognizable test.
60
+ period: 2025-01
61
+ input:
62
+ tx_tanf_budgetary_needs_test: true
63
+ tx_tanf_recognizable_needs_test: false
64
+ is_tanf_enrolled: true
65
+ state_code: TX
66
+ output:
67
+ tx_tanf_income_eligible: false
68
+ # Continuing: fails recognizable test (false) → Not eligible
69
+ # Even though budgetary is true, it's not checked for continuing recipients
@@ -0,0 +1,54 @@
1
+ - name: Case 1, income below recognizable needs passes.
2
+ period: 2025-01
3
+ input:
4
+ tx_tanf_countable_income: 100
5
+ tx_tanf_budgetary_needs: 650
6
+ state_code: TX
7
+ output:
8
+ tx_tanf_recognizable_needs_test: true
9
+ # Recognizable needs = 650 * 0.25 = 162.5
10
+ # Income (100) < recognizable needs (162.5) → Pass
11
+
12
+ - name: Case 2, income equals recognizable needs fails.
13
+ period: 2025-01
14
+ input:
15
+ tx_tanf_countable_income: 162.5
16
+ tx_tanf_budgetary_needs: 650
17
+ state_code: TX
18
+ output:
19
+ tx_tanf_recognizable_needs_test: false
20
+ # Recognizable needs = 650 * 0.25 = 162.5
21
+ # Income (162.5) ≥ recognizable needs (162.5) → Fail
22
+
23
+ - name: Case 3, income exceeds recognizable needs fails.
24
+ period: 2025-01
25
+ input:
26
+ tx_tanf_countable_income: 200
27
+ tx_tanf_budgetary_needs: 650
28
+ state_code: TX
29
+ output:
30
+ tx_tanf_recognizable_needs_test: false
31
+ # Recognizable needs = 650 * 0.25 = 162.5
32
+ # Income (200) > recognizable needs (162.5) → Fail
33
+
34
+ - name: Case 4, zero income always passes.
35
+ period: 2025-01
36
+ input:
37
+ tx_tanf_countable_income: 0
38
+ tx_tanf_budgetary_needs: 650
39
+ state_code: TX
40
+ output:
41
+ tx_tanf_recognizable_needs_test: true
42
+ # Recognizable needs = 650 * 0.25 = 162.5
43
+ # Income (0) < recognizable needs (162.5) → Pass
44
+
45
+ - name: Case 5, larger household with higher needs.
46
+ period: 2025-01
47
+ input:
48
+ tx_tanf_countable_income: 200
49
+ tx_tanf_budgetary_needs: 824
50
+ state_code: TX
51
+ output:
52
+ tx_tanf_recognizable_needs_test: true
53
+ # Recognizable needs = 824 * 0.25 = 206
54
+ # Income (200) < recognizable needs (206) → Pass
@@ -0,0 +1,44 @@
1
+ - name: Case 1, resources well below limit.
2
+ period: 2025-01
3
+ input:
4
+ tx_tanf_countable_resources: 500
5
+ state_code: TX
6
+ output:
7
+ tx_tanf_resources_eligible: true
8
+ # Resources (500) <= limit (1,000) → Pass
9
+
10
+ - name: Case 2, resources at limit.
11
+ period: 2025-01
12
+ input:
13
+ tx_tanf_countable_resources: 1_000
14
+ state_code: TX
15
+ output:
16
+ tx_tanf_resources_eligible: true
17
+ # Resources (1,000) <= limit (1,000) → Pass
18
+
19
+ - name: Case 3, resources slightly above limit.
20
+ period: 2025-01
21
+ input:
22
+ tx_tanf_countable_resources: 1_001
23
+ state_code: TX
24
+ output:
25
+ tx_tanf_resources_eligible: false
26
+ # Resources (1,001) > limit (1,000) → Fail
27
+
28
+ - name: Case 4, resources far above limit.
29
+ period: 2025-01
30
+ input:
31
+ tx_tanf_countable_resources: 15_000
32
+ state_code: TX
33
+ output:
34
+ tx_tanf_resources_eligible: false
35
+ # Resources (15,000) > limit (1,000) → Fail
36
+
37
+ - name: Case 5, zero resources.
38
+ period: 2025-01
39
+ input:
40
+ tx_tanf_countable_resources: 0
41
+ state_code: TX
42
+ output:
43
+ tx_tanf_resources_eligible: true
44
+ # Resources (0) <= limit (1,000) → Pass
@@ -0,0 +1,55 @@
1
+ - name: Case 1, no child support received.
2
+ period: 2025-01
3
+ input:
4
+ child_support_received: 0
5
+ state_code: TX
6
+ output:
7
+ tx_tanf_child_support_deduction: 0
8
+ # No child support → no deduction
9
+
10
+ - name: Case 2, child support below $75 cap.
11
+ period: 2025-01
12
+ input:
13
+ child_support_received: 600 # $50/month
14
+ state_code: TX
15
+ output:
16
+ tx_tanf_child_support_deduction: 50
17
+ # 600 / 12 = 50, below $75 cap → deduct full $50
18
+
19
+ - name: Case 3, child support exceeds $75 cap.
20
+ period: 2025-01
21
+ input:
22
+ child_support_received: 1_200 # $100/month
23
+ state_code: TX
24
+ output:
25
+ tx_tanf_child_support_deduction: 75
26
+ # 1,200 / 12 = 100, exceeds $75 cap → deduct only $75
27
+
28
+ - name: Case 4, child support exactly at $75 cap.
29
+ period: 2025-01
30
+ input:
31
+ child_support_received: 900 # $75/month
32
+ state_code: TX
33
+ output:
34
+ tx_tanf_child_support_deduction: 75
35
+ # 900 / 12 = 75, equals cap → deduct $75
36
+
37
+ - name: Case 5, multiple people with child support per household cap.
38
+ period: 2025-01
39
+ input:
40
+ people:
41
+ person1:
42
+ child_support_received: 600 # $50/month
43
+ person2:
44
+ child_support_received: 600 # $50/month
45
+ spm_units:
46
+ spm_unit:
47
+ members: [person1, person2]
48
+ households:
49
+ household:
50
+ members: [person1, person2]
51
+ state_code: TX
52
+ output:
53
+ tx_tanf_child_support_deduction: 75
54
+ # Person1: 50 + Person2: 50 = 100 total
55
+ # Per-household cap of $75 → deduct only $75
@@ -0,0 +1,54 @@
1
+ - name: Case 1, actual expenses below maximum.
2
+ period: 2025-01
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 1
7
+ person2:
8
+ age: 5
9
+ spm_units:
10
+ spm_unit:
11
+ members: [person1, person2]
12
+ childcare_expenses: 3_000
13
+ households:
14
+ household:
15
+ members: [person1, person2]
16
+ state_code: TX
17
+ output:
18
+ tx_tanf_dependent_care_deduction: 250
19
+
20
+ - name: Case 2, actual expenses exceed maximum.
21
+ period: 2025-01
22
+ input:
23
+ people:
24
+ person1:
25
+ age: 1
26
+ person2:
27
+ age: 5
28
+ spm_units:
29
+ spm_unit:
30
+ members: [person1, person2]
31
+ childcare_expenses: 6_000
32
+ households:
33
+ household:
34
+ members: [person1, person2]
35
+ state_code: TX
36
+ output:
37
+ tx_tanf_dependent_care_deduction: 375
38
+
39
+ - name: Case 3, no childcare expenses.
40
+ period: 2025-01
41
+ input:
42
+ people:
43
+ person1:
44
+ age: 1
45
+ spm_units:
46
+ spm_unit:
47
+ members: [person1]
48
+ childcare_expenses: 0
49
+ households:
50
+ household:
51
+ members: [person1]
52
+ state_code: TX
53
+ output:
54
+ tx_tanf_dependent_care_deduction: 0
@@ -0,0 +1,39 @@
1
+ - name: Case 1, earned income with no dependent care deduction.
2
+ period: 2025-01
3
+ input:
4
+ tx_tanf_earned_income_after_disregard_person: 200
5
+ tx_tanf_dependent_care_deduction: 0
6
+ state_code: TX
7
+ output:
8
+ tx_tanf_countable_earned_income: 200
9
+ # 200 - 0 = 200
10
+
11
+ - name: Case 2, earned income with partial dependent care deduction.
12
+ period: 2025-01
13
+ input:
14
+ tx_tanf_earned_income_after_disregard_person: 200
15
+ tx_tanf_dependent_care_deduction: 150
16
+ state_code: TX
17
+ output:
18
+ tx_tanf_countable_earned_income: 50
19
+ # 200 - 150 = 50
20
+
21
+ - name: Case 3, dependent care deduction exceeds earned income.
22
+ period: 2025-01
23
+ input:
24
+ tx_tanf_earned_income_after_disregard_person: 100
25
+ tx_tanf_dependent_care_deduction: 200
26
+ state_code: TX
27
+ output:
28
+ tx_tanf_countable_earned_income: 0
29
+ # max(100 - 200, 0) = 0
30
+
31
+ - name: Case 4, no earned income.
32
+ period: 2025-01
33
+ input:
34
+ tx_tanf_earned_income_after_disregard_person: 0
35
+ tx_tanf_dependent_care_deduction: 0
36
+ state_code: TX
37
+ output:
38
+ tx_tanf_countable_earned_income: 0
39
+ # 0 - 0 = 0
@@ -0,0 +1,36 @@
1
+ - name: Case 1, new applicant with low earnings gets 1/3 disregard.
2
+ period: 2025-01
3
+ absolute_error_margin: 0.01
4
+ input:
5
+ tx_tanf_gross_earned_income: 600
6
+ is_tanf_enrolled: false
7
+ state_code: TX
8
+ output:
9
+ tx_tanf_earned_income_after_disregard_person: 321.60
10
+
11
+ - name: Case 2, continuing recipient gets 90% disregard.
12
+ period: 2025-01
13
+ input:
14
+ tx_tanf_gross_earned_income: 600
15
+ is_tanf_enrolled: true
16
+ state_code: TX
17
+ output:
18
+ tx_tanf_earned_income_after_disregard_person: 48
19
+
20
+ - name: Case 3, continuing recipient hits $1,400 disregard cap.
21
+ period: 2025-01
22
+ input:
23
+ tx_tanf_gross_earned_income: 2_000
24
+ is_tanf_enrolled: true
25
+ state_code: TX
26
+ output:
27
+ tx_tanf_earned_income_after_disregard_person: 480
28
+
29
+ - name: Case 4, zero earnings.
30
+ period: 2025-01
31
+ input:
32
+ tx_tanf_gross_earned_income: 0
33
+ is_tanf_enrolled: false
34
+ state_code: TX
35
+ output:
36
+ tx_tanf_earned_income_after_disregard_person: 0
@@ -0,0 +1,102 @@
1
+ - name: Case 1, only earned income after work expense.
2
+ period: 2025-01
3
+ input:
4
+ people:
5
+ person1:
6
+ tx_tanf_gross_earned_income: 400
7
+ spm_units:
8
+ spm_unit:
9
+ members: [person1]
10
+ tx_tanf_dependent_care_deduction: 0
11
+ tx_tanf_countable_unearned_income: 0
12
+ households:
13
+ household:
14
+ members: [person1]
15
+ state_code: TX
16
+ output:
17
+ tx_tanf_income_for_budgetary_needs_test: 280
18
+ # Earned: 400 - 120 work expense = 280
19
+ # No dependent care deduction, no unearned income
20
+ # Total: 280
21
+
22
+ - name: Case 2, earned income with dependent care deduction.
23
+ period: 2025-01
24
+ input:
25
+ people:
26
+ person1:
27
+ tx_tanf_gross_earned_income: 400
28
+ spm_units:
29
+ spm_unit:
30
+ members: [person1]
31
+ tx_tanf_dependent_care_deduction: 150
32
+ tx_tanf_countable_unearned_income: 0
33
+ households:
34
+ household:
35
+ members: [person1]
36
+ state_code: TX
37
+ output:
38
+ tx_tanf_income_for_budgetary_needs_test: 130
39
+ # Earned: 400 - 120 work expense = 280
40
+ # After dependent care: 280 - 150 = 130
41
+ # Total: 130
42
+
43
+ - name: Case 3, earned and unearned income.
44
+ period: 2025-01
45
+ input:
46
+ people:
47
+ person1:
48
+ tx_tanf_gross_earned_income: 400
49
+ spm_units:
50
+ spm_unit:
51
+ members: [person1]
52
+ tx_tanf_dependent_care_deduction: 100
53
+ tx_tanf_countable_unearned_income: 200
54
+ households:
55
+ household:
56
+ members: [person1]
57
+ state_code: TX
58
+ output:
59
+ tx_tanf_income_for_budgetary_needs_test: 380
60
+ # Earned: 400 - 120 work expense = 280
61
+ # After dependent care: 280 - 100 = 180
62
+ # Plus unearned: 180 + 200 = 380
63
+
64
+ - name: Case 4, dependent care exceeds earned income.
65
+ period: 2025-01
66
+ input:
67
+ people:
68
+ person1:
69
+ tx_tanf_gross_earned_income: 200
70
+ spm_units:
71
+ spm_unit:
72
+ members: [person1]
73
+ tx_tanf_dependent_care_deduction: 300
74
+ tx_tanf_countable_unearned_income: 100
75
+ households:
76
+ household:
77
+ members: [person1]
78
+ state_code: TX
79
+ output:
80
+ tx_tanf_income_for_budgetary_needs_test: 100
81
+ # Earned: 200 - 120 work expense = 80
82
+ # After dependent care: max(80 - 300, 0) = 0
83
+ # Plus unearned: 0 + 100 = 100
84
+
85
+ - name: Case 5, no income.
86
+ period: 2025-01
87
+ input:
88
+ people:
89
+ person1:
90
+ tx_tanf_gross_earned_income: 0
91
+ spm_units:
92
+ spm_unit:
93
+ members: [person1]
94
+ tx_tanf_dependent_care_deduction: 0
95
+ tx_tanf_countable_unearned_income: 0
96
+ households:
97
+ household:
98
+ members: [person1]
99
+ state_code: TX
100
+ output:
101
+ tx_tanf_income_for_budgetary_needs_test: 0
102
+ # No earned or unearned income → 0