policyengine-us 1.449.6__py3-none-any.whl → 1.458.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.
Files changed (114) hide show
  1. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/age_limit/in_effect.yaml +9 -0
  2. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/age_limit/threshold.yaml +9 -0
  3. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/amount.yaml +9 -0
  4. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/in_effect.yaml +9 -0
  5. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/rate.yaml +9 -0
  6. policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/threshold.yaml +23 -0
  7. policyengine_us/parameters/gov/irs/deductions/qbi/max/reit_ptp_rate.yaml +13 -0
  8. policyengine_us/parameters/gov/states/ca/chhs/medi_cal_enrollment_freeze/in_effect.yaml +12 -0
  9. policyengine_us/parameters/gov/states/il/dhs/aabd/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +3 -5
  10. policyengine_us/parameters/gov/states/il/dhs/tanf/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +2 -2
  11. policyengine_us/parameters/gov/states/il/hfs/bcc/eligibility/age.yaml +12 -0
  12. policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/household_size.yaml +14 -0
  13. policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/income_limit.yaml +15 -0
  14. policyengine_us/parameters/gov/states/il/hfs/mpe/eligibility/income_limit.yaml +13 -0
  15. policyengine_us/parameters/gov/states/il/hfs/qualified_noncitizen_statuses.yaml +17 -0
  16. policyengine_us/parameters/gov/states/nj/tax/income/additions.yaml +12 -0
  17. policyengine_us/parameters/gov/states/nj/tax/income/gross_income_sources.yaml +32 -0
  18. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/amount.yaml +4 -0
  19. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_agi.yaml +6 -2
  20. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_child_age.yaml +6 -2
  21. policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/parent_max_earnings.yaml +6 -2
  22. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/amount.yaml +4 -0
  23. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/child_age_threshold.yaml +4 -0
  24. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/rate.yaml +4 -0
  25. policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/start.yaml +4 -0
  26. policyengine_us/parameters/gov/states/ut/tax/income/credits/earned_income/rate.yaml +4 -0
  27. policyengine_us/parameters/gov/states/ut/tax/income/credits/military_retirement/rate.yaml +26 -0
  28. policyengine_us/parameters/gov/states/ut/tax/income/credits/non_refundable.yaml +5 -0
  29. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/birth_year.yaml +4 -0
  30. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/max.yaml +4 -0
  31. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/rate.yaml +4 -0
  32. policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/threshold.yaml +4 -0
  33. policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/rate.yaml +4 -0
  34. policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/threshold.yaml +4 -0
  35. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/in_effect.yaml +2 -0
  36. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/personal_exemption.yaml +5 -0
  37. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/rate.yaml +5 -1
  38. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/threshold.yaml +9 -0
  39. policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/rate.yaml +4 -0
  40. policyengine_us/parameters/gov/states/ut/tax/income/rate.yaml +3 -0
  41. policyengine_us/reforms/reforms.py +7 -0
  42. policyengine_us/reforms/state_dependent_exemptions/repeal_state_dependent_exemptions.py +1 -1
  43. policyengine_us/reforms/states/de/__init__.py +3 -0
  44. policyengine_us/reforms/states/de/dependent_credit/de_dependent_credit_reform.py +165 -0
  45. policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml +105 -0
  46. policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/qbid/qbid_amount.yaml +75 -3
  47. policyengine_us/tests/policy/baseline/gov/local/ca/la/general_relief/eligible/immigration/la_general_relief_immigration_status_eligible_person.yaml +2 -2
  48. policyengine_us/tests/policy/baseline/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.yaml +59 -5
  49. policyengine_us/tests/policy/baseline/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.yaml +2 -10
  50. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.yaml +39 -0
  51. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.yaml +95 -0
  52. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.yaml +35 -0
  53. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_eligible.yaml +35 -0
  54. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_level.yaml +27 -0
  55. policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/integration.yaml +116 -0
  56. policyengine_us/tests/policy/baseline/gov/states/il/hfs/il_hfs_immigration_status_eligible.yaml +47 -0
  57. policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_eligible.yaml +39 -0
  58. policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_income_eligible.yaml +23 -0
  59. policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/integration.yaml +138 -0
  60. policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/eligibility/il_smib_eligible.yaml +88 -0
  61. policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/integration.yaml +73 -0
  62. policyengine_us/tests/policy/baseline/gov/states/ky/tax/income/credits/family_size_tax_credit/ky_family_size_tax_credit_rate.yaml +8 -8
  63. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/eitc/nj_eitc.yaml +8 -3
  64. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml +137 -0
  65. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/taxable_income/nj_agi.yaml +7 -8
  66. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.yaml +1 -1
  67. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.yaml +89 -0
  68. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.yaml +50 -0
  69. policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.yaml +10 -6
  70. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +1 -1
  71. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +1 -1
  72. policyengine_us/tests/policy/baseline/gov/usda/snap/snap_min_allotment.yaml +3 -3
  73. policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml +12 -0
  74. policyengine_us/tests/policy/contrib/state_dependent_exemptions/repeal_state_dependent_exemptions.yaml +25 -1
  75. policyengine_us/tests/policy/contrib/states/de/dependent_credit_reform_test.yaml +210 -0
  76. policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_group.py +2 -2
  77. policyengine_us/variables/gov/hhs/medicaid/receives_medicaid.py +17 -0
  78. policyengine_us/variables/gov/irs/income/taxable_income/deductions/qualified_business_income_deduction/qbid_amount.py +16 -6
  79. policyengine_us/variables/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.py +25 -4
  80. policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_immigration_status_eligible_person.py +1 -1
  81. policyengine_us/variables/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.py +1 -1
  82. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.py +15 -0
  83. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.py +27 -0
  84. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.py +29 -0
  85. policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_eligible.py +40 -0
  86. policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_income_eligible.py +18 -0
  87. policyengine_us/variables/gov/states/il/hfs/fpp/il_fpp_income_level.py +29 -0
  88. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +1 -1
  89. policyengine_us/variables/gov/states/il/hfs/{hbwd/eligibility/il_hbwd_immigration_status_eligible.py → il_hfs_immigration_status_eligible.py} +5 -8
  90. policyengine_us/variables/gov/states/il/hfs/mpe/eligibility/il_mpe_income_eligible.py +15 -0
  91. policyengine_us/variables/gov/states/il/hfs/mpe/il_mpe_eligible.py +15 -0
  92. policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_categorical_eligible.py +26 -0
  93. policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_eligible.py +28 -0
  94. policyengine_us/variables/gov/states/il/hfs/smib/il_smib.py +21 -0
  95. policyengine_us/variables/gov/states/il/hfs/smib/il_smib_person.py +24 -0
  96. policyengine_us/variables/gov/states/ky/tax/income/credits/family_size_credit/ky_family_size_tax_credit_rate.py +1 -1
  97. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_additions.py +8 -3
  98. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_gross_income.py +17 -0
  99. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_total_income.py +12 -6
  100. policyengine_us/variables/gov/states/nj/tax/income/credits/eitc/nj_eitc.py +7 -1
  101. policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.py +20 -0
  102. policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.py +22 -0
  103. policyengine_us/variables/gov/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.py +1 -1
  104. policyengine_us/variables/household/expense/health/has_bcc_qualifying_coverage.py +16 -0
  105. policyengine_us/variables/household/income/person/dividends/qualified_reit_and_ptp_income.py +1 -1
  106. policyengine_us/variables/household/income/spm_unit/spm_unit_tenure_type.py +17 -0
  107. {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/METADATA +2 -2
  108. {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/RECORD +111 -60
  109. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/qualified_noncitizen_statuses.yaml +0 -21
  110. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.yaml +0 -47
  111. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +0 -57
  112. {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/WHEEL +0 -0
  113. {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/entry_points.txt +0 -0
  114. {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,137 @@
1
+ - name: 0-NJ.yaml
2
+ absolute_error_margin: 2
3
+ period: 2024
4
+ input:
5
+ people:
6
+ person1:
7
+ age: 40
8
+ employment_income: 10_000
9
+ ssi: 0
10
+ wic: 0
11
+ head_start: 0
12
+ early_head_start: 0
13
+ commodity_supplemental_food_program: 0
14
+ deductible_mortgage_interest: 13_333.333
15
+ qualified_dividend_income: 23_910.8455
16
+ is_tax_unit_head: true
17
+ person2:
18
+ age: 40
19
+ employment_income: 10_000
20
+ ssi: 0
21
+ wic: 0
22
+ head_start: 0
23
+ early_head_start: 0
24
+ commodity_supplemental_food_program: 0
25
+ qualified_dividend_income: 23_910.8455
26
+ is_tax_unit_spouse: true
27
+ person3:
28
+ age: 5
29
+ employment_income: 0
30
+ ssi: 0
31
+ wic: 0
32
+ head_start: 0
33
+ early_head_start: 0
34
+ commodity_supplemental_food_program: 0
35
+ is_tax_unit_dependent: true
36
+ is_tax_unit_head: false
37
+ is_tax_unit_spouse: false
38
+ tax_units:
39
+ tax_unit:
40
+ members: [person1, person2, person3]
41
+ premium_tax_credit: 0
42
+ local_income_tax: 0
43
+ state_sales_tax: 0
44
+ tax_unit_childcare_expenses: 6_000
45
+ spm_units:
46
+ spm_unit:
47
+ members: [person1, person2, person3]
48
+ snap: 0
49
+ tanf: 0
50
+ free_school_meals: 0
51
+ reduced_price_school_meals: 0
52
+ households:
53
+ household:
54
+ members: [person1, person2, person3]
55
+ state_fips: 34
56
+ output:
57
+ nj_income_tax: 955
58
+
59
+ - name: 34183-NJ.yaml
60
+ absolute_error_margin: 2
61
+ period: 2024
62
+ input:
63
+ people:
64
+ person1:
65
+ age: 40
66
+ employment_income: 0.0
67
+ ssi: 0
68
+ wic: 0
69
+ head_start: 0
70
+ early_head_start: 0
71
+ commodity_supplemental_food_program: 0
72
+ taxable_interest_income: 10_931.683
73
+ is_tax_unit_head: true
74
+ tax_units:
75
+ tax_unit:
76
+ members: [person1]
77
+ premium_tax_credit: 0
78
+ local_income_tax: 0
79
+ state_sales_tax: 0
80
+ spm_units:
81
+ spm_unit:
82
+ members: [person1]
83
+ snap: 0
84
+ tanf: 0
85
+ free_school_meals: 0
86
+ reduced_price_school_meals: 0
87
+ households:
88
+ household:
89
+ members: [person1]
90
+ state_fips: 34
91
+ output:
92
+ nj_income_tax: 139
93
+
94
+ - name: 0-NJ.yaml
95
+ absolute_error_margin: 2
96
+ period: 2024
97
+ input:
98
+ people:
99
+ person1:
100
+ age: 40
101
+ employment_income: 0.0
102
+ ssi: 0
103
+ wic: 0
104
+ head_start: 0
105
+ early_head_start: 0
106
+ commodity_supplemental_food_program: 0
107
+ self_employment_income: 50_000
108
+ is_tax_unit_head: true
109
+ person2:
110
+ age: 40
111
+ employment_income: 0.0
112
+ ssi: 0
113
+ wic: 0
114
+ head_start: 0
115
+ early_head_start: 0
116
+ commodity_supplemental_food_program: 0
117
+ self_employment_income: 50_000
118
+ is_tax_unit_spouse: true
119
+ tax_units:
120
+ tax_unit:
121
+ members: [person1, person2]
122
+ premium_tax_credit: 0
123
+ local_income_tax: 0
124
+ state_sales_tax: 0
125
+ spm_units:
126
+ spm_unit:
127
+ members: [person1, person2]
128
+ snap: 0
129
+ tanf: 0
130
+ free_school_meals: 0
131
+ reduced_price_school_meals: 0
132
+ households:
133
+ household:
134
+ members: [person1, person2]
135
+ state_fips: 34
136
+ output:
137
+ nj_income_tax: 2_640
@@ -1,22 +1,21 @@
1
1
  - name: 1 Test basic formula
2
2
  period: 2021
3
3
  input:
4
- adjusted_gross_income_person: [10_000]
5
- nj_additions: [1_000]
6
- nj_agi_subtractions: [2_000]
4
+ employment_income: [10_000]
7
5
  state_code: NJ
8
6
  output:
9
- nj_agi: 9_000
7
+ nj_total_income: 10_000
8
+ nj_agi: 10_000
10
9
 
11
10
  - name: 2 Test that NJ AGI cannot be negative
12
11
  period: 2021
13
12
  input:
14
- adjusted_gross_income: 10_000
15
- nj_additions: 1_000
16
- nj_agi_subtractions: 20_000
13
+ employment_income: [5_000]
14
+ taxable_interest_income: [5_000]
17
15
  state_code: NJ
18
16
  output:
19
- nj_agi: 0
17
+ nj_total_income: 10_000
18
+ nj_agi: 10_000
20
19
 
21
20
  - name: 3 NJ taxpayer with taxable pension income
22
21
  absolute_error_margin: 0
@@ -11,7 +11,7 @@
11
11
  - name: Case 2, qualified noncitizen eligible for inclusion.
12
12
  period: 2025-01
13
13
  input:
14
- immigration_status: PERMANENT_RESIDENT
14
+ immigration_status: LEGAL_PERMANENT_RESIDENT
15
15
  ssi: 0
16
16
  state_code: TX
17
17
  output:
@@ -0,0 +1,89 @@
1
+ - name: UT military retirement credit - basic calculation
2
+ period: 2024
3
+ input:
4
+ people:
5
+ person1:
6
+ military_retirement_pay: 30_000
7
+ tax_units:
8
+ tax_unit:
9
+ members: [person1]
10
+ ut_claims_retirement_credit: false
11
+ households:
12
+ household:
13
+ members: [person1]
14
+ state_code: UT
15
+ output:
16
+ # Credit = 30,000 * 0.0455 = 1,365
17
+ ut_military_retirement_credit: 1_365
18
+
19
+ - name: UT military retirement credit - married filing jointly with both having military retirement
20
+ period: 2024
21
+ input:
22
+ people:
23
+ person1:
24
+ military_retirement_pay: 25_000
25
+ person2:
26
+ military_retirement_pay: 20_000
27
+ tax_units:
28
+ tax_unit:
29
+ members: [person1, person2]
30
+ ut_claims_retirement_credit: false
31
+ households:
32
+ household:
33
+ members: [person1, person2]
34
+ state_code: UT
35
+ output:
36
+ # Credit = (25,000 + 20,000) * 0.0455 = 45,000 * 0.0455 = 2,047.50
37
+ ut_military_retirement_credit: 2_047.5
38
+
39
+ - name: UT military retirement credit - not eligible when claiming retirement credit
40
+ period: 2024
41
+ input:
42
+ people:
43
+ person1:
44
+ military_retirement_pay: 30_000
45
+ tax_units:
46
+ tax_unit:
47
+ members: [person1]
48
+ ut_claims_retirement_credit: true
49
+ households:
50
+ household:
51
+ members: [person1]
52
+ state_code: UT
53
+ output:
54
+ ut_military_retirement_credit: 0
55
+
56
+ - name: UT military retirement credit - zero military retirement pay
57
+ period: 2024
58
+ input:
59
+ people:
60
+ person1:
61
+ military_retirement_pay: 0
62
+ tax_units:
63
+ tax_unit:
64
+ members: [person1]
65
+ ut_claims_retirement_credit: false
66
+ households:
67
+ household:
68
+ members: [person1]
69
+ state_code: UT
70
+ output:
71
+ ut_military_retirement_credit: 0
72
+
73
+ - name: UT military retirement credit - 2025 rate (4.5%)
74
+ period: 2025
75
+ input:
76
+ people:
77
+ person1:
78
+ military_retirement_pay: 30_000
79
+ tax_units:
80
+ tax_unit:
81
+ members: [person1]
82
+ ut_claims_retirement_credit: false
83
+ households:
84
+ household:
85
+ members: [person1]
86
+ state_code: UT
87
+ output:
88
+ # Credit = 30,000 * 0.045 = 1,350
89
+ ut_military_retirement_credit: 1_350
@@ -0,0 +1,50 @@
1
+ - name: UT military retirement credit eligible - has military retirement pay, not claiming retirement credit
2
+ period: 2024
3
+ input:
4
+ people:
5
+ person1:
6
+ military_retirement_pay: 30_000
7
+ tax_units:
8
+ tax_unit:
9
+ members: [person1]
10
+ ut_claims_retirement_credit: false
11
+ households:
12
+ household:
13
+ members: [person1]
14
+ state_code: UT
15
+ output:
16
+ ut_military_retirement_credit_eligible: true
17
+
18
+ - name: UT military retirement credit eligible - no military retirement pay
19
+ period: 2024
20
+ input:
21
+ people:
22
+ person1:
23
+ military_retirement_pay: 0
24
+ tax_units:
25
+ tax_unit:
26
+ members: [person1]
27
+ ut_claims_retirement_credit: false
28
+ households:
29
+ household:
30
+ members: [person1]
31
+ state_code: UT
32
+ output:
33
+ ut_military_retirement_credit_eligible: false
34
+
35
+ - name: UT military retirement credit eligible - claiming retirement credit
36
+ period: 2024
37
+ input:
38
+ people:
39
+ person1:
40
+ military_retirement_pay: 30_000
41
+ tax_units:
42
+ tax_unit:
43
+ members: [person1]
44
+ ut_claims_retirement_credit: true
45
+ households:
46
+ household:
47
+ members: [person1]
48
+ state_code: UT
49
+ output:
50
+ ut_military_retirement_credit_eligible: false
@@ -1,8 +1,12 @@
1
+ # Unit tests for wv_low_income_family_tax_credit_fpg
2
+ # These tests verify that state_group is correctly derived from state_code
3
+ # (not explicitly set, which would mask bugs in the state_group derivation)
4
+
1
5
  - name: The federal poverty guidelines for family size of 4 is $27,750.
2
6
  period: 2022
3
7
  input:
8
+ state_code: WV
4
9
  tax_unit_size: 4
5
- state_group: CONTIGUOUS_US
6
10
  wv_low_income_family_tax_credit_eligible: true
7
11
  output:
8
12
  wv_low_income_family_tax_credit_fpg: 27_750
@@ -10,8 +14,8 @@
10
14
  - name: The federal poverty guidelines for family size of 2 is $18,310.
11
15
  period: 2022
12
16
  input:
17
+ state_code: WV
13
18
  tax_unit_size: 2
14
- state_group: CONTIGUOUS_US
15
19
  wv_low_income_family_tax_credit_eligible: true
16
20
  output:
17
21
  wv_low_income_family_tax_credit_fpg: 18_310
@@ -19,18 +23,18 @@
19
23
  - name: The federal poverty guidelines for family size of 8 is $46,630.
20
24
  period: 2022
21
25
  input:
26
+ state_code: WV
22
27
  tax_unit_size: 8
23
- state_group: CONTIGUOUS_US
24
28
  wv_low_income_family_tax_credit_eligible: true
25
29
  output:
26
- # 14_580 + 7 * 5_140
30
+ # 13_590 + 7 * 4_720 = 46_630
27
31
  wv_low_income_family_tax_credit_fpg: 46_630
28
32
 
29
- - name: The federal poverty guidelines for family size of 10 is $46,630.
33
+ - name: The federal poverty guidelines for family size of 10 is $46,630 (capped at 8).
30
34
  period: 2022
31
35
  input:
36
+ state_code: WV
32
37
  tax_unit_size: 10
33
- state_group: CONTIGUOUS_US
34
38
  wv_low_income_family_tax_credit_eligible: true
35
39
  output:
36
40
  wv_low_income_family_tax_credit_fpg: 46_630
@@ -14,4 +14,4 @@
14
14
  alimony_expense: 10_000
15
15
  state_code: PR
16
16
  output:
17
- pr_agi: 0
17
+ pr_agi: 0
@@ -14,4 +14,4 @@
14
14
  filing_status: SEPARATE
15
15
  state_code: PR
16
16
  output:
17
- pr_agi_person: 20_000
17
+ pr_agi_person: 20_000
@@ -35,14 +35,14 @@
35
35
  output:
36
36
  snap_min_allotment: 30
37
37
 
38
- - name: In other states, we keep the standard minium allotment amount
38
+ - name: In other states, we keep the standard minimum allotment amount
39
39
  period: 2022-01
40
40
  input:
41
41
  spm_unit_size: 2
42
- state_code: AB
42
+ state_code: CA
43
43
  state_group: CONTIGUOUS_US
44
44
  output:
45
- snap_min_allotment: 250 * 0.08
45
+ snap_min_allotment: 250 * 0.08
46
46
 
47
47
  - name: Above age threshold in 2017, Maryland provides a different minimum allotment amount
48
48
  period: 2022-01
@@ -0,0 +1,12 @@
1
+ - name: Default is no qualifying coverage
2
+ period: 2024
3
+ input: {}
4
+ output:
5
+ has_bcc_qualifying_coverage: false
6
+
7
+ - name: Has qualifying coverage when set
8
+ period: 2024
9
+ input:
10
+ has_bcc_qualifying_coverage: true
11
+ output:
12
+ has_bcc_qualifying_coverage: true
@@ -63,7 +63,7 @@
63
63
  period: 2024
64
64
  input:
65
65
  gov.contrib.repeal_state_dependent_exemptions.in_effect: false
66
- people:
66
+ people:
67
67
  person1:
68
68
  age: 38
69
69
  person2:
@@ -79,3 +79,27 @@
79
79
  state_code: VT
80
80
  output:
81
81
  vt_personal_exemptions: 15_300
82
+
83
+ # Test for KY family size tax credit rate - verifies state_group_str is used correctly
84
+ # This test ensures state_group is derived from state_code, not set explicitly
85
+ - name: Kentucky family size tax credit with reform - state_group derived from state_code
86
+ period: 2024
87
+ reforms: policyengine_us.reforms.state_dependent_exemptions.repeal_state_dependent_exemptions.repeal_state_dependent_exemptions
88
+ input:
89
+ gov.contrib.repeal_state_dependent_exemptions.in_effect: true
90
+ people:
91
+ person1:
92
+ age: 38
93
+ employment_income: 20_000
94
+ tax_units:
95
+ tax_unit:
96
+ members: [person1]
97
+ households:
98
+ household:
99
+ members: [person1]
100
+ state_code: KY
101
+ output:
102
+ # With 20k income vs 15,060 FPG for 1 person in 2024, income/FPG ratio = 132.8%
103
+ # The rate scale: 130% -> 0.1, 133% -> 0
104
+ # Since 132.8% is between 130% and 133%, the rate is 0.1
105
+ ky_family_size_tax_credit_rate: 0.1
@@ -0,0 +1,210 @@
1
+ - name: DE dependent credit reform - restrict to children under 18
2
+ period: 2025
3
+ reforms: policyengine_us.reforms.states.de.dependent_credit.de_dependent_credit_reform.de_dependent_credit_reform
4
+ input:
5
+ gov.contrib.states.de.dependent_credit.in_effect: true
6
+ gov.contrib.states.de.dependent_credit.amount: 110
7
+ gov.contrib.states.de.dependent_credit.age_limit.in_effect: true
8
+ gov.contrib.states.de.dependent_credit.age_limit.threshold: 18
9
+ people:
10
+ parent:
11
+ age: 40
12
+ employment_income: 60_000
13
+ child1:
14
+ age: 16
15
+ is_tax_unit_dependent: true
16
+ child2:
17
+ age: 20
18
+ is_tax_unit_dependent: true
19
+ tax_units:
20
+ tax_unit:
21
+ members: [parent, child1, child2]
22
+ filing_status: SINGLE
23
+ households:
24
+ household:
25
+ members: [parent, child1, child2]
26
+ state_name: DE
27
+ output:
28
+ # Personal credits (unaffected by dependent credit reform):
29
+ # - 1 head (parent): $110
30
+ # - 1 older dependent (child2, age 20, over age limit 18): $110
31
+ # Dependent credit (subject to phaseout):
32
+ # - 1 eligible dependent (child1, age 16, under age limit 18): $110
33
+ # Total: $110 + $110 + $110 = $330
34
+ de_personal_credit: 330
35
+
36
+ - name: DE dependent credit reform - restrict to children under 13
37
+ period: 2025
38
+ reforms: policyengine_us.reforms.states.de.dependent_credit.de_dependent_credit_reform.de_dependent_credit_reform
39
+ input:
40
+ gov.contrib.states.de.dependent_credit.in_effect: true
41
+ gov.contrib.states.de.dependent_credit.amount: 110
42
+ gov.contrib.states.de.dependent_credit.age_limit.in_effect: true
43
+ gov.contrib.states.de.dependent_credit.age_limit.threshold: 13
44
+ people:
45
+ parent:
46
+ age: 40
47
+ employment_income: 60_000
48
+ child1:
49
+ age: 10
50
+ is_tax_unit_dependent: true
51
+ child2:
52
+ age: 16
53
+ is_tax_unit_dependent: true
54
+ tax_units:
55
+ tax_unit:
56
+ members: [parent, child1, child2]
57
+ filing_status: SINGLE
58
+ households:
59
+ household:
60
+ members: [parent, child1, child2]
61
+ state_name: DE
62
+ output:
63
+ # Personal credits (unaffected by dependent credit reform):
64
+ # - 1 head (parent): $110
65
+ # - 1 older dependent (child2, age 16, over age limit 13): $110
66
+ # Dependent credit (subject to phaseout):
67
+ # - 1 eligible dependent (child1, age 10, under age limit 13): $110
68
+ # Total: $110 + $110 + $110 = $330
69
+ de_personal_credit: 330
70
+
71
+ - name: DE dependent credit reform - AGI phaseout
72
+ period: 2025
73
+ reforms: policyengine_us.reforms.states.de.dependent_credit.de_dependent_credit_reform.de_dependent_credit_reform
74
+ input:
75
+ gov.contrib.states.de.dependent_credit.in_effect: true
76
+ gov.contrib.states.de.dependent_credit.amount: 110
77
+ gov.contrib.states.de.dependent_credit.phaseout.threshold.SINGLE: 100_000
78
+ gov.contrib.states.de.dependent_credit.phaseout.rate: 0.05
79
+ people:
80
+ parent:
81
+ age: 40
82
+ employment_income: 120_000
83
+ child1:
84
+ age: 10
85
+ is_tax_unit_dependent: true
86
+ tax_units:
87
+ tax_unit:
88
+ members: [parent, child1]
89
+ filing_status: SINGLE
90
+ households:
91
+ household:
92
+ members: [parent, child1]
93
+ state_name: DE
94
+ output:
95
+ # Personal credits (unaffected by dependent credit reform):
96
+ # - 1 head (parent): $110
97
+ # Dependent credit (subject to phaseout):
98
+ # - 1 eligible dependent (child1, age 10): $110 before phaseout
99
+ # - Phaseout: ($120,000 - $100,000) * 0.05 = $1,000
100
+ # - Dependent credit after phaseout: max($110 - $1,000, 0) = $0
101
+ # Total: $110 + $0 = $110
102
+ de_personal_credit: 110
103
+
104
+ - name: DE dependent credit reform - no age limit
105
+ period: 2025
106
+ reforms: policyengine_us.reforms.states.de.dependent_credit.de_dependent_credit_reform.de_dependent_credit_reform
107
+ input:
108
+ gov.contrib.states.de.dependent_credit.in_effect: true
109
+ gov.contrib.states.de.dependent_credit.amount: 110
110
+ gov.contrib.states.de.dependent_credit.age_limit.in_effect: false
111
+ people:
112
+ parent:
113
+ age: 40
114
+ employment_income: 60_000
115
+ child1:
116
+ age: 16
117
+ is_tax_unit_dependent: true
118
+ child2:
119
+ age: 25
120
+ is_tax_unit_dependent: true
121
+ tax_units:
122
+ tax_unit:
123
+ members: [parent, child1, child2]
124
+ filing_status: SINGLE
125
+ households:
126
+ household:
127
+ members: [parent, child1, child2]
128
+ state_name: DE
129
+ output:
130
+ # Personal credits (unaffected by dependent credit reform):
131
+ # - 1 head (parent): $110
132
+ # Dependent credit (no age limit, so all dependents are eligible):
133
+ # - 2 eligible dependents (child1, age 16; child2, age 25): $110 * 2 = $220
134
+ # Total: $110 + $220 = $330
135
+ de_personal_credit: 330
136
+
137
+ - name: DE dependent credit reform - married joint with phaseout
138
+ period: 2025
139
+ reforms: policyengine_us.reforms.states.de.dependent_credit.de_dependent_credit_reform.de_dependent_credit_reform
140
+ input:
141
+ gov.contrib.states.de.dependent_credit.in_effect: true
142
+ gov.contrib.states.de.dependent_credit.amount: 110
143
+ gov.contrib.states.de.dependent_credit.phaseout.threshold.JOINT: 150_000
144
+ gov.contrib.states.de.dependent_credit.phaseout.rate: 0.01
145
+ people:
146
+ head:
147
+ age: 40
148
+ employment_income: 160_000
149
+ spouse:
150
+ age: 38
151
+ child:
152
+ age: 5
153
+ is_tax_unit_dependent: true
154
+ tax_units:
155
+ tax_unit:
156
+ members: [head, spouse, child]
157
+ filing_status: JOINT
158
+ households:
159
+ household:
160
+ members: [head, spouse, child]
161
+ state_name: DE
162
+ output:
163
+ # Personal credits (unaffected by dependent credit reform):
164
+ # - 1 head: $110
165
+ # - 1 spouse: $110
166
+ # Dependent credit (subject to phaseout):
167
+ # - 1 eligible dependent (child, age 5): $110 before phaseout
168
+ # - Phaseout: ($160,000 - $150,000) * 0.01 = $100
169
+ # - Dependent credit after phaseout: max($110 - $100, 0) = $10
170
+ # Total: $110 + $110 + $10 = $230
171
+ de_personal_credit: 230
172
+
173
+ - name: DE dependent credit reform - married filing separately uses individual AGI
174
+ period: 2025
175
+ reforms: policyengine_us.reforms.states.de.dependent_credit.de_dependent_credit_reform.de_dependent_credit_reform
176
+ input:
177
+ gov.contrib.states.de.dependent_credit.in_effect: true
178
+ gov.contrib.states.de.dependent_credit.amount: 110
179
+ gov.contrib.states.de.dependent_credit.phaseout.threshold.JOINT: 100_000
180
+ gov.contrib.states.de.dependent_credit.phaseout.rate: 0.01
181
+ people:
182
+ head:
183
+ age: 40
184
+ employment_income: 80_000
185
+ spouse:
186
+ age: 38
187
+ employment_income: 80_000
188
+ child:
189
+ age: 5
190
+ is_tax_unit_dependent: true
191
+ tax_units:
192
+ tax_unit:
193
+ members: [head, spouse, child]
194
+ filing_status: JOINT
195
+ households:
196
+ household:
197
+ members: [head, spouse, child]
198
+ state_name: DE
199
+ output:
200
+ # de_files_separately = true (filing separately is more advantageous)
201
+ # Uses de_agi_indiv ($80,000 + $80,000 = $160,000) for phaseout
202
+ # Personal credits (unaffected by dependent credit reform):
203
+ # - 1 head: $110
204
+ # - 1 spouse: $110
205
+ # Dependent credit (subject to phaseout):
206
+ # - 1 eligible dependent (child, age 5): $110 before phaseout
207
+ # - Phaseout: ($160,000 - $100,000) * 0.01 = $600
208
+ # - Dependent credit after phaseout: max($110 - $600, 0) = $0
209
+ # Total: $110 + $110 + $0 = $220
210
+ de_personal_credit: 220
@@ -12,10 +12,10 @@ class MedicaidGroup(Enum):
12
12
  class medicaid_group(Variable):
13
13
  """Maps fine-grained Medicaid categories to broader spending groups
14
14
  Precedence order (highest → lowest):
15
- 1. Disabled / SSI / medicallyneedy → AGED_DISABLED
15
+ 1. Disabled / SSI / medically-needy → AGED_DISABLED
16
16
  2. Pregnant → NON_EXPANSION_ADULT
17
17
  3. Parent → NON_EXPANSION_ADULT
18
- 4. Young adult (1920) → NON_EXPANSION_ADULT
18
+ 4. Young adult (19-20) → NON_EXPANSION_ADULT
19
19
  5. Expansion adult → EXPANSION_ADULT
20
20
  6. Any child category → CHILD
21
21
  """
@@ -0,0 +1,17 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class receives_medicaid(Variable):
5
+ value_type = bool
6
+ entity = Person
7
+ label = "Currently receives Medicaid"
8
+ definition_period = YEAR
9
+ documentation = """
10
+ Input variable indicating a person currently has Medicaid coverage.
11
+ Used to model continuous coverage for existing enrollees who may no
12
+ longer meet eligibility criteria under new rules (e.g., CA undocumented
13
+ immigrant enrollment freeze starting 2026).
14
+
15
+ This differs from medicaid_enrolled which is computed based on
16
+ eligibility and takeup rate.
17
+ """