policyengine-us 1.449.6__py3-none-any.whl → 1.465.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/gov/contrib/aca/ptc_700_fpl_cliff/brackets.yaml +52 -0
- policyengine_us/parameters/gov/contrib/aca/ptc_700_fpl_cliff/in_effect.yaml +9 -0
- policyengine_us/parameters/gov/contrib/aca/ptc_700_fpl_cliff/income_eligibility.yaml +27 -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/hhs/medicare/savings_programs/eligibility/asset/applies.yaml +115 -0
- policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/couple.yaml +14 -0
- policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/asset/individual.yaml +14 -0
- policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/qi/fpl_limit.yaml +14 -0
- policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/qmb/fpl_limit.yaml +18 -0
- policyengine_us/parameters/gov/hhs/medicare/savings_programs/eligibility/income/slmb/fpl_limit.yaml +15 -0
- policyengine_us/parameters/gov/irs/deductions/qbi/max/reit_ptp_rate.yaml +13 -0
- policyengine_us/parameters/gov/states/az/tax/income/credits/property_tax/income_sources.yaml +17 -9
- policyengine_us/parameters/gov/states/ca/chhs/medi_cal_enrollment_freeze/in_effect.yaml +12 -0
- policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/head_of_household.yaml +1 -1
- policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/joint.yaml +1 -1
- policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/separate.yaml +1 -1
- policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/single.yaml +1 -1
- policyengine_us/parameters/gov/states/hi/tax/income/credits/food_excise_tax/amount/surviving_spouse.yaml +1 -1
- policyengine_us/parameters/gov/states/ia/tax/income/credits/child_care/fraction.yaml +1 -1
- policyengine_us/parameters/gov/states/il/dhs/aabd/asset/sources.yaml +0 -1
- 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/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/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/mi/tax/income/household_resources.yaml +1 -1
- policyengine_us/parameters/gov/states/mo/dss/tanf/child_care_deduction/amount.yaml +27 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/amount.yaml +14 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_only/amount.yaml +14 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_plus_one_third/flat_amount.yaml +14 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/thirty_plus_one_third/percentage.yaml +14 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/earned_income_disregard/two_thirds_disregard/percentage.yaml +14 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit/max_table_size.yaml +12 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit/rate.yaml +14 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/maximum_benefit/percentage.yaml +14 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/minimum_payment.yaml +12 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/resource_limit/amount.yaml +14 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/additional_person_increment.yaml +12 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/amount.yaml +38 -0
- policyengine_us/parameters/gov/states/mo/dss/tanf/standard_of_need/base_table_max_size.yaml +12 -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/pa/dhs/tanf/county_group/group_1.yaml +19 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_2.yaml +44 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_3.yaml +31 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/county_group/group_4.yaml +29 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/family_size_allowance/additional_person.yaml +14 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/family_size_allowance/amount.yaml +69 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/earned_income_disregard/percentage.yaml +14 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/work_expense/additional.yaml +15 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/income/deductions/work_expense/initial.yaml +14 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/max_family_size_in_table.yaml +12 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/resource_limit.yaml +7 -6
- policyengine_us/parameters/gov/states/pa/dhs/tanf/standard_of_need/additional_person.yaml +14 -0
- policyengine_us/parameters/gov/states/pa/dhs/tanf/standard_of_need/amount.yaml +69 -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/wi/dcf/README.md +1 -0
- policyengine_us/parameters/gov/states/wi/dcf/works/README.md +1 -0
- policyengine_us/parameters/gov/states/wi/dcf/works/asset/limit.yaml +16 -0
- policyengine_us/parameters/gov/states/wi/dcf/works/asset/vehicle_exclusion.yaml +14 -0
- policyengine_us/parameters/gov/states/wi/dcf/works/income_limit/rate.yaml +16 -0
- policyengine_us/parameters/gov/states/wi/dcf/works/placement/amount.yaml +30 -0
- policyengine_us/parameters/gov/states/wi/dcf/works/placement/arp_pregnancy_month_threshold.yaml +14 -0
- policyengine_us/parameters/gov/states/wi/dcf/works/placement/cmc_infant_age_limit.yaml +15 -0
- policyengine_us/reforms/aca/__init__.py +3 -0
- policyengine_us/reforms/aca/aca_ptc_700_fpl_cliff.py +125 -0
- policyengine_us/reforms/reforms.py +12 -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/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml +105 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/category/msp_category.yaml +69 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/eligibility/msp_eligible.yaml +62 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/income/msp_fpg.yaml +22 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/integration.yaml +84 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicare/savings_programs/msp_benefit_value.yaml +62 -0
- policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_1.yaml +157 -0
- policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_2.yaml +106 -0
- policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/qbid/qbid_amount.yaml +75 -3
- 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/ssa/revenue/tob_revenue_medicare_hi.yaml +105 -0
- policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_oasdi.yaml +86 -0
- policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_total.yaml +19 -0
- policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_tier_split.yaml +90 -0
- policyengine_us/tests/policy/baseline/gov/states/az/tax/income/az_property_tax_credit_agi.yaml +58 -0
- policyengine_us/tests/policy/baseline/gov/states/az/tax/income/integration.yaml +28 -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/dc/tax/income/dc_ptc.yaml +27 -0
- policyengine_us/tests/policy/baseline/gov/states/hi/tax/income/credits/food_excise/hi_food_excise_credit.yaml +29 -1
- policyengine_us/tests/policy/baseline/gov/states/ia/tax/income/ia_cdcc.yaml +3 -3
- policyengine_us/tests/policy/baseline/gov/states/ia/tax/income/ia_integration.yaml +31 -1
- policyengine_us/tests/policy/baseline/gov/states/il/dhs/aabd/eligibility/il_aabd_non_financial_eligible_person.yaml +6 -6
- 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/eligibility/il_hbwd_disability_eligible.yaml +18 -5
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.yaml +5 -5
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/integration.yaml +8 -8
- 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/tax/income/gross_income/integration.yaml +28 -0
- policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/integration.yaml +87 -0
- policyengine_us/tests/policy/baseline/gov/states/me/tax/income/credits/me_dependent_exemption_credit_amount_person.yaml +3 -2
- policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/credits/home_heating/mi_home_heating_credit.yaml +87 -0
- policyengine_us/tests/policy/baseline/gov/states/mi/tax/income/mi_household_resources.yaml +57 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/integration.yaml +275 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf.yaml +60 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_child_care_deduction.yaml +187 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_countable_income.yaml +49 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_earned_income_deductions.yaml +53 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_eligible.yaml +59 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_gross_income_eligible.yaml +29 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_income_eligible.yaml +49 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_maximum_benefit.yaml +47 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_percentage_of_need_test.yaml +53 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_resources_eligible.yaml +23 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_standard_of_need.yaml +71 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_standard_of_need_test.yaml +44 -0
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml +29 -0
- 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/pa/dhs/tanf/eligibility/pa_tanf_disregard_eligible.yaml +114 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_eligible.yaml +65 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_income_eligible.yaml +62 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/eligibility/pa_tanf_resources_eligible.yaml +47 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/income/pa_tanf_earned_income_after_deductions_person.yaml +81 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/integration.yaml +386 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf.yaml +53 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_county_group.yaml +63 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_maximum_benefit.yaml +92 -0
- policyengine_us/tests/policy/baseline/gov/states/pa/dhs/tanf/pa_tanf_standard_of_need.yaml +73 -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/wi/dcf/works/integration.yaml +282 -0
- policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works.yaml +50 -0
- policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_countable_income.yaml +49 -0
- policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_countable_resources.yaml +54 -0
- policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_eligible.yaml +61 -0
- policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_income_eligible.yaml +43 -0
- policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_placement.yaml +111 -0
- policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_resources_eligible.yaml +38 -0
- policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit.yaml +31 -0
- 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/pr_agi.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/usda/snap/snap_min_allotment.yaml +3 -3
- policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml +12 -0
- policyengine_us/tests/policy/contrib/aca/ptc_700_fpl_cliff.yaml +136 -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/test_batched.py +39 -68
- 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/savings_programs/category/is_qi_eligible.py +33 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_qmb_eligible.py +28 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/category/is_slmb_eligible.py +33 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/category/msp_category.py +33 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_asset_eligible.py +26 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_eligible.py +20 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/eligibility/msp_income_eligible.py +26 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_countable_income.py +35 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/income/msp_fpg.py +40 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/msp.py +15 -0
- policyengine_us/variables/gov/hhs/medicare/savings_programs/msp_benefit_value.py +37 -0
- policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_1.py +58 -0
- policyengine_us/variables/gov/irs/income/taxable_income/adjusted_gross_income/irs_gross_income/social_security/taxable_social_security_tier_2.py +17 -0
- policyengine_us/variables/gov/irs/income/taxable_income/deductions/qualified_business_income_deduction/qbid_amount.py +16 -6
- policyengine_us/variables/gov/simulation/labor_supply_response/labor_supply_behavioral_response.py +57 -42
- policyengine_us/variables/gov/ssa/revenue/tob_revenue_medicare_hi.py +31 -0
- policyengine_us/variables/gov/ssa/revenue/tob_revenue_oasdi.py +31 -0
- policyengine_us/variables/gov/ssa/revenue/tob_revenue_total.py +44 -0
- policyengine_us/variables/gov/states/az/tax/income/credits/property_tax_credit/az_property_tax_credit_agi.py +53 -0
- policyengine_us/variables/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.py +25 -4
- policyengine_us/variables/gov/states/dc/tax/income/credits/dc_ptc.py +7 -3
- policyengine_us/variables/gov/states/ia/tax/income/credits/ia_cdcc.py +4 -2
- 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/aabd/eligibility/il_aabd_non_financial_eligible_person.py +23 -5
- 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/eligibility/il_hbwd_disability_eligible.py +7 -3
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +1 -1
- policyengine_us/variables/gov/states/il/hfs/{hbwd/eligibility/il_hbwd_immigration_status_eligible.py → il_hfs_immigration_status_eligible.py} +5 -8
- 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/tax/income/gross_income/ma_part_c_gross_income.py +7 -1
- policyengine_us/variables/gov/states/me/tax/income/credits/dependent_exemption/me_dependent_exemption_credit_amount_person.py +1 -1
- policyengine_us/variables/gov/states/mi/tax/income/mi_household_resources.py +34 -5
- policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_eligible.py +23 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_gross_income_eligible.py +24 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_income_eligible.py +18 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_percentage_of_need_test.py +20 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_resources_eligible.py +18 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/eligibility/mo_tanf_standard_of_need_test.py +17 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/income/deductions/mo_tanf_child_care_deduction.py +24 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/income/deductions/mo_tanf_earned_income_deductions.py +36 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/income/mo_tanf_countable_income.py +21 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/income/mo_tanf_income_for_need_test.py +23 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf.py +21 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_maximum_benefit.py +19 -0
- policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_standard_of_need.py +23 -0
- policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_indiv.py +3 -1
- policyengine_us/variables/gov/states/mt/tax/income/capital_gains/mt_capital_gains_tax_joint.py +3 -1
- policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_regular_income_tax_indiv.py +3 -0
- policyengine_us/variables/gov/states/mt/tax/income/tax_calculation/mt_regular_income_tax_joint.py +3 -0
- 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/pa/dhs/tanf/eligibility/pa_tanf_disregard_eligible.py +31 -0
- policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_eligible.py +29 -0
- policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_income_eligible.py +16 -0
- policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_resources_eligible.py +7 -5
- policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_countable_earned_income.py +15 -0
- policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_countable_income.py +16 -0
- policyengine_us/variables/gov/states/pa/dhs/tanf/income/pa_tanf_earned_income_after_deductions_person.py +27 -0
- policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf.py +19 -0
- policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_county_group.py +38 -0
- policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_maximum_benefit.py +30 -0
- policyengine_us/variables/gov/states/pa/dhs/tanf/pa_tanf_standard_of_need.py +30 -0
- 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/wi/dcf/works/eligibility/wi_works_eligible.py +22 -0
- policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_income_eligible.py +20 -0
- policyengine_us/variables/gov/states/wi/dcf/works/eligibility/wi_works_resources_eligible.py +18 -0
- policyengine_us/variables/gov/states/wi/dcf/works/income/wi_works_countable_income.py +18 -0
- policyengine_us/variables/gov/states/wi/dcf/works/resources/wi_works_countable_resources.py +21 -0
- policyengine_us/variables/gov/states/wi/dcf/works/wi_works.py +19 -0
- policyengine_us/variables/gov/states/wi/dcf/works/wi_works_placement.py +45 -0
- policyengine_us/variables/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit.py +3 -3
- policyengine_us/variables/gov/states/wv/tax/income/credits/heptc/wv_homestead_excess_property_tax_credit_eligible.py +5 -2
- policyengine_us/variables/gov/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.py +1 -1
- 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.449.6.dist-info → policyengine_us-1.465.0.dist-info}/METADATA +2 -2
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.465.0.dist-info}/RECORD +289 -114
- policyengine_us/parameters/gov/states/il/dhs/aabd/aged_age_threshold.yaml +0 -11
- policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/qualified_noncitizen_statuses.yaml +0 -21
- policyengine_us/parameters/gov/states/mo/dss/tanf/income_limit.yaml +0 -26
- policyengine_us/parameters/gov/states/pa/dhs/tanf/cash_assistance/age_limit.yaml +0 -11
- policyengine_us/parameters/gov/states/pa/dhs/tanf/pregnancy_eligibility/age_limit.yaml +0 -9
- policyengine_us/tests/policy/baseline/gov/states/il/dhs/aabd/eligibility/il_aabd_aged_blind_disabled_person.yaml +0 -39
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.yaml +0 -47
- policyengine_us/tests/policy/baseline/gov/states/mo/dss/tanf/mo_tanf_income_limit.yaml +0 -23
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +0 -57
- policyengine_us/tests/policy/baseline/gov/states/pa/tanf/cash_assistance/pa_tanf_age_eligible.yaml +0 -44
- policyengine_us/tests/policy/baseline/gov/states/pa/tanf/pregnancy_eligibility/pa_tanf_pregnancy_eligibility.yaml +0 -59
- policyengine_us/tests/policy/baseline/gov/states/pa/tax/income/dhs/tanf/eligibility/pa_tanf_resources_eligible.yaml +0 -24
- policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_aged_blind_disabled_person.py +0 -22
- policyengine_us/variables/gov/states/mo/dss/tanf/mo_tanf_income_limit.py +0 -18
- policyengine_us/variables/gov/states/pa/dhs/tanf/cash_assistance/pa_tanf_age_eligible.py +0 -22
- policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pa_tanf_countable_resources.py +0 -10
- policyengine_us/variables/gov/states/pa/dhs/tanf/eligibility/pregnancy_eligibility/age_eligibility.py +0 -22
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.465.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.465.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.465.0.dist-info}/licenses/LICENSE +0 -0
policyengine_us/variables/gov/simulation/labor_supply_response/labor_supply_behavioral_response.py
CHANGED
|
@@ -16,53 +16,68 @@ class labor_supply_behavioral_response(Variable):
|
|
|
16
16
|
if p.elasticities.income == 0 and p.elasticities.substitution.all == 0:
|
|
17
17
|
return 0
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
baseline_branch.tax_benefit_system.parameters.simulation = (
|
|
26
|
-
measurement_branch.tax_benefit_system.parameters.simulation
|
|
27
|
-
)
|
|
19
|
+
# Guard against re-entry (prevents recursion when branches calculate variables)
|
|
20
|
+
if (
|
|
21
|
+
hasattr(simulation, "_lsr_calculating")
|
|
22
|
+
and simulation._lsr_calculating
|
|
23
|
+
):
|
|
24
|
+
return 0
|
|
28
25
|
|
|
29
|
-
#
|
|
30
|
-
|
|
31
|
-
# * -(baseline system without LSRs used to calculate LSRs)
|
|
26
|
+
# Mark that we're calculating LSR
|
|
27
|
+
simulation._lsr_calculating = True
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
period,
|
|
43
|
-
person("employment_income_before_lsr", period),
|
|
29
|
+
try:
|
|
30
|
+
measurement_branch = simulation.get_branch(
|
|
31
|
+
"lsr_measurement", clone_system=True
|
|
32
|
+
) # A branch without LSRs
|
|
33
|
+
baseline_branch = simulation.get_branch("baseline").get_branch(
|
|
34
|
+
"baseline_lsr_measurement", clone_system=True
|
|
35
|
+
) # Already created by default
|
|
36
|
+
baseline_branch.tax_benefit_system.parameters.simulation = (
|
|
37
|
+
measurement_branch.tax_benefit_system.parameters.simulation
|
|
44
38
|
)
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
|
|
40
|
+
# (system with LSRs) <- (system without LSRs used to calculate LSRs)
|
|
41
|
+
# |
|
|
42
|
+
# * -(baseline system without LSRs used to calculate LSRs)
|
|
43
|
+
|
|
44
|
+
for branch in [measurement_branch, baseline_branch]:
|
|
45
|
+
branch.tax_benefit_system.neutralize_variable(
|
|
46
|
+
"employment_income_behavioral_response"
|
|
47
|
+
)
|
|
48
|
+
branch.tax_benefit_system.neutralize_variable(
|
|
49
|
+
"self_employment_income_behavioral_response"
|
|
50
|
+
)
|
|
51
|
+
branch.set_input(
|
|
52
|
+
"employment_income_before_lsr",
|
|
53
|
+
period,
|
|
54
|
+
person("employment_income_before_lsr", period),
|
|
55
|
+
)
|
|
56
|
+
branch.set_input(
|
|
57
|
+
"self_employment_income_before_lsr",
|
|
58
|
+
period,
|
|
59
|
+
person("self_employment_income_before_lsr", period),
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
response = add(
|
|
63
|
+
person,
|
|
47
64
|
period,
|
|
48
|
-
|
|
65
|
+
[
|
|
66
|
+
"income_elasticity_lsr",
|
|
67
|
+
"substitution_elasticity_lsr",
|
|
68
|
+
],
|
|
49
69
|
)
|
|
70
|
+
simulation = person.simulation
|
|
71
|
+
del simulation.branches["baseline"].branches[
|
|
72
|
+
"baseline_lsr_measurement"
|
|
73
|
+
]
|
|
74
|
+
del simulation.branches["lsr_measurement"]
|
|
50
75
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
period,
|
|
54
|
-
[
|
|
55
|
-
"income_elasticity_lsr",
|
|
56
|
-
"substitution_elasticity_lsr",
|
|
57
|
-
],
|
|
58
|
-
)
|
|
59
|
-
simulation = person.simulation
|
|
60
|
-
del simulation.branches["baseline"].branches[
|
|
61
|
-
"baseline_lsr_measurement"
|
|
62
|
-
]
|
|
63
|
-
del simulation.branches["lsr_measurement"]
|
|
76
|
+
simulation.macro_cache_read = False
|
|
77
|
+
simulation.macro_cache_write = False
|
|
64
78
|
|
|
65
|
-
|
|
66
|
-
simulation.macro_cache_write = False
|
|
79
|
+
return response
|
|
67
80
|
|
|
68
|
-
|
|
81
|
+
finally:
|
|
82
|
+
# Clear the re-entry guard
|
|
83
|
+
simulation._lsr_calculating = False
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tob_revenue_medicare_hi(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
definition_period = YEAR
|
|
8
|
+
label = "Medicare HI trust fund revenue from SS benefit taxation (tier 2)"
|
|
9
|
+
documentation = "Tax revenue from tier 2 (50-85%) Social Security benefit taxation credited to Medicare HI trust fund"
|
|
10
|
+
unit = USD
|
|
11
|
+
|
|
12
|
+
def formula(tax_unit, period, parameters):
|
|
13
|
+
"""
|
|
14
|
+
Calculate Medicare HI trust fund revenue from tier 2 SS taxation.
|
|
15
|
+
|
|
16
|
+
Allocates total TOB revenue to Medicare HI based on tier 2's proportion
|
|
17
|
+
of total taxable SS.
|
|
18
|
+
"""
|
|
19
|
+
# Get total TOB revenue
|
|
20
|
+
total_tob = tax_unit("tob_revenue_total", period)
|
|
21
|
+
|
|
22
|
+
# Get tier amounts
|
|
23
|
+
tier1 = tax_unit("taxable_social_security_tier_1", period)
|
|
24
|
+
tier2 = tax_unit("taxable_social_security_tier_2", period)
|
|
25
|
+
total_taxable = tier1 + tier2
|
|
26
|
+
|
|
27
|
+
# Allocate total TOB based on tier 2 proportion
|
|
28
|
+
# Use where to handle division by zero
|
|
29
|
+
medicare_share = where(total_taxable > 0, tier2 / total_taxable, 0)
|
|
30
|
+
|
|
31
|
+
return total_tob * medicare_share
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tob_revenue_oasdi(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
definition_period = YEAR
|
|
8
|
+
label = "OASDI trust fund revenue from SS benefit taxation (tier 1)"
|
|
9
|
+
documentation = "Tax revenue from tier 1 (0-50%) Social Security benefit taxation credited to OASDI trust funds"
|
|
10
|
+
unit = USD
|
|
11
|
+
|
|
12
|
+
def formula(tax_unit, period, parameters):
|
|
13
|
+
"""
|
|
14
|
+
Calculate OASDI trust fund revenue from tier 1 SS taxation.
|
|
15
|
+
|
|
16
|
+
Allocates total TOB revenue to OASDI based on tier 1's proportion
|
|
17
|
+
of total taxable SS.
|
|
18
|
+
"""
|
|
19
|
+
# Get total TOB revenue
|
|
20
|
+
total_tob = tax_unit("tob_revenue_total", period)
|
|
21
|
+
|
|
22
|
+
# Get tier amounts
|
|
23
|
+
tier1 = tax_unit("taxable_social_security_tier_1", period)
|
|
24
|
+
tier2 = tax_unit("taxable_social_security_tier_2", period)
|
|
25
|
+
total_taxable = tier1 + tier2
|
|
26
|
+
|
|
27
|
+
# Allocate total TOB based on tier 1 proportion
|
|
28
|
+
# Use where to handle division by zero
|
|
29
|
+
oasdi_share = where(total_taxable > 0, tier1 / total_taxable, 0)
|
|
30
|
+
|
|
31
|
+
return total_tob * oasdi_share
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class tob_revenue_total(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
definition_period = YEAR
|
|
8
|
+
label = "Total trust fund revenue from SS benefit taxation"
|
|
9
|
+
documentation = "Tax revenue from taxation of Social Security benefits using branching methodology"
|
|
10
|
+
unit = USD
|
|
11
|
+
|
|
12
|
+
def formula(tax_unit, period, parameters):
|
|
13
|
+
"""
|
|
14
|
+
Calculate trust fund revenue using branching + neutralization.
|
|
15
|
+
|
|
16
|
+
This is the CORRECT way to isolate TOB revenue, superior to the
|
|
17
|
+
average effective tax rate approximation.
|
|
18
|
+
"""
|
|
19
|
+
sim = tax_unit.simulation
|
|
20
|
+
|
|
21
|
+
# Calculate income tax WITH taxable SS
|
|
22
|
+
income_tax_with_ss = tax_unit("income_tax", period)
|
|
23
|
+
|
|
24
|
+
# Create branch and neutralize taxable SS
|
|
25
|
+
branch = sim.get_branch("tob_calc", clone_system=True)
|
|
26
|
+
branch.tax_benefit_system.neutralize_variable(
|
|
27
|
+
"tax_unit_taxable_social_security"
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
# Delete all calculated variables to force recalculation
|
|
31
|
+
for var_name in list(branch.tax_benefit_system.variables.keys()):
|
|
32
|
+
if var_name not in branch.input_variables:
|
|
33
|
+
try:
|
|
34
|
+
branch.delete_arrays(var_name)
|
|
35
|
+
except:
|
|
36
|
+
pass
|
|
37
|
+
|
|
38
|
+
# Recalculate income tax without taxable SS
|
|
39
|
+
income_tax_without_ss = branch.tax_unit("income_tax", period)
|
|
40
|
+
|
|
41
|
+
# Clean up branch
|
|
42
|
+
del sim.branches["tob_calc"]
|
|
43
|
+
|
|
44
|
+
return income_tax_with_ss - income_tax_without_ss
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class az_property_tax_credit_agi(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
label = "Arizona adjusted gross income for property tax credit"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
documentation = (
|
|
11
|
+
"Adjusted gross income as defined for Arizona property tax credit purposes. "
|
|
12
|
+
"Per ARS 43-1072(H)(6) and ITR 12-1, this starts with Federal AGI and only "
|
|
13
|
+
"excludes items specifically listed in ARS 43-1072(I): Social Security, "
|
|
14
|
+
"railroad retirement, workers compensation, Arizona unemployment, veterans "
|
|
15
|
+
"disability pensions, welfare, and gifts. Unlike regular Arizona income tax, "
|
|
16
|
+
"this does NOT exclude pension income, capital gains, or Arizona exemptions."
|
|
17
|
+
)
|
|
18
|
+
reference = [
|
|
19
|
+
"https://www.azleg.gov/ars/43/01072.htm", # ARS 43-1072
|
|
20
|
+
"https://azdor.gov/sites/default/files/2023-03/RULINGS_INDV_2012_itr12-1.pdf", # ITR 12-1
|
|
21
|
+
]
|
|
22
|
+
defined_for = StateCode.AZ
|
|
23
|
+
|
|
24
|
+
def formula(tax_unit, period, parameters):
|
|
25
|
+
# Start with Federal AGI
|
|
26
|
+
# Per ITR 12-1, income includes wages, interest, business/farm income,
|
|
27
|
+
# rent/royalty, S-corp/partnership income, alimony, capital gains,
|
|
28
|
+
# pension/annuity income, and other non-excluded income.
|
|
29
|
+
federal_agi = tax_unit("adjusted_gross_income", period)
|
|
30
|
+
|
|
31
|
+
# Per ARS 43-1072(I) and ITR 12-1 "Items Excluded from Income",
|
|
32
|
+
# we ONLY exclude Social Security benefits (and other items like
|
|
33
|
+
# railroad retirement, workers comp, AZ unemployment, veterans
|
|
34
|
+
# disability pensions, welfare, and gifts - but these are typically
|
|
35
|
+
# not in Federal AGI anyway).
|
|
36
|
+
#
|
|
37
|
+
# Federal AGI only includes the TAXABLE portion of Social Security,
|
|
38
|
+
# but for property tax credit, ALL Social Security should be excluded.
|
|
39
|
+
# So we subtract the taxable portion that's in Federal AGI.
|
|
40
|
+
taxable_social_security = tax_unit(
|
|
41
|
+
"tax_unit_taxable_social_security", period
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
# NOTE: We do NOT subtract Arizona's regular subtractions here because:
|
|
45
|
+
# - Pension exclusions (az_public_pension_exclusion,
|
|
46
|
+
# az_military_retirement_subtraction) should be INCLUDED per
|
|
47
|
+
# ITR 12-1 item (9)
|
|
48
|
+
# - Capital gains subtraction (az_long_term_capital_gains_subtraction)
|
|
49
|
+
# should be INCLUDED per ITR 12-1 item (7)
|
|
50
|
+
# - US Government interest should be INCLUDED per ITR 12-1 item (2)
|
|
51
|
+
# - Arizona exemptions (aged, blind) should NOT be subtracted
|
|
52
|
+
|
|
53
|
+
return max_(0, federal_agi - taxable_social_security)
|
|
@@ -4,15 +4,36 @@ from policyengine_us.model_api import *
|
|
|
4
4
|
class is_ca_medicaid_immigration_status_eligible(Variable):
|
|
5
5
|
value_type = bool
|
|
6
6
|
entity = Person
|
|
7
|
-
label = "Eligible for California
|
|
7
|
+
label = "Eligible for California Medi-Cal without satisfactory immigration status"
|
|
8
8
|
definition_period = YEAR
|
|
9
|
-
reference =
|
|
9
|
+
reference = (
|
|
10
10
|
"https://california.public.law/codes/welfare_and_institutions_code_section_14007.8",
|
|
11
|
-
|
|
11
|
+
)
|
|
12
|
+
documentation = """
|
|
13
|
+
California Welfare and Institutions Code Section 14007.8 provides
|
|
14
|
+
state-funded Medi-Cal to individuals without satisfactory immigration
|
|
15
|
+
status based on age brackets. Starting January 1, 2026, new enrollments
|
|
16
|
+
for adults 19+ are frozen, but existing enrollees retain coverage.
|
|
17
|
+
"""
|
|
12
18
|
defined_for = StateCode.CA
|
|
13
19
|
|
|
14
20
|
def formula(person, period, parameters):
|
|
15
21
|
p = parameters(period).gov.states.ca.chhs
|
|
16
22
|
age = person("age", period)
|
|
17
23
|
pregnant = person("is_pregnant", period)
|
|
18
|
-
|
|
24
|
+
# Standard eligibility based on age or pregnancy
|
|
25
|
+
standard_eligible = (
|
|
26
|
+
p.eligible_regardless_of_immigration_status.calc(age) | pregnant
|
|
27
|
+
)
|
|
28
|
+
# Continuous coverage only applies after enrollment freeze
|
|
29
|
+
if p.medi_cal_enrollment_freeze.in_effect:
|
|
30
|
+
receives_medicaid = person("receives_medicaid", period)
|
|
31
|
+
# Section 14007.8 is specifically for undocumented immigrants
|
|
32
|
+
immigration_status = person("immigration_status", period)
|
|
33
|
+
undocumented = (
|
|
34
|
+
immigration_status
|
|
35
|
+
== immigration_status.possible_values.UNDOCUMENTED
|
|
36
|
+
)
|
|
37
|
+
continuous_coverage = receives_medicaid & undocumented
|
|
38
|
+
return standard_eligible | continuous_coverage
|
|
39
|
+
return standard_eligible
|
|
@@ -18,15 +18,19 @@ class dc_ptc(Variable):
|
|
|
18
18
|
retax = add(tax_unit, period, ["real_estate_taxes"])
|
|
19
19
|
p_dc = parameters(period).gov.states.dc.tax.income.credits
|
|
20
20
|
ptax = retax + rent * p_dc.ptc.rent_ratio
|
|
21
|
+
|
|
21
22
|
elderly_age = p_dc.ptc.min_elderly_age
|
|
22
23
|
head_age = tax_unit("age_head", period)
|
|
23
24
|
spouse_age = tax_unit("age_spouse", period)
|
|
24
25
|
is_elderly = (head_age >= elderly_age) | (spouse_age >= elderly_age)
|
|
26
|
+
|
|
27
|
+
# Only positive AGI creates an offset (negative AGI should not reduce offset)
|
|
25
28
|
us_agi = tax_unit("adjusted_gross_income", period)
|
|
26
|
-
|
|
29
|
+
positive_agi = max_(0, us_agi)
|
|
30
|
+
ptax_offset = positive_agi * where(
|
|
27
31
|
is_elderly,
|
|
28
|
-
p_dc.ptc.fraction_elderly.calc(
|
|
29
|
-
p_dc.ptc.fraction_nonelderly.calc(
|
|
32
|
+
p_dc.ptc.fraction_elderly.calc(positive_agi, right=True),
|
|
33
|
+
p_dc.ptc.fraction_nonelderly.calc(positive_agi, right=True),
|
|
30
34
|
)
|
|
31
35
|
uncapped_ptc = max_(0, ptax - ptax_offset)
|
|
32
36
|
return min_(p_dc.ptc.max, uncapped_ptc)
|
|
@@ -18,6 +18,8 @@ class ia_cdcc(Variable):
|
|
|
18
18
|
def formula(tax_unit, period, parameters):
|
|
19
19
|
# Iowa matches the potential federal credit
|
|
20
20
|
federal_cdcc = tax_unit("cdcc_potential", period)
|
|
21
|
-
|
|
21
|
+
taxable_income = tax_unit("ia_taxable_income", period)
|
|
22
22
|
p = parameters(period).gov.states.ia.tax.income
|
|
23
|
-
return federal_cdcc * p.credits.child_care.fraction.calc(
|
|
23
|
+
return federal_cdcc * p.credits.child_care.fraction.calc(
|
|
24
|
+
taxable_income
|
|
25
|
+
)
|
|
@@ -18,6 +18,6 @@ class il_aabd_immigration_status_eligible_person(Variable):
|
|
|
18
18
|
immigration_status_str = immigration_status.decode_to_str()
|
|
19
19
|
has_qualifying_status = np.isin(
|
|
20
20
|
immigration_status_str,
|
|
21
|
-
p.
|
|
21
|
+
p.qualified_noncitizen_statuses,
|
|
22
22
|
)
|
|
23
23
|
return has_qualifying_status | is_citizen
|
|
@@ -6,15 +6,33 @@ class il_aabd_non_financial_eligible_person(Variable):
|
|
|
6
6
|
entity = Person
|
|
7
7
|
definition_period = MONTH
|
|
8
8
|
label = "Eligible person for Illinois Aid to the Aged, Blind or Disabled (AABD)"
|
|
9
|
-
reference =
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.law.cornell.edu/regulations/illinois/title-89/part-113/subpart-B",
|
|
11
|
+
"https://www.dhs.state.il.us/page.aspx?item=15910",
|
|
12
|
+
)
|
|
10
13
|
defined_for = StateCode.IL
|
|
11
14
|
|
|
12
15
|
def formula(person, period, parameters):
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
)
|
|
16
|
+
# Per IDHS Policy Manual PM 11-01-00, a person must either:
|
|
17
|
+
# 1. Receive SSI, OR
|
|
18
|
+
# 2. Be ineligible for SSI due to income (but meet all other SSI requirements)
|
|
19
|
+
#
|
|
20
|
+
# Note: The policy manual only mentions "disabled" for under-65 persons
|
|
21
|
+
# who are SSI-ineligible due to income, but 89 Ill. Admin. Code 113.40(b)
|
|
22
|
+
# explicitly states: "The Department will make the determination of
|
|
23
|
+
# blindness when the client has been denied SSI on the basis of too
|
|
24
|
+
# much income." So blind persons are also covered.
|
|
25
|
+
#
|
|
26
|
+
# is_ssi_eligible checks categorical (aged/blind/disabled), resources,
|
|
27
|
+
# and immigration status for SSI. If True, person qualifies for IL AABD
|
|
28
|
+
# regardless of whether they actually receive SSI (income may be too high).
|
|
29
|
+
ssi_status_eligible = person("is_ssi_eligible", period.this_year)
|
|
30
|
+
|
|
31
|
+
# IL AABD has additional qualified noncitizen categories beyond SSI
|
|
32
|
+
# (e.g., abuse victims, trafficking victims, military families per
|
|
33
|
+
# 89 Ill. Admin. Code 113.10), so we check IL-specific immigration.
|
|
16
34
|
immigration_status_eligible = person(
|
|
17
35
|
"il_aabd_immigration_status_eligible_person", period
|
|
18
36
|
)
|
|
19
37
|
|
|
20
|
-
return
|
|
38
|
+
return ssi_status_eligible & immigration_status_eligible
|
|
@@ -15,7 +15,7 @@ class il_tanf_immigration_status_eligible_person(Variable):
|
|
|
15
15
|
immigration_status_str = immigration_status.decode_to_str()
|
|
16
16
|
has_qualifying_status = np.isin(
|
|
17
17
|
immigration_status_str,
|
|
18
|
-
p.
|
|
18
|
+
p.qualified_noncitizen_statuses,
|
|
19
19
|
)
|
|
20
20
|
is_citizen = (
|
|
21
21
|
immigration_status == immigration_status.possible_values.CITIZEN
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_bcc_age_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois Health Benefits for Persons with Breast or Cervical Cancer age eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = ("https://www.dhs.state.il.us/page.aspx?item=33528",)
|
|
10
|
+
defined_for = StateCode.IL
|
|
11
|
+
|
|
12
|
+
def formula(person, period, parameters):
|
|
13
|
+
p = parameters(period).gov.states.il.hfs.bcc.eligibility
|
|
14
|
+
age = person("age", period)
|
|
15
|
+
return age < p.age
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_bcc_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois Health Benefits for Persons with Breast or Cervical Cancer eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.dhs.state.il.us/page.aspx?item=33528",
|
|
11
|
+
"https://www.dhs.state.il.us/page.aspx?item=33527",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.IL
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
is_female = person("is_female", period)
|
|
17
|
+
age_eligible = person("il_bcc_age_eligible", period)
|
|
18
|
+
immigration_eligible = person(
|
|
19
|
+
"il_hfs_immigration_status_eligible", period
|
|
20
|
+
)
|
|
21
|
+
insurance_eligible = person("il_bcc_insurance_eligible", period)
|
|
22
|
+
return (
|
|
23
|
+
is_female
|
|
24
|
+
& age_eligible
|
|
25
|
+
& immigration_eligible
|
|
26
|
+
& insurance_eligible
|
|
27
|
+
)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_bcc_insurance_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois BCC insurance eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.dhs.state.il.us/page.aspx?item=33528",
|
|
11
|
+
"https://www.ilga.gov/legislation/ilcs/documents/030500050K5-2.htm",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.IL
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
# Per PM 06-20-02, persons are eligible if they are "uninsured".
|
|
17
|
+
# A person is NOT uninsured (thus ineligible) if they have:
|
|
18
|
+
# - Medicaid eligibility through another pathway
|
|
19
|
+
# - Health coverage that would pay for cancer treatment
|
|
20
|
+
#
|
|
21
|
+
# Exceptions that still qualify as "uninsured":
|
|
22
|
+
# - Coverage with limited benefits
|
|
23
|
+
# - Coverage where lifetime cap has been met/exceeded
|
|
24
|
+
# - Coverage that excludes cancer treatment
|
|
25
|
+
# - Indian Health Service coverage only
|
|
26
|
+
on_medicaid = person("receives_medicaid", period)
|
|
27
|
+
has_qualifying_coverage = person("has_bcc_qualifying_coverage", period)
|
|
28
|
+
has_disqualifying_coverage = on_medicaid | has_qualifying_coverage
|
|
29
|
+
return ~has_disqualifying_coverage
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_fpp_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois Family Planning Program eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.dhs.state.il.us/page.aspx?item=146077",
|
|
11
|
+
"https://hfs.illinois.gov/medicalclients/familyplanning.html",
|
|
12
|
+
"https://www.ilga.gov/agencies/JCAR/EntirePart?titlepart=07700635",
|
|
13
|
+
)
|
|
14
|
+
defined_for = StateCode.IL
|
|
15
|
+
|
|
16
|
+
def formula(person, period, parameters):
|
|
17
|
+
# Note: Illinois has two Family Planning programs:
|
|
18
|
+
# 1. Family Planning Presumptive Eligibility (FPPE) - temporary
|
|
19
|
+
# coverage, does NOT require citizenship/immigration status
|
|
20
|
+
# 2. Ongoing Family Planning Program - 1 year coverage, REQUIRES
|
|
21
|
+
# US citizenship or qualified immigrant status
|
|
22
|
+
# This variable models the ongoing program. The only eligibility
|
|
23
|
+
# difference between the two is the immigration requirement.
|
|
24
|
+
|
|
25
|
+
income_eligible = person("il_fpp_income_eligible", period)
|
|
26
|
+
# Must NOT be pregnant (pregnant individuals should apply for
|
|
27
|
+
# maternal health programs instead)
|
|
28
|
+
not_pregnant = ~person("is_pregnant", period)
|
|
29
|
+
# Use shared IL HFS immigration status check
|
|
30
|
+
immigration_eligible = person(
|
|
31
|
+
"il_hfs_immigration_status_eligible", period
|
|
32
|
+
)
|
|
33
|
+
# Cannot be enrolled in other non-spenddown full medical coverage
|
|
34
|
+
not_on_medicaid = ~person("receives_medicaid", period)
|
|
35
|
+
return (
|
|
36
|
+
income_eligible
|
|
37
|
+
& not_pregnant
|
|
38
|
+
& immigration_eligible
|
|
39
|
+
& not_on_medicaid
|
|
40
|
+
)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_fpp_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois Family Planning Program income eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.dhs.state.il.us/page.aspx?item=146077",
|
|
11
|
+
"https://hfs.illinois.gov/medicalclients/familyplanning.html",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.IL
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
p = parameters(period).gov.states.il.hfs.fpp.eligibility
|
|
17
|
+
income_level = person("il_fpp_income_level", period)
|
|
18
|
+
return income_level <= p.income_limit
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
from policyengine_us.variables.gov.hhs.tax_unit_fpg import fpg
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class il_fpp_income_level(Variable):
|
|
6
|
+
value_type = float
|
|
7
|
+
entity = Person
|
|
8
|
+
label = "Illinois Family Planning Program income level"
|
|
9
|
+
unit = "/1"
|
|
10
|
+
definition_period = YEAR
|
|
11
|
+
reference = (
|
|
12
|
+
"https://www.dhs.state.il.us/page.aspx?item=146077",
|
|
13
|
+
"https://hfs.illinois.gov/medicalclients/familyplanning.html",
|
|
14
|
+
)
|
|
15
|
+
defined_for = StateCode.IL
|
|
16
|
+
|
|
17
|
+
def formula(person, period, parameters):
|
|
18
|
+
# Only the applicant's income is counted (not household income)
|
|
19
|
+
income = person("adjusted_gross_income_person", period)
|
|
20
|
+
|
|
21
|
+
# Fixed household size of 2 per IL FPP policy
|
|
22
|
+
p = parameters(period).gov.states.il.hfs.fpp.eligibility
|
|
23
|
+
|
|
24
|
+
# Calculate FPG using fixed household size
|
|
25
|
+
state_group = person.household("state_group_str", period)
|
|
26
|
+
fpp_fpg = fpg(p.household_size, state_group, period, parameters)
|
|
27
|
+
|
|
28
|
+
# Return income as fraction of FPL
|
|
29
|
+
return income / fpp_fpg
|
|
@@ -13,8 +13,12 @@ class il_hbwd_disability_eligible(Variable):
|
|
|
13
13
|
defined_for = StateCode.IL
|
|
14
14
|
|
|
15
15
|
def formula(person, period, parameters):
|
|
16
|
-
# Must meet Social Security Administration's definition of disability
|
|
17
|
-
|
|
16
|
+
# Must meet Social Security Administration's definition of disability.
|
|
17
|
+
# Per DB101 Illinois "For HBWD, Social Security's disability
|
|
18
|
+
# rules related to earned income do not apply" - so we use is_disabled
|
|
19
|
+
# (medical definition) instead of is_ssi_disabled (which includes SGA test).
|
|
20
|
+
# See: https://il.db101.org/il/programs/health_coverage/how_health/program2b.htm
|
|
21
|
+
is_disabled = person("is_disabled", period.this_year)
|
|
18
22
|
# Or currently receiving SSDI
|
|
19
23
|
receives_ssdi = person("social_security_disability", period) > 0
|
|
20
|
-
return
|
|
24
|
+
return is_disabled | receives_ssdi
|
|
@@ -20,7 +20,7 @@ class il_hbwd_eligible(Variable):
|
|
|
20
20
|
income_eligible = person("il_hbwd_income_eligible", period)
|
|
21
21
|
asset_eligible = person("il_hbwd_asset_eligible", period)
|
|
22
22
|
immigration_eligible = person(
|
|
23
|
-
"
|
|
23
|
+
"il_hfs_immigration_status_eligible", period
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
return (
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
from policyengine_us.model_api import *
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class il_hfs_immigration_status_eligible(Variable):
|
|
5
5
|
value_type = bool
|
|
6
6
|
entity = Person
|
|
7
|
-
label = "Illinois
|
|
8
|
-
definition_period =
|
|
9
|
-
reference =
|
|
10
|
-
"https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.310",
|
|
11
|
-
"https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.510",
|
|
12
|
-
)
|
|
7
|
+
label = "Illinois HFS programs immigration status eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.310"
|
|
13
10
|
defined_for = StateCode.IL
|
|
14
11
|
|
|
15
12
|
def formula(person, period, parameters):
|
|
16
|
-
p = parameters(period).gov.states.il.hfs
|
|
13
|
+
p = parameters(period).gov.states.il.hfs
|
|
17
14
|
immigration_status = person("immigration_status", period)
|
|
18
15
|
is_citizen = (
|
|
19
16
|
immigration_status == immigration_status.possible_values.CITIZEN
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_mpe_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois MPE income eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.66"
|
|
10
|
+
defined_for = StateCode.IL
|
|
11
|
+
|
|
12
|
+
def formula(person, period, parameters):
|
|
13
|
+
p = parameters(period).gov.states.il.hfs.mpe.eligibility
|
|
14
|
+
income_level = person("medicaid_income_level", period.this_year)
|
|
15
|
+
return income_level <= p.income_limit
|