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,35 @@
1
+ # IL FPP income limit is 213% FPL (208% + 5% disregard)
2
+ # 2024 FPL for household size 2: $20,440
3
+ # 213% * $20,440 = $43,537.20
4
+
5
+ - name: Case 1, income at 100% FPL.
6
+ period: 2024
7
+ input:
8
+ state_code: IL
9
+ il_fpp_income_level: 1.0
10
+ output:
11
+ il_fpp_income_eligible: true
12
+
13
+ - name: Case 2, income at 213% FPL limit.
14
+ period: 2024
15
+ input:
16
+ state_code: IL
17
+ il_fpp_income_level: 2.13
18
+ output:
19
+ il_fpp_income_eligible: true
20
+
21
+ - name: Case 3, income over 213% FPL limit.
22
+ period: 2024
23
+ input:
24
+ state_code: IL
25
+ il_fpp_income_level: 2.14
26
+ output:
27
+ il_fpp_income_eligible: false
28
+
29
+ - name: Case 4, zero income.
30
+ period: 2024
31
+ input:
32
+ state_code: IL
33
+ il_fpp_income_level: 0
34
+ output:
35
+ il_fpp_income_eligible: true
@@ -0,0 +1,27 @@
1
+ # IL FPP uses applicant's income only with fixed household size of 2
2
+ # 2024 FPL for household size 2 in contiguous US: $15,060 + $5,380 = $20,440
3
+
4
+ - name: Case 1, income at 100% FPL.
5
+ period: 2024
6
+ input:
7
+ state_code: IL
8
+ adjusted_gross_income_person: 20_440
9
+ output:
10
+ il_fpp_income_level: 1.0
11
+
12
+ - name: Case 2, income at 213% FPL.
13
+ period: 2024
14
+ input:
15
+ state_code: IL
16
+ adjusted_gross_income_person: 43_537
17
+ output:
18
+ # 43,537 / 20,440 = 2.13
19
+ il_fpp_income_level: 2.13
20
+
21
+ - name: Case 3, zero income.
22
+ period: 2024
23
+ input:
24
+ state_code: IL
25
+ adjusted_gross_income_person: 0
26
+ output:
27
+ il_fpp_income_level: 0
@@ -0,0 +1,116 @@
1
+ # Illinois Family Planning Program Integration Tests
2
+ #
3
+ # Key rules:
4
+ # - Only applicant's income counted (not household)
5
+ # - Fixed household size of 2 for FPL calculation
6
+ # - Income limit: 213% FPL (~$43,537 for 2024)
7
+ # - Must NOT be pregnant
8
+ # - Must NOT be enrolled in full Medicaid
9
+ #
10
+ # 2024 FPL for HH size 2: $20,440
11
+ # 213% * $20,440 = $43,537.20
12
+
13
+ - name: Case 1, married couple with different incomes.
14
+ period: 2024
15
+ input:
16
+ people:
17
+ person1:
18
+ age: 30
19
+ employment_income: 25_000
20
+ is_pregnant: false
21
+ person2:
22
+ age: 32
23
+ employment_income: 60_000
24
+ is_pregnant: false
25
+ tax_units:
26
+ tax_unit:
27
+ members: [person1, person2]
28
+ filing_status: JOINT
29
+ households:
30
+ household:
31
+ members: [person1, person2]
32
+ state_code: IL
33
+ output:
34
+ # person1: $25,000 / $20,440 = 1.22 (122% FPL) - eligible
35
+ # person2: $60,000 / $20,440 = 2.94 (294% FPL) - over limit
36
+ il_fpp_income_eligible: [true, false]
37
+ il_fpp_eligible: [true, false]
38
+
39
+ - name: Case 2, pregnant vs non-pregnant.
40
+ period: 2024
41
+ input:
42
+ people:
43
+ person1:
44
+ age: 28
45
+ employment_income: 20_000
46
+ is_pregnant: true
47
+ person2:
48
+ age: 30
49
+ employment_income: 20_000
50
+ is_pregnant: false
51
+ tax_units:
52
+ tax_unit:
53
+ members: [person1, person2]
54
+ households:
55
+ household:
56
+ members: [person1, person2]
57
+ state_code: IL
58
+ output:
59
+ # Both income eligible but person1 is pregnant
60
+ il_fpp_income_eligible: [true, true]
61
+ # person1 ineligible (pregnant), person2 eligible
62
+ il_fpp_eligible: [false, true]
63
+
64
+ - name: Case 3, income at boundary.
65
+ period: 2024
66
+ input:
67
+ people:
68
+ person1:
69
+ age: 25
70
+ employment_income: 43_500
71
+ is_pregnant: false
72
+ tax_units:
73
+ tax_unit:
74
+ members: [person1]
75
+ households:
76
+ household:
77
+ members: [person1]
78
+ state_code: IL
79
+ output:
80
+ # $43,500 / $20,440 = 2.128 (~213% FPL) - just under limit
81
+ il_fpp_income_eligible: [true]
82
+ il_fpp_eligible: [true]
83
+
84
+ - name: Case 4, family with children.
85
+ period: 2024
86
+ input:
87
+ people:
88
+ person1:
89
+ age: 35
90
+ employment_income: 30_000
91
+ is_pregnant: false
92
+ person2:
93
+ age: 33
94
+ employment_income: 25_000
95
+ is_pregnant: false
96
+ person3:
97
+ age: 10
98
+ is_pregnant: false
99
+ person4:
100
+ age: 8
101
+ is_pregnant: false
102
+ tax_units:
103
+ tax_unit:
104
+ members: [person1, person2, person3, person4]
105
+ households:
106
+ household:
107
+ members: [person1, person2, person3, person4]
108
+ state_code: IL
109
+ output:
110
+ # Each person evaluated individually with fixed HH size 2
111
+ # person1: $30,000 / $20,440 = 1.47 (147% FPL) - income eligible
112
+ # person2: $25,000 / $20,440 = 1.22 (122% FPL) - income eligible
113
+ # person3, person4: $0 income - income eligible
114
+ il_fpp_income_eligible: [true, true, true, true]
115
+ # Children are Medicaid-eligible, so ineligible for FPP
116
+ il_fpp_eligible: [true, true, false, false]
@@ -0,0 +1,47 @@
1
+ - name: Citizen eligible
2
+ period: 2024
3
+ input:
4
+ state_code: IL
5
+ immigration_status: CITIZEN
6
+ output:
7
+ il_hfs_immigration_status_eligible: true
8
+
9
+ - name: Legal permanent resident eligible
10
+ period: 2024
11
+ input:
12
+ state_code: IL
13
+ immigration_status: LEGAL_PERMANENT_RESIDENT
14
+ output:
15
+ il_hfs_immigration_status_eligible: true
16
+
17
+ - name: Refugee eligible
18
+ period: 2024
19
+ input:
20
+ state_code: IL
21
+ immigration_status: REFUGEE
22
+ output:
23
+ il_hfs_immigration_status_eligible: true
24
+
25
+ - name: Asylee eligible
26
+ period: 2024
27
+ input:
28
+ state_code: IL
29
+ immigration_status: ASYLEE
30
+ output:
31
+ il_hfs_immigration_status_eligible: true
32
+
33
+ - name: Undocumented ineligible
34
+ period: 2024
35
+ input:
36
+ state_code: IL
37
+ immigration_status: UNDOCUMENTED
38
+ output:
39
+ il_hfs_immigration_status_eligible: false
40
+
41
+ - name: DACA ineligible
42
+ period: 2024
43
+ input:
44
+ state_code: IL
45
+ immigration_status: DACA
46
+ output:
47
+ il_hfs_immigration_status_eligible: false
@@ -0,0 +1,39 @@
1
+ - name: Case 1, pregnant with low income.
2
+ period: 2024-01
3
+ input:
4
+ state_code: IL
5
+ current_pregnancies: 1
6
+ medicaid_income_level: 1.5
7
+ output:
8
+ is_pregnant: true
9
+ il_mpe_eligible: true
10
+
11
+ - name: Case 2, pregnant with income at 200% FPL.
12
+ period: 2024-01
13
+ input:
14
+ state_code: IL
15
+ current_pregnancies: 1
16
+ medicaid_income_level: 2
17
+ output:
18
+ is_pregnant: true
19
+ il_mpe_eligible: true
20
+
21
+ - name: Case 3, pregnant with income above 200% FPL.
22
+ period: 2024-01
23
+ input:
24
+ state_code: IL
25
+ current_pregnancies: 1
26
+ medicaid_income_level: 2.5
27
+ output:
28
+ is_pregnant: true
29
+ il_mpe_eligible: false
30
+
31
+ - name: Case 4, not pregnant with low income.
32
+ period: 2024-01
33
+ input:
34
+ state_code: IL
35
+ current_pregnancies: 0
36
+ medicaid_income_level: 1
37
+ output:
38
+ is_pregnant: false
39
+ il_mpe_eligible: false
@@ -0,0 +1,23 @@
1
+ - name: Case 1, income below 200% FPL.
2
+ period: 2024-01
3
+ input:
4
+ state_code: IL
5
+ medicaid_income_level: 1.5
6
+ output:
7
+ il_mpe_income_eligible: true
8
+
9
+ - name: Case 2, income at exactly 200% FPL.
10
+ period: 2024-01
11
+ input:
12
+ state_code: IL
13
+ medicaid_income_level: 2
14
+ output:
15
+ il_mpe_income_eligible: true
16
+
17
+ - name: Case 3, income above 200% FPL.
18
+ period: 2024-01
19
+ input:
20
+ state_code: IL
21
+ medicaid_income_level: 2.01
22
+ output:
23
+ il_mpe_income_eligible: false
@@ -0,0 +1,138 @@
1
+ - name: Case 1, married couple with pregnant spouse expecting one child.
2
+ period: 2024-01
3
+ input:
4
+ people:
5
+ person1:
6
+ age: 28
7
+ current_pregnancies: 1
8
+ employment_income: 15_000
9
+ person2:
10
+ age: 30
11
+ employment_income: 10_000
12
+ tax_units:
13
+ tax_unit:
14
+ members: [person1, person2]
15
+ spm_units:
16
+ spm_unit:
17
+ members: [person1, person2]
18
+ households:
19
+ household:
20
+ members: [person1, person2]
21
+ state_code: IL
22
+ output:
23
+ # Combined income: 25,000/year
24
+ # Household size: 2 adults + 1 unborn = 3
25
+ # 2024 FPL for 3: 25,820
26
+ # Income level: 25,000 / 25,820 = 0.97 (97% FPL)
27
+ # Under 200% FPL limit = income eligible
28
+ il_mpe_income_eligible: [true, true]
29
+ # person1: pregnant + income eligible = eligible
30
+ # person2: not pregnant = not eligible
31
+ il_mpe_eligible: [true, false]
32
+
33
+ - name: Case 2, pregnant with twins increases household size.
34
+ period: 2024-01
35
+ input:
36
+ people:
37
+ person1:
38
+ age: 28
39
+ current_pregnancies: 2
40
+ employment_income: 35_000
41
+ tax_units:
42
+ tax_unit:
43
+ members: [person1]
44
+ spm_units:
45
+ spm_unit:
46
+ members: [person1]
47
+ households:
48
+ household:
49
+ members: [person1]
50
+ state_code: IL
51
+ output:
52
+ # Income: 35,000/year
53
+ # Household size: 1 adult + 2 unborn = 3
54
+ # 2024 FPL for 3: 25,820
55
+ # Income level: 35,000 / 25,820 = 1.36 (136% FPL)
56
+ # Under 200% FPL limit = income eligible
57
+ il_mpe_income_eligible: true
58
+ il_mpe_eligible: true
59
+
60
+ - name: Case 3, single pregnant woman over income limit.
61
+ period: 2024-01
62
+ input:
63
+ people:
64
+ person1:
65
+ age: 28
66
+ current_pregnancies: 1
67
+ employment_income: 80_000
68
+ tax_units:
69
+ tax_unit:
70
+ members: [person1]
71
+ spm_units:
72
+ spm_unit:
73
+ members: [person1]
74
+ households:
75
+ household:
76
+ members: [person1]
77
+ state_code: IL
78
+ output:
79
+ # Income: 80,000/year
80
+ # Household size: 1 adult + 1 unborn = 2
81
+ # 2024 FPL for 2: 20,440
82
+ # Income level: 80,000 / 20,440 = 3.91 (391% FPL)
83
+ # Over 200% FPL limit = not income eligible
84
+ il_mpe_income_eligible: false
85
+ il_mpe_eligible: false
86
+
87
+ - name: Case 4, pregnancy increases household size and passes income test.
88
+ period: 2024-01
89
+ input:
90
+ people:
91
+ person1:
92
+ age: 28
93
+ current_pregnancies: 1
94
+ employment_income: 31_000
95
+ tax_units:
96
+ tax_unit:
97
+ members: [person1]
98
+ spm_units:
99
+ spm_unit:
100
+ members: [person1]
101
+ households:
102
+ household:
103
+ members: [person1]
104
+ state_code: IL
105
+ output:
106
+ # Income: 31,000/year
107
+ # Household size: 1 adult + 1 unborn = 2
108
+ # 2024 FPL for 2: 20,440
109
+ # Income level: 31,000 / 20,440 = 1.52 (152% FPL)
110
+ # Under 200% FPL = income eligible
111
+ il_mpe_income_eligible: true
112
+ il_mpe_eligible: true
113
+
114
+ - name: Case 5, same income without pregnancy fails income test.
115
+ period: 2024-01
116
+ input:
117
+ people:
118
+ person1:
119
+ age: 28
120
+ employment_income: 31_000
121
+ tax_units:
122
+ tax_unit:
123
+ members: [person1]
124
+ spm_units:
125
+ spm_unit:
126
+ members: [person1]
127
+ households:
128
+ household:
129
+ members: [person1]
130
+ state_code: IL
131
+ output:
132
+ # Income: 31,000/year
133
+ # Household size: 1 adult only = 1
134
+ # 2024 FPL for 1: 15,060
135
+ # Income level: 31,000 / 15,060 = 2.06 (206% FPL)
136
+ # Over 200% FPL = not income eligible
137
+ il_mpe_income_eligible: false
138
+ il_mpe_eligible: false
@@ -0,0 +1,88 @@
1
+ # Illinois SMIB Buy-In Program eligibility tests
2
+ # SMIB pays Part B premiums for AABD, TANF, or SSI recipients who are Medicare eligible
3
+
4
+ - name: SMIB eligible - AABD recipient on Medicare
5
+ period: 2024-01
6
+ input:
7
+ people:
8
+ person:
9
+ age: 67
10
+ is_ssi_aged_blind_disabled: true
11
+ il_aabd_eligible_person: true
12
+ medicare_quarters_of_coverage: 40
13
+ spm_units:
14
+ spm_unit:
15
+ members: [person]
16
+ households:
17
+ household:
18
+ members: [person]
19
+ state_code: IL
20
+ output:
21
+ is_medicare_eligible: [true]
22
+ il_smib_categorical_eligible: [true]
23
+ il_smib_eligible: [true]
24
+
25
+ - name: SMIB eligible - SSI recipient on Medicare
26
+ period: 2024-01
27
+ input:
28
+ people:
29
+ person:
30
+ age: 68
31
+ is_ssi_aged_blind_disabled: true
32
+ meets_ssi_resource_test: true
33
+ immigration_status: CITIZEN
34
+ medicare_quarters_of_coverage: 40
35
+ spm_units:
36
+ spm_unit:
37
+ members: [person]
38
+ households:
39
+ household:
40
+ members: [person]
41
+ state_code: IL
42
+ output:
43
+ is_medicare_eligible: [true]
44
+ is_ssi_eligible: [true]
45
+ il_smib_categorical_eligible: [true]
46
+ il_smib_eligible: [true]
47
+
48
+ - name: Not eligible - Medicare eligible but not AABD/TANF/SSI
49
+ period: 2024-01
50
+ input:
51
+ people:
52
+ person:
53
+ age: 67
54
+ medicare_quarters_of_coverage: 40
55
+ # Explicitly disable AABD/SSI eligibility
56
+ il_aabd_eligible_person: false
57
+ is_ssi_aged_blind_disabled: false
58
+ spm_units:
59
+ spm_unit:
60
+ members: [person]
61
+ households:
62
+ household:
63
+ members: [person]
64
+ state_code: IL
65
+ output:
66
+ is_medicare_eligible: [true]
67
+ il_smib_categorical_eligible: [false]
68
+ il_smib_eligible: [false]
69
+
70
+ - name: Not eligible - AABD but not Medicare eligible
71
+ period: 2024-01
72
+ input:
73
+ people:
74
+ person:
75
+ age: 50
76
+ is_ssi_aged_blind_disabled: true
77
+ il_aabd_eligible_person: true
78
+ spm_units:
79
+ spm_unit:
80
+ members: [person]
81
+ households:
82
+ household:
83
+ members: [person]
84
+ state_code: IL
85
+ output:
86
+ is_medicare_eligible: [false]
87
+ il_smib_categorical_eligible: [true]
88
+ il_smib_eligible: [false]
@@ -0,0 +1,73 @@
1
+ # Illinois SMIB Buy-In Program integration tests
2
+ # Part B premium for 2024: $174.70/month
3
+
4
+ - name: SMIB benefit for AABD recipient
5
+ period: 2024-01
6
+ input:
7
+ people:
8
+ person:
9
+ age: 67
10
+ is_ssi_aged_blind_disabled: true
11
+ il_aabd_eligible_person: true
12
+ medicare_quarters_of_coverage: 40
13
+ spm_units:
14
+ spm_unit:
15
+ members: [person]
16
+ households:
17
+ household:
18
+ members: [person]
19
+ state_code: IL
20
+ output:
21
+ il_smib_eligible: [true]
22
+ il_smib_person: [174.70]
23
+ il_smib: [174.70]
24
+
25
+ - name: SMIB benefit for married couple - both eligible
26
+ period: 2024-01
27
+ input:
28
+ people:
29
+ person1:
30
+ age: 68
31
+ is_ssi_aged_blind_disabled: true
32
+ meets_ssi_resource_test: true
33
+ immigration_status: CITIZEN
34
+ medicare_quarters_of_coverage: 40
35
+ person2:
36
+ age: 66
37
+ is_ssi_aged_blind_disabled: true
38
+ meets_ssi_resource_test: true
39
+ immigration_status: CITIZEN
40
+ medicare_quarters_of_coverage: 40
41
+ spm_units:
42
+ spm_unit:
43
+ members: [person1, person2]
44
+ households:
45
+ household:
46
+ members: [person1, person2]
47
+ state_code: IL
48
+ output:
49
+ il_smib_eligible: [true, true]
50
+ il_smib_person: [174.70, 174.70]
51
+ il_smib: [349.40]
52
+
53
+ - name: No SMIB benefit - not eligible
54
+ period: 2024-01
55
+ input:
56
+ people:
57
+ person:
58
+ age: 67
59
+ medicare_quarters_of_coverage: 40
60
+ # Explicitly disable categorical eligibility
61
+ il_aabd_eligible_person: false
62
+ is_ssi_aged_blind_disabled: false
63
+ spm_units:
64
+ spm_unit:
65
+ members: [person]
66
+ households:
67
+ household:
68
+ members: [person]
69
+ state_code: IL
70
+ output:
71
+ il_smib_eligible: [false]
72
+ il_smib_person: [0]
73
+ il_smib: [0]
@@ -1,39 +1,39 @@
1
+ # Unit tests for ky_family_size_tax_credit_rate
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: No income
2
6
  period: 2023
