policyengine-us 1.458.0__py3-none-any.whl → 1.471.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/hhs/medicaid/emergency_medicaid/enabled.yaml +14 -0
- policyengine_us/parameters/gov/hhs/medicaid/emergency_medicaid/uses_medicaid_income_thresholds.yaml +13 -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/ssa/revenue/oasdi_share_of_gross_ss.yaml +13 -0
- policyengine_us/parameters/gov/states/az/tax/income/credits/property_tax/income_sources.yaml +17 -9
- 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/isbe/age_threshold/teen_parent.yaml +15 -0
- policyengine_us/parameters/gov/states/il/isbe/income/countable_sources.yaml +28 -0
- policyengine_us/parameters/gov/states/il/isbe/income/income_limit_rate.yaml +13 -0
- policyengine_us/parameters/gov/states/il/isbe/pfa/benefit/amount.yaml +15 -0
- policyengine_us/parameters/gov/states/il/isbe/pfae/benefit/amount.yaml +15 -0
- policyengine_us/parameters/gov/states/il/isbe/pfae/eligibility/age_range.yaml +26 -0
- policyengine_us/parameters/gov/states/il/isbe/pfae/eligibility/income/deep_poverty_rate.yaml +10 -0
- policyengine_us/parameters/gov/states/il/isbe/pfae/eligibility/income/low_income_rate.yaml +10 -0
- policyengine_us/parameters/gov/states/il/isbe/pi/benefit/amount.yaml +16 -0
- policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/age_threshold/child.yaml +13 -0
- policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/age_threshold/young_parent.yaml +11 -0
- policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/income/deep_poverty_rate.yaml +11 -0
- policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/income/low_income_rate.yaml +11 -0
- policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/income/poverty_rate.yaml +11 -0
- policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/priority/geriatric_pregnancy_age.yaml +10 -0
- policyengine_us/parameters/gov/states/il/isbe/pi/eligibility/risk_factors/minimum_score.yaml +11 -0
- policyengine_us/parameters/gov/states/in/fssa/README.md +1 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/README.md +1 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/eligibility/continuing/fpg_rate.yaml +12 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/income/deductions/benefit/earned_income_disregard/rate.yaml +12 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/income/deductions/eligibility/earned_income_disregard/rate.yaml +12 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/income/deductions/eligibility/flat_disregard/amount.yaml +12 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/income/deductions/work_expense/amount.yaml +12 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/resources/limit/at_application/amount.yaml +12 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/resources/limit/while_receiving/amount.yaml +12 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/resources/vehicle_exemption/amount.yaml +12 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/standard_of_need/amount.yaml +34 -0
- policyengine_us/parameters/gov/states/in/fssa/tanf/standard_of_need/max_unit_size.yaml +12 -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/mo/tax/income/minimum_taxable_income.yaml +3 -0
- policyengine_us/parameters/gov/states/mo/tax/income/rates.yaml +13 -4
- policyengine_us/parameters/gov/states/mo/tax/income/subtractions/agi_subtractions.yaml +18 -0
- policyengine_us/parameters/gov/states/mo/tax/income/subtractions/net_capital_gain/rate.yaml +14 -0
- policyengine_us/parameters/gov/states/oh/odjfs/owf/income/deductions/earned_income_disregard/flat_amount.yaml +14 -0
- policyengine_us/parameters/gov/states/oh/odjfs/owf/income/deductions/earned_income_disregard/percentage_of_disregard.yaml +16 -0
- policyengine_us/parameters/gov/states/oh/odjfs/owf/initial_eligibility/income_limit_rate.yaml +14 -0
- policyengine_us/parameters/gov/states/oh/odjfs/owf/payment_standard/additional_person_increment.yaml +14 -0
- policyengine_us/parameters/gov/states/oh/odjfs/owf/payment_standard/amounts.yaml +43 -0
- policyengine_us/parameters/gov/states/oh/odjfs/owf/payment_standard/max_group_size.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/age_threshold/minor_child.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/income/adjusted_income_limit/additional_person.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/income/adjusted_income_limit/amount.yaml +32 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/income/child_support_disregard/max.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/income/child_support_disregard/per_child.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/income/countable_income_limit/additional_person.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/income/countable_income_limit/amount.yaml +32 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/income/earned_income_disregard_rate.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/income/eli_multiplier.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/maximum_need_group_size.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/minimum_benefit.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/payment_standard/additional_person.yaml +12 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/payment_standard/amount.yaml +32 -0
- policyengine_us/parameters/gov/states/or/odhs/tanf/resources/limit/amount.yaml +12 -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/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 +5 -0
- policyengine_us/tests/microsimulation/test_microsim.py +46 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicaid/emergency_medicaid/integration.yaml +667 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicaid/emergency_medicaid/is_emergency_medicaid_eligible.yaml +376 -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/ssa/revenue/employer_medicare_tax_income_tax_revenue.yaml +86 -0
- policyengine_us/tests/policy/baseline/gov/ssa/revenue/employer_ss_tax_income_tax_revenue.yaml +85 -0
- policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_medicare_hi.yaml +124 -0
- policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_oasdi.yaml +129 -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 +72 -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/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/hfs/fpp/integration.yaml +2 -2
- 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/isbe/eligibility/il_isbe_income_eligible.yaml +15 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/eligibility/il_isbe_was_teen_parent_at_first_birth.yaml +310 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/eligibility/il_pfae_age_eligible_child.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/eligibility/il_pfae_basic_eligible.yaml +26 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/eligibility/il_pfae_eligible.yaml +49 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/integration.yaml +102 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/priority/il_pfae_has_highest_priority_factor.yaml +31 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/priority/il_pfae_is_deep_poverty.yaml +15 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/priority/il_pfae_is_low_income.yaml +15 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pfae/priority/il_pfae_secondary_priority_factor_count.yaml +85 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/il_pi_basic_eligible.yaml +46 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/il_pi_demographic_eligible.yaml +48 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/il_pi_eligible.yaml +38 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/il_pi_risk_eligible.yaml +74 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/income/il_pi_is_deep_poverty.yaml +43 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/income/il_pi_is_low_income.yaml +43 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/income/il_pi_is_poverty.yaml +43 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_has_developmental_delay.yaml +75 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_has_geriatric_pregnancy.yaml +74 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_highest_priority_score.yaml +100 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_is_young_parent_family.yaml +91 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_lower_priority_score.yaml +102 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/eligibility/priority/il_pi_other_priority_score.yaml +160 -0
- policyengine_us/tests/policy/baseline/gov/states/il/isbe/pi/integration.yaml +187 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/benefit/in_tanf_payment_standard.yaml +58 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/eligibility/in_tanf_countable_income_eligible.yaml +163 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/eligibility/in_tanf_eligible.yaml +94 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/eligibility/in_tanf_income_eligible.yaml +74 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/eligibility/in_tanf_payment_eligible.yaml +63 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/in_tanf.yaml +64 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/income/in_tanf_countable_earned_income.yaml +83 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/income/in_tanf_countable_earned_income_for_eligibility.yaml +112 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/income/in_tanf_countable_income_for_payment.yaml +71 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/integration.yaml +249 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/resources/in_tanf_countable_resources.yaml +38 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/resources/in_tanf_resources_eligible.yaml +60 -0
- policyengine_us/tests/policy/baseline/gov/states/in/fssa/tanf/resources/integration_with_eligibility.yaml +78 -0
- 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/mo/tax/income/subtractions/mo_agi_subtractions.yaml +176 -0
- policyengine_us/tests/policy/baseline/gov/states/mo/tax/income/subtractions/mo_capital_gains_subtraction.yaml +65 -0
- policyengine_us/tests/policy/baseline/gov/states/mt/tax/income/integration.yaml +29 -0
- policyengine_us/tests/policy/baseline/gov/states/nc/tax/income/deductions/nc_itemized_deductions.yaml +2 -2
- policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/integration.yaml +152 -0
- policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_countable_income.yaml +113 -0
- policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_eligible.yaml +239 -0
- policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_fpg.yaml +73 -0
- policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_income_eligible.yaml +80 -0
- policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_initial_income_eligible.yaml +160 -0
- policyengine_us/tests/policy/baseline/gov/states/oh/odjfs/owf/oh_owf_payment_standard.yaml +77 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/integration.yaml +363 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf.yaml +94 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_adjusted_income.yaml +77 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_adjusted_income_eligible.yaml +73 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_child_support_disregard.yaml +272 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_countable_income.yaml +70 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_countable_income_eligible.yaml +73 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_eli_eligible.yaml +47 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_eli_income_eligible.yaml +75 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_eligible.yaml +68 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_income_eligible.yaml +211 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_payment_standard.yaml +68 -0
- policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_resources_eligible.yaml +37 -0
- 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/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/contrib/aca/ptc_700_fpl_cliff.yaml +136 -0
- policyengine_us/tests/run_selective_tests.py +5 -0
- policyengine_us/tests/test_batched.py +144 -78
- policyengine_us/variables/gov/hhs/medicaid/emergency_medicaid/has_emergency_medical_condition.py +16 -0
- policyengine_us/variables/gov/hhs/medicaid/emergency_medicaid/is_emergency_medicaid_eligible.py +33 -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/simulation/labor_supply_response/labor_supply_behavioral_response.py +57 -42
- policyengine_us/variables/gov/ssa/revenue/employer_medicare_tax_income_tax_revenue.py +58 -0
- policyengine_us/variables/gov/ssa/revenue/employer_ss_tax_income_tax_revenue.py +60 -0
- policyengine_us/variables/gov/ssa/revenue/tob_revenue_medicare_hi.py +67 -0
- policyengine_us/variables/gov/ssa/revenue/tob_revenue_oasdi.py +82 -0
- policyengine_us/variables/gov/ssa/revenue/tob_revenue_total.py +49 -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/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_non_financial_eligible_person.py +23 -5
- policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_eligible.py +1 -1
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_disability_eligible.py +7 -3
- policyengine_us/variables/gov/states/il/isbe/eligibility/il_isbe_income_eligible.py +26 -0
- policyengine_us/variables/gov/states/il/isbe/eligibility/il_isbe_was_teen_parent_at_first_birth.py +32 -0
- policyengine_us/variables/gov/states/il/isbe/income/il_isbe_countable_income.py +13 -0
- policyengine_us/variables/gov/states/il/isbe/pfa/il_pfa.py +15 -0
- policyengine_us/variables/gov/states/il/isbe/pfa/il_pfa_eligible.py +18 -0
- policyengine_us/variables/gov/states/il/isbe/pfae/eligibility/il_pfae_age_eligible_child.py +23 -0
- policyengine_us/variables/gov/states/il/isbe/pfae/eligibility/il_pfae_basic_eligible.py +19 -0
- policyengine_us/variables/gov/states/il/isbe/pfae/eligibility/il_pfae_eligible.py +28 -0
- policyengine_us/variables/gov/states/il/isbe/pfae/il_pfae.py +19 -0
- policyengine_us/variables/gov/states/il/isbe/pfae/priority/il_pfae_has_highest_priority_factor.py +40 -0
- policyengine_us/variables/gov/states/il/isbe/pfae/priority/il_pfae_is_deep_poverty.py +23 -0
- policyengine_us/variables/gov/states/il/isbe/pfae/priority/il_pfae_is_low_income.py +21 -0
- policyengine_us/variables/gov/states/il/isbe/pfae/priority/il_pfae_secondary_priority_factor_count.py +65 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/il_pi_basic_eligible.py +17 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/il_pi_demographic_eligible.py +18 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/il_pi_risk_eligible.py +18 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/income/il_pi_is_deep_poverty.py +23 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/income/il_pi_is_low_income.py +21 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/income/il_pi_is_poverty.py +21 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_has_developmental_delay.py +16 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_has_geriatric_pregnancy.py +20 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_highest_priority_score.py +37 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_is_young_parent_family.py +21 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_lower_priority_score.py +36 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_other_priority_score.py +54 -0
- policyengine_us/variables/gov/states/il/isbe/pi/eligibility/priority/il_pi_priority_score.py +19 -0
- policyengine_us/variables/gov/states/il/isbe/pi/il_pi.py +15 -0
- policyengine_us/variables/gov/states/il/isbe/pi/il_pi_eligible.py +18 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_countable_income_eligible.py +31 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_eligible.py +36 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_income_eligible.py +21 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_payment_eligible.py +18 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/eligibility/in_tanf_resources_eligible.py +25 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/in_tanf.py +21 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/in_tanf_payment_standard.py +19 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_earned_income.py +20 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_earned_income_for_eligibility.py +33 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_income_for_eligibility.py +19 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_income_for_payment.py +13 -0
- policyengine_us/variables/gov/states/in/fssa/tanf/resources/in_tanf_countable_resources.py +27 -0
- 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/mo/tax/income/adjusted_gross_income/mo_adjusted_gross_income.py +1 -1
- policyengine_us/variables/gov/states/mo/tax/income/subtractions/mo_agi_subtractions.py +16 -0
- policyengine_us/variables/gov/states/mo/tax/income/subtractions/mo_capital_gains_subtraction.py +20 -0
- policyengine_us/variables/gov/states/mo/tax/income/subtractions/mo_capital_gains_subtraction_person.py +28 -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/oh/odjfs/owf/eligibility/oh_owf_eligible.py +39 -0
- policyengine_us/variables/gov/states/oh/odjfs/owf/eligibility/oh_owf_income_eligible.py +33 -0
- policyengine_us/variables/gov/states/oh/odjfs/owf/eligibility/oh_owf_initial_income_eligible.py +30 -0
- policyengine_us/variables/gov/states/oh/odjfs/owf/income/oh_owf_countable_income.py +40 -0
- policyengine_us/variables/gov/states/oh/odjfs/owf/oh_owf.py +23 -0
- policyengine_us/variables/gov/states/oh/odjfs/owf/oh_owf_fpg.py +32 -0
- policyengine_us/variables/gov/states/oh/odjfs/owf/oh_owf_payment_standard.py +26 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/benefit/or_tanf_payment_standard.py +23 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_adjusted_income_eligible.py +28 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_countable_income_eligible.py +28 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_eli_eligible.py +16 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_eli_income_eligible.py +20 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_eligible.py +25 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_income_eligible.py +26 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_resources_eligible.py +19 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/income/or_tanf_adjusted_income.py +21 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/income/or_tanf_child_support_disregard.py +25 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/income/or_tanf_countable_income.py +20 -0
- policyengine_us/variables/gov/states/or/odhs/tanf/or_tanf.py +25 -0
- 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/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/household/demographic/geographic/county/county.py +9 -0
- policyengine_us/variables/household/demographic/geographic/is_non_english_speaking_home.py +9 -0
- policyengine_us/variables/household/demographic/household/parent_has_less_than_high_school_education.py +9 -0
- policyengine_us/variables/household/demographic/person/has_developmental_delay.py +9 -0
- policyengine_us/variables/household/demographic/person/has_individualized_education_program.py +9 -0
- policyengine_us/variables/household/demographic/person/has_no_prior_formal_early_learning.py +9 -0
- policyengine_us/variables/household/demographic/person/is_born_outside_us.py +9 -0
- {policyengine_us-1.458.0.dist-info → policyengine_us-1.471.0.dist-info}/METADATA +1 -1
- {policyengine_us-1.458.0.dist-info → policyengine_us-1.471.0.dist-info}/RECORD +381 -69
- policyengine_us/parameters/gov/states/il/dhs/aabd/aged_age_threshold.yaml +0 -11
- 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/mo/dss/tanf/mo_tanf_income_limit.yaml +0 -23
- 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.458.0.dist-info → policyengine_us-1.471.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.458.0.dist-info → policyengine_us-1.471.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.458.0.dist-info → policyengine_us-1.471.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
- name: Case 1, default to CSJ with no special conditions.
|
|
2
|
+
period: 2025-01
|
|
3
|
+
input:
|
|
4
|
+
people:
|
|
5
|
+
person1:
|
|
6
|
+
age: 30
|
|
7
|
+
is_pregnant: false
|
|
8
|
+
person2:
|
|
9
|
+
age: 5
|
|
10
|
+
households:
|
|
11
|
+
household1:
|
|
12
|
+
members: [person1, person2]
|
|
13
|
+
state_code: WI
|
|
14
|
+
output:
|
|
15
|
+
wi_works_placement: CSJ
|
|
16
|
+
|
|
17
|
+
- name: Case 2, CMC with infant under 2 months.
|
|
18
|
+
period: 2025-01
|
|
19
|
+
input:
|
|
20
|
+
people:
|
|
21
|
+
person1:
|
|
22
|
+
age: 25
|
|
23
|
+
is_pregnant: false
|
|
24
|
+
person2:
|
|
25
|
+
monthly_age: 1
|
|
26
|
+
households:
|
|
27
|
+
household1:
|
|
28
|
+
members: [person1, person2]
|
|
29
|
+
state_code: WI
|
|
30
|
+
output:
|
|
31
|
+
wi_works_placement: CMC
|
|
32
|
+
|
|
33
|
+
- name: Case 3, CMC with infant exactly 2 months.
|
|
34
|
+
period: 2025-01
|
|
35
|
+
input:
|
|
36
|
+
people:
|
|
37
|
+
person1:
|
|
38
|
+
age: 25
|
|
39
|
+
person2:
|
|
40
|
+
monthly_age: 2
|
|
41
|
+
households:
|
|
42
|
+
household1:
|
|
43
|
+
members: [person1, person2]
|
|
44
|
+
state_code: WI
|
|
45
|
+
output:
|
|
46
|
+
wi_works_placement: CMC
|
|
47
|
+
|
|
48
|
+
- name: Case 4, CSJ with child over 2 months.
|
|
49
|
+
period: 2025-01
|
|
50
|
+
input:
|
|
51
|
+
people:
|
|
52
|
+
person1:
|
|
53
|
+
age: 25
|
|
54
|
+
# Explicit monthly_age to avoid formula calculation issues
|
|
55
|
+
monthly_age: 300
|
|
56
|
+
person2:
|
|
57
|
+
# monthly_age > 2 to exceed CMC threshold
|
|
58
|
+
monthly_age: 3
|
|
59
|
+
households:
|
|
60
|
+
household1:
|
|
61
|
+
members: [person1, person2]
|
|
62
|
+
state_code: WI
|
|
63
|
+
output:
|
|
64
|
+
wi_works_placement: CSJ
|
|
65
|
+
|
|
66
|
+
- name: Case 5, ARP with pregnant person in third trimester.
|
|
67
|
+
period: 2025-01
|
|
68
|
+
input:
|
|
69
|
+
people:
|
|
70
|
+
person1:
|
|
71
|
+
age: 25
|
|
72
|
+
is_pregnant: true
|
|
73
|
+
current_pregnancy_month: 7
|
|
74
|
+
households:
|
|
75
|
+
household1:
|
|
76
|
+
members: [person1]
|
|
77
|
+
state_code: WI
|
|
78
|
+
output:
|
|
79
|
+
wi_works_placement: ARP
|
|
80
|
+
|
|
81
|
+
- name: Case 6, CSJ with pregnant person not in third trimester.
|
|
82
|
+
period: 2025-01
|
|
83
|
+
input:
|
|
84
|
+
people:
|
|
85
|
+
person1:
|
|
86
|
+
age: 25
|
|
87
|
+
is_pregnant: true
|
|
88
|
+
current_pregnancy_month: 6
|
|
89
|
+
households:
|
|
90
|
+
household1:
|
|
91
|
+
members: [person1]
|
|
92
|
+
state_code: WI
|
|
93
|
+
output:
|
|
94
|
+
wi_works_placement: CSJ
|
|
95
|
+
|
|
96
|
+
- name: Case 7, CMC takes priority over ARP.
|
|
97
|
+
period: 2025-01
|
|
98
|
+
input:
|
|
99
|
+
people:
|
|
100
|
+
person1:
|
|
101
|
+
age: 25
|
|
102
|
+
is_pregnant: true
|
|
103
|
+
current_pregnancy_month: 8
|
|
104
|
+
person2:
|
|
105
|
+
monthly_age: 1
|
|
106
|
+
households:
|
|
107
|
+
household1:
|
|
108
|
+
members: [person1, person2]
|
|
109
|
+
state_code: WI
|
|
110
|
+
output:
|
|
111
|
+
wi_works_placement: CMC
|
policyengine_us/tests/policy/baseline/gov/states/wi/dcf/works/wi_works_resources_eligible.yaml
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
- name: Case 1, resources below limit.
|
|
2
|
+
period: 2025
|
|
3
|
+
input:
|
|
4
|
+
state_code: WI
|
|
5
|
+
wi_works_countable_resources: 2_000
|
|
6
|
+
output:
|
|
7
|
+
wi_works_resources_eligible: true
|
|
8
|
+
|
|
9
|
+
- name: Case 2, resources at exactly limit.
|
|
10
|
+
period: 2025
|
|
11
|
+
input:
|
|
12
|
+
state_code: WI
|
|
13
|
+
wi_works_countable_resources: 2_500
|
|
14
|
+
output:
|
|
15
|
+
wi_works_resources_eligible: true
|
|
16
|
+
|
|
17
|
+
- name: Case 3, resources above limit.
|
|
18
|
+
period: 2025
|
|
19
|
+
input:
|
|
20
|
+
state_code: WI
|
|
21
|
+
wi_works_countable_resources: 2_501
|
|
22
|
+
output:
|
|
23
|
+
wi_works_resources_eligible: false
|
|
24
|
+
|
|
25
|
+
- name: Case 4, zero resources.
|
|
26
|
+
period: 2025
|
|
27
|
+
input:
|
|
28
|
+
state_code: WI
|
|
29
|
+
wi_works_countable_resources: 0
|
|
30
|
+
output:
|
|
31
|
+
wi_works_resources_eligible: true
|
|
32
|
+
|
|
33
|
+
- name: Case 5, non-Wisconsin state.
|
|
34
|
+
period: 2025
|
|
35
|
+
input:
|
|
36
|
+
state_code: CA
|
|
37
|
+
output:
|
|
38
|
+
wi_works_resources_eligible: false
|
|
@@ -41,3 +41,34 @@
|
|
|
41
41
|
# heptc_amount = property_tax - wv_sctc - p.ghi_percentage * wv_ghi = 20000-10000-800 = 8200
|
|
42
42
|
output:
|
|
43
43
|
wv_homestead_excess_property_tax_credit: 0
|
|
44
|
+
|
|
45
|
+
- name: WV no HEPTC credit with negative income and zero property taxes
|
|
46
|
+
absolute_error_margin: 2
|
|
47
|
+
period: 2024
|
|
48
|
+
input:
|
|
49
|
+
people:
|
|
50
|
+
person1:
|
|
51
|
+
is_tax_unit_head: true
|
|
52
|
+
age: 40
|
|
53
|
+
short_term_capital_gains: -896_056.95
|
|
54
|
+
partnership_s_corp_income: -727_887.75
|
|
55
|
+
taxable_interest_income: 0.012324943
|
|
56
|
+
person2:
|
|
57
|
+
is_tax_unit_spouse: true
|
|
58
|
+
age: 40
|
|
59
|
+
short_term_capital_gains: -896_056.95
|
|
60
|
+
partnership_s_corp_income: -727_887.75
|
|
61
|
+
taxable_interest_income: 0.012324943
|
|
62
|
+
tax_units:
|
|
63
|
+
tax_unit:
|
|
64
|
+
members: [person1, person2]
|
|
65
|
+
spm_units:
|
|
66
|
+
spm_unit:
|
|
67
|
+
members: [person1, person2]
|
|
68
|
+
households:
|
|
69
|
+
household:
|
|
70
|
+
members: [person1, person2]
|
|
71
|
+
state_fips: 54
|
|
72
|
+
output:
|
|
73
|
+
adjusted_gross_income: -3_000
|
|
74
|
+
wv_homestead_excess_property_tax_credit: 0
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
- name: Single filer at 0% FPL - zero contribution
|
|
2
|
+
period: 2026
|
|
3
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
4
|
+
absolute_error_margin: 0.00001
|
|
5
|
+
input:
|
|
6
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
7
|
+
aca_magi_fraction: 0.0
|
|
8
|
+
output:
|
|
9
|
+
aca_required_contribution_percentage: 0.0
|
|
10
|
+
|
|
11
|
+
- name: Single filer at 150% FPL - zero contribution
|
|
12
|
+
period: 2026
|
|
13
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
14
|
+
absolute_error_margin: 0.00001
|
|
15
|
+
input:
|
|
16
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
17
|
+
aca_magi_fraction: 1.5
|
|
18
|
+
output:
|
|
19
|
+
aca_required_contribution_percentage: 0.0
|
|
20
|
+
|
|
21
|
+
- name: Single filer at 200% FPL - 2% contribution
|
|
22
|
+
period: 2026
|
|
23
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
24
|
+
absolute_error_margin: 0.00001
|
|
25
|
+
input:
|
|
26
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
27
|
+
aca_magi_fraction: 2.0
|
|
28
|
+
output:
|
|
29
|
+
aca_required_contribution_percentage: 0.02
|
|
30
|
+
|
|
31
|
+
- name: Single filer at 250% FPL - 4% contribution
|
|
32
|
+
period: 2026
|
|
33
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
34
|
+
absolute_error_margin: 0.00001
|
|
35
|
+
input:
|
|
36
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
37
|
+
aca_magi_fraction: 2.5
|
|
38
|
+
output:
|
|
39
|
+
aca_required_contribution_percentage: 0.04
|
|
40
|
+
|
|
41
|
+
- name: Single filer at 300% FPL - 6% contribution
|
|
42
|
+
period: 2026
|
|
43
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
44
|
+
absolute_error_margin: 0.00001
|
|
45
|
+
input:
|
|
46
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
47
|
+
aca_magi_fraction: 3.0
|
|
48
|
+
output:
|
|
49
|
+
aca_required_contribution_percentage: 0.06
|
|
50
|
+
|
|
51
|
+
- name: Single filer at 400% FPL - 8.5% contribution (old cliff point)
|
|
52
|
+
period: 2026
|
|
53
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
54
|
+
absolute_error_margin: 0.00001
|
|
55
|
+
input:
|
|
56
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
57
|
+
aca_magi_fraction: 4.0
|
|
58
|
+
output:
|
|
59
|
+
aca_required_contribution_percentage: 0.085
|
|
60
|
+
|
|
61
|
+
- name: Single filer at 500% FPL - 8.5% contribution (flat rate)
|
|
62
|
+
period: 2026
|
|
63
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
64
|
+
absolute_error_margin: 0.00001
|
|
65
|
+
input:
|
|
66
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
67
|
+
aca_magi_fraction: 5.0
|
|
68
|
+
output:
|
|
69
|
+
aca_required_contribution_percentage: 0.085
|
|
70
|
+
|
|
71
|
+
- name: Single filer at 600% FPL - 8.5% contribution (flat rate continues)
|
|
72
|
+
period: 2026
|
|
73
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
74
|
+
absolute_error_margin: 0.00001
|
|
75
|
+
input:
|
|
76
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
77
|
+
aca_magi_fraction: 6.0
|
|
78
|
+
output:
|
|
79
|
+
aca_required_contribution_percentage: 0.085
|
|
80
|
+
|
|
81
|
+
- name: Single filer at 700% FPL - 9.25% contribution (new cliff point)
|
|
82
|
+
period: 2026
|
|
83
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
84
|
+
absolute_error_margin: 0.00001
|
|
85
|
+
input:
|
|
86
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
87
|
+
aca_magi_fraction: 7.0
|
|
88
|
+
output:
|
|
89
|
+
aca_required_contribution_percentage: 0.0925
|
|
90
|
+
|
|
91
|
+
- name: Single filer at 175% FPL - interpolated 1% contribution
|
|
92
|
+
period: 2026
|
|
93
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
94
|
+
absolute_error_margin: 0.00001
|
|
95
|
+
input:
|
|
96
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
97
|
+
aca_magi_fraction: 1.75
|
|
98
|
+
output:
|
|
99
|
+
aca_required_contribution_percentage: 0.01
|
|
100
|
+
|
|
101
|
+
- name: Single filer at 350% FPL - interpolated 7.25% contribution
|
|
102
|
+
period: 2026
|
|
103
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
104
|
+
absolute_error_margin: 0.00001
|
|
105
|
+
input:
|
|
106
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
107
|
+
aca_magi_fraction: 3.5
|
|
108
|
+
output:
|
|
109
|
+
aca_required_contribution_percentage: 0.0725
|
|
110
|
+
|
|
111
|
+
- name: Single filer at 650% FPL - interpolated 8.875% contribution
|
|
112
|
+
period: 2026
|
|
113
|
+
reforms: policyengine_us.reforms.aca.aca_ptc_700_fpl_cliff.aca_ptc_700_fpl_cliff
|
|
114
|
+
absolute_error_margin: 0.00001
|
|
115
|
+
input:
|
|
116
|
+
gov.contrib.aca.ptc_700_fpl_cliff.in_effect: true
|
|
117
|
+
aca_magi_fraction: 6.5
|
|
118
|
+
output:
|
|
119
|
+
# 8.5% + (9.25% - 8.5%) * 0.5 = 8.5% + 0.375% = 8.875%
|
|
120
|
+
aca_required_contribution_percentage: 0.08875
|
|
121
|
+
|
|
122
|
+
- name: Baseline comparison at 400% FPL - shows elimination of cliff
|
|
123
|
+
period: 2026
|
|
124
|
+
absolute_error_margin: 0.00001
|
|
125
|
+
input:
|
|
126
|
+
aca_magi_fraction: 4.0
|
|
127
|
+
output:
|
|
128
|
+
aca_required_contribution_percentage: 0.0996
|
|
129
|
+
|
|
130
|
+
- name: Baseline comparison at 500% FPL - shows new eligibility
|
|
131
|
+
period: 2026
|
|
132
|
+
absolute_error_margin: 0.00001
|
|
133
|
+
input:
|
|
134
|
+
aca_magi_fraction: 5.0
|
|
135
|
+
output:
|
|
136
|
+
aca_required_contribution_percentage: 0.0996
|
|
@@ -60,6 +60,11 @@ class SelectiveTestRunner:
|
|
|
60
60
|
"file_pattern": r"policyengine_us/variables/household/",
|
|
61
61
|
"test_pattern": r"policyengine_us/tests/policy/baseline/household",
|
|
62
62
|
},
|
|
63
|
+
# Match household variables to microsimulation tests (for dataset-level tests)
|
|
64
|
+
{
|
|
65
|
+
"file_pattern": r"policyengine_us/variables/household/",
|
|
66
|
+
"test_pattern": r"policyengine_us/tests/microsimulation",
|
|
67
|
+
},
|
|
63
68
|
# Match reforms in specific states
|
|
64
69
|
{
|
|
65
70
|
"file_pattern": r"policyengine_us/reforms/states/([^/]+)",
|
|
@@ -21,71 +21,160 @@ def count_yaml_files(directory: Path) -> int:
|
|
|
21
21
|
return len(list(directory.rglob("*.yaml")))
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
def
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
# Check for yaml files directly in base directory
|
|
29
|
-
root_count = len(list(base_path.glob("*.yaml")))
|
|
30
|
-
if root_count > 0:
|
|
31
|
-
dir_counts["."] = root_count
|
|
32
|
-
|
|
33
|
-
# Get all subdirectories with their test counts
|
|
34
|
-
for item in base_path.iterdir():
|
|
35
|
-
if item.is_dir():
|
|
36
|
-
yaml_count = count_yaml_files(item)
|
|
37
|
-
if yaml_count > 0:
|
|
38
|
-
dir_counts[item.name] = yaml_count
|
|
39
|
-
|
|
40
|
-
return dir_counts
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def split_into_batches(base_path: Path, num_batches: int) -> List[List[str]]:
|
|
24
|
+
def split_into_batches(
|
|
25
|
+
base_path: Path, num_batches: int, exclude: List[str] = None
|
|
26
|
+
) -> List[List[str]]:
|
|
44
27
|
"""
|
|
45
28
|
Split test directories into specified number of batches.
|
|
46
29
|
Special handling for baseline tests to separate states.
|
|
47
30
|
Special handling for contrib tests to divide by folder count.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
base_path: Path to the test directory
|
|
34
|
+
num_batches: Number of batches to split into
|
|
35
|
+
exclude: List of directory names to exclude (for contrib tests)
|
|
48
36
|
"""
|
|
49
|
-
|
|
37
|
+
if exclude is None:
|
|
38
|
+
exclude = []
|
|
39
|
+
|
|
40
|
+
# Special handling for contrib tests - split into 7 batches by memory usage
|
|
50
41
|
# Only apply to policy/contrib (structural tests), not baseline/contrib
|
|
51
42
|
if str(base_path).endswith("policy/contrib"):
|
|
52
|
-
#
|
|
43
|
+
# Define batches by memory usage (measured empirically)
|
|
44
|
+
BATCH_1 = ["federal", "harris", "treasury"] # ~9.0 GB
|
|
45
|
+
BATCH_2 = ["ctc", "snap_ea", "ubi_center"] # ~8.6 GB
|
|
46
|
+
BATCH_3 = ["deductions", "aca", "snap"] # ~8.1 GB
|
|
47
|
+
BATCH_4 = [
|
|
48
|
+
"tax_exempt",
|
|
49
|
+
"eitc",
|
|
50
|
+
"state_dependent_exemptions",
|
|
51
|
+
"additional_tax_bracket",
|
|
52
|
+
] # ~8.0 GB
|
|
53
|
+
# Batch 5 is the catch-all for unknown/new folders (~7.8 GB + headroom)
|
|
54
|
+
BATCH_5_DEFINED = [
|
|
55
|
+
"local",
|
|
56
|
+
"dc_single_joint_threshold_ratio.yaml",
|
|
57
|
+
"reconciliation",
|
|
58
|
+
"dc_kccatc.yaml",
|
|
59
|
+
"reported_state_income_tax.yaml",
|
|
60
|
+
]
|
|
61
|
+
BATCH_6 = ["crfb"] # ~8.9 GB, always alone
|
|
62
|
+
BATCH_7 = ["congress"] # ~6.3 GB
|
|
63
|
+
|
|
64
|
+
# Get all subdirectories (excluding states which is in Heavy job)
|
|
53
65
|
subdirs = sorted(
|
|
54
|
-
[
|
|
66
|
+
[
|
|
67
|
+
item
|
|
68
|
+
for item in base_path.iterdir()
|
|
69
|
+
if item.is_dir() and item.name not in exclude
|
|
70
|
+
]
|
|
55
71
|
)
|
|
56
72
|
|
|
57
|
-
# Get root level YAML files
|
|
73
|
+
# Get root level YAML files
|
|
58
74
|
root_files = sorted(list(base_path.glob("*.yaml")))
|
|
59
75
|
|
|
60
|
-
#
|
|
61
|
-
|
|
76
|
+
# Build batches
|
|
77
|
+
def get_batch_paths(batch_names, subdirs, root_files):
|
|
78
|
+
paths = []
|
|
79
|
+
for name in batch_names:
|
|
80
|
+
# Check if it's a directory
|
|
81
|
+
for subdir in subdirs:
|
|
82
|
+
if subdir.name == name:
|
|
83
|
+
paths.append(str(subdir))
|
|
84
|
+
break
|
|
85
|
+
# Check if it's a root file
|
|
86
|
+
for f in root_files:
|
|
87
|
+
if f.name == name:
|
|
88
|
+
paths.append(str(f))
|
|
89
|
+
break
|
|
90
|
+
return paths
|
|
91
|
+
|
|
92
|
+
# Collect known folders/files
|
|
93
|
+
all_known = set(
|
|
94
|
+
BATCH_1
|
|
95
|
+
+ BATCH_2
|
|
96
|
+
+ BATCH_3
|
|
97
|
+
+ BATCH_4
|
|
98
|
+
+ BATCH_5_DEFINED
|
|
99
|
+
+ BATCH_6
|
|
100
|
+
+ BATCH_7
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
# Find unknown folders/files (new additions go to Batch 5)
|
|
104
|
+
unknown = []
|
|
62
105
|
for subdir in subdirs:
|
|
63
|
-
|
|
106
|
+
if subdir.name not in all_known:
|
|
107
|
+
unknown.append(str(subdir))
|
|
108
|
+
for f in root_files:
|
|
109
|
+
if f.name not in all_known:
|
|
110
|
+
unknown.append(str(f))
|
|
111
|
+
|
|
112
|
+
# Build all batches
|
|
113
|
+
batch1 = get_batch_paths(BATCH_1, subdirs, root_files)
|
|
114
|
+
batch2 = get_batch_paths(BATCH_2, subdirs, root_files)
|
|
115
|
+
batch3 = get_batch_paths(BATCH_3, subdirs, root_files)
|
|
116
|
+
batch4 = get_batch_paths(BATCH_4, subdirs, root_files)
|
|
117
|
+
batch5 = (
|
|
118
|
+
get_batch_paths(BATCH_5_DEFINED, subdirs, root_files) + unknown
|
|
119
|
+
)
|
|
120
|
+
batch6 = get_batch_paths(BATCH_6, subdirs, root_files)
|
|
121
|
+
batch7 = get_batch_paths(BATCH_7, subdirs, root_files)
|
|
64
122
|
|
|
65
|
-
#
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
123
|
+
# Return non-empty batches in order
|
|
124
|
+
batches = []
|
|
125
|
+
for batch in [batch1, batch2, batch3, batch4, batch5, batch6, batch7]:
|
|
126
|
+
if batch:
|
|
127
|
+
batches.append(batch)
|
|
69
128
|
|
|
70
129
|
return batches
|
|
71
130
|
|
|
131
|
+
# Special handling for contrib/states - each subfolder is its own batch
|
|
132
|
+
# to allow garbage collection between state tests
|
|
133
|
+
# Memory usage per state varies significantly (1.3 GB - 5.2 GB measured)
|
|
134
|
+
# Note: contrib/congress runs all together (~6.3 GB total, under 7 GB limit)
|
|
135
|
+
if str(base_path).endswith("contrib/states"):
|
|
136
|
+
subdirs = sorted(
|
|
137
|
+
[item for item in base_path.iterdir() if item.is_dir()]
|
|
138
|
+
)
|
|
139
|
+
# Each state folder becomes its own batch
|
|
140
|
+
batches = [[str(subdir)] for subdir in subdirs]
|
|
141
|
+
|
|
142
|
+
# Also include any root-level YAML files as a separate batch
|
|
143
|
+
root_files = sorted(list(base_path.glob("*.yaml")))
|
|
144
|
+
if root_files:
|
|
145
|
+
batches.append([str(file) for file in root_files])
|
|
146
|
+
|
|
147
|
+
return batches if batches else [[str(base_path)]]
|
|
148
|
+
|
|
72
149
|
# Special handling for reform tests - run all together in one batch
|
|
73
150
|
if "reform" in str(base_path):
|
|
74
151
|
return [[str(base_path)]]
|
|
75
152
|
|
|
76
|
-
# Special handling for
|
|
77
|
-
if
|
|
153
|
+
# Special handling for states directory - support excluding specific states
|
|
154
|
+
if str(base_path).endswith("gov/states"):
|
|
155
|
+
subdirs = sorted(
|
|
156
|
+
[
|
|
157
|
+
item
|
|
158
|
+
for item in base_path.iterdir()
|
|
159
|
+
if item.is_dir() and item.name not in exclude
|
|
160
|
+
]
|
|
161
|
+
)
|
|
162
|
+
# Return all non-excluded state directories as a single batch
|
|
163
|
+
if subdirs:
|
|
164
|
+
return [[str(subdir) for subdir in subdirs]]
|
|
165
|
+
return []
|
|
166
|
+
|
|
167
|
+
# Special handling for baseline tests
|
|
168
|
+
if "baseline" in str(base_path) and str(base_path).endswith("baseline"):
|
|
78
169
|
states_path = base_path / "gov" / "states"
|
|
79
|
-
if states_path.exists() and count_yaml_files(states_path) > 0:
|
|
80
|
-
# Batch 1: Only states
|
|
81
|
-
batch1 = [str(states_path)]
|
|
82
170
|
|
|
83
|
-
|
|
84
|
-
|
|
171
|
+
# If --exclude states, skip states and run everything else
|
|
172
|
+
if "states" in exclude:
|
|
173
|
+
batch = []
|
|
85
174
|
|
|
86
175
|
# Add root level files if any
|
|
87
176
|
for yaml_file in base_path.glob("*.yaml"):
|
|
88
|
-
|
|
177
|
+
batch.append(str(yaml_file))
|
|
89
178
|
|
|
90
179
|
# Add all directories except gov/states, household, and contrib
|
|
91
180
|
for item in base_path.iterdir():
|
|
@@ -97,49 +186,17 @@ def split_into_batches(base_path: Path, num_batches: int) -> List[List[str]]:
|
|
|
97
186
|
# Add gov subdirectories except states
|
|
98
187
|
for gov_item in item.iterdir():
|
|
99
188
|
if gov_item.is_dir() and gov_item.name != "states":
|
|
100
|
-
|
|
189
|
+
batch.append(str(gov_item))
|
|
101
190
|
elif gov_item.suffix == ".yaml":
|
|
102
|
-
|
|
191
|
+
batch.append(str(gov_item))
|
|
103
192
|
else:
|
|
104
193
|
# Other non-gov directories
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
return [batch1, batch2] if batch2 else [batch1]
|
|
108
|
-
|
|
109
|
-
# Default behavior for non-baseline or different batch counts
|
|
110
|
-
dir_counts = get_test_directories(base_path)
|
|
111
|
-
|
|
112
|
-
if num_batches <= 0:
|
|
113
|
-
num_batches = 1
|
|
194
|
+
batch.append(str(item))
|
|
114
195
|
|
|
115
|
-
|
|
116
|
-
if num_batches == 1:
|
|
117
|
-
return [[str(base_path)]]
|
|
118
|
-
|
|
119
|
-
# Sort directories by test count (largest first)
|
|
120
|
-
sorted_dirs = sorted(dir_counts.items(), key=lambda x: x[1], reverse=True)
|
|
121
|
-
|
|
122
|
-
# Initialize batches
|
|
123
|
-
batches = [[] for _ in range(num_batches)]
|
|
124
|
-
batch_counts = [0] * num_batches
|
|
125
|
-
|
|
126
|
-
# Distribute directories to batches (greedy algorithm - add to smallest batch)
|
|
127
|
-
for dir_name, count in sorted_dirs:
|
|
128
|
-
# Find batch with fewest tests
|
|
129
|
-
min_batch_idx = batch_counts.index(min(batch_counts))
|
|
130
|
-
|
|
131
|
-
# Add directory to that batch
|
|
132
|
-
if dir_name == ".":
|
|
133
|
-
# Root level files - add individually
|
|
134
|
-
for yaml_file in base_path.glob("*.yaml"):
|
|
135
|
-
batches[min_batch_idx].append(str(yaml_file))
|
|
136
|
-
else:
|
|
137
|
-
batches[min_batch_idx].append(str(base_path / dir_name))
|
|
138
|
-
|
|
139
|
-
batch_counts[min_batch_idx] += count
|
|
196
|
+
return [batch] if batch else []
|
|
140
197
|
|
|
141
|
-
#
|
|
142
|
-
return [
|
|
198
|
+
# Default: return the entire path as a single batch
|
|
199
|
+
return [[str(base_path)]]
|
|
143
200
|
|
|
144
201
|
|
|
145
202
|
def run_batch(test_paths: List[str], batch_name: str) -> Dict:
|
|
@@ -298,8 +355,15 @@ def main():
|
|
|
298
355
|
default=2,
|
|
299
356
|
help="Number of batches to split tests into (default: 2)",
|
|
300
357
|
)
|
|
358
|
+
parser.add_argument(
|
|
359
|
+
"--exclude",
|
|
360
|
+
type=str,
|
|
361
|
+
default="",
|
|
362
|
+
help="Comma-separated list of directory names to exclude (for contrib tests)",
|
|
363
|
+
)
|
|
301
364
|
|
|
302
365
|
args = parser.parse_args()
|
|
366
|
+
exclude_list = [x.strip() for x in args.exclude.split(",") if x.strip()]
|
|
303
367
|
|
|
304
368
|
if not os.path.exists("policyengine_us"):
|
|
305
369
|
print("Error: Must run from PolicyEngine US root directory")
|
|
@@ -314,13 +378,15 @@ def main():
|
|
|
314
378
|
print("=" * 60)
|
|
315
379
|
print(f"Test path: {test_path}")
|
|
316
380
|
print(f"Requested batches: {args.batches}")
|
|
381
|
+
if exclude_list:
|
|
382
|
+
print(f"Excluding: {', '.join(exclude_list)}")
|
|
317
383
|
|
|
318
384
|
# Count total tests
|
|
319
385
|
total_tests = count_yaml_files(test_path)
|
|
320
386
|
print(f"Total test files: {total_tests}")
|
|
321
387
|
|
|
322
388
|
# Split into batches
|
|
323
|
-
batches = split_into_batches(test_path, args.batches)
|
|
389
|
+
batches = split_into_batches(test_path, args.batches, exclude_list)
|
|
324
390
|
if len(batches) != args.batches:
|
|
325
391
|
print(
|
|
326
392
|
f"Actual batches: {len(batches)} (optimized for {total_tests} files)"
|
policyengine_us/variables/gov/hhs/medicaid/emergency_medicaid/has_emergency_medical_condition.py
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class has_emergency_medical_condition(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Has emergency medical condition"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
default_value = False
|
|
10
|
+
reference = (
|
|
11
|
+
"https://www.law.cornell.edu/uscode/text/42/1396b#v_3",
|
|
12
|
+
"https://www.law.cornell.edu/cfr/text/42/440.255#c",
|
|
13
|
+
)
|
|
14
|
+
# Placing the patient's health in serious jeopardy
|
|
15
|
+
# Serious impairment to bodily functions
|
|
16
|
+
# Serious dysfunction of any bodily organ or part
|
policyengine_us/variables/gov/hhs/medicaid/emergency_medicaid/is_emergency_medicaid_eligible.py
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class is_emergency_medicaid_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Eligible for Emergency Medicaid"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.law.cornell.edu/uscode/text/42/1396b#v_2",
|
|
11
|
+
"https://www.law.cornell.edu/cfr/text/42/435.406",
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
def formula(person, period, parameters):
|
|
15
|
+
p = parameters(period).gov.hhs.medicaid.emergency_medicaid
|
|
16
|
+
|
|
17
|
+
has_emergency_condition = person(
|
|
18
|
+
"has_emergency_medical_condition", period
|
|
19
|
+
)
|
|
20
|
+
medicaid_category = person("medicaid_category", period)
|
|
21
|
+
meets_medicaid_requirements = (
|
|
22
|
+
medicaid_category != medicaid_category.possible_values.NONE
|
|
23
|
+
)
|
|
24
|
+
immigration_status_eligible = person(
|
|
25
|
+
"is_medicaid_immigration_status_eligible", period
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
p.enabled
|
|
30
|
+
& has_emergency_condition
|
|
31
|
+
& meets_medicaid_requirements
|
|
32
|
+
& ~immigration_status_eligible
|
|
33
|
+
)
|