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,102 @@
1
+ - name: Eligible with no income - full payment standard
2
+ period: 2024-01
3
+ input:
4
+ state_code: WA
5
+ wa_tanf_eligible: true
6
+ wa_tanf_payment_standard: 706
7
+ wa_tanf_countable_income: 0
8
+ output:
9
+ # Benefit = $706 - $0 = $706
10
+ wa_tanf: 706
11
+
12
+ - name: Eligible with partial income - reduced benefit
13
+ period: 2024-01
14
+ input:
15
+ state_code: WA
16
+ wa_tanf_eligible: true
17
+ wa_tanf_payment_standard: 706
18
+ wa_tanf_countable_income: 250
19
+ output:
20
+ # Benefit = $706 - $250 = $456
21
+ wa_tanf: 456
22
+
23
+ - name: Eligible with income equal to payment standard - zero benefit
24
+ period: 2024-01
25
+ input:
26
+ state_code: WA
27
+ wa_tanf_eligible: true
28
+ wa_tanf_payment_standard: 706
29
+ wa_tanf_countable_income: 706
30
+ output:
31
+ # Benefit = $706 - $706 = $0
32
+ wa_tanf: 0
33
+
34
+ - name: Eligible with income exceeding payment standard - zero benefit
35
+ period: 2024-01
36
+ input:
37
+ state_code: WA
38
+ wa_tanf_eligible: true
39
+ wa_tanf_payment_standard: 706
40
+ wa_tanf_countable_income: 800
41
+ output:
42
+ # Benefit = max($706 - $800, 0) = $0
43
+ wa_tanf: 0
44
+
45
+ - name: Ineligible household - zero benefit
46
+ period: 2024-01
47
+ input:
48
+ state_code: WA
49
+ wa_tanf_eligible: false
50
+ wa_tanf_payment_standard: 706
51
+ wa_tanf_countable_income: 0
52
+ output:
53
+ wa_tanf: 0
54
+
55
+ - name: Large family - benefit capped by maximum grant cap
56
+ period: 2024-01
57
+ input:
58
+ state_code: WA
59
+ wa_tanf_eligible: true
60
+ wa_tanf_payment_standard: 1_662
61
+ wa_tanf_countable_income: 0
62
+ output:
63
+ # Benefit before cap = $1,662 - $0 = $1,662
64
+ # Maximum grant cap = $1,338
65
+ # Benefit = min($1,662, $1,338) = $1,338
66
+ wa_tanf: 1_338
67
+
68
+ - name: Large family with income - benefit under cap
69
+ period: 2024-01
70
+ input:
71
+ state_code: WA
72
+ wa_tanf_eligible: true
73
+ wa_tanf_payment_standard: 1_529
74
+ wa_tanf_countable_income: 250
75
+ output:
76
+ # Benefit before cap = $1,529 - $250 = $1,279
77
+ # Maximum grant cap = $1,338
78
+ # Benefit = min($1,279, $1,338) = $1,279 (under cap)
79
+ wa_tanf: 1_279
80
+
81
+ - name: Medium family - benefit exactly at cap
82
+ period: 2024-01
83
+ input:
84
+ state_code: WA
85
+ wa_tanf_eligible: true
86
+ wa_tanf_payment_standard: 1_392
87
+ wa_tanf_countable_income: 54
88
+ output:
89
+ # Benefit before cap = $1,392 - $54 = $1,338
90
+ # Maximum grant cap = $1,338
91
+ # Benefit = min($1,338, $1,338) = $1,338 (exactly at cap)
92
+ wa_tanf: 1_338
93
+
94
+ - name: Only calculate for WA
95
+ period: 2024-01
96
+ input:
97
+ state_code: OR
98
+ wa_tanf_eligible: false
99
+ wa_tanf_payment_standard: 706
100
+ wa_tanf_countable_income: 0
101
+ output:
102
+ wa_tanf: 0
@@ -1,16 +1,15 @@
1
- - name: Households with assets lower than or equal to $6,000 are eligible.
2
- period: 2023
1
+ - name: Households with assets at or below resource limit are eligible
2
+ period: 2024
3
3
  input:
4
4
  state_code: WA
5
- wa_tanf_countable_resources: 6_000
5
+ wa_tanf_countable_resources: 12_000
6
6
  output:
7
7
  wa_tanf_resources_eligible: true
8
8
 
9
-
10
- - name: Households with assets higher than $6,000 are ineligible.
11
- period: 2023
9
+ - name: Households with assets above resource limit are ineligible
10
+ period: 2024
12
11
  input:
13
12
  state_code: WA
14
- wa_tanf_countable_resources: 7_000
13
+ wa_tanf_countable_resources: 13_000
15
14
  output:
16
15
  wa_tanf_resources_eligible: false
@@ -0,0 +1,29 @@
1
+ - name: Not eligible, income below threshold
2
+ period: 2024
3
+ input:
4
+ pr_gradual_adjustment_eligible: False
5
+ pr_net_taxable_income: 70_000
6
+ pr_exemptions: 4_000
7
+ state_code: PR
8
+ output:
9
+ pr_gradual_adjustment_amount: 0
10
+
11
+ - name: Amount lower than limit
12
+ period: 2024
13
+ input:
14
+ pr_gradual_adjustment_eligible: True
15
+ pr_net_taxable_income: 501_000
16
+ pr_exemptions: 1_300
17
+ state_code: PR
18
+ output:
19
+ pr_gradual_adjustment_amount: 50
20
+
21
+ - name: Limit lower than amount
22
+ period: 2024
23
+ input:
24
+ pr_gradual_adjustment_eligible: True
25
+ pr_net_taxable_income: 700_000
26
+ pr_exemptions: 1_000
27
+ state_code: PR
28
+ output:
29
+ pr_gradual_adjustment_amount: 9_225
@@ -0,0 +1,15 @@
1
+ - name: Not eligible
2
+ period: 2024
3
+ input:
4
+ pr_net_taxable_income: 500_000
5
+ state_code: PR
6
+ output:
7
+ pr_gradual_adjustment_eligible: False
8
+
9
+ - name: Eligible
10
+ period: 2024
11
+ input:
12
+ pr_net_taxable_income: 500_001
13
+ state_code: PR
14
+ output:
15
+ pr_gradual_adjustment_eligible: True
@@ -0,0 +1,17 @@
1
+ - name: Total income greater than alimony
2
+ period: 2024
3
+ input:
4
+ pr_gross_income: 20_000
5
+ alimony_expense: 5_000
6
+ state_code: PR
7
+ output:
8
+ pr_agi: 15_000
9
+
10
+ - name: Alimony greater than total income
11
+ period: 2024
12
+ input:
13
+ pr_gross_income: 5_000
14
+ alimony_expense: 10_000
15
+ state_code: PR
16
+ output:
17
+ pr_agi: 0
@@ -0,0 +1,17 @@
1
+ - name: Joint
2
+ period: 2024
3
+ input:
4
+ pr_agi: 20_000
5
+ filing_status: JOINT
6
+ state_code: PR
7
+ output:
8
+ pr_agi_person: 10_000
9
+
10
+ - name: Separate
11
+ period: 2024
12
+ input:
13
+ pr_agi: 20_000
14
+ filing_status: SEPARATE
15
+ state_code: PR
16
+ output:
17
+ pr_agi_person: 20_000
@@ -0,0 +1,19 @@
1
+ - name: Lower bracket
2
+ period: 2024
3
+ input:
4
+ state_code: PR
5
+ pr_gross_income: 100_000
6
+ pr_normal_tax: 2_000
7
+ pr_gradual_adjustment_amount: 0
8
+ output:
9
+ pr_regular_tax_before_credits: 1_840
10
+
11
+ - name: Upper bracket
12
+ period: 2024
13
+ input:
14
+ state_code: PR
15
+ pr_gross_income: 100_001
16
+ pr_normal_tax: 1_000
17
+ pr_gradual_adjustment_amount: 500
18
+ output:
19
+ pr_regular_tax_before_credits: 1_425
@@ -0,0 +1,26 @@
1
+ - name: Base case
2
+ period: 2024
3
+ input:
4
+ pr_agi: 40_000
5
+ pr_casualty_loss_deduction: 1_000
6
+ pr_charitable_deduction: 500
7
+ pr_retirement_deduction: 20_000
8
+ pr_medical_expense_deduction: 0
9
+ pr_mortgage_deduction: 3_000
10
+ pr_education_deduction: 1_500
11
+ pr_personal_exemption: 1_000
12
+ pr_veteran_exemption: 0
13
+ pr_dependents_exemption: 500
14
+ state_code: PR
15
+ output:
16
+ pr_net_taxable_income: 12_500
17
+
18
+ - name: AGI smaller than exemption and deduction sum
19
+ period: 2024
20
+ input:
21
+ pr_agi: 10_000
22
+ pr_casualty_loss_deduction: 10_000
23
+ pr_charitable_deduction: 5
24
+ state_code: PR
25
+ output:
26
+ pr_net_taxable_income: 0
@@ -35,14 +35,14 @@
35
35
  output:
36
36
  snap_min_allotment: 30
37
37
 
38
- - name: In other states, we keep the standard minium allotment amount
38
+ - name: In other states, we keep the standard minimum allotment amount
39
39
  period: 2022-01
40
40
  input:
41
41
  spm_unit_size: 2
42
- state_code: AB
42
+ state_code: CA
43
43
  state_group: CONTIGUOUS_US
44
44
  output:
45
- snap_min_allotment: 250 * 0.08
45
+ snap_min_allotment: 250 * 0.08
46
46
 
47
47
  - name: Above age threshold in 2017, Maryland provides a different minimum allotment amount
48
48
  period: 2022-01
@@ -0,0 +1,181 @@
1
+ # WIC Integration Tests
2
+ # Tests the full eligibility pipeline from demographics to benefits.
3
+ # Per 42 U.S.C. § 1786, eligibility requires:
4
+ # 1. Valid demographic category (pregnant, postpartum, breastfeeding, infant, child)
5
+ # 2. Income ≤ 185% FPG OR categorical eligibility (SNAP/TANF/Medicaid)
6
+ # 3. Nutritional risk assessment (assumed true in individual simulation)
7
+ #
8
+ # Note: WIC package values are uprated from 2018 base values using CPI-U.
9
+ # Note: school_meal_countable_income is input as ANNUAL but computed as monthly.
10
+
11
+ - name: Case 1, infant in low-income family eligible for WIC.
12
+ period: 2024-01
13
+ absolute_error_margin: 0.01
14
+ input:
15
+ people:
16
+ person1:
17
+ # Parent - not WIC eligible (adult)
18
+ age: 30
19
+ person2:
20
+ # Infant - WIC eligible
21
+ age: 0
22
+ spm_units:
23
+ spm_unit:
24
+ members: [person1, person2]
25
+ # Annual income: $24,000
26
+ # Monthly: $2,000
27
+ # 2-person FPG 2024: $20,440/year = $1,703/month
28
+ # Ratio: 2000/1703 = 1.17 < 1.85 ✓
29
+ school_meal_countable_income: 24_000
30
+ output:
31
+ wic_category: [NONE, INFANT]
32
+ meets_wic_income_test: true
33
+ is_wic_eligible: [false, true]
34
+ # INFANT value uprated from $138.64 (2018) to ~$173.28 (2024)
35
+ wic: [0, 173.28]
36
+
37
+ - name: Case 2, pregnant woman fails income but passes categorical via SNAP.
38
+ period: 2024-01
39
+ absolute_error_margin: 0.01
40
+ input:
41
+ people:
42
+ person1:
43
+ age: 25
44
+ is_pregnant: true
45
+ spm_units:
46
+ spm_unit:
47
+ members: [person1]
48
+ # Annual income: $60,000
49
+ # Monthly: $5,000
50
+ # Pregnant adds +1 to household → 2-person FPG: $20,440/year = $1,703/month
51
+ # Ratio: 5000/1703 = 2.94 > 1.85 ✗
52
+ school_meal_countable_income: 60_000
53
+ snap: 200
54
+ output:
55
+ wic_category: PREGNANT
56
+ meets_wic_income_test: false
57
+ meets_wic_categorical_eligibility: true
58
+ is_wic_eligible: true
59
+ # PREGNANT value uprated from $37.33 (2018) to ~$46.66 (2024)
60
+ wic: 46.66
61
+
62
+ - name: Case 3, child age 3 eligible through Medicaid.
63
+ period: 2024-01
64
+ absolute_error_margin: 0.01
65
+ input:
66
+ people:
67
+ person1:
68
+ age: 3
69
+ medicaid_enrolled: true
70
+ spm_units:
71
+ spm_unit:
72
+ members: [person1]
73
+ # Annual income: $48,000
74
+ # Monthly: $4,000
75
+ # 1-person FPG 2024: $15,060/year = $1,255/month
76
+ # Ratio: 4000/1255 = 3.19 > 1.85 ✗
77
+ school_meal_countable_income: 48_000
78
+ # Explicitly disable SNAP to test Medicaid pathway
79
+ snap: 0
80
+ output:
81
+ wic_category: CHILD
82
+ meets_wic_income_test: false
83
+ meets_wic_categorical_eligibility: true
84
+ is_wic_eligible: true
85
+ # CHILD value uprated from $31.78 (2018) to ~$39.72 (2024)
86
+ wic: 39.72
87
+
88
+ - name: Case 4, healthy adult not eligible even with SNAP.
89
+ period: 2024-01
90
+ input:
91
+ people:
92
+ person1:
93
+ age: 35
94
+ spm_units:
95
+ spm_unit:
96
+ members: [person1]
97
+ school_meal_countable_income: 12_000
98
+ snap: 200
99
+ output:
100
+ wic_category: NONE
101
+ meets_wic_income_test: true
102
+ meets_wic_categorical_eligibility: true
103
+ # Not eligible - adult is not in valid WIC demographic category
104
+ is_wic_eligible: false
105
+ wic: 0
106
+
107
+ - name: Case 5, child age 5 not eligible (too old).
108
+ period: 2024-01
109
+ input:
110
+ people:
111
+ person1:
112
+ age: 5
113
+ # Explicitly disable Medicaid to test demographic-only rejection
114
+ medicaid_enrolled: false
115
+ spm_units:
116
+ spm_unit:
117
+ members: [person1]
118
+ school_meal_countable_income: 18_000
119
+ # Explicitly disable SNAP/TANF
120
+ snap: 0
121
+ tanf: 0
122
+ output:
123
+ # Age 5+ is category NONE per 42 U.S.C. § 1786(b)(2)
124
+ wic_category: NONE
125
+ meets_wic_income_test: true
126
+ meets_wic_categorical_eligibility: false
127
+ is_wic_eligible: false
128
+ wic: 0
129
+
130
+ - name: Case 6, family with pregnant mother and toddler.
131
+ period: 2024-01
132
+ absolute_error_margin: 0.01
133
+ input:
134
+ people:
135
+ person1:
136
+ age: 32
137
+ person2:
138
+ age: 28
139
+ is_pregnant: true
140
+ person3:
141
+ age: 2
142
+ spm_units:
143
+ spm_unit:
144
+ members: [person1, person2, person3]
145
+ # Annual income: $36,000
146
+ # Monthly: $3,000
147
+ # 3 people + 1 for pregnancy = 4-person equivalent
148
+ # 4-person FPG 2024: $31,200/year = $2,600/month
149
+ # Ratio: 3000/2600 = 1.15 < 1.85 ✓
150
+ school_meal_countable_income: 36_000
151
+ output:
152
+ wic_category: [NONE, PREGNANT, CHILD]
153
+ is_wic_eligible: [false, true, true]
154
+ # Father: $0, Mother: ~$46.66, Child: ~$39.72
155
+ wic: [0, 46.66, 39.72]
156
+
157
+ - name: Case 7, income above 185% FPG without categorical eligibility.
158
+ period: 2024-01
159
+ input:
160
+ people:
161
+ person1:
162
+ age: 2
163
+ # Explicitly disable Medicaid to test income-only pathway
164
+ medicaid_enrolled: false
165
+ spm_units:
166
+ spm_unit:
167
+ members: [person1]
168
+ # Annual income: $36,000
169
+ # Monthly: $3,000
170
+ # 1-person FPG 2024: $15,060/year = $1,255/month
171
+ # Ratio: 3000/1255 = 2.39 > 1.85 ✗
172
+ school_meal_countable_income: 36_000
173
+ # Explicitly disable SNAP/TANF
174
+ snap: 0
175
+ tanf: 0
176
+ output:
177
+ wic_category: CHILD
178
+ meets_wic_income_test: false
179
+ meets_wic_categorical_eligibility: false
180
+ is_wic_eligible: false
181
+ wic: 0
@@ -0,0 +1,33 @@
1
+ # Nutritional risk is a health assessment per 42 U.S.C. § 1786(b)(8).
2
+ # In individual simulation, all persons are assumed at nutritional risk.
3
+ # In microsimulation, risk is assigned probabilistically by category.
4
+
5
+ - name: Case 1, infant assumed at nutritional risk in individual simulation.
6
+ period: 2024-01
7
+ input:
8
+ age: 0
9
+ output:
10
+ is_wic_at_nutritional_risk: true
11
+
12
+ - name: Case 2, child assumed at nutritional risk in individual simulation.
13
+ period: 2024-01
14
+ input:
15
+ age: 3
16
+ output:
17
+ is_wic_at_nutritional_risk: true
18
+
19
+ - name: Case 3, adult assumed at nutritional risk in individual simulation.
20
+ period: 2024-01
21
+ input:
22
+ age: 35
23
+ output:
24
+ # Even adults are assumed at nutritional risk in individual simulation.
25
+ # Demographic eligibility is checked separately in is_wic_eligible.
26
+ is_wic_at_nutritional_risk: true
27
+
28
+ - name: Case 4, person receiving WIC is at nutritional risk.
29
+ period: 2024-01
30
+ input:
31
+ receives_wic: true
32
+ output:
33
+ is_wic_at_nutritional_risk: true
@@ -1,39 +1,52 @@
1
1
  # WIC requires each of the following:
2
- # - Either meeting the income test or categorical eligibility,
3
- # - Meeting a demographic test (pregnancy, age, parental status), and
2
+ # - Being in a valid demographic category (pregnant, postpartum, breastfeeding, infant, or child),
3
+ # - Either meeting the income test or categorical eligibility, and
4
4
  # - Being assessed to be at nutritional risk.
5
- - name: Case 1, satisfied all conditions hence is eligible
5
+
6
+ # Unit tests with stubbed inputs
7
+ - name: Case 1, child satisfies all conditions hence is eligible.
6
8
  period: 2022
7
9
  input:
10
+ wic_category: CHILD
8
11
  meets_wic_income_test: true
9
- meets_wic_categorical_eligibility: true
10
12
  is_wic_at_nutritional_risk: true
11
13
  output:
12
14
  is_wic_eligible: true
13
15
 
14
- - name: Case 2, not nutritional risk hence not eligible
16
+ - name: Case 2, healthy adult not eligible even with all other conditions met.
15
17
  period: 2022
16
18
  input:
19
+ wic_category: NONE
17
20
  meets_wic_income_test: true
18
21
  meets_wic_categorical_eligibility: true
19
- is_wic_at_nutritional_risk: false
22
+ is_wic_at_nutritional_risk: true
20
23
  output:
21
24
  is_wic_eligible: false
22
25
 
23
- - name: Case 3, eligible when either income test or categorical passed
26
+ - name: Case 3, child not eligible without income or categorical eligibility.
24
27
  period: 2022
25
28
  input:
26
- meets_wic_income_test: true
29
+ wic_category: CHILD
30
+ meets_wic_income_test: false
27
31
  meets_wic_categorical_eligibility: false
28
32
  is_wic_at_nutritional_risk: true
29
33
  output:
30
- is_wic_eligible: true
34
+ is_wic_eligible: false
31
35
 
32
- - name: Case 4, eligible when either income test or categorical passed
33
- period: 2022
36
+ - name: Case 4, family with adult, infant, and child age 6.
37
+ period: 2024-01
34
38
  input:
35
- meets_wic_income_test: false
36
- meets_wic_categorical_eligibility: true
37
- is_wic_at_nutritional_risk: true
39
+ people:
40
+ person1:
41
+ age: 30
42
+ person2:
43
+ age: 0
44
+ person3:
45
+ age: 6
46
+ spm_units:
47
+ spm_unit:
48
+ members: [person1, person2, person3]
49
+ school_meal_countable_income: 30_000
38
50
  output:
39
- is_wic_eligible: true
51
+ # Adult: not eligible, infant: eligible, age 6: not eligible
52
+ is_wic_eligible: [false, true, false]
@@ -11,3 +11,24 @@
11
11
  state_code: AK
12
12
  output:
13
13
  state_group: AK
14
+
15
+ - name: Contiguous state does not cause empty array indexing error
16
+ period: 2024
17
+ input:
18
+ state_code: TX
19
+ output:
20
+ state_group: CONTIGUOUS_US
21
+
22
+ - name: Hawaii
23
+ period: 2024
24
+ input:
25
+ state_code: HI
26
+ output:
27
+ state_group: HI
28
+
29
+ - name: Puerto Rico
30
+ period: 2024
31
+ input:
32
+ state_code: PR
33
+ output:
34
+ state_group: PR
@@ -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
@@ -0,0 +1,51 @@
1
+ - name: Person below threshold in 2026
2
+ period: 2026
3
+ reforms: policyengine_us.reforms.local.ny.mamdani_income_tax.nyc_mamdani_income_tax
4
+ input:
5
+ gov.local.ny.mamdani_income_tax.in_effect: True
6
+ nyc_taxable_income: 800_000
7
+ in_nyc: true
8
+ output:
9
+ nyc_mamdani_income_tax: 0
10
+
11
+ - name: Person at threshold in 2026
12
+ period: 2026
13
+ reforms: policyengine_us.reforms.local.ny.mamdani_income_tax.nyc_mamdani_income_tax
14
+ input:
15
+ gov.local.ny.mamdani_income_tax.in_effect: True
16
+ nyc_taxable_income: 1_000_000
17
+ in_nyc: true
18
+ output:
19
+ nyc_mamdani_income_tax: 0
20
+
21
+ - name: Person above threshold in 2026
22
+ period: 2026
23
+ reforms: policyengine_us.reforms.local.ny.mamdani_income_tax.nyc_mamdani_income_tax
24
+ input:
25
+ gov.local.ny.mamdani_income_tax.in_effect: True
26
+ nyc_taxable_income: 1_200_000
27
+ in_nyc: true
28
+ output:
29
+ # (1_200_000 - 1_000_000) * 0.02 = 200_000 * 0.02 = 4_000
30
+ nyc_mamdani_income_tax: 4_000
31
+
32
+ - name: Person well above threshold in 2026
33
+ period: 2026
34
+ reforms: policyengine_us.reforms.local.ny.mamdani_income_tax.nyc_mamdani_income_tax
35
+ input:
36
+ gov.local.ny.mamdani_income_tax.in_effect: True
37
+ nyc_taxable_income: 2_000_000
38
+ in_nyc: true
39
+ output:
40
+ # (2_000_000 - 1_000_000) * 0.02 = 1_000_000 * 0.02 = 20_000
41
+ nyc_mamdani_income_tax: 20_000
42
+
43
+ - name: Person not in NYC (no tax)
44
+ period: 2026
45
+ reforms: policyengine_us.reforms.local.ny.mamdani_income_tax.nyc_mamdani_income_tax
46
+ input:
47
+ gov.local.ny.mamdani_income_tax.in_effect: True
48
+ nyc_taxable_income: 1_500_000
49
+ in_nyc: false
50
+ output:
51
+ nyc_mamdani_income_tax: 0
@@ -0,0 +1,30 @@
1
+ from policyengine_us.model_api import *
2
+
3
+
4
+ class medicare_cost(Variable):
5
+ value_type = float
6
+ entity = Person
7
+ label = "Medicare cost"
8
+ documentation = (
9
+ "Annual value of Medicare benefits received. Calculated as total "
10
+ "Medicare spending on behalf of the beneficiary minus premiums paid. "
11
+ "This represents the net benefit value of Medicare coverage."
12
+ )
13
+ unit = USD
14
+ definition_period = YEAR
15
+ reference = "https://www.cms.gov/medicare"
16
+ defined_for = "medicare_enrolled"
17
+
18
+ def formula(person, period, parameters):
19
+ # Total Medicare spending on behalf of beneficiary
20
+ per_capita_spending = parameters(
21
+ period
22
+ ).calibration.gov.hhs.medicare.per_capita_cost
23
+
24
+ # Premiums paid by beneficiary
25
+ part_a_premium = person("base_part_a_premium", period)
26
+ part_b_premium = person("income_adjusted_part_b_premium", period)
27
+ total_premiums = part_a_premium + part_b_premium
28
+
29
+ # Net benefit = spending - premiums
30
+ return max_(per_capita_spending - total_premiums, 0)