3
- input:
7
+ input:
4
8
  state_code: KY
5
9
  ky_modified_agi: 0
6
- state_group: CONTIGUOUS_US
7
10
  tax_unit_size: 1
8
11
  output:
9
12
  ky_family_size_tax_credit_rate: 1
10
13
 
11
14
  - name: One person with income at fpg
12
15
  period: 2022
13
- input:
16
+ input:
14
17
  state_code: KY
15
18
  ky_modified_agi: 13_590
16
- state_group: CONTIGUOUS_US
17
19
  tax_unit_size: 1
18
20
  output:
19
21
  ky_family_size_tax_credit_rate: 1
20
22
 
21
23
  - name: Seven person, capped at 4 # fpg = 13_590 + 3 * 4_720 = 27_750, 119%
22
24
  period: 2022
23
- input:
25
+ input:
24
26
  state_code: KY
25
27
  ky_modified_agi: 33_000
26
- state_group: CONTIGUOUS_US
27
28
  tax_unit_size: 7
28
29
  output:
29
30
  ky_family_size_tax_credit_rate: 0.5
30
31
 
31
32
  - name: Three people with income over fpg
32
33
  period: 2022
33
- input:
34
+ input:
34
35
  state_code: KY
35
36
  ky_modified_agi: 50_000
