policyengine-us 1.441.3__py3-none-any.whl → 1.450.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (161) hide show
  1. policyengine_us/parameters/calibration/gov/hhs/medicare/per_capita_cost.yaml +12 -0
  2. policyengine_us/parameters/gov/hhs/medicare/part_a/deductible.yaml +13 -0
  3. policyengine_us/parameters/gov/hhs/medicare/part_a/default_quarters_of_coverage.yaml +10 -0
  4. policyengine_us/parameters/gov/hhs/medicare/part_a/full_premium.yaml +13 -0
  5. policyengine_us/parameters/gov/hhs/medicare/part_a/premium_free_quarters_threshold.yaml +10 -0
  6. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium.yaml +13 -0
  7. policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium_quarters_threshold.yaml +10 -0
  8. policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml +16 -0
  9. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml +50 -0
  10. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml +49 -0
  11. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml +30 -0
  12. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml +50 -0
  13. policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml +49 -0
  14. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/in_effect.yaml +10 -0
  15. policyengine_us/parameters/gov/local/ny/mamdani_income_tax/rate.yaml +18 -0
  16. policyengine_us/parameters/gov/states/ar/tax/income/rates/main/reduction.yaml +30 -0
  17. policyengine_us/parameters/gov/states/il/hfs/README.md +1 -0
  18. policyengine_us/parameters/gov/states/il/hfs/bcc/eligibility/age.yaml +12 -0
  19. policyengine_us/parameters/gov/states/il/hfs/hbwd/README.md +1 -0
  20. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/age.yaml +25 -0
  21. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/asset/limit.yaml +15 -0
  22. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/limit.yaml +15 -0
  23. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/earned.yaml +13 -0
  24. policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/unearned.yaml +25 -0
  25. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/earned.yaml +96 -0
  26. policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/unearned.yaml +96 -0
  27. policyengine_us/parameters/gov/states/il/hfs/qualified_noncitizen_statuses.yaml +17 -0
  28. policyengine_us/parameters/gov/states/mt/tax/income/deductions/itemized/spouse_allocation_rate.yaml +13 -0
  29. policyengine_us/parameters/gov/states/nj/tax/income/additions.yaml +12 -0
  30. policyengine_us/parameters/gov/states/nj/tax/income/gross_income_sources.yaml +32 -0
  31. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml +14 -0
  32. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/percentage_disregarded.yaml +14 -0
  33. policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml +36 -0
  34. policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml +14 -0
  35. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml +32 -0
  36. policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/maximum_amount.yaml +12 -0
  37. policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml +15 -0
  38. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/adjustment_limit_basis.yaml +12 -0
  39. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/exemption_rate.yaml +13 -0
  40. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/rate.yaml +12 -0
  41. policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/threshold.yaml +13 -0
  42. policyengine_us/parameters/gov/territories/pr/tax/income/regular_tax/percentage.yaml +21 -0
  43. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/sources.yaml +18 -0
  44. policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/sources.yaml +15 -0
  45. policyengine_us/reforms/local/ny/__init__.py +4 -0
  46. policyengine_us/reforms/local/ny/mamdani_income_tax.py +84 -0
  47. policyengine_us/reforms/reforms.py +9 -0
  48. policyengine_us/reforms/states/ut/ut_refundable_eitc.py +3 -3
  49. policyengine_us/tests/policy/baseline/gov/hhs/medicare/costs/medicare_cost.yaml +65 -0
  50. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_a_premium.yaml +35 -0
  51. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml +15 -0
  52. policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_b_premium.yaml +77 -0
  53. policyengine_us/tests/policy/baseline/gov/local/ca/la/general_relief/eligible/immigration/la_general_relief_immigration_status_eligible_person.yaml +2 -2
  54. policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/integration.yaml +35 -0
  55. policyengine_us/tests/policy/baseline/gov/states/co/tax/income/additions/federal_deduction/co_federal_deduction_addback.yaml +2 -2
  56. policyengine_us/tests/policy/baseline/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.yaml +26 -4
  57. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.yaml +39 -0
  58. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.yaml +95 -0
  59. policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.yaml +35 -0
  60. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.yaml +23 -0
  61. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.yaml +39 -0
  62. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.yaml +31 -0
  63. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.yaml +35 -0
  64. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +65 -0
  65. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.yaml +34 -0
  66. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.yaml +25 -0
  67. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_person.yaml +34 -0
  68. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_premium.yaml +84 -0
  69. policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +183 -0
  70. policyengine_us/tests/policy/baseline/gov/states/il/hfs/il_hfs_immigration_status_eligible.yaml +47 -0
  71. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_federal_income_tax_deduction.yaml +2 -14
  72. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_pension_and_ss_or_ssd_deduction/mo_pension_and_ss_or_ssd_deduction_section_a.yaml +2 -2
  73. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_pension_and_ss_or_ssd_deduction/mo_pension_and_ss_or_ssd_deduction_section_b.yaml +1 -1
  74. policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_pension_and_ss_or_ssd_deduction/mo_pension_and_ss_or_ssd_deduction_section_c.yaml +1 -1
  75. policyengine_us/tests/policy/baseline/gov/states/nc/tax/income/deductions/nc_itemized_deductions.yaml +2 -2
  76. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml +44 -0
  77. policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/taxable_income/nj_agi.yaml +7 -8
  78. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.yaml +29 -0
  79. policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml +82 -0
  80. policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.yaml +1 -1
  81. policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/ss_benefits_credit/ut_ss_benefits_credit_max.yaml +5 -5
  82. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml +48 -0
  83. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml +65 -0
  84. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml +96 -0
  85. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml +70 -0
  86. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml +676 -0
  87. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml +102 -0
  88. policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml +6 -7
  89. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.yaml +29 -0
  90. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.yaml +15 -0
  91. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +17 -0
  92. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +17 -0
  93. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_tax_before_credits.yaml +19 -0
  94. policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.yaml +26 -0
  95. policyengine_us/tests/policy/baseline/gov/usda/snap/snap_min_allotment.yaml +3 -3
  96. policyengine_us/tests/policy/baseline/gov/usda/wic/integration.yaml +181 -0
  97. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_at_nutritional_risk.yaml +33 -0
  98. policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_eligible.yaml +28 -15
  99. policyengine_us/tests/policy/baseline/household/demographic/geographic/state_group.yaml +21 -0
  100. policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml +12 -0
  101. policyengine_us/tests/policy/contrib/local/ny/nyc_mamdani_income_tax.yaml +51 -0
  102. policyengine_us/variables/gov/hhs/medicare/costs/medicare_cost.py +30 -0
  103. policyengine_us/variables/gov/hhs/medicare/costs/medicare_enrolled.py +14 -0
  104. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/base_part_a_premium.py +32 -0
  105. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/is_premium_free_part_a.py +22 -0
  106. policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/medicare_quarters_of_coverage.py +16 -0
  107. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/base_part_b_premium.py +16 -0
  108. policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/income_adjusted_part_b_premium.py +55 -0
  109. policyengine_us/variables/gov/states/ca/tax/income/alternative_minimum_tax/exemption/ca_amt_exemption.py +4 -2
  110. policyengine_us/variables/gov/states/ca/tax/income/ca_income_tax.py +1 -0
  111. policyengine_us/variables/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.py +5 -1
  112. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.py +15 -0
  113. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.py +27 -0
  114. policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.py +29 -0
  115. policyengine_us/variables/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.py +34 -0
  116. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.py +20 -0
  117. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.py +21 -0
  118. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +20 -0
  119. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +33 -0
  120. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.py +25 -0
  121. policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.py +23 -0
  122. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd.py +17 -0
  123. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_person.py +24 -0
  124. policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_premium.py +23 -0
  125. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_countable_earned_income.py +24 -0
  126. policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_gross_earned_income.py +16 -0
  127. policyengine_us/variables/gov/states/il/hfs/hbwd/income/il_hbwd_countable_income.py +21 -0
  128. policyengine_us/variables/gov/states/il/hfs/hbwd/income/unearned/il_hbwd_countable_unearned_income.py +16 -0
  129. policyengine_us/variables/gov/states/il/hfs/il_hfs_immigration_status_eligible.py +23 -0
  130. policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/general/mt_itemized_deductions_indiv.py +3 -2
  131. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_additions.py +8 -3
  132. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_gross_income.py +17 -0
  133. policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_total_income.py +12 -6
  134. policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.py +7 -3
  135. policyengine_us/variables/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.py +22 -0
  136. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py +42 -0
  137. policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py +31 -0
  138. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py +33 -0
  139. policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_income.py +16 -0
  140. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py +34 -0
  141. policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.py +3 -2
  142. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.py +23 -0
  143. policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.py +16 -0
  144. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi.py +11 -1
  145. policyengine_us/variables/gov/territories/pr/tax/income/pr_agi_person.py +11 -1
  146. policyengine_us/variables/gov/territories/pr/tax/income/pr_regular_tax_before_credits.py +9 -0
  147. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_deductions.py +13 -0
  148. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/exemptions/pr_exemptions.py +13 -0
  149. policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py +6 -0
  150. policyengine_us/variables/gov/usda/wic/is_wic_at_nutritional_risk.py +3 -10
  151. policyengine_us/variables/gov/usda/wic/is_wic_eligible.py +10 -1
  152. policyengine_us/variables/household/demographic/geographic/state_group.py +8 -5
  153. policyengine_us/variables/household/expense/health/has_bcc_qualifying_coverage.py +16 -0
  154. {policyengine_us-1.441.3.dist-info → policyengine_us-1.450.0.dist-info}/METADATA +2 -2
  155. {policyengine_us-1.441.3.dist-info → policyengine_us-1.450.0.dist-info}/RECORD +160 -43
  156. {policyengine_us-1.441.3.dist-info → policyengine_us-1.450.0.dist-info}/WHEEL +1 -1
  157. policyengine_us/parameters/gov/states/wa/dshs/tanf/eligibility/resources/limit.yaml +0 -11
  158. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement.py +0 -0
  159. /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement_eligible.py +0 -0
  160. {policyengine_us-1.441.3.dist-info → policyengine_us-1.450.0.dist-info}/entry_points.txt +0 -0
  161. {policyengine_us-1.441.3.dist-info → policyengine_us-1.450.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,34 @@
1
+ - name: Case 1, employment eligible with employment income.
2
+ period: 2024-01
3
+ input:
4
+ state_code: IL
5
+ employment_income: 24_000 # $2,000/month
6
+ output:
7
+ il_hbwd_employment_eligible: true
8
+
9
+ - name: Case 2, employment eligible with self-employment income.
10
+ period: 2024-01
11
+ input:
12
+ state_code: IL
13
+ self_employment_income: 18_000 # $1,500/month
14
+ output:
15
+ il_hbwd_employment_eligible: true
16
+
17
+ - name: Case 3, employment eligible with both.
18
+ period: 2024-01
19
+ input:
20
+ state_code: IL
21
+ employment_income: 12_000 # $1,000/month
22
+ self_employment_income: 6_000 # $500/month
23
+ output:
24
+ il_hbwd_employment_eligible: true
25
+
26
+ - name: Case 4, employment ineligible with no earned income.
27
+ period: 2024-01
28
+ input:
29
+ state_code: IL
30
+ employment_income: 0
31
+ self_employment_income: 0
32
+ social_security: 12_000 # $1,000/month
33
+ output:
34
+ il_hbwd_employment_eligible: false
@@ -0,0 +1,25 @@
1
+ - name: Case 1, income eligible single person below limit.
2
+ period: 2024-01
3
+ input:
4
+ state_code: IL
5
+ employment_income: 36_000 # $3,000/month
6
+ social_security: 12_000 # $1,000/month
7
+ output:
8
+ il_hbwd_income_eligible: true
9
+
10
+ - name: Case 2, income eligible at exactly 350% FPL for single.
11
+ period: 2024-01
12
+ input:
13
+ state_code: IL
14
+ employment_income: 52_716 # $4,393/month
15
+ output:
16
+ il_hbwd_income_eligible: true
17
+
18
+ - name: Case 3, income eligible after exemptions.
19
+ period: 2024-01
20
+ input:
21
+ state_code: IL
22
+ employment_income: 60_000 # $5,000/month
23
+ output:
24
+ il_hbwd_income_eligible: true
25
+ # Gross $5,000, after expenses and exemptions becomes eligible
@@ -0,0 +1,34 @@
1
+ - name: Case 1, HBWD person with premium.
2
+ period: 2024-01
3
+ absolute_error_margin: 0.01
4
+ input:
5
+ state_code: IL
6
+ il_hbwd_eligible: true
7
+ il_hbwd_countable_earned_income: 1_000
8
+ il_hbwd_countable_unearned_income: 1_200
9
+ output:
10
+ il_hbwd_person: -100
11
+ # Premium: $100 (earned $25 + unearned $75)
12
+ # Earned $1,000 → bracket 4 → $25
13
+ # Unearned $1,200 → bracket 4 → $75
14
+ # Benefit: -$100 (cost to individual)
15
+
16
+ - name: Case 2, HBWD person not eligible.
17
+ period: 2024-01
18
+ input:
19
+ state_code: IL
20
+ il_hbwd_eligible: false
21
+ output:
22
+ il_hbwd_person: 0
23
+ # Not eligible → no premium → no cost
24
+
25
+ - name: Case 3, HBWD person with zero premium.
26
+ period: 2024-01
27
+ input:
28
+ state_code: IL
29
+ il_hbwd_eligible: true
30
+ il_hbwd_countable_earned_income: 100
31
+ il_hbwd_countable_unearned_income: 0
32
+ output:
33
+ il_hbwd_person: 0
34
+ # Both income in first bracket → $0 premium
@@ -0,0 +1,84 @@
1
+ - name: Case 1, premium with only earned income.
2
+ period: 2024-01
3
+ absolute_error_margin: 0.01
4
+ input:
5
+ state_code: IL
6
+ il_hbwd_eligible: true
7
+ il_hbwd_countable_earned_income: 2_000
8
+ il_hbwd_countable_unearned_income: 0
9
+ output:
10
+ il_hbwd_premium: 50
11
+ # Earned $2,000 → bracket 8 (2001-2250) → $50
12
+ # Unearned $0 → bracket 0 → $0
13
+ # Total: $50
14
+
15
+ - name: Case 2, premium with earned and unearned.
16
+ period: 2024-01
17
+ absolute_error_margin: 0.01
18
+ input:
19
+ state_code: IL
20
+ il_hbwd_eligible: true
21
+ il_hbwd_countable_earned_income: 1_000
22
+ il_hbwd_countable_unearned_income: 1_200
23
+ output:
24
+ il_hbwd_premium: 100
25
+ # Earned $1,000 → bracket 4 (1001-1250) → $25
26
+ # Unearned $1,200 → bracket 4 (1001-1250) → $75
27
+ # Total: $25 + $75 = $100
28
+
29
+ - name: Case 3, premium with higher income.
30
+ period: 2024-01
31
+ absolute_error_margin: 0.01
32
+ input:
33
+ state_code: IL
34
+ il_hbwd_eligible: true
35
+ il_hbwd_countable_earned_income: 3_000
36
+ il_hbwd_countable_unearned_income: 2_000
37
+ output:
38
+ il_hbwd_premium: 225
39
+ # Earned $3,000 → bracket 12 (3001-3250) → $75
40
+ # Unearned $2,000 → bracket 8 (2001-2250) → $150
41
+ # Total: $75 + $150 = $225
42
+
43
+ - name: Case 4, premium capped at $500.
44
+ period: 2024-01
45
+ absolute_error_margin: 0.01
46
+ input:
47
+ state_code: IL
48
+ il_hbwd_eligible: true
49
+ il_hbwd_countable_earned_income: 5_000
50
+ il_hbwd_countable_unearned_income: 5_000
51
+ output:
52
+ il_hbwd_premium: 500
53
+ # Earned $5,000+ → bracket 20 → $125
54
+ # Unearned $5,000+ → bracket 20 → $375
55
+ # Uncapped: $500
56
+ # Capped: $500
57
+
58
+ - name: Case 5, no premium in first bracket.
59
+ period: 2024-01
60
+ absolute_error_margin: 0.01
61
+ input:
62
+ state_code: IL
63
+ il_hbwd_eligible: true
64
+ il_hbwd_countable_earned_income: 200
65
+ il_hbwd_countable_unearned_income: 0
66
+ output:
67
+ il_hbwd_premium: 0
68
+ # Earned $200 → bracket 0 (0-250) → $0
69
+ # Unearned $0 → bracket 0 → $0
70
+ # Total: $0
71
+
72
+ - name: Case 6, verify bracket boundary at $250.
73
+ period: 2024-01
74
+ absolute_error_margin: 0.01
75
+ input:
76
+ state_code: IL
77
+ il_hbwd_eligible: true
78
+ il_hbwd_countable_earned_income: 250
79
+ il_hbwd_countable_unearned_income: 250
80
+ output:
81
+ il_hbwd_premium: 25
82
+ # Earned $250 → bracket 1 (251-500) → $6
83
+ # Unearned $250 → bracket 1 (251-500) → $19
84
+ # Total: $6 + $19 = $25
@@ -0,0 +1,183 @@
1
+ - name: Case 1, eligible working disabled individual.
2
+ period: 2024-01
3
+ absolute_error_margin: 0.01
4
+ input:
5
+ state_code: IL
6
+ age: 28
7
+ is_ssi_disabled: true
8
+ employment_income: 24_000 # $2,000/month
9
+ social_security_disability: 12_000 # $1,000/month
10
+ spm_unit_cash_assets: 15_000
11
+ output:
12
+ # Eligibility components
13
+ il_hbwd_age_eligible: true
14
+ il_hbwd_disability_eligible: true
15
+ il_hbwd_employment_eligible: true
16
+ il_hbwd_income_eligible: true
17
+ il_hbwd_asset_eligible: true
18
+ il_hbwd_eligible: true
19
+ # Income calculation
20
+ il_hbwd_gross_earned_income: 2_000 # 24,000 / 12
21
+ il_hbwd_countable_income: 2_728.13
22
+ # Earned: $2,000 - $211.55 (expenses) - $50 (exemptions) = $1,738.45
23
+ # Unearned: $1,000 - $10 (remaining flat exemption)
24
+ # Total: ~$2,728.13
25
+ # Premium calculation
26
+ il_hbwd_premium: 113
27
+ # Earned $1,713.45 → bracket 6 (1501-1750) → $38
28
+ # Unearned $1,000 → bracket 4 (1001-1250) → $75
29
+ # Total: $38 + $75 = $113
30
+
31
+ - name: Case 2, couple with one eligible member.
32
+ period: 2024-01
33
+ absolute_error_margin: 0.01
34
+ input:
35
+ people:
36
+ person1:
37
+ age: 45
38
+ is_ssi_disabled: true
39
+ employment_income: 30_000 # $2,500/month
40
+ social_security_disability: 9_600 # $800/month
41
+ person2:
42
+ age: 43
43
+ is_ssi_disabled: false
44
+ employment_income: 36_000 # $3,000/month
45
+ spm_units:
46
+ spm_unit:
47
+ members: [person1, person2]
48
+ spm_unit_cash_assets: 12_000
49
+ households:
50
+ household:
51
+ members: [person1, person2]
52
+ state_code: IL
53
+ output:
54
+ il_hbwd_eligible: [true, false]
55
+ # person1: disabled + employed = eligible
56
+ # person2: not disabled = ineligible
57
+ il_hbwd_disability_eligible: [true, false]
58
+ il_hbwd_employment_eligible: [true, true]
59
+ il_hbwd_income_eligible: [true, true]
60
+ il_hbwd_asset_eligible: [true, true]
61
+
62
+ - name: Case 3, self-employed individual with childcare expenses.
63
+ period: 2024-01
64
+ absolute_error_margin: 0.01
65
+ input:
66
+ people:
67
+ person1:
68
+ age: 35
69
+ is_ssi_disabled: true
70
+ self_employment_income: 30_000 # $2,500/month
71
+ monthly_hours_worked: 160 # Full-time
72
+ person2:
73
+ age: 5
74
+ spm_units:
75
+ spm_unit:
76
+ members: [person1, person2]
77
+ childcare_expenses: 1_920 # $160/month
78
+ spm_unit_cash_assets: 8_000
79
+ tax_units:
80
+ tax_unit:
81
+ members: [person1, person2]
82
+ tax_unit_dependents: 1
83
+ households:
84
+ household:
85
+ members: [person1, person2]
86
+ state_code: IL
87
+ output:
88
+ il_hbwd_age_eligible: [true, false]
89
+ il_hbwd_disability_eligible: [true, false]
90
+ il_hbwd_employment_eligible: [true, false]
91
+ il_hbwd_eligible: [true, false]
92
+ # Income calculation for person1
93
+ il_hbwd_gross_earned_income: [2_500, 0]
94
+ # $30,000 / 12 = $2,500
95
+ il_hbwd_countable_earned_income: [2_193.44, 0]
96
+ # Gross: $2,500
97
+ # After expenses and exemptions: $2,193.44
98
+
99
+ - name: Case 4, near income limit boundary.
100
+ period: 2024-01
101
+ absolute_error_margin: 0.01
102
+ input:
103
+ state_code: IL
104
+ age: 50
105
+ is_ssi_disabled: true
106
+ employment_income: 48_000 # $4,000/month
107
+ social_security_disability: 4_800 # $400/month
108
+ spm_unit_cash_assets: 20_000
109
+ output:
110
+ il_hbwd_age_eligible: true
111
+ il_hbwd_disability_eligible: true
112
+ il_hbwd_employment_eligible: true
113
+ il_hbwd_eligible: true
114
+ il_hbwd_income_eligible: true
115
+ # Total income after deductions: ~$4,089
116
+ # 350% FPL for single (2024): ~$4,393
117
+ # Just under limit → eligible
118
+ il_hbwd_premium: 100
119
+ # Premium: $100
120
+
121
+ - name: Case 5, eligible with high income after exemptions.
122
+ period: 2024-01
123
+ absolute_error_margin: 0.01
124
+ input:
125
+ state_code: IL
126
+ age: 40
127
+ is_ssi_disabled: true
128
+ employment_income: 60_000 # $5,000/month
129
+ spm_unit_cash_assets: 10_000
130
+ output:
131
+ il_hbwd_age_eligible: true
132
+ il_hbwd_disability_eligible: true
133
+ il_hbwd_employment_eligible: true
134
+ il_hbwd_asset_eligible: true
135
+ il_hbwd_income_eligible: true
136
+ # Countable income after expenses and exemptions: ~$4,618
137
+ # With exemptions, now under 350% FPL limit
138
+ il_hbwd_eligible: true
139
+
140
+ - name: Case 6, SSDI recipient with part-time work.
141
+ period: 2024-01
142
+ absolute_error_margin: 0.01
143
+ input:
144
+ state_code: IL
145
+ age: 55
146
+ is_ssi_disabled: false
147
+ social_security_disability: 18_000 # $1,500/month SSDI
148
+ employment_income: 12_000 # $1,000/month part-time
149
+ spm_unit_cash_assets: 5_000
150
+ output:
151
+ il_hbwd_age_eligible: true
152
+ il_hbwd_disability_eligible: true # Via SSDI receipt
153
+ il_hbwd_employment_eligible: true
154
+ il_hbwd_income_eligible: true
155
+ il_hbwd_asset_eligible: true
156
+ il_hbwd_eligible: true
157
+ # Income calculation
158
+ il_hbwd_gross_earned_income: 1_000
159
+ il_hbwd_countable_income: 2_349.95
160
+ # Earned after expenses and exemptions: ~$850
161
+ # Unearned: $1,500
162
+ # Total: ~$2,349.95
163
+ il_hbwd_premium: 132
164
+ # Earned $824.95 → bracket 3 (751-1000) → $19
165
+ # Unearned $1,500 → bracket 6 (1501-1750) → $113
166
+ # Total: $19 + $113 = $132
167
+
168
+ - name: Case 7, ineligible too young.
169
+ period: 2024-01
170
+ input:
171
+ state_code: IL
172
+ age: 15
173
+ is_ssi_disabled: true
174
+ employment_income: 12_000 # $1,000/month
175
+ spm_unit_cash_assets: 5_000
176
+ output:
177
+ il_hbwd_age_eligible: false
178
+ il_hbwd_disability_eligible: true
179
+ il_hbwd_employment_eligible: true
180
+ il_hbwd_income_eligible: true
181
+ il_hbwd_asset_eligible: true
182
+ il_hbwd_eligible: false
183
+ # Age < 16 → ineligible despite meeting other criteria
@@ -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
@@ -59,18 +59,6 @@
59
59
  output:
60
60
  mo_federal_income_tax_deduction: 5_000
61
61
 
62
- - name: Cap test, married (check that value can't go above 10k, this is a ridiculous scenario)
63
- period: 2022
64
- absolute_error_margin: 0
65
- input:
66
- mo_adjusted_gross_income: 24_000
67
- income_tax: 110_000
68
- rrc_cares: 0
69
- filing_status: SINGLE
70
- state_code: MO
71
- output:
72
- mo_federal_income_tax_deduction: 10_000
73
-
74
62
  - name: Cap test, married (see if value can go above 5k)
75
63
  period: 2022
76
64
  absolute_error_margin: 0
@@ -78,7 +66,7 @@
78
66
  mo_adjusted_gross_income: 51_000
79
67
  income_tax: 45_000
80
68
  rrc_cares: 0
81
- filing_status: MARRIED
69
+ filing_status: JOINT
82
70
  state_code: MO
83
71
  output:
84
72
  mo_federal_income_tax_deduction: 6_750
@@ -90,7 +78,7 @@
90
78
  mo_adjusted_gross_income: 51_000
91
79
  income_tax: 45_000
92
80
  rrc_cares: 2_200
93
- filing_status: MARRIED
81
+ filing_status: JOINT
94
82
  state_code: MO
95
83
  output:
96
84
  # disable test:
@@ -5,7 +5,7 @@
5
5
  mo_adjusted_gross_income: 0
6
6
  taxable_social_security: 0
7
7
  taxable_public_pension_income: 0
8
- filing_status:
8
+ filing_status: SINGLE
9
9
  mo_pension_and_ss_or_ssd_deduction_section_c: 0
10
10
  state_code: MO
11
11
  output:
@@ -122,7 +122,7 @@
122
122
  mo_adjusted_gross_income: 0
123
123
  taxable_social_security: 0
124
124
  taxable_public_pension_income: 0
125
- filing_status:
125
+ filing_status: SINGLE
126
126
  mo_pension_and_ss_or_ssd_deduction_section_c: 0
127
127
  state_code: MO
128
128
  output:
@@ -4,7 +4,7 @@
4
4
  input:
5
5
  mo_adjusted_gross_income: 0
6
6
  tax_unit_taxable_social_security: 0
7
- filing_status: 0
7
+ filing_status: SINGLE
8
8
  taxable_private_pension_income: 0
9
9
  state_code: MO
10
10
  output:
@@ -4,7 +4,7 @@
4
4
  input:
5
5
  mo_adjusted_gross_income: 0
6
6
  taxable_social_security: 0
7
- filing_status: 0
7
+ filing_status: SINGLE
8
8
  state_code: MO
9
9
  output:
10
10
  mo_pension_and_ss_or_ssd_deduction_section_c: 0.0
@@ -13,7 +13,7 @@
13
13
  - name: Real estate taxes and mortgage capped
14
14
  period: 2022
15
15
  input:
16
- filing_status: WIDWO
16
+ filing_status: SURVIVING_SPOUSE
17
17
  mortgage_interest: 11_000
18
18
  real_estate_taxes: 11_000
19
19
  charitable_deduction: 0
@@ -25,7 +25,7 @@
25
25
  - name: Real estate taxes and mortgage capped with medical and charitable
26
26
  period: 2022
27
27
  input:
28
- filing_status: WIDWO
28
+ filing_status: SURVIVING_SPOUSE
29
29
  mortgage_interest: 11_000
30
30
  real_estate_taxes: 11_000
31
31
  charitable_deduction: 1_000
@@ -0,0 +1,44 @@
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: 0.0
9
+ ssi: 0
10
+ wic: 0
11
+ head_start: 0
12
+ early_head_start: 0
13
+ commodity_supplemental_food_program: 0
14
+ self_employment_income: 50_000
15
+ is_tax_unit_head: true
16
+ person2:
17
+ age: 40
18
+ employment_income: 0.0
19
+ ssi: 0
20
+ wic: 0
21
+ head_start: 0
22
+ early_head_start: 0
23
+ commodity_supplemental_food_program: 0
24
+ self_employment_income: 50_000
25
+ is_tax_unit_spouse: true
26
+ tax_units:
27
+ tax_unit:
28
+ members: [person1, person2]
29
+ premium_tax_credit: 0
30
+ local_income_tax: 0
31
+ state_sales_tax: 0
32
+ spm_units:
33
+ spm_unit:
34
+ members: [person1, person2]
35
+ snap: 0
36
+ tanf: 0
37
+ free_school_meals: 0
38
+ reduced_price_school_meals: 0
39
+ households:
40
+ household:
41
+ members: [person1, person2]
42
+ state_fips: 34
43
+ output:
44
+ 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
@@ -0,0 +1,29 @@
1
+ - name: Income and subtractions
2
+ absolute_error_margin: 0.01
3
+ period: 2021
4
+ input:
5
+ state_code: OH
6
+ oh_agi_person: 67_000
7
+ oh_joint_filing_credit_agi_subtractions: 40_000
8
+ output:
9
+ oh_joint_filing_credit_qualifying_income: 27_000
10
+
11
+ - name: Subtractions cannot be negative
12
+ absolute_error_margin: 0.01
13
+ period: 2025
14
+ input:
15
+ state_code: OH
16
+ oh_agi_person: -10_000
17
+ oh_joint_filing_credit_agi_subtractions: -40_000
18
+ output:
19
+ oh_joint_filing_credit_qualifying_income: -10_000
20
+
21
+ - name: Total income can be negative
22
+ absolute_error_margin: 0.01
23
+ period: 2025
24
+ input:
25
+ state_code: OH
26
+ oh_agi_person: 4_000
27
+ oh_joint_filing_credit_agi_subtractions: 10_000
28
+ output:
29
+ oh_joint_filing_credit_qualifying_income: -6_000
@@ -181,3 +181,85 @@
181
181
  output:
182
182
  oh_cdcc: 165
183
183
  oh_income_tax: 273
184
+
185
+ - name: 40115-OH.yaml
186
+ absolute_error_margin: 2
187
+ period: 2024
188
+ input:
189
+ people:
190
+ person1:
191
+ age: 40
192
+ employment_income: 129626.8
193
+ ssi: 0
194
+ wic: 0
195
+ head_start: 0
196
+ early_head_start: 0
197
+ commodity_supplemental_food_program: 0
198
+ long_term_capital_gains: -39740.8515
199
+ short_term_capital_gains: -601164.25
200
+ taxable_interest_income: 309.727295
201
+ is_tax_unit_head: true
202
+ person2:
203
+ age: 40
204
+ employment_income: 0.0
205
+ ssi: 0
206
+ wic: 0
207
+ head_start: 0
208
+ early_head_start: 0
209
+ commodity_supplemental_food_program: 0
210
+ long_term_capital_gains: -39740.8515
211
+ short_term_capital_gains: -601164.25
212
+ taxable_interest_income: 309.727295
213
+ is_tax_unit_spouse: true
214
+ person3:
215
+ age: 10
216
+ employment_income: 0
217
+ ssi: 0
218
+ wic: 0
219
+ head_start: 0
220
+ early_head_start: 0
221
+ commodity_supplemental_food_program: 0
222
+ is_tax_unit_dependent: true
223
+ is_tax_unit_head: false
224
+ is_tax_unit_spouse: false
225
+ person4:
226
+ age: 10
227
+ employment_income: 0
228
+ ssi: 0
229
+ wic: 0
230
+ head_start: 0
231
+ early_head_start: 0
232
+ commodity_supplemental_food_program: 0
233
+ is_tax_unit_dependent: true
234
+ is_tax_unit_head: false
235
+ is_tax_unit_spouse: false
236
+ person5:
237
+ age: 10
238
+ employment_income: 0
239
+ ssi: 0
240
+ wic: 0
241
+ head_start: 0
242
+ early_head_start: 0
243
+ commodity_supplemental_food_program: 0
244
+ is_tax_unit_dependent: true
245
+ is_tax_unit_head: false
246
+ is_tax_unit_spouse: false
247
+ tax_units:
248
+ tax_unit:
249
+ members: [person1, person2, person3, person4, person5]
250
+ premium_tax_credit: 0
251
+ local_income_tax: 0
252
+ state_sales_tax: 0
253
+ spm_units:
254
+ spm_unit:
255
+ members: [person1, person2, person3, person4, person5]
256
+ snap: 0
257
+ tanf: 0
258
+ free_school_meals: 0
259
+ reduced_price_school_meals: 0
260
+ households:
261
+ household:
262
+ members: [person1, person2, person3, person4, person5]
263
+ state_fips: 39
264
+ output:
265
+ oh_income_tax: 3_015