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.
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/age_limit/in_effect.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/age_limit/threshold.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/amount.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/in_effect.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/rate.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/threshold.yaml +23 -0
- policyengine_us/parameters/gov/irs/deductions/qbi/max/reit_ptp_rate.yaml +13 -0
- policyengine_us/parameters/gov/states/ca/chhs/medi_cal_enrollment_freeze/in_effect.yaml +12 -0
- policyengine_us/parameters/gov/states/il/dhs/aabd/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +3 -5
- policyengine_us/parameters/gov/states/il/dhs/tanf/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +2 -2
- policyengine_us/parameters/gov/states/il/hfs/bcc/eligibility/age.yaml +12 -0
- policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/household_size.yaml +14 -0
- policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/income_limit.yaml +15 -0
- policyengine_us/parameters/gov/states/il/hfs/mpe/eligibility/income_limit.yaml +13 -0
- policyengine_us/parameters/gov/states/il/hfs/qualified_noncitizen_statuses.yaml +17 -0
- policyengine_us/parameters/gov/states/nj/tax/income/additions.yaml +12 -0
- policyengine_us/parameters/gov/states/nj/tax/income/gross_income_sources.yaml +32 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/amount.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_agi.yaml +6 -2
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_child_age.yaml +6 -2
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/parent_max_earnings.yaml +6 -2
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/amount.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/child_age_threshold.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/start.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/earned_income/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/military_retirement/rate.yaml +26 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/non_refundable.yaml +5 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/birth_year.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/max.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/threshold.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/threshold.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/in_effect.yaml +2 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/personal_exemption.yaml +5 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/rate.yaml +5 -1
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/threshold.yaml +9 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/rate.yaml +3 -0
- policyengine_us/reforms/reforms.py +7 -0
- policyengine_us/reforms/state_dependent_exemptions/repeal_state_dependent_exemptions.py +1 -1
- policyengine_us/reforms/states/de/__init__.py +3 -0
- policyengine_us/reforms/states/de/dependent_credit/de_dependent_credit_reform.py +165 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml +105 -0
- policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/qbid/qbid_amount.yaml +75 -3
- policyengine_us/tests/policy/baseline/gov/local/ca/la/general_relief/eligible/immigration/la_general_relief_immigration_status_eligible_person.yaml +2 -2
- policyengine_us/tests/policy/baseline/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.yaml +59 -5
- policyengine_us/tests/policy/baseline/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.yaml +2 -10
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.yaml +95 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_eligible.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_level.yaml +27 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/integration.yaml +116 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/il_hfs_immigration_status_eligible.yaml +47 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_eligible.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_income_eligible.yaml +23 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/integration.yaml +138 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/eligibility/il_smib_eligible.yaml +88 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/integration.yaml +73 -0
- policyengine_us/tests/policy/baseline/gov/states/ky/tax/income/credits/family_size_tax_credit/ky_family_size_tax_credit_rate.yaml +8 -8
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/eitc/nj_eitc.yaml +8 -3
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml +137 -0
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/taxable_income/nj_agi.yaml +7 -8
- policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.yaml +89 -0
- policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.yaml +50 -0
- policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.yaml +10 -6
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/usda/snap/snap_min_allotment.yaml +3 -3
- policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml +12 -0
- policyengine_us/tests/policy/contrib/state_dependent_exemptions/repeal_state_dependent_exemptions.yaml +25 -1
- policyengine_us/tests/policy/contrib/states/de/dependent_credit_reform_test.yaml +210 -0
- policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_group.py +2 -2
- policyengine_us/variables/gov/hhs/medicaid/receives_medicaid.py +17 -0
- policyengine_us/variables/gov/irs/income/taxable_income/deductions/qualified_business_income_deduction/qbid_amount.py +16 -6
- policyengine_us/variables/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.py +25 -4
- policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_immigration_status_eligible_person.py +1 -1
- policyengine_us/variables/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.py +1 -1
- policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.py +15 -0
- policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.py +27 -0
- policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.py +29 -0
- policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_eligible.py +40 -0
- policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_income_eligible.py +18 -0
- policyengine_us/variables/gov/states/il/hfs/fpp/il_fpp_income_level.py +29 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +1 -1
- policyengine_us/variables/gov/states/il/hfs/{hbwd/eligibility/il_hbwd_immigration_status_eligible.py → il_hfs_immigration_status_eligible.py} +5 -8
- policyengine_us/variables/gov/states/il/hfs/mpe/eligibility/il_mpe_income_eligible.py +15 -0
- policyengine_us/variables/gov/states/il/hfs/mpe/il_mpe_eligible.py +15 -0
- policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_categorical_eligible.py +26 -0
- policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_eligible.py +28 -0
- policyengine_us/variables/gov/states/il/hfs/smib/il_smib.py +21 -0
- policyengine_us/variables/gov/states/il/hfs/smib/il_smib_person.py +24 -0
- policyengine_us/variables/gov/states/ky/tax/income/credits/family_size_credit/ky_family_size_tax_credit_rate.py +1 -1
- policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_additions.py +8 -3
- policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_gross_income.py +17 -0
- policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_total_income.py +12 -6
- policyengine_us/variables/gov/states/nj/tax/income/credits/eitc/nj_eitc.py +7 -1
- policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.py +20 -0
- policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.py +22 -0
- policyengine_us/variables/gov/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.py +1 -1
- policyengine_us/variables/household/expense/health/has_bcc_qualifying_coverage.py +16 -0
- policyengine_us/variables/household/income/person/dividends/qualified_reit_and_ptp_income.py +1 -1
- policyengine_us/variables/household/income/spm_unit/spm_unit_tenure_type.py +17 -0
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/METADATA +2 -2
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/RECORD +111 -60
- policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/qualified_noncitizen_statuses.yaml +0 -21
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.yaml +0 -47
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +0 -57
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/entry_points.txt +0 -0
- {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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
15
|
-
|
|
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
|
-
|
|
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
|
|
@@ -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
|
-
#
|
|
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
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
output:
|
|
36
36
|
snap_min_allotment: 30
|
|
37
37
|
|
|
38
|
-
- name: In other states, we keep the standard
|
|
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:
|
|
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
|
policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml
ADDED
|
@@ -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 / medically
|
|
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 (19
|
|
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
|
+
"""
|