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.
- policyengine_us/parameters/calibration/gov/hhs/medicare/per_capita_cost.yaml +12 -0
- policyengine_us/parameters/gov/hhs/medicare/part_a/deductible.yaml +13 -0
- policyengine_us/parameters/gov/hhs/medicare/part_a/default_quarters_of_coverage.yaml +10 -0
- policyengine_us/parameters/gov/hhs/medicare/part_a/full_premium.yaml +13 -0
- policyengine_us/parameters/gov/hhs/medicare/part_a/premium_free_quarters_threshold.yaml +10 -0
- policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium.yaml +13 -0
- policyengine_us/parameters/gov/hhs/medicare/part_a/reduced_premium_quarters_threshold.yaml +10 -0
- policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml +16 -0
- policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml +50 -0
- policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml +49 -0
- policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml +30 -0
- policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml +50 -0
- policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml +49 -0
- policyengine_us/parameters/gov/local/ny/mamdani_income_tax/in_effect.yaml +10 -0
- policyengine_us/parameters/gov/local/ny/mamdani_income_tax/rate.yaml +18 -0
- policyengine_us/parameters/gov/states/ar/tax/income/rates/main/reduction.yaml +30 -0
- policyengine_us/parameters/gov/states/il/hfs/README.md +1 -0
- policyengine_us/parameters/gov/states/il/hfs/bcc/eligibility/age.yaml +12 -0
- policyengine_us/parameters/gov/states/il/hfs/hbwd/README.md +1 -0
- policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/age.yaml +25 -0
- policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/asset/limit.yaml +15 -0
- policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/limit.yaml +15 -0
- policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/earned.yaml +13 -0
- policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/income/sources/unearned.yaml +25 -0
- policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/earned.yaml +96 -0
- policyengine_us/parameters/gov/states/il/hfs/hbwd/premium/unearned.yaml +96 -0
- policyengine_us/parameters/gov/states/il/hfs/qualified_noncitizen_statuses.yaml +17 -0
- policyengine_us/parameters/gov/states/mt/tax/income/deductions/itemized/spouse_allocation_rate.yaml +13 -0
- policyengine_us/parameters/gov/states/nj/tax/income/additions.yaml +12 -0
- policyengine_us/parameters/gov/states/nj/tax/income/gross_income_sources.yaml +32 -0
- policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/amount.yaml +14 -0
- policyengine_us/parameters/gov/states/wa/dshs/tanf/income/deductions/earned_income_disregard/percentage_disregarded.yaml +14 -0
- policyengine_us/parameters/gov/states/wa/dshs/tanf/income/limit.yaml +36 -0
- policyengine_us/parameters/gov/states/wa/dshs/tanf/maximum_family_size.yaml +14 -0
- policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/amount.yaml +32 -0
- policyengine_us/parameters/gov/states/wa/dshs/tanf/payment_standard/maximum_amount.yaml +12 -0
- policyengine_us/parameters/gov/states/wa/dshs/tanf/resource_limit.yaml +15 -0
- policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/adjustment_limit_basis.yaml +12 -0
- policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/exemption_rate.yaml +13 -0
- policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/rate.yaml +12 -0
- policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/threshold.yaml +13 -0
- policyengine_us/parameters/gov/territories/pr/tax/income/regular_tax/percentage.yaml +21 -0
- policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/sources.yaml +18 -0
- policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/sources.yaml +15 -0
- policyengine_us/reforms/local/ny/__init__.py +4 -0
- policyengine_us/reforms/local/ny/mamdani_income_tax.py +84 -0
- policyengine_us/reforms/reforms.py +9 -0
- policyengine_us/reforms/states/ut/ut_refundable_eitc.py +3 -3
- policyengine_us/tests/policy/baseline/gov/hhs/medicare/costs/medicare_cost.yaml +65 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_a_premium.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml +15 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_b_premium.yaml +77 -0
- policyengine_us/tests/policy/baseline/gov/local/ca/la/general_relief/eligible/immigration/la_general_relief_immigration_status_eligible_person.yaml +2 -2
- policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/integration.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/states/co/tax/income/additions/federal_deduction/co_federal_deduction_addback.yaml +2 -2
- policyengine_us/tests/policy/baseline/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.yaml +26 -4
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.yaml +95 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.yaml +23 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.yaml +31 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +65 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.yaml +34 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.yaml +25 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_person.yaml +34 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/il_hbwd_premium.yaml +84 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +183 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/il_hfs_immigration_status_eligible.yaml +47 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/deductions/mo_federal_income_tax_deduction.yaml +2 -14
- 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
- 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
- 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
- policyengine_us/tests/policy/baseline/gov/states/nc/tax/income/deductions/nc_itemized_deductions.yaml +2 -2
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml +44 -0
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/taxable_income/nj_agi.yaml +7 -8
- policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.yaml +29 -0
- policyengine_us/tests/policy/baseline/gov/states/oh/tax/income/integration.yaml +82 -0
- policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/ss_benefits_credit/ut_ss_benefits_credit_max.yaml +5 -5
- policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.yaml +48 -0
- policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml +65 -0
- policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml +96 -0
- policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.yaml +70 -0
- policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml +676 -0
- policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf.yaml +102 -0
- policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml +6 -7
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.yaml +29 -0
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.yaml +15 -0
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +17 -0
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +17 -0
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_tax_before_credits.yaml +19 -0
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.yaml +26 -0
- policyengine_us/tests/policy/baseline/gov/usda/snap/snap_min_allotment.yaml +3 -3
- policyengine_us/tests/policy/baseline/gov/usda/wic/integration.yaml +181 -0
- policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_at_nutritional_risk.yaml +33 -0
- policyengine_us/tests/policy/baseline/gov/usda/wic/is_wic_eligible.yaml +28 -15
- policyengine_us/tests/policy/baseline/household/demographic/geographic/state_group.yaml +21 -0
- policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml +12 -0
- policyengine_us/tests/policy/contrib/local/ny/nyc_mamdani_income_tax.yaml +51 -0
- policyengine_us/variables/gov/hhs/medicare/costs/medicare_cost.py +30 -0
- policyengine_us/variables/gov/hhs/medicare/costs/medicare_enrolled.py +14 -0
- policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/base_part_a_premium.py +32 -0
- policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/is_premium_free_part_a.py +22 -0
- policyengine_us/variables/gov/hhs/medicare/eligibility/part_a/medicare_quarters_of_coverage.py +16 -0
- policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/base_part_b_premium.py +16 -0
- policyengine_us/variables/gov/hhs/medicare/eligibility/part_b/income_adjusted_part_b_premium.py +55 -0
- policyengine_us/variables/gov/states/ca/tax/income/alternative_minimum_tax/exemption/ca_amt_exemption.py +4 -2
- policyengine_us/variables/gov/states/ca/tax/income/ca_income_tax.py +1 -0
- policyengine_us/variables/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.py +5 -1
- policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.py +15 -0
- policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.py +27 -0
- policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.py +29 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/asset/il_hbwd_countable_assets.py +34 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_age_eligible.py +20 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_asset_eligible.py +21 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +20 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +33 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_employment_eligible.py +25 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_income_eligible.py +23 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd.py +17 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_person.py +24 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/il_hbwd_premium.py +23 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_countable_earned_income.py +24 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/income/earned/il_hbwd_gross_earned_income.py +16 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/income/il_hbwd_countable_income.py +21 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/income/unearned/il_hbwd_countable_unearned_income.py +16 -0
- policyengine_us/variables/gov/states/il/hfs/il_hfs_immigration_status_eligible.py +23 -0
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/general/mt_itemized_deductions_indiv.py +3 -2
- policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_additions.py +8 -3
- policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_gross_income.py +17 -0
- policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_total_income.py +12 -6
- policyengine_us/variables/gov/states/oh/tax/income/credits/joint_filing_credit/oh_joint_filing_credit_qualifying_income.py +7 -3
- policyengine_us/variables/gov/states/wa/dshs/tanf/benefit/wa_tanf_payment_standard.py +22 -0
- policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py +42 -0
- policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py +31 -0
- policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_earned_income.py +33 -0
- policyengine_us/variables/gov/states/wa/dshs/tanf/income/wa_tanf_countable_income.py +16 -0
- policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf.py +34 -0
- policyengine_us/variables/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.py +3 -2
- policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_amount.py +23 -0
- policyengine_us/variables/gov/territories/pr/tax/income/gradual_adjustment/pr_gradual_adjustment_eligible.py +16 -0
- policyengine_us/variables/gov/territories/pr/tax/income/pr_agi.py +11 -1
- policyengine_us/variables/gov/territories/pr/tax/income/pr_agi_person.py +11 -1
- policyengine_us/variables/gov/territories/pr/tax/income/pr_regular_tax_before_credits.py +9 -0
- policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_deductions.py +13 -0
- policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/exemptions/pr_exemptions.py +13 -0
- policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py +6 -0
- policyengine_us/variables/gov/usda/wic/is_wic_at_nutritional_risk.py +3 -10
- policyengine_us/variables/gov/usda/wic/is_wic_eligible.py +10 -1
- policyengine_us/variables/household/demographic/geographic/state_group.py +8 -5
- policyengine_us/variables/household/expense/health/has_bcc_qualifying_coverage.py +16 -0
- {policyengine_us-1.441.3.dist-info → policyengine_us-1.450.0.dist-info}/METADATA +2 -2
- {policyengine_us-1.441.3.dist-info → policyengine_us-1.450.0.dist-info}/RECORD +160 -43
- {policyengine_us-1.441.3.dist-info → policyengine_us-1.450.0.dist-info}/WHEEL +1 -1
- policyengine_us/parameters/gov/states/wa/dshs/tanf/eligibility/resources/limit.yaml +0 -11
- /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement.py +0 -0
- /policyengine_us/variables/gov/states/co/ssa/{state_suplement → state_supplement}/co_state_supplement_eligible.py +0 -0
- {policyengine_us-1.441.3.dist-info → policyengine_us-1.450.0.dist-info}/entry_points.txt +0 -0
- {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
|
policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/wa_tanf_resources_eligible.yaml
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
- name: Households with assets
|
|
2
|
-
period:
|
|
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:
|
|
5
|
+
wa_tanf_countable_resources: 12_000
|
|
6
6
|
output:
|
|
7
7
|
wa_tanf_resources_eligible: true
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
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:
|
|
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
|
policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_tax_before_credits.yaml
ADDED
|
@@ -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
|
|
38
|
+
- name: In other states, we keep the standard minimum allotment amount
|
|
39
39
|
period: 2022-01
|
|
40
40
|
input:
|
|
41
41
|
spm_unit_size: 2
|
|
42
|
-
state_code:
|
|
42
|
+
state_code: CA
|
|
43
43
|
state_group: CONTIGUOUS_US
|
|
44
44
|
output:
|
|
45
|
-
snap_min_allotment: 250 * 0.08
|
|
45
|
+
snap_min_allotment: 250 * 0.08
|
|
46
46
|
|
|
47
47
|
- name: Above age threshold in 2017, Maryland provides a different minimum allotment amount
|
|
48
48
|
period: 2022-01
|
|
@@ -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
|
-
# -
|
|
3
|
-
# -
|
|
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
|
-
|
|
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
|
|
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:
|
|
22
|
+
is_wic_at_nutritional_risk: true
|
|
20
23
|
output:
|
|
21
24
|
is_wic_eligible: false
|
|
22
25
|
|
|
23
|
-
- name: Case 3, eligible
|
|
26
|
+
- name: Case 3, child not eligible without income or categorical eligibility.
|
|
24
27
|
period: 2022
|
|
25
28
|
input:
|
|
26
|
-
|
|
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:
|
|
34
|
+
is_wic_eligible: false
|
|
31
35
|
|
|
32
|
-
- name: Case 4,
|
|
33
|
-
period:
|
|
36
|
+
- name: Case 4, family with adult, infant, and child age 6.
|
|
37
|
+
period: 2024-01
|
|
34
38
|
input:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
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
|
policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
- name: Default is no qualifying coverage
|
|
2
|
+
period: 2024
|
|
3
|
+
input: {}
|
|
4
|
+
output:
|
|
5
|
+
has_bcc_qualifying_coverage: false
|
|
6
|
+
|
|
7
|
+
- name: Has qualifying coverage when set
|
|
8
|
+
period: 2024
|
|
9
|
+
input:
|
|
10
|
+
has_bcc_qualifying_coverage: true
|
|
11
|
+
output:
|
|
12
|
+
has_bcc_qualifying_coverage: true
|
|
@@ -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)
|