policyengine-us 1.439.0__py3-none-any.whl → 1.449.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- policyengine_us/parameters/calibration/gov/hhs/medicare/per_capita_cost.yaml +12 -0
- policyengine_us/parameters/gov/contrib/states/ut/eitc/in_effect.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/ut/eitc/max_age.yaml +9 -0
- policyengine_us/parameters/gov/hhs/medicaid/eligibility/categories/medically_needy/categories/child/child.yaml +0 -1
- 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/irs/credits/cdcc/eligibility/child_age.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/clean_vehicle/new/eligibility/min_kwh.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/clean_vehicle/used/eligibility/sale_price_limit.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/abolition.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/education/american_opportunity_credit/refundability.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/abolition.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/education/lifetime_learning_credit/expense_limit.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/advanced_main_air_circulating_fan.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/door.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/energy_efficient_central_air_conditioner.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/home_energy_audit.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/qualified_furnace_or_hot_water_boiler.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/roof.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/total.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/annual/window.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/total.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/cap/lifetime/window.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/in_effect.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/credits.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/qualified_expenditures/heat_pump_heat_pump_water_heater_biomass_stove_boiler.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/home_energy_audit.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/improvements.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/energy_efficient_home_improvement/rates/property.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/ending_rate.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/premium_tax_credit/phase_out/starting_rate.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/adult.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/max/dependent.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/length.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/arpa/phase_out/threshold.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/adult.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/max/child.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/rate.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/caa/phase_out/threshold.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/adult.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/max/child.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/rate.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/recovery_rebate_credit/cares/phase_out/threshold.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/residential_clean_energy/applicable_percentage.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/residential_clean_energy/elements.yaml +0 -1
- policyengine_us/parameters/gov/irs/credits/residential_clean_energy/fuel_cell_cap_per_kw.yaml +0 -1
- policyengine_us/parameters/gov/irs/deductions/standard/aged_or_blind/age_threshold.yaml +0 -1
- policyengine_us/parameters/gov/irs/payroll/medicare/additional/exclusion.yaml +0 -1
- 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/co/tax/income/credits/care_worker/amount/{single.yaml → non_joint.yaml} +2 -2
- policyengine_us/parameters/gov/states/co/tax/income/credits/care_worker/income_limit/{single.yaml → non_joint.yaml} +2 -2
- policyengine_us/parameters/gov/states/il/hfs/README.md +1 -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/eligibility/qualified_noncitizen_statuses.yaml +21 -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/mt/tax/income/deductions/itemized/spouse_allocation_rate.yaml +13 -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/parameters/gov/usda/snap/student/child_age_limit/single_parent.yaml +12 -0
- policyengine_us/parameters/gov/usda/snap/student/child_age_limit/two_parent.yaml +12 -0
- policyengine_us/parameters/simulation/disabled_programs.yaml +0 -1
- 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 +14 -0
- policyengine_us/reforms/states/ut/__init__.py +3 -0
- policyengine_us/reforms/states/ut/ut_refundable_eitc.py +118 -0
- 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/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.yaml +68 -0
- policyengine_us/tests/policy/baseline/gov/irs/tax/federal_income/alternative_minimum_tax/integration.yaml +26 -0
- 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/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_immigration_status_eligible.yaml +47 -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/ma/dta/ssp/ma_state_supplement.yaml +2 -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/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/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/eligibility/student/is_snap_higher_ed_student.yaml +23 -0
- policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/is_snap_ineligible_student.yaml +75 -4
- policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_parent_exception.yaml +345 -0
- policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/student/meets_snap_work_exception.yaml +47 -0
- policyengine_us/tests/policy/baseline/gov/usda/snap/income/federal_work_study_income_exclusion.yaml +24 -0
- policyengine_us/tests/policy/baseline/gov/usda/snap/income/snap_countable_earner.yaml +25 -0
- 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/contrib/local/ny/nyc_mamdani_income_tax.yaml +51 -0
- policyengine_us/tests/policy/contrib/states/ut/ut_refundable_eitc.yaml +214 -0
- policyengine_us/variables/gov/ed/is_federal_work_study_participant.py +9 -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/irs/tax/federal_income/alternative_minimum_tax/exemption/amt_exemption.py +47 -0
- policyengine_us/variables/gov/irs/tax/federal_income/alternative_minimum_tax/income/amt_income_less_exemptions.py +4 -22
- 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/co/tax/income/credits/care_worker/co_care_worker_credit.py +1 -1
- policyengine_us/variables/gov/states/co/tax/income/credits/care_worker/co_care_worker_credit_eligible.py +1 -1
- 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_immigration_status_eligible.py +26 -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/ma/dta/ssp/ma_state_supplement.py +1 -0
- policyengine_us/variables/gov/states/mt/tax/income/deductions/itemized/general/mt_itemized_deductions_indiv.py +3 -2
- 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/snap/eligibility/student/is_snap_higher_ed_student.py +17 -0
- policyengine_us/variables/gov/usda/snap/eligibility/student/is_snap_ineligible_student.py +47 -15
- policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_parent_exception.py +42 -0
- policyengine_us/variables/gov/usda/snap/eligibility/student/meets_snap_work_exception.py +22 -0
- policyengine_us/variables/gov/usda/snap/income/snap_countable_earner.py +13 -2
- 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/demographic/person/is_part_time_college_student.py +9 -0
- {policyengine_us-1.439.0.dist-info → policyengine_us-1.449.6.dist-info}/METADATA +1 -1
- {policyengine_us-1.439.0.dist-info → policyengine_us-1.449.6.dist-info}/RECORD +213 -90
- {policyengine_us-1.439.0.dist-info → policyengine_us-1.449.6.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.439.0.dist-info → policyengine_us-1.449.6.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.439.0.dist-info → policyengine_us-1.449.6.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
description: Washington disregards this share of remaining earned income under the Temporary Assistance for Needy Families program.
|
|
2
|
+
|
|
3
|
+
values:
|
|
4
|
+
2024-01-01: 0.5
|
|
5
|
+
|
|
6
|
+
metadata:
|
|
7
|
+
unit: /1
|
|
8
|
+
period: month
|
|
9
|
+
label: Washington TANF earned income percentage disregard
|
|
10
|
+
reference:
|
|
11
|
+
- title: WAC 388-450-0170(3) - Subtract 50% of remaining earned income
|
|
12
|
+
href: https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0170
|
|
13
|
+
- title: DSHS Eligibility A-Z Manual, Income - Earned Income Deductions
|
|
14
|
+
href: https://www.dshs.wa.gov/esa/income-table-contents/budgeting
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
description: Washington sets these gross earned income limits for the Temporary Assistance for Needy Families program.
|
|
2
|
+
# Note: These values follow the formula: Income Limit = (Payment Standard × 2) + $500
|
|
3
|
+
# This represents the break-even point where countable income equals the payment standard,
|
|
4
|
+
# resulting in $0 benefit. While mathematically derived, WAC 388-478-0035 publishes these
|
|
5
|
+
# as a table rather than a formula, so we preserve the table structure here.
|
|
6
|
+
|
|
7
|
+
metadata:
|
|
8
|
+
unit: currency-USD
|
|
9
|
+
period: month
|
|
10
|
+
label: Washington TANF maximum gross earned income limit
|
|
11
|
+
breakdown:
|
|
12
|
+
- range(1, 11)
|
|
13
|
+
reference:
|
|
14
|
+
- title: WAC 388-478-0035 - Maximum earned income limits for TANF, SFA, PWA, and RCA
|
|
15
|
+
href: https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0035
|
|
16
|
+
|
|
17
|
+
1:
|
|
18
|
+
2024-01-01: 1_400
|
|
19
|
+
2:
|
|
20
|
+
2024-01-01: 1_640
|
|
21
|
+
3:
|
|
22
|
+
2024-01-01: 1_912
|
|
23
|
+
4:
|
|
24
|
+
2024-01-01: 2_166
|
|
25
|
+
5:
|
|
26
|
+
2024-01-01: 2_418
|
|
27
|
+
6:
|
|
28
|
+
2024-01-01: 2_680
|
|
29
|
+
7:
|
|
30
|
+
2024-01-01: 3_016
|
|
31
|
+
8:
|
|
32
|
+
2024-01-01: 3_284
|
|
33
|
+
9:
|
|
34
|
+
2024-01-01: 3_558
|
|
35
|
+
10:
|
|
36
|
+
2024-01-01: 3_824
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
description: Washington defines payment standards and income limits for family sizes up to this maximum under the Temporary Assistance for Needy Families program.
|
|
2
|
+
|
|
3
|
+
values:
|
|
4
|
+
2024-01-01: 10
|
|
5
|
+
|
|
6
|
+
metadata:
|
|
7
|
+
unit: person
|
|
8
|
+
period: year
|
|
9
|
+
label: Washington TANF maximum family size
|
|
10
|
+
reference:
|
|
11
|
+
- title: WAC 388-478-0020 - Payment standards for TANF, SFA, and RCA
|
|
12
|
+
href: https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0020
|
|
13
|
+
- title: WAC 388-478-0035 - Maximum earned income limits for TANF, SFA, PWA, and RCA
|
|
14
|
+
href: https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0035
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
description: Washington provides this payment standard based on assistance unit size under the Temporary Assistance for Needy Families program.
|
|
2
|
+
|
|
3
|
+
metadata:
|
|
4
|
+
unit: currency-USD
|
|
5
|
+
period: month
|
|
6
|
+
label: Washington TANF payment standard
|
|
7
|
+
breakdown:
|
|
8
|
+
- range(1, 11)
|
|
9
|
+
reference:
|
|
10
|
+
- title: WAC 388-478-0020 - Payment standards for TANF, SFA, and RCA
|
|
11
|
+
href: https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0020
|
|
12
|
+
|
|
13
|
+
1:
|
|
14
|
+
2024-01-01: 450
|
|
15
|
+
2:
|
|
16
|
+
2024-01-01: 570
|
|
17
|
+
3:
|
|
18
|
+
2024-01-01: 706
|
|
19
|
+
4:
|
|
20
|
+
2024-01-01: 833
|
|
21
|
+
5:
|
|
22
|
+
2024-01-01: 959
|
|
23
|
+
6:
|
|
24
|
+
2024-01-01: 1_090
|
|
25
|
+
7:
|
|
26
|
+
2024-01-01: 1_258
|
|
27
|
+
8:
|
|
28
|
+
2024-01-01: 1_392
|
|
29
|
+
9:
|
|
30
|
+
2024-01-01: 1_529
|
|
31
|
+
10:
|
|
32
|
+
2024-01-01: 1_662
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description: Washington limits the grant payment to this amount under the Temporary Assistance for Needy Families program.
|
|
2
|
+
|
|
3
|
+
values:
|
|
4
|
+
2024-01-01: 1_338
|
|
5
|
+
|
|
6
|
+
metadata:
|
|
7
|
+
unit: currency-USD
|
|
8
|
+
period: month
|
|
9
|
+
label: Washington TANF maximum grant cap
|
|
10
|
+
reference:
|
|
11
|
+
- title: DSHS Eligibility A-Z Manual, Income - Effect of Income and Deductions on Eligibility
|
|
12
|
+
href: https://www.dshs.wa.gov/esa/income-table-contents/income-effect-income-and-deductions-eligibility-and-benefit-level
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
description: Washington limits the Temporary Assistance for Needy Families program to households with countable resources up to this amount.
|
|
2
|
+
|
|
3
|
+
values:
|
|
4
|
+
2022-01-01: 6_000
|
|
5
|
+
2024-01-01: 12_000
|
|
6
|
+
|
|
7
|
+
metadata:
|
|
8
|
+
unit: currency-USD
|
|
9
|
+
period: year
|
|
10
|
+
label: Washington TANF resource limit
|
|
11
|
+
reference:
|
|
12
|
+
- title: Washington TANF State Plan 2022, page 13 - $6,000 cash resource limit
|
|
13
|
+
href: https://workfirst.wa.gov/sites/default/files/public/TANF_stateplan_2022_final.pdf#page=13
|
|
14
|
+
- title: HB 1447 (2023 c 418) - Increased asset limit to $12,000 effective Feb 1, 2024
|
|
15
|
+
href: https://app.leg.wa.gov/billsummary?BillNumber=1447&Year=2023
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description: Puerto Rico provides the following basis amount for the gradual adjustment limit.
|
|
2
|
+
values:
|
|
3
|
+
2024-01-01: 8_895
|
|
4
|
+
metadata:
|
|
5
|
+
unit: currency-USD
|
|
6
|
+
period: year
|
|
7
|
+
label: Puerto Rico gradual adjustment limit basis
|
|
8
|
+
reference:
|
|
9
|
+
- title: Gov. of Puerto Rico Form 482.0 2024
|
|
10
|
+
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=52
|
|
11
|
+
- title: P.R. Laws tit. 13, § 30061 (b)(5)(e)
|
|
12
|
+
href: https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2-ingles/1-2011.pdf#page=32
|
policyengine_us/parameters/gov/territories/pr/tax/income/gradual_adjustment/exemption_rate.yaml
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
description: Puerto Rico provides the following rate to reduce the total exemptions when calculating the gradual adjustment limit.
|
|
2
|
+
values:
|
|
3
|
+
2024-01-01: 0.33
|
|
4
|
+
metadata:
|
|
5
|
+
unit: /1
|
|
6
|
+
period: year
|
|
7
|
+
label: Puerto Rico gradual adjustment rate for exemptions
|
|
8
|
+
# discrepancy between legal form and tax form for the exemptions rate
|
|
9
|
+
reference:
|
|
10
|
+
- title: Gov. of Puerto Rico Form 482.0 2024
|
|
11
|
+
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=52
|
|
12
|
+
- title: P.R. Laws tit. 13, § 30061 (b)(5)(c)
|
|
13
|
+
href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1004/subchapter-a/30061/
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description: Puerto Rico provides the following rate to reduce the taxable net income when calculating gradual adjustment.
|
|
2
|
+
values:
|
|
3
|
+
2024-01-01: 0.05
|
|
4
|
+
metadata:
|
|
5
|
+
unit: /1
|
|
6
|
+
period: year
|
|
7
|
+
label: Puerto Rico gradual adjustment rate for taxable net income
|
|
8
|
+
reference:
|
|
9
|
+
- title: Gov. of Puerto Rico Form 482.0 2024
|
|
10
|
+
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=52
|
|
11
|
+
- title: P.R. Laws tit. 13, § 30061 (b)(1)-(4)
|
|
12
|
+
href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1004/subchapter-a/30061/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
description: Puerto Rico provides the following income amount as a threshold for the gradual adjustment amount.
|
|
2
|
+
values:
|
|
3
|
+
2024-01-01: 500_000
|
|
4
|
+
metadata:
|
|
5
|
+
unit: currency-USD
|
|
6
|
+
period: year
|
|
7
|
+
label: Puerto Rico gradual adjustment amount income threshold
|
|
8
|
+
# discrepancy between legal form and tax form for the income threshold
|
|
9
|
+
reference:
|
|
10
|
+
- title: Gov. of Puerto Rico Form 482.0 2024
|
|
11
|
+
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=52
|
|
12
|
+
- title: P.R. Laws tit. 13, § 30061 (b)(4))
|
|
13
|
+
href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1004/subchapter-a/30061/
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
description: Puerto Rico taxes this percentage of total normal taxes, based on gross income.
|
|
2
|
+
brackets:
|
|
3
|
+
- threshold:
|
|
4
|
+
2024-01-01: 0
|
|
5
|
+
amount:
|
|
6
|
+
2024-01-01: 0.92
|
|
7
|
+
- threshold:
|
|
8
|
+
2024-01-01: 100_001
|
|
9
|
+
amount:
|
|
10
|
+
2024-01-01: 0.95
|
|
11
|
+
metadata:
|
|
12
|
+
amount_unit: /1
|
|
13
|
+
threshold_unit: currency-USD
|
|
14
|
+
type: single_amount
|
|
15
|
+
label: Puerto Rico regular tax percentage
|
|
16
|
+
period: year
|
|
17
|
+
reference:
|
|
18
|
+
- title: Gov. of Puerto Rico Form 482.0 2024
|
|
19
|
+
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=3
|
|
20
|
+
- title: P.R. Laws tit. 13, § 30061 (c)
|
|
21
|
+
href: https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2-ingles/1-2011.pdf#page=33
|
policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/deductions/sources.yaml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
description: Puerto Rico deductions from taxable income.
|
|
2
|
+
values:
|
|
3
|
+
2023-01-01:
|
|
4
|
+
- pr_casualty_loss_deduction
|
|
5
|
+
- pr_charitable_deduction
|
|
6
|
+
- pr_medical_expense_deduction
|
|
7
|
+
- pr_mortgage_deduction
|
|
8
|
+
- pr_education_deduction
|
|
9
|
+
- pr_retirement_deduction
|
|
10
|
+
metadata:
|
|
11
|
+
unit: list
|
|
12
|
+
period: year
|
|
13
|
+
label: Puerto Rico income deductions
|
|
14
|
+
reference:
|
|
15
|
+
- title: P.R. Laws tit. 13, § 30135
|
|
16
|
+
href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/
|
|
17
|
+
- title: Gov. of Puerto Rico Individual Income Tax Return Form 482.0 4
|
|
18
|
+
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=4
|
policyengine_us/parameters/gov/territories/pr/tax/income/taxable_income/exemptions/sources.yaml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
description: Puerto Rico exemptions from taxable income.
|
|
2
|
+
values:
|
|
3
|
+
2023-01-01:
|
|
4
|
+
- pr_personal_exemption
|
|
5
|
+
- pr_veteran_exemption
|
|
6
|
+
- pr_dependents_exemption
|
|
7
|
+
metadata:
|
|
8
|
+
unit: list
|
|
9
|
+
period: year
|
|
10
|
+
label: Puerto Rico income exemptions
|
|
11
|
+
reference:
|
|
12
|
+
- title: P.R. Laws tit. 13, § 30138 (a)(1)-(2)
|
|
13
|
+
href: https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/
|
|
14
|
+
- title: Gov. of Puerto Rico Form 482.0 2024
|
|
15
|
+
href: https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description: The Department of Agriculture provides the Supplemental Nutrition Assistance Program to students if they are single parents caring for a child below this age.
|
|
2
|
+
|
|
3
|
+
values:
|
|
4
|
+
2005-01-01: 12
|
|
5
|
+
|
|
6
|
+
metadata:
|
|
7
|
+
unit: year
|
|
8
|
+
period: year
|
|
9
|
+
label: SNAP student single parent child age threshold
|
|
10
|
+
reference:
|
|
11
|
+
- title: 7 U.S. Code § 2015 - Eligibility disqualifications (e)(8)
|
|
12
|
+
href: https://www.law.cornell.edu/uscode/text/7/2015#e
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description: The Department of Agriculture provides the Supplemental Nutrition Assistance Program to students if they are parents in two-parent households caring for a child below this age.
|
|
2
|
+
|
|
3
|
+
values:
|
|
4
|
+
2005-01-01: 6
|
|
5
|
+
|
|
6
|
+
metadata:
|
|
7
|
+
unit: year
|
|
8
|
+
period: year
|
|
9
|
+
label: SNAP student two-parent household child age threshold
|
|
10
|
+
reference:
|
|
11
|
+
- title: 7 U.S. Code § 2015 - Eligibility disqualifications (e)(5)(A)
|
|
12
|
+
href: https://www.law.cornell.edu/uscode/text/7/2015#e
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
from policyengine_core.periods import period as period_
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def create_nyc_mamdani_income_tax() -> Reform:
|
|
6
|
+
class nyc_mamdani_income_tax(Variable):
|
|
7
|
+
value_type = float
|
|
8
|
+
entity = Person
|
|
9
|
+
label = "Zohran Mamdani NYC income tax"
|
|
10
|
+
unit = USD
|
|
11
|
+
definition_period = YEAR
|
|
12
|
+
defined_for = "in_nyc"
|
|
13
|
+
|
|
14
|
+
def formula(person, period, parameters):
|
|
15
|
+
taxable_income = person.tax_unit("nyc_taxable_income", period)
|
|
16
|
+
p = parameters(period).gov.local.ny.mamdani_income_tax
|
|
17
|
+
return p.rate.calc(taxable_income)
|
|
18
|
+
|
|
19
|
+
class nyc_income_tax_before_credits(Variable):
|
|
20
|
+
value_type = float
|
|
21
|
+
entity = TaxUnit
|
|
22
|
+
label = "NYC income tax before credits"
|
|
23
|
+
unit = USD
|
|
24
|
+
definition_period = YEAR
|
|
25
|
+
defined_for = "in_nyc"
|
|
26
|
+
|
|
27
|
+
def formula(tax_unit, period, parameters):
|
|
28
|
+
taxable_income = tax_unit("nyc_taxable_income", period)
|
|
29
|
+
filing_status = tax_unit("filing_status", period)
|
|
30
|
+
filing_statuses = filing_status.possible_values
|
|
31
|
+
p = parameters(period).gov.local.ny.nyc.tax.income.rates
|
|
32
|
+
regular_tax = select(
|
|
33
|
+
[
|
|
34
|
+
filing_status == filing_statuses.SINGLE,
|
|
35
|
+
filing_status == filing_statuses.JOINT,
|
|
36
|
+
filing_status == filing_statuses.HEAD_OF_HOUSEHOLD,
|
|
37
|
+
filing_status == filing_statuses.SURVIVING_SPOUSE,
|
|
38
|
+
filing_status == filing_statuses.SEPARATE,
|
|
39
|
+
],
|
|
40
|
+
[
|
|
41
|
+
p.single.calc(taxable_income),
|
|
42
|
+
p.joint.calc(taxable_income),
|
|
43
|
+
p.head_of_household.calc(taxable_income),
|
|
44
|
+
p.surviving_spouse.calc(taxable_income),
|
|
45
|
+
p.separate.calc(taxable_income),
|
|
46
|
+
],
|
|
47
|
+
)
|
|
48
|
+
mamdani_tax = add(tax_unit, period, ["nyc_mamdani_income_tax"])
|
|
49
|
+
return regular_tax + mamdani_tax
|
|
50
|
+
|
|
51
|
+
class reform(Reform):
|
|
52
|
+
def apply(self):
|
|
53
|
+
self.update_variable(nyc_mamdani_income_tax)
|
|
54
|
+
self.update_variable(nyc_income_tax_before_credits)
|
|
55
|
+
|
|
56
|
+
return reform
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def create_nyc_mamdani_income_tax_reform(
|
|
60
|
+
parameters, period, bypass: bool = False
|
|
61
|
+
):
|
|
62
|
+
if bypass:
|
|
63
|
+
return create_nyc_mamdani_income_tax()
|
|
64
|
+
|
|
65
|
+
p = parameters.gov.local.ny.mamdani_income_tax
|
|
66
|
+
|
|
67
|
+
reform_active = False
|
|
68
|
+
current_period = period_(period)
|
|
69
|
+
|
|
70
|
+
for i in range(5):
|
|
71
|
+
if p(current_period).in_effect:
|
|
72
|
+
reform_active = True
|
|
73
|
+
break
|
|
74
|
+
current_period = current_period.offset(1, "year")
|
|
75
|
+
|
|
76
|
+
if reform_active:
|
|
77
|
+
return create_nyc_mamdani_income_tax()
|
|
78
|
+
else:
|
|
79
|
+
return None
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
nyc_mamdani_income_tax = create_nyc_mamdani_income_tax_reform(
|
|
83
|
+
None, None, bypass=True
|
|
84
|
+
)
|
|
@@ -101,6 +101,12 @@ from .reconciliation import (
|
|
|
101
101
|
from .states.mi.surtax import (
|
|
102
102
|
create_mi_surtax_reform,
|
|
103
103
|
)
|
|
104
|
+
from .local.ny.mamdani_income_tax import (
|
|
105
|
+
create_nyc_mamdani_income_tax_reform,
|
|
106
|
+
)
|
|
107
|
+
from .states.ut import (
|
|
108
|
+
create_ut_refundable_eitc_reform,
|
|
109
|
+
)
|
|
104
110
|
from .additional_tax_bracket import (
|
|
105
111
|
create_additional_tax_bracket_reform,
|
|
106
112
|
)
|
|
@@ -250,6 +256,12 @@ def create_structural_reforms_from_parameters(parameters, period):
|
|
|
250
256
|
)
|
|
251
257
|
mi_surtax = create_mi_surtax_reform(parameters, period)
|
|
252
258
|
|
|
259
|
+
nyc_mamdani_income_tax = create_nyc_mamdani_income_tax_reform(
|
|
260
|
+
parameters, period
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
ut_refundable_eitc = create_ut_refundable_eitc_reform(parameters, period)
|
|
264
|
+
|
|
253
265
|
american_worker_rebate_act = create_american_worker_rebate_act_reform(
|
|
254
266
|
parameters, period
|
|
255
267
|
)
|
|
@@ -316,6 +328,8 @@ def create_structural_reforms_from_parameters(parameters, period):
|
|
|
316
328
|
reconciled_ssn_for_llc_and_aoc,
|
|
317
329
|
ctc_additional_bracket,
|
|
318
330
|
mi_surtax,
|
|
331
|
+
nyc_mamdani_income_tax,
|
|
332
|
+
ut_refundable_eitc,
|
|
319
333
|
additional_tax_bracket,
|
|
320
334
|
american_worker_rebate_act,
|
|
321
335
|
ctc_per_child_phase_out,
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
from policyengine_core.periods import period as period_
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def create_ut_refundable_eitc() -> Reform:
|
|
6
|
+
class ut_has_qualifying_child_for_refundable_eitc(Variable):
|
|
7
|
+
value_type = bool
|
|
8
|
+
entity = TaxUnit
|
|
9
|
+
label = "Utah tax unit has qualifying child for refundable EITC"
|
|
10
|
+
defined_for = StateCode.UT
|
|
11
|
+
definition_period = YEAR
|
|
12
|
+
|
|
13
|
+
def formula(tax_unit, period, parameters):
|
|
14
|
+
person = tax_unit.members
|
|
15
|
+
p = parameters(period).gov.contrib.states.ut.eitc
|
|
16
|
+
age = person("age", period)
|
|
17
|
+
is_dependent = person("is_tax_unit_dependent", period)
|
|
18
|
+
is_qualifying_child = (age <= p.max_age) & is_dependent
|
|
19
|
+
return tax_unit.any(is_qualifying_child)
|
|
20
|
+
|
|
21
|
+
class ut_refundable_eitc(Variable):
|
|
22
|
+
value_type = float
|
|
23
|
+
entity = TaxUnit
|
|
24
|
+
label = "Utah refundable EITC"
|
|
25
|
+
unit = USD
|
|
26
|
+
definition_period = YEAR
|
|
27
|
+
defined_for = "ut_has_qualifying_child_for_refundable_eitc"
|
|
28
|
+
|
|
29
|
+
adds = ["ut_eitc"]
|
|
30
|
+
|
|
31
|
+
class ut_eitc(Variable):
|
|
32
|
+
value_type = float
|
|
33
|
+
entity = TaxUnit
|
|
34
|
+
label = "Utah Earned Income Tax Credit"
|
|
35
|
+
unit = USD
|
|
36
|
+
documentation = "This credit is a fraction of the federal EITC."
|
|
37
|
+
definition_period = YEAR
|
|
38
|
+
defined_for = StateCode.UT
|
|
39
|
+
reference = "https://le.utah.gov/xcode/Title59/Chapter10/59-10-S1044.html?v=C59-10-S1044_2022050420220504"
|
|
40
|
+
|
|
41
|
+
def formula(tax_unit, period, parameters):
|
|
42
|
+
p = parameters(
|
|
43
|
+
period
|
|
44
|
+
).gov.states.ut.tax.income.credits.earned_income
|
|
45
|
+
federal_eitc = tax_unit("eitc", period)
|
|
46
|
+
return p.rate * federal_eitc
|
|
47
|
+
|
|
48
|
+
class ut_non_refundable_eitc(Variable):
|
|
49
|
+
value_type = float
|
|
50
|
+
entity = TaxUnit
|
|
51
|
+
label = "Utah non-refundable EITC"
|
|
52
|
+
unit = USD
|
|
53
|
+
definition_period = YEAR
|
|
54
|
+
defined_for = StateCode.UT
|
|
55
|
+
|
|
56
|
+
adds = ["ut_eitc"]
|
|
57
|
+
subtracts = ["ut_refundable_eitc"]
|
|
58
|
+
|
|
59
|
+
class ut_non_refundable_credits(Variable):
|
|
60
|
+
value_type = float
|
|
61
|
+
entity = TaxUnit
|
|
62
|
+
label = "Utah non-refundable tax credits"
|
|
63
|
+
unit = USD
|
|
64
|
+
definition_period = YEAR
|
|
65
|
+
defined_for = StateCode.UT
|
|
66
|
+
|
|
67
|
+
adds = [
|
|
68
|
+
"ut_non_refundable_eitc",
|
|
69
|
+
"ut_retirement_credit",
|
|
70
|
+
"ut_ss_benefits_credit",
|
|
71
|
+
"ut_at_home_parent_credit",
|
|
72
|
+
"ut_ctc",
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
class ut_refundable_credits(Variable):
|
|
76
|
+
value_type = float
|
|
77
|
+
entity = TaxUnit
|
|
78
|
+
label = "Utah refundable credits"
|
|
79
|
+
unit = USD
|
|
80
|
+
definition_period = YEAR
|
|
81
|
+
defined_for = StateCode.UT
|
|
82
|
+
|
|
83
|
+
adds = ["ut_refundable_eitc"]
|
|
84
|
+
|
|
85
|
+
class reform(Reform):
|
|
86
|
+
def apply(self):
|
|
87
|
+
self.update_variable(ut_has_qualifying_child_for_refundable_eitc)
|
|
88
|
+
self.update_variable(ut_refundable_eitc)
|
|
89
|
+
self.update_variable(ut_non_refundable_eitc)
|
|
90
|
+
self.update_variable(ut_eitc)
|
|
91
|
+
self.update_variable(ut_non_refundable_credits)
|
|
92
|
+
self.update_variable(ut_refundable_credits)
|
|
93
|
+
|
|
94
|
+
return reform
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def create_ut_refundable_eitc_reform(parameters, period, bypass: bool = False):
|
|
98
|
+
if bypass:
|
|
99
|
+
return create_ut_refundable_eitc()
|
|
100
|
+
|
|
101
|
+
p = parameters.gov.contrib.states.ut.eitc
|
|
102
|
+
|
|
103
|
+
reform_active = False
|
|
104
|
+
current_period = period_(period)
|
|
105
|
+
|
|
106
|
+
for i in range(5):
|
|
107
|
+
if p(current_period).in_effect:
|
|
108
|
+
reform_active = True
|
|
109
|
+
break
|
|
110
|
+
current_period = current_period.offset(1, "year")
|
|
111
|
+
|
|
112
|
+
if reform_active:
|
|
113
|
+
return create_ut_refundable_eitc()
|
|
114
|
+
else:
|
|
115
|
+
return None
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
ut_refundable_eitc = create_ut_refundable_eitc_reform(None, None, bypass=True)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
- name: unit test 1 - enrolled, premium-free Part A
|
|
2
|
+
period: 2025
|
|
3
|
+
input:
|
|
4
|
+
age: 65
|
|
5
|
+
is_medicare_eligible: true
|
|
6
|
+
medicare_enrolled: true
|
|
7
|
+
medicare_quarters_of_coverage: 40
|
|
8
|
+
adjusted_gross_income:
|
|
9
|
+
2023: 50_000 # IRMAA uses income from 2 years prior
|
|
10
|
+
tax_exempt_interest_income:
|
|
11
|
+
2023: 0
|
|
12
|
+
output:
|
|
13
|
+
medicare_cost: 12_280 # $14,500 spending - $2,220 Part B premium (2025)
|
|
14
|
+
|
|
15
|
+
- name: unit test 2 - enrolled, pays full Part A premium
|
|
16
|
+
period: 2025
|
|
17
|
+
input:
|
|
18
|
+
age: 65
|
|
19
|
+
is_medicare_eligible: true
|
|
20
|
+
medicare_enrolled: true
|
|
21
|
+
medicare_quarters_of_coverage: 20
|
|
22
|
+
adjusted_gross_income:
|
|
23
|
+
2023: 50_000 # IRMAA uses income from 2 years prior
|
|
24
|
+
tax_exempt_interest_income:
|
|
25
|
+
2023: 0
|
|
26
|
+
output:
|
|
27
|
+
medicare_cost: 6_064 # $14,500 - $6,216 Part A - $2,220 Part B (2025)
|
|
28
|
+
|
|
29
|
+
- name: unit test 3 - enrolled with IRMAA
|
|
30
|
+
period: 2025
|
|
31
|
+
input:
|
|
32
|
+
age: 65
|
|
33
|
+
is_medicare_eligible: true
|
|
34
|
+
medicare_enrolled: true
|
|
35
|
+
medicare_quarters_of_coverage: 40
|
|
36
|
+
adjusted_gross_income:
|
|
37
|
+
2023: 500_000 # IRMAA uses income from 2 years prior
|
|
38
|
+
tax_exempt_interest_income:
|
|
39
|
+
2023: 0
|
|
40
|
+
filing_status: SINGLE
|
|
41
|
+
output:
|
|
42
|
+
medicare_cost: 6_953.2 # $14,500 - $7,546.80 Part B with IRMAA (2025)
|
|
43
|
+
|
|
44
|
+
- name: unit test 4 - eligible but not enrolled
|
|
45
|
+
period: 2025
|
|
46
|
+
input:
|
|
47
|
+
age: 65
|
|
48
|
+
is_medicare_eligible: true
|
|
49
|
+
medicare_enrolled: false
|
|
50
|
+
output:
|
|
51
|
+
medicare_cost: 0
|
|
52
|
+
|
|
53
|
+
- name: unit test 5 - 2021 data, premium-free
|
|
54
|
+
period: 2021
|
|
55
|
+
input:
|
|
56
|
+
age: 70
|
|
57
|
+
is_medicare_eligible: true
|
|
58
|
+
medicare_enrolled: true
|
|
59
|
+
medicare_quarters_of_coverage: 40
|
|
60
|
+
adjusted_gross_income:
|
|
61
|
+
2019: 50_000 # IRMAA uses income from 2 years prior
|
|
62
|
+
tax_exempt_interest_income:
|
|
63
|
+
2019: 0
|
|
64
|
+
output:
|
|
65
|
+
medicare_cost: 9_298 # $11,080 - $1,782 Part B (2021: $148.50*12)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
- name: unit test 1 - premium-free Part A (40+ quarters)
|
|
2
|
+
period: 2025
|
|
3
|
+
input:
|
|
4
|
+
age: 65
|
|
5
|
+
is_medicare_eligible: true
|
|
6
|
+
medicare_quarters_of_coverage: 40
|
|
7
|
+
output:
|
|
8
|
+
base_part_a_premium: 0 # Premium-free with 40+ quarters
|
|
9
|
+
|
|
10
|
+
- name: unit test 2 - reduced premium (30-39 quarters)
|
|
11
|
+
period: 2025
|
|
12
|
+
input:
|
|
13
|
+
age: 65
|
|
14
|
+
is_medicare_eligible: true
|
|
15
|
+
medicare_quarters_of_coverage: 35
|
|
16
|
+
output:
|
|
17
|
+
base_part_a_premium: 3_420 # $285 * 12 months
|
|
18
|
+
|
|
19
|
+
- name: unit test 3 - full premium (<30 quarters)
|
|
20
|
+
period: 2025
|
|
21
|
+
input:
|
|
22
|
+
age: 65
|
|
23
|
+
is_medicare_eligible: true
|
|
24
|
+
medicare_quarters_of_coverage: 20
|
|
25
|
+
output:
|
|
26
|
+
base_part_a_premium: 6_216 # $518 * 12 months
|
|
27
|
+
|
|
28
|
+
- name: unit test 4 - not Medicare eligible
|
|
29
|
+
period: 2025
|
|
30
|
+
input:
|
|
31
|
+
age: 65
|
|
32
|
+
is_medicare_eligible: false
|
|
33
|
+
medicare_quarters_of_coverage: 40
|
|
34
|
+
output:
|
|
35
|
+
base_part_a_premium: 0
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
- name: unit test 1 - eligible
|
|
2
|
+
period: 2025
|
|
3
|
+
input:
|
|
4
|
+
age: 65
|
|
5
|
+
is_medicare_eligible: true
|
|
6
|
+
output:
|
|
7
|
+
base_part_b_premium: 2_220 # $185 * 12 months
|
|
8
|
+
|
|
9
|
+
- name: unit test 2 - not eligible
|
|
10
|
+
period: 2025
|
|
11
|
+
input:
|
|
12
|
+
age: 65
|
|
13
|
+
is_medicare_eligible: false
|
|
14
|
+
output:
|
|
15
|
+
base_part_b_premium: 0
|