36
- state_group: CONTIGUOUS_US
37
37
  tax_unit_size: 3
38
38
  output:
39
39
  ky_family_size_tax_credit_rate: 0
@@ -3,13 +3,14 @@
3
3
  absolute_error_margin: 0
4
4
  input:
5
5
  eitc: 100
6
+ eitc_phased_in: 1
7
+ eitc_reduction: 0
6
8
  eitc_eligible: true
7
9
  nj_childless_eitc_age_eligible: true
10
+ takes_up_eitc: true
8
11
  state_code: NJ
9
12
  output:
10
- eitc: 100
11
- nj_childless_eitc_age_eligible: true
12
- nj_eitc: 240
13
+ nj_eitc: 40
13
14
 
14
15
  - name: New Jersey EITC, fraction of max zero-child federal EITC (doesn't qualify for federal EITC because too young)
15
16
  period: 2022
@@ -17,6 +18,8 @@
17
18
  input:
18
19
  eitc: 0
19
20
  eitc_eligible: false
21
+ eitc_phased_in: 1
22
+ eitc_reduction: 0
20
23
  nj_childless_eitc_age_eligible: true
21
24
  state_code: NJ
22
25
  output:
@@ -29,6 +32,8 @@
29
32
  filing_status: JOINT
30
33
  eitc: 0
31
34
  eitc_eligible: false
35
+ eitc_phased_in: 1
36
+ eitc_reduction: 0
32
37
  nj_childless_eitc_age_eligible: true
33
38
  state_code: NJ
34
39
  output: