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
|
@@ -8,4 +8,14 @@ class pr_agi(Variable):
|
|
|
8
8
|
unit = USD
|
|
9
9
|
definition_period = YEAR
|
|
10
10
|
defined_for = StateCode.PR
|
|
11
|
-
reference =
|
|
11
|
+
reference = (
|
|
12
|
+
"https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2",
|
|
13
|
+
"https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-a/30103/",
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
# Discrepancy: legal code defines Puerto Rico AGI as gross income minus deductions and exemptions, among other items
|
|
17
|
+
def formula(tax_unit, period, parameters):
|
|
18
|
+
# person = tax_unit.members
|
|
19
|
+
total_income = add(tax_unit, period, ["pr_gross_income"])
|
|
20
|
+
alimony_paid = add(tax_unit, period, ["alimony_expense"])
|
|
21
|
+
return max_(0, total_income - alimony_paid)
|
|
@@ -8,4 +8,14 @@ class pr_agi_person(Variable):
|
|
|
8
8
|
unit = USD
|
|
9
9
|
definition_period = YEAR
|
|
10
10
|
defined_for = StateCode.PR
|
|
11
|
-
reference =
|
|
11
|
+
reference = (
|
|
12
|
+
"https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=2",
|
|
13
|
+
"https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-a/30103/",
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
def formula(person, period, parameters):
|
|
17
|
+
filing_status = person.tax_unit("filing_status", period)
|
|
18
|
+
filing_statuses = filing_status.possible_values
|
|
19
|
+
agi_taxunit = person.tax_unit("pr_agi", period)
|
|
20
|
+
frac = where(filing_status == filing_statuses.JOINT, 0.5, 1.0)
|
|
21
|
+
return agi_taxunit * frac
|
|
@@ -9,3 +9,12 @@ class pr_regular_tax_before_credits(Variable):
|
|
|
9
9
|
definition_period = YEAR
|
|
10
10
|
defined_for = StateCode.PR
|
|
11
11
|
reference = "https://hacienda.pr.gov/sites/default/files/inst_individuals_2023.pdf#page=19"
|
|
12
|
+
|
|
13
|
+
def formula(tax_unit, period, parameters):
|
|
14
|
+
p = parameters(period).gov.territories.pr.tax.income.regular_tax
|
|
15
|
+
gross_income = tax_unit("pr_gross_income", period)
|
|
16
|
+
total_normal_tax = add(
|
|
17
|
+
tax_unit, period, ["pr_normal_tax", "pr_gradual_adjustment_amount"]
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
return total_normal_tax * p.percentage.calc(gross_income)
|
policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/deductions/pr_deductions.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class pr_deductions(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
label = "Puerto Rico deductions"
|
|
8
|
+
unit = USD
|
|
9
|
+
reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30135/"
|
|
10
|
+
definition_period = YEAR
|
|
11
|
+
defined_for = StateCode.PR
|
|
12
|
+
|
|
13
|
+
adds = "gov.territories.pr.tax.income.taxable_income.deductions.sources"
|
policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/exemptions/pr_exemptions.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class pr_exemptions(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
label = "Puerto Rico exemptions"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
unit = USD
|
|
10
|
+
reference = "https://law.justia.com/codes/puerto-rico/title-thirteen/subtitle-17/part-ii/chapter-1005/subchapter-c/30138/"
|
|
11
|
+
defined_for = StateCode.PR
|
|
12
|
+
|
|
13
|
+
adds = "gov.territories.pr.tax.income.taxable_income.exemptions.sources"
|
policyengine_us/variables/gov/territories/pr/tax/income/taxable_income/pr_net_taxable_income.py
CHANGED
|
@@ -9,3 +9,9 @@ class pr_net_taxable_income(Variable):
|
|
|
9
9
|
unit = USD
|
|
10
10
|
definition_period = YEAR
|
|
11
11
|
defined_for = StateCode.PR
|
|
12
|
+
|
|
13
|
+
def formula(tax_unit, period, parameters):
|
|
14
|
+
agi = tax_unit("pr_agi", period)
|
|
15
|
+
exemptions = tax_unit("pr_exemptions", period)
|
|
16
|
+
deductions = tax_unit("pr_deductions", period)
|
|
17
|
+
return max_(0, agi - exemptions - deductions)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class is_snap_higher_ed_student(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Is a higher education student for SNAP purposes"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = "https://www.law.cornell.edu/uscode/text/7/2015#e"
|
|
10
|
+
|
|
11
|
+
def formula(person, period, parameters):
|
|
12
|
+
# Students enrolled at least half-time in higher education
|
|
13
|
+
# The statute covers half-time or more enrollment
|
|
14
|
+
is_full_time_student = person("is_full_time_college_student", period)
|
|
15
|
+
is_part_time_student = person("is_part_time_college_student", period)
|
|
16
|
+
|
|
17
|
+
return is_full_time_student | is_part_time_student
|
|
@@ -5,24 +5,56 @@ class is_snap_ineligible_student(Variable):
|
|
|
5
5
|
value_type = bool
|
|
6
6
|
entity = Person
|
|
7
7
|
label = "Is an ineligible student for SNAP"
|
|
8
|
-
documentation = "Whether this person is an ineligible student for SNAP and can not be counted towards the household size"
|
|
9
8
|
definition_period = YEAR
|
|
10
|
-
reference = "https://www.law.cornell.edu/uscode/text/7/2015"
|
|
9
|
+
reference = "https://www.law.cornell.edu/uscode/text/7/2015#e"
|
|
11
10
|
|
|
12
11
|
def formula(person, period, parameters):
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
# Base rule: Students enrolled at least half-time in higher education
|
|
13
|
+
# are ineligible (K-12 students are not affected by this rule)
|
|
14
|
+
is_higher_ed_student = person("is_snap_higher_ed_student", period)
|
|
15
|
+
|
|
16
|
+
# Eight statutory exceptions that make students eligible:
|
|
17
|
+
|
|
18
|
+
# Exception 1: Under 18 or age 50 or older
|
|
16
19
|
age = person("age", period)
|
|
17
20
|
p = parameters(period).gov.usda.snap.student
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
meets_age_exception = p.age_threshold.calc(age)
|
|
22
|
+
|
|
23
|
+
# Exception 2: Not physically or mentally fit (disabled)
|
|
24
|
+
meets_disability_exception = person("is_disabled", period)
|
|
25
|
+
|
|
26
|
+
# Exception 3: Assignment through workforce/employment programs
|
|
27
|
+
# (WIOA, career/technical ed, remedial/basic education)
|
|
28
|
+
# Not modeled
|
|
29
|
+
|
|
30
|
+
# Exception 4: Employed at least 20 hours per week or work-study
|
|
31
|
+
meets_work_hours_exception = person(
|
|
32
|
+
"meets_snap_work_exception", period
|
|
28
33
|
)
|
|
34
|
+
|
|
35
|
+
# Exception 5: Parent with responsibility for dependent child under 6,
|
|
36
|
+
# or child 6-11 when adequate child care is not available
|
|
37
|
+
# Exception 8: Single parent enrolled full-time with responsibility
|
|
38
|
+
# for dependent child under 12
|
|
39
|
+
# (Exceptions 5 and 8 are implemented together)
|
|
40
|
+
meets_parent_exception = person("meets_snap_parent_exception", period)
|
|
41
|
+
|
|
42
|
+
# Exception 6: Receiving TANF benefits (part A of title IV)
|
|
43
|
+
tanf = person("tanf_person", period)
|
|
44
|
+
receives_tanf = tanf > 0
|
|
45
|
+
|
|
46
|
+
# Exception 7: Enrolled as result of participation in work incentive
|
|
47
|
+
# program under title IV (TANF work programs) or successor programs
|
|
48
|
+
# Not modeled
|
|
49
|
+
|
|
50
|
+
# Student is INELIGIBLE if they are a higher ed student AND
|
|
51
|
+
# they do NOT meet ANY of the eight exceptions
|
|
52
|
+
meets_any_exception = (
|
|
53
|
+
meets_age_exception
|
|
54
|
+
| meets_disability_exception
|
|
55
|
+
| meets_work_hours_exception
|
|
56
|
+
| meets_parent_exception
|
|
57
|
+
| receives_tanf
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
return is_higher_ed_student & ~meets_any_exception
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class meets_snap_parent_exception(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Meets SNAP student parent exception"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.law.cornell.edu/uscode/text/7/2015#e_5, "
|
|
11
|
+
"https://www.law.cornell.edu/uscode/text/7/2015#e_8"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
def formula(person, period, parameters):
|
|
15
|
+
# Exception 5: Parent with responsibility for dependent child under 6,
|
|
16
|
+
# Or child 6-11 when adequate child care is not available (not modeled)
|
|
17
|
+
# Exception 8: Single parent enrolled full-time with responsibility
|
|
18
|
+
# for dependent child under 12
|
|
19
|
+
is_parent = person("is_tax_unit_head_or_spouse", period)
|
|
20
|
+
spm_unit = person.spm_unit
|
|
21
|
+
parent_count = spm_unit.sum(is_parent)
|
|
22
|
+
|
|
23
|
+
# Check if there are children in the household under the age thresholds
|
|
24
|
+
p = parameters(period).gov.usda.snap.student.child_age_limit
|
|
25
|
+
household_member_ages = spm_unit.members("age", period)
|
|
26
|
+
has_child_under_two_parent_limit = spm_unit.any(
|
|
27
|
+
household_member_ages < p.two_parent
|
|
28
|
+
)
|
|
29
|
+
has_child_under_single_parent_limit = spm_unit.any(
|
|
30
|
+
household_member_ages < p.single_parent
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Two-parent households need child under 6
|
|
34
|
+
# Single parent households need child under 12, enrolled full-time
|
|
35
|
+
is_full_time_student = person("is_full_time_college_student", period)
|
|
36
|
+
parent_exception_requirement = where(
|
|
37
|
+
parent_count > 1,
|
|
38
|
+
has_child_under_two_parent_limit,
|
|
39
|
+
has_child_under_single_parent_limit & is_full_time_student,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
return is_parent & parent_exception_requirement
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class meets_snap_work_exception(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Meets SNAP student work exception"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = "https://www.law.cornell.edu/uscode/text/7/2015#e_4"
|
|
10
|
+
|
|
11
|
+
def formula(person, period, parameters):
|
|
12
|
+
# Exception 4: Employed at least 20 hours per week or work-study
|
|
13
|
+
hours_worked = person("weekly_hours_worked_before_lsr", period)
|
|
14
|
+
p = parameters(period).gov.usda.snap.student
|
|
15
|
+
meets_hours_requirement = hours_worked >= p.working_hours_threshold
|
|
16
|
+
|
|
17
|
+
# Or participating in federal/state work-study
|
|
18
|
+
participates_in_work_study = person(
|
|
19
|
+
"is_federal_work_study_participant", period
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
return meets_hours_requirement | participates_in_work_study
|
|
@@ -7,7 +7,18 @@ class snap_countable_earner(Variable):
|
|
|
7
7
|
label = "Countable income earner"
|
|
8
8
|
documentation = "Whether this person's earned income is counted for SNAP"
|
|
9
9
|
definition_period = MONTH
|
|
10
|
-
reference =
|
|
10
|
+
reference = (
|
|
11
|
+
"https://www.law.cornell.edu/uscode/text/7/2014, "
|
|
12
|
+
"https://www.law.cornell.edu/cfr/text/7/273.9#c_3"
|
|
13
|
+
)
|
|
11
14
|
|
|
12
15
|
def formula(person, period, parameters):
|
|
13
|
-
|
|
16
|
+
# Children in K-12 have income excluded
|
|
17
|
+
is_excluded_child = person("snap_excluded_child_earner", period)
|
|
18
|
+
|
|
19
|
+
# Federal Work Study participants have income excluded
|
|
20
|
+
is_work_study_participant = person(
|
|
21
|
+
"is_federal_work_study_participant", period.this_year
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
return ~(is_excluded_child | is_work_study_participant)
|
|
@@ -10,21 +10,14 @@ class is_wic_at_nutritional_risk(Variable):
|
|
|
10
10
|
reference = "https://www.law.cornell.edu/uscode/text/42/1786#b_8"
|
|
11
11
|
|
|
12
12
|
def formula(person, period, parameters):
|
|
13
|
-
# Assign
|
|
13
|
+
# Assign nutritional risk status probabilistically in microsimulation.
|
|
14
|
+
# Nutritional risk is a health assessment independent of income per § 1786(b)(8).
|
|
14
15
|
# Assume all meet qualification in individual simulation.
|
|
15
16
|
if person.simulation.dataset is not None:
|
|
16
17
|
wic_reported = person("receives_wic", period)
|
|
17
|
-
meets_income_test = person.spm_unit(
|
|
18
|
-
"meets_wic_income_test", period
|
|
19
|
-
)
|
|
20
|
-
meets_categorical_test = person(
|
|
21
|
-
"meets_wic_categorical_eligibility", period
|
|
22
|
-
)
|
|
23
18
|
category = person("wic_category", period)
|
|
24
19
|
risk = parameters(period).gov.usda.wic.nutritional_risk
|
|
25
|
-
imputed_risk =
|
|
26
|
-
meets_income_test | meets_categorical_test
|
|
27
|
-
)
|
|
20
|
+
imputed_risk = random(person) < risk[category]
|
|
28
21
|
return wic_reported | imputed_risk
|
|
29
22
|
else:
|
|
30
23
|
return True
|
|
@@ -15,4 +15,13 @@ class is_wic_eligible(Variable):
|
|
|
15
15
|
"meets_wic_categorical_eligibility", period
|
|
16
16
|
)
|
|
17
17
|
nutritional_risk = person("is_wic_at_nutritional_risk", period)
|
|
18
|
-
|
|
18
|
+
# Must be in a valid WIC demographic category per 42 U.S.C. § 1786(d)(1)
|
|
19
|
+
wic_category = person("wic_category", period)
|
|
20
|
+
demographic_eligible = (
|
|
21
|
+
wic_category != wic_category.possible_values.NONE
|
|
22
|
+
)
|
|
23
|
+
return (
|
|
24
|
+
demographic_eligible
|
|
25
|
+
& (meets_income_test | meets_categorical_test)
|
|
26
|
+
& nutritional_risk
|
|
27
|
+
)
|
|
@@ -22,8 +22,11 @@ class state_group(Variable):
|
|
|
22
22
|
def formula(household, period, parameters):
|
|
23
23
|
NON_CONTIGUOUS_STATES = ("AK", "HI", "GU", "PR", "VI")
|
|
24
24
|
state_code = household("state_code", period).decode_to_str()
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
is_non_contiguous = np.isin(state_code, NON_CONTIGUOUS_STATES)
|
|
26
|
+
encoded = np.empty(state_code.shape, dtype=object)
|
|
27
|
+
encoded[:] = StateGroup.CONTIGUOUS_US
|
|
28
|
+
if is_non_contiguous.any():
|
|
29
|
+
encoded[is_non_contiguous] = StateGroup.encode(
|
|
30
|
+
state_code[is_non_contiguous]
|
|
31
|
+
).decode()
|
|
32
|
+
return encoded
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class is_part_time_college_student(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Is a part-time college student"
|
|
8
|
+
documentation = "Enrolled at least half-time but less than full-time in an institution of higher education"
|
|
9
|
+
definition_period = YEAR
|