policyengine-us 1.439.0__py3-none-any.whl → 1.458.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.
- policyengine_us/parameters/calibration/gov/hhs/medicare/per_capita_cost.yaml +12 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/age_limit/in_effect.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/age_limit/threshold.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/amount.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/in_effect.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/rate.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/threshold.yaml +23 -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/qbi/max/reit_ptp_rate.yaml +13 -0
- 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/ca/chhs/medi_cal_enrollment_freeze/in_effect.yaml +12 -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/dhs/aabd/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +3 -5
- policyengine_us/parameters/gov/states/il/dhs/tanf/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +2 -2
- 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/fpp/eligibility/household_size.yaml +14 -0
- policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/income_limit.yaml +15 -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/mpe/eligibility/income_limit.yaml +13 -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/ut/tax/income/credits/at_home_parent/amount.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_agi.yaml +6 -2
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_child_age.yaml +6 -2
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/parent_max_earnings.yaml +6 -2
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/amount.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/child_age_threshold.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/start.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/earned_income/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/military_retirement/rate.yaml +26 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/non_refundable.yaml +5 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/birth_year.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/max.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/threshold.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/threshold.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/in_effect.yaml +2 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/personal_exemption.yaml +5 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/rate.yaml +5 -1
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/threshold.yaml +9 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/rate.yaml +3 -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 +21 -0
- policyengine_us/reforms/state_dependent_exemptions/repeal_state_dependent_exemptions.py +1 -1
- policyengine_us/reforms/states/de/__init__.py +3 -0
- policyengine_us/reforms/states/de/dependent_credit/de_dependent_credit_reform.py +165 -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/medicaid/medicaid_enrolled.yaml +105 -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/income/taxable_income/deductions/qbid/qbid_amount.yaml +75 -3
- 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/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/ca/chhs/is_ca_medicaid_immigration_status_eligible.yaml +59 -5
- 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 +2 -10
- 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/fpp/il_fpp_income_eligible.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_level.yaml +27 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/integration.yaml +116 -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/il/hfs/mpe/il_mpe_eligible.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_income_eligible.yaml +23 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/integration.yaml +138 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/eligibility/il_smib_eligible.yaml +88 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/integration.yaml +73 -0
- policyengine_us/tests/policy/baseline/gov/states/ky/tax/income/credits/family_size_tax_credit/ky_family_size_tax_credit_rate.yaml +8 -8
- 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/nj/tax/income/credits/eitc/nj_eitc.yaml +8 -3
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml +137 -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/military_retirement_credit/ut_military_retirement_credit.yaml +89 -0
- policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.yaml +50 -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/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.yaml +10 -6
- 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/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/tests/policy/contrib/state_dependent_exemptions/repeal_state_dependent_exemptions.yaml +25 -1
- policyengine_us/tests/policy/contrib/states/de/dependent_credit_reform_test.yaml +210 -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/medicaid/costs/medicaid_group.py +2 -2
- policyengine_us/variables/gov/hhs/medicaid/receives_medicaid.py +17 -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/income/taxable_income/deductions/qualified_business_income_deduction/qbid_amount.py +16 -6
- 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/chhs/is_ca_medicaid_immigration_status_eligible.py +25 -4
- 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/dhs/aabd/eligibility/il_aabd_immigration_status_eligible_person.py +1 -1
- policyengine_us/variables/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.py +1 -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/fpp/eligibility/il_fpp_eligible.py +40 -0
- policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_income_eligible.py +18 -0
- policyengine_us/variables/gov/states/il/hfs/fpp/il_fpp_income_level.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/il/hfs/mpe/eligibility/il_mpe_income_eligible.py +15 -0
- policyengine_us/variables/gov/states/il/hfs/mpe/il_mpe_eligible.py +15 -0
- policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_categorical_eligible.py +26 -0
- policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_eligible.py +28 -0
- policyengine_us/variables/gov/states/il/hfs/smib/il_smib.py +21 -0
- policyengine_us/variables/gov/states/il/hfs/smib/il_smib_person.py +24 -0
- policyengine_us/variables/gov/states/ky/tax/income/credits/family_size_credit/ky_family_size_tax_credit_rate.py +1 -1
- 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/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/nj/tax/income/credits/eitc/nj_eitc.py +7 -1
- 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/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.py +20 -0
- policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.py +22 -0
- 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/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.py +1 -1
- 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/variables/household/expense/health/has_bcc_qualifying_coverage.py +16 -0
- policyengine_us/variables/household/income/person/dividends/qualified_reit_and_ptp_income.py +1 -1
- policyengine_us/variables/household/income/spm_unit/spm_unit_tenure_type.py +17 -0
- {policyengine_us-1.439.0.dist-info → policyengine_us-1.458.0.dist-info}/METADATA +2 -2
- {policyengine_us-1.439.0.dist-info → policyengine_us-1.458.0.dist-info}/RECORD +312 -138
- {policyengine_us-1.439.0.dist-info → policyengine_us-1.458.0.dist-info}/WHEEL +1 -1
- policyengine_us/parameters/gov/states/wa/dshs/tanf/eligibility/resources/limit.yaml +0 -11
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +0 -57
- /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.458.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.439.0.dist-info → policyengine_us-1.458.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class wa_tanf_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Washington TANF income eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = (
|
|
10
|
+
"https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0035",
|
|
11
|
+
"https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0170",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.WA
|
|
14
|
+
|
|
15
|
+
def formula(spm_unit, period, parameters):
|
|
16
|
+
# Get gross earned income from federal TANF variable
|
|
17
|
+
gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"])
|
|
18
|
+
|
|
19
|
+
# Get maximum earned income limits by family size
|
|
20
|
+
# Per WAC 388-478-0035, these limits "include the $500 family
|
|
21
|
+
# earnings deduction" in their calculation
|
|
22
|
+
p = parameters(period).gov.states.wa.dshs.tanf
|
|
23
|
+
|
|
24
|
+
# Get household size, capped at maximum for which limits are defined
|
|
25
|
+
size = spm_unit("spm_unit_size", period)
|
|
26
|
+
size_capped = min_(size, p.maximum_family_size)
|
|
27
|
+
|
|
28
|
+
# Gross earned income must be at or below the limit
|
|
29
|
+
# Note: Unlike some states, WA tests GROSS income (not countable)
|
|
30
|
+
# against published limits that already factor in the $500 disregard
|
|
31
|
+
return gross_earned <= p.income.limit[size_capped]
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class wa_tanf_countable_earned_income(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Washington TANF countable earned income"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
reference = "https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0170"
|
|
11
|
+
defined_for = StateCode.WA
|
|
12
|
+
|
|
13
|
+
def formula(spm_unit, period, parameters):
|
|
14
|
+
# Get gross earned income from federal TANF variable
|
|
15
|
+
gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"])
|
|
16
|
+
|
|
17
|
+
# Apply earned income disregard per WAC 388-450-0170:
|
|
18
|
+
# "We start by deducting the first $500 of the total household's
|
|
19
|
+
# earned income. We then subtract 50% of the remaining monthly
|
|
20
|
+
# gross earned income."
|
|
21
|
+
p = parameters(
|
|
22
|
+
period
|
|
23
|
+
).gov.states.wa.dshs.tanf.income.deductions.earned_income_disregard
|
|
24
|
+
|
|
25
|
+
# Step 1: Deduct flat $500 family earnings disregard
|
|
26
|
+
remainder = max_(gross_earned - p.amount, 0)
|
|
27
|
+
|
|
28
|
+
# Step 2: Subtract (disregard) 50% of remaining income
|
|
29
|
+
# Per WAC 388-450-0170(3): "subtract 50% of the remaining...income"
|
|
30
|
+
amount_disregarded = remainder * p.percentage_disregarded
|
|
31
|
+
|
|
32
|
+
# Countable earned income = remainder - amount disregarded
|
|
33
|
+
return remainder - amount_disregarded
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class wa_tanf_countable_income(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Washington TANF countable income"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
reference = "https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0165"
|
|
11
|
+
defined_for = StateCode.WA
|
|
12
|
+
|
|
13
|
+
adds = [
|
|
14
|
+
"wa_tanf_countable_earned_income",
|
|
15
|
+
"tanf_gross_unearned_income",
|
|
16
|
+
]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class wa_tanf(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Washington Temporary Assistance for Needy Families (TANF)"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
reference = (
|
|
11
|
+
"https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0020",
|
|
12
|
+
"https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0165",
|
|
13
|
+
)
|
|
14
|
+
defined_for = "wa_tanf_eligible"
|
|
15
|
+
|
|
16
|
+
def formula(spm_unit, period, parameters):
|
|
17
|
+
# Get payment standard based on assistance unit size
|
|
18
|
+
payment_standard = spm_unit("wa_tanf_payment_standard", period)
|
|
19
|
+
|
|
20
|
+
# Get countable income (after all disregards and deductions)
|
|
21
|
+
countable_income = spm_unit("wa_tanf_countable_income", period)
|
|
22
|
+
|
|
23
|
+
# Calculate benefit per WAC 388-450-0165:
|
|
24
|
+
# "The department calculates the amount of your cash assistance
|
|
25
|
+
# by subtracting your AU's countable income from the applicable
|
|
26
|
+
# payment standard."
|
|
27
|
+
grant_before_cap = max_(payment_standard - countable_income, 0)
|
|
28
|
+
|
|
29
|
+
# Apply maximum grant cap (unique to Washington)
|
|
30
|
+
# Per DSHS manual, grants cannot exceed $1,338
|
|
31
|
+
# regardless of family size (affects families of 8+)
|
|
32
|
+
p = parameters(period).gov.states.wa.dshs.tanf.payment_standard
|
|
33
|
+
|
|
34
|
+
return min_(grant_before_cap, p.maximum_amount)
|
|
@@ -6,9 +6,10 @@ class wa_tanf_resources_eligible(Variable):
|
|
|
6
6
|
entity = SPMUnit
|
|
7
7
|
label = "Washington TANF resources eligible"
|
|
8
8
|
definition_period = YEAR
|
|
9
|
+
reference = "https://app.leg.wa.gov/wac/default.aspx?cite=388-470-0005"
|
|
9
10
|
defined_for = StateCode.WA
|
|
10
11
|
|
|
11
12
|
def formula(spm_unit, period, parameters):
|
|
12
|
-
p = parameters(period).gov.states.wa.dshs.tanf
|
|
13
|
+
p = parameters(period).gov.states.wa.dshs.tanf
|
|
13
14
|
countable_resources = spm_unit("wa_tanf_countable_resources", period)
|
|
14
|
-
return countable_resources <= p.
|
|
15
|
+
return countable_resources <= p.resource_limit
|
|
@@ -16,7 +16,7 @@ class wv_low_income_family_tax_credit_fpg(Variable):
|
|
|
16
16
|
|
|
17
17
|
# max family size limit
|
|
18
18
|
n = tax_unit("tax_unit_size", period)
|
|
19
|
-
state_group = tax_unit.household("
|
|
19
|
+
state_group = tax_unit.household("state_group_str", period)
|
|
20
20
|
|
|
21
21
|
p_fpg = parameters(period).gov.hhs.fpg
|
|
22
22
|
p1 = p_fpg.first_person[state_group]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class pr_gradual_adjustment_amount(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
label = "Puerto Rico gradual adjustment amount"
|
|
8
|
+
documentation = (
|
|
9
|
+
"An additional amount added to tax amount for high income filers."
|
|
10
|
+
)
|
|
11
|
+
unit = USD
|
|
12
|
+
definition_period = YEAR
|
|
13
|
+
defined_for = "pr_gradual_adjustment_eligible"
|
|
14
|
+
reference = "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=3"
|
|
15
|
+
|
|
16
|
+
def formula(tax_unit, period, parameters):
|
|
17
|
+
p = parameters(period).gov.territories.pr.tax.income.gradual_adjustment
|
|
18
|
+
net_taxable_income = tax_unit("pr_net_taxable_income", period)
|
|
19
|
+
amount = (net_taxable_income - p.threshold) * p.rate
|
|
20
|
+
exemptions = tax_unit("pr_exemptions", period)
|
|
21
|
+
limit = p.adjustment_limit_basis + p.exemption_rate * exemptions
|
|
22
|
+
|
|
23
|
+
return min_(amount, limit)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class pr_gradual_adjustment_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
label = "Puerto Rico gradual adjustment eligibility"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
defined_for = StateCode.PR
|
|
10
|
+
reference = "https://hacienda.pr.gov/sites/default/files/individuals_2024_rev._jul_12_24_9-30-24_informative.pdf#page=3"
|
|
11
|
+
|
|
12
|
+
def formula(tax_unit, period, parameters):
|
|
13
|
+
p = parameters(period).gov.territories.pr.tax.income.gradual_adjustment
|
|
14
|
+
net_taxable_income = tax_unit("pr_net_taxable_income", period)
|
|
15
|
+
|
|
16
|
+
return net_taxable_income > p.threshold
|
|
@@ -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
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class has_bcc_qualifying_coverage(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Has health coverage that qualifies for breast/cervical cancer treatment"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = "https://www.dhs.state.il.us/page.aspx?item=33528"
|
|
10
|
+
# Per PM 06-20-02, a person is considered "uninsured" for BCC purposes
|
|
11
|
+
# unless they have coverage that would pay for cancer treatment.
|
|
12
|
+
# The following do NOT count as qualifying coverage:
|
|
13
|
+
# - Coverage with limited benefits
|
|
14
|
+
# - Coverage where lifetime cap has been met/exceeded
|
|
15
|
+
# - Coverage that excludes cancer treatment
|
|
16
|
+
# - Indian Health Service coverage only
|
policyengine_us/variables/household/income/person/dividends/qualified_reit_and_ptp_income.py
CHANGED
|
@@ -6,7 +6,7 @@ class qualified_reit_and_ptp_income(Variable):
|
|
|
6
6
|
entity = Person
|
|
7
7
|
label = "REIT and PTP Income"
|
|
8
8
|
unit = USD
|
|
9
|
-
documentation = "REIT and
|
|
9
|
+
documentation = "REIT and Publicly Traded Partnership Income. Part of the QBID calculation."
|
|
10
10
|
definition_period = YEAR
|
|
11
11
|
reference = "https://www.law.cornell.edu/uscode/text/26/1#h_11"
|
|
12
12
|
uprating = "calibration.gov.irs.soi.qualified_dividend_income"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SPMUnitTenureType(Enum):
|
|
5
|
+
OWNER_WITH_MORTGAGE = "owner with mortgage"
|
|
6
|
+
OWNER_WITHOUT_MORTGAGE = "owner without mortgage"
|
|
7
|
+
RENTER = "renter"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class spm_unit_tenure_type(Variable):
|
|
11
|
+
value_type = Enum
|
|
12
|
+
entity = SPMUnit
|
|
13
|
+
possible_values = SPMUnitTenureType
|
|
14
|
+
default_value = SPMUnitTenureType.RENTER
|
|
15
|
+
label = "SPM unit tenure type"
|
|
16
|
+
documentation = "Maps to Census SPM_TENMORTSTATUS codes: 1=owner with mortgage, 2=owner without mortgage, 3=renter"
|
|
17
|
+
definition_period = YEAR
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: policyengine-us
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.458.0
|
|
4
4
|
Summary: Add your description here.
|
|
5
5
|
Author-email: PolicyEngine <hello@policyengine.org>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
15
15
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
16
16
|
Requires-Python: <3.14,>=3.10
|
|
17
17
|
Requires-Dist: microdf-python>=1.0.0
|
|
18
|
-
Requires-Dist: policyengine-core>=3.
|
|
18
|
+
Requires-Dist: policyengine-core>=3.23.0
|
|
19
19
|
Requires-Dist: tqdm>=4.67.1
|
|
20
20
|
Provides-Extra: dev
|
|
21
21
|
Requires-Dist: build>=1.2.2.post1; extra == 'dev'
|