policyengine-us 1.465.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/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/ssa/revenue/oasdi_share_of_gross_ss.yaml +13 -0
- 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/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/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/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 +40 -21
- policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_revenue_oasdi.yaml +57 -14
- policyengine_us/tests/policy/baseline/gov/ssa/revenue/tob_tier_split.yaml +17 -35
- 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/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/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/run_selective_tests.py +5 -0
- policyengine_us/tests/test_batched.py +106 -11
- 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/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 +51 -15
- policyengine_us/variables/gov/ssa/revenue/tob_revenue_oasdi.py +66 -15
- policyengine_us/variables/gov/ssa/revenue/tob_revenue_total.py +11 -6
- 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/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/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/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.465.0.dist-info → policyengine_us-1.471.0.dist-info}/METADATA +1 -1
- {policyengine_us-1.465.0.dist-info → policyengine_us-1.471.0.dist-info}/RECORD +207 -19
- {policyengine_us-1.465.0.dist-info → policyengine_us-1.471.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.465.0.dist-info → policyengine_us-1.471.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.465.0.dist-info → policyengine_us-1.471.0.dist-info}/licenses/LICENSE +0 -0
policyengine_us/tests/policy/baseline/gov/states/or/odhs/tanf/or_tanf_eli_income_eligible.yaml
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Oregon TANF ELI Income Eligibility (OAR 461-155-0030(3))
|
|
2
|
+
# Tests countable income < (payment standard × 2)
|
|
3
|
+
|
|
4
|
+
- name: Zero countable income passes ELI test
|
|
5
|
+
# 3-person ELI limit = $506 × 2 = $1,012
|
|
6
|
+
period: 2024-01
|
|
7
|
+
input:
|
|
8
|
+
state_code: OR
|
|
9
|
+
spm_unit_size: 3
|
|
10
|
+
or_tanf_countable_income: 0
|
|
11
|
+
output:
|
|
12
|
+
or_tanf_eli_income_eligible: true
|
|
13
|
+
|
|
14
|
+
- name: Countable income below ELI limit is eligible
|
|
15
|
+
# 3-person ELI limit = $506 × 2 = $1,012
|
|
16
|
+
period: 2024-01
|
|
17
|
+
input:
|
|
18
|
+
state_code: OR
|
|
19
|
+
spm_unit_size: 3
|
|
20
|
+
or_tanf_countable_income: 800
|
|
21
|
+
output:
|
|
22
|
+
or_tanf_eli_income_eligible: true
|
|
23
|
+
|
|
24
|
+
- name: Countable income just below ELI limit is eligible
|
|
25
|
+
# 3-person ELI limit = $506 × 2 = $1,012
|
|
26
|
+
# $1,011 < $1,012 = eligible
|
|
27
|
+
period: 2024-01
|
|
28
|
+
input:
|
|
29
|
+
state_code: OR
|
|
30
|
+
spm_unit_size: 3
|
|
31
|
+
or_tanf_countable_income: 1_011
|
|
32
|
+
output:
|
|
33
|
+
or_tanf_eli_income_eligible: true
|
|
34
|
+
|
|
35
|
+
- name: Countable income at ELI limit is not eligible
|
|
36
|
+
# 3-person ELI limit = $506 × 2 = $1,012
|
|
37
|
+
# $1,012 >= $1,012 = not eligible
|
|
38
|
+
period: 2024-01
|
|
39
|
+
input:
|
|
40
|
+
state_code: OR
|
|
41
|
+
spm_unit_size: 3
|
|
42
|
+
or_tanf_countable_income: 1_012
|
|
43
|
+
output:
|
|
44
|
+
or_tanf_eli_income_eligible: false
|
|
45
|
+
|
|
46
|
+
- name: Countable income above ELI limit is not eligible
|
|
47
|
+
# 3-person ELI limit = $506 × 2 = $1,012
|
|
48
|
+
period: 2024-01
|
|
49
|
+
input:
|
|
50
|
+
state_code: OR
|
|
51
|
+
spm_unit_size: 3
|
|
52
|
+
or_tanf_countable_income: 1_100
|
|
53
|
+
output:
|
|
54
|
+
or_tanf_eli_income_eligible: false
|
|
55
|
+
|
|
56
|
+
- name: Single person ELI test
|
|
57
|
+
# 1-person ELI limit = $339 × 2 = $678
|
|
58
|
+
period: 2024-01
|
|
59
|
+
input:
|
|
60
|
+
state_code: OR
|
|
61
|
+
spm_unit_size: 1
|
|
62
|
+
or_tanf_countable_income: 677
|
|
63
|
+
output:
|
|
64
|
+
or_tanf_eli_income_eligible: true
|
|
65
|
+
|
|
66
|
+
- name: Large household ELI test with additional person increment
|
|
67
|
+
# 11-person payment standard = $1,204 + $110 = $1,314
|
|
68
|
+
# ELI limit = $1,314 × 2 = $2,628
|
|
69
|
+
period: 2024-01
|
|
70
|
+
input:
|
|
71
|
+
state_code: OR
|
|
72
|
+
spm_unit_size: 11
|
|
73
|
+
or_tanf_countable_income: 2_627
|
|
74
|
+
output:
|
|
75
|
+
or_tanf_eli_income_eligible: true
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Oregon TANF Overall Eligibility (OAR 461-135-0070)
|
|
2
|
+
# Requires: demographic eligibility + citizenship + income eligibility + resources eligibility
|
|
3
|
+
|
|
4
|
+
- name: All eligibility criteria met is eligible
|
|
5
|
+
period: 2024-01
|
|
6
|
+
input:
|
|
7
|
+
state_code: OR
|
|
8
|
+
is_demographic_tanf_eligible: true
|
|
9
|
+
is_citizen_or_legal_immigrant: true
|
|
10
|
+
or_tanf_income_eligible: true
|
|
11
|
+
or_tanf_resources_eligible: true
|
|
12
|
+
output:
|
|
13
|
+
or_tanf_eligible: true
|
|
14
|
+
|
|
15
|
+
- name: Not demographic eligible is not eligible
|
|
16
|
+
period: 2024-01
|
|
17
|
+
input:
|
|
18
|
+
state_code: OR
|
|
19
|
+
is_demographic_tanf_eligible: false
|
|
20
|
+
is_citizen_or_legal_immigrant: true
|
|
21
|
+
or_tanf_income_eligible: true
|
|
22
|
+
or_tanf_resources_eligible: true
|
|
23
|
+
output:
|
|
24
|
+
or_tanf_eligible: false
|
|
25
|
+
|
|
26
|
+
- name: No citizen or legal immigrant is not eligible
|
|
27
|
+
period: 2024-01
|
|
28
|
+
input:
|
|
29
|
+
state_code: OR
|
|
30
|
+
is_demographic_tanf_eligible: true
|
|
31
|
+
is_citizen_or_legal_immigrant: false
|
|
32
|
+
or_tanf_income_eligible: true
|
|
33
|
+
or_tanf_resources_eligible: true
|
|
34
|
+
output:
|
|
35
|
+
or_tanf_eligible: false
|
|
36
|
+
|
|
37
|
+
- name: Not income eligible is not eligible
|
|
38
|
+
period: 2024-01
|
|
39
|
+
input:
|
|
40
|
+
state_code: OR
|
|
41
|
+
is_demographic_tanf_eligible: true
|
|
42
|
+
is_citizen_or_legal_immigrant: true
|
|
43
|
+
or_tanf_income_eligible: false
|
|
44
|
+
or_tanf_resources_eligible: true
|
|
45
|
+
output:
|
|
46
|
+
or_tanf_eligible: false
|
|
47
|
+
|
|
48
|
+
- name: Not resources eligible is not eligible
|
|
49
|
+
period: 2024-01
|
|
50
|
+
input:
|
|
51
|
+
state_code: OR
|
|
52
|
+
is_demographic_tanf_eligible: true
|
|
53
|
+
is_citizen_or_legal_immigrant: true
|
|
54
|
+
or_tanf_income_eligible: true
|
|
55
|
+
or_tanf_resources_eligible: false
|
|
56
|
+
output:
|
|
57
|
+
or_tanf_eligible: false
|
|
58
|
+
|
|
59
|
+
- name: Multiple eligibility failures
|
|
60
|
+
period: 2024-01
|
|
61
|
+
input:
|
|
62
|
+
state_code: OR
|
|
63
|
+
is_demographic_tanf_eligible: false
|
|
64
|
+
is_citizen_or_legal_immigrant: false
|
|
65
|
+
or_tanf_income_eligible: false
|
|
66
|
+
or_tanf_resources_eligible: false
|
|
67
|
+
output:
|
|
68
|
+
or_tanf_eligible: false
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Oregon TANF Income Eligibility (OAR 461-160-0100)
|
|
2
|
+
# Standard test: countable income < countable limit AND adjusted income < adjusted limit
|
|
3
|
+
# ELI test (for enrolled recipients with earned income): countable income < ELI limit (2 × payment standard)
|
|
4
|
+
|
|
5
|
+
- name: Zero income passes both tests
|
|
6
|
+
period: 2024-01
|
|
7
|
+
input:
|
|
8
|
+
state_code: OR
|
|
9
|
+
spm_unit_size: 3
|
|
10
|
+
or_tanf_countable_income: 0
|
|
11
|
+
or_tanf_adjusted_income: 0
|
|
12
|
+
output:
|
|
13
|
+
or_tanf_income_eligible: true
|
|
14
|
+
|
|
15
|
+
- name: Countable income below limit and adjusted income below limit is eligible
|
|
16
|
+
# 3-person household:
|
|
17
|
+
# Countable income limit = $616
|
|
18
|
+
# Adjusted income limit = $485
|
|
19
|
+
# Countable income ($400) < $616 - passes
|
|
20
|
+
# Adjusted income ($300) < $485 - passes
|
|
21
|
+
period: 2024-01
|
|
22
|
+
input:
|
|
23
|
+
state_code: OR
|
|
24
|
+
spm_unit_size: 3
|
|
25
|
+
or_tanf_countable_income: 400
|
|
26
|
+
or_tanf_adjusted_income: 300
|
|
27
|
+
output:
|
|
28
|
+
or_tanf_income_eligible: true
|
|
29
|
+
|
|
30
|
+
- name: Countable income at or above limit is ineligible
|
|
31
|
+
# 3-person household:
|
|
32
|
+
# Countable income limit = $616
|
|
33
|
+
# Adjusted income limit = $485
|
|
34
|
+
# Countable income ($616) >= $616 - fails
|
|
35
|
+
period: 2024-01
|
|
36
|
+
input:
|
|
37
|
+
state_code: OR
|
|
38
|
+
spm_unit_size: 3
|
|
39
|
+
or_tanf_countable_income: 616
|
|
40
|
+
or_tanf_adjusted_income: 300
|
|
41
|
+
output:
|
|
42
|
+
or_tanf_income_eligible: false
|
|
43
|
+
|
|
44
|
+
- name: Adjusted income at or above limit is ineligible
|
|
45
|
+
# 3-person household:
|
|
46
|
+
# Countable income limit = $616
|
|
47
|
+
# Adjusted income limit = $485
|
|
48
|
+
# Countable income ($500) < $616 - passes
|
|
49
|
+
# Adjusted income ($485) >= $485 - fails
|
|
50
|
+
period: 2024-01
|
|
51
|
+
input:
|
|
52
|
+
state_code: OR
|
|
53
|
+
spm_unit_size: 3
|
|
54
|
+
or_tanf_countable_income: 500
|
|
55
|
+
or_tanf_adjusted_income: 485
|
|
56
|
+
output:
|
|
57
|
+
or_tanf_income_eligible: false
|
|
58
|
+
|
|
59
|
+
- name: Just below both limits is eligible
|
|
60
|
+
# 3-person household:
|
|
61
|
+
# Countable income ($615) < $616 - passes
|
|
62
|
+
# Adjusted income ($484) < $485 - passes
|
|
63
|
+
period: 2024-01
|
|
64
|
+
input:
|
|
65
|
+
state_code: OR
|
|
66
|
+
spm_unit_size: 3
|
|
67
|
+
or_tanf_countable_income: 615
|
|
68
|
+
or_tanf_adjusted_income: 484
|
|
69
|
+
output:
|
|
70
|
+
or_tanf_income_eligible: true
|
|
71
|
+
|
|
72
|
+
- name: Single person household income test
|
|
73
|
+
# 1-person household:
|
|
74
|
+
# Countable income limit = $345
|
|
75
|
+
# Adjusted income limit = $326
|
|
76
|
+
# Countable income ($300) < $345 - passes
|
|
77
|
+
# Adjusted income ($250) < $326 - passes
|
|
78
|
+
period: 2024-01
|
|
79
|
+
input:
|
|
80
|
+
state_code: OR
|
|
81
|
+
spm_unit_size: 1
|
|
82
|
+
or_tanf_countable_income: 300
|
|
83
|
+
or_tanf_adjusted_income: 250
|
|
84
|
+
output:
|
|
85
|
+
or_tanf_income_eligible: true
|
|
86
|
+
|
|
87
|
+
# ELI (Exit Limit Increase) test cases
|
|
88
|
+
# ELI applies when enrolled in TANF AND has earned income
|
|
89
|
+
# ELI limit = payment_standard × eli_multiplier (2)
|
|
90
|
+
|
|
91
|
+
- name: ELI eligible - income above standard limit but below ELI limit
|
|
92
|
+
# 3-person household:
|
|
93
|
+
# Standard countable limit = $616
|
|
94
|
+
# ELI limit = $506 × 2 = $1,012
|
|
95
|
+
# Countable income ($800) > $616 (fails standard) but < $1,012 (passes ELI)
|
|
96
|
+
# With ELI, family remains eligible
|
|
97
|
+
period: 2024-01
|
|
98
|
+
input:
|
|
99
|
+
state_code: OR
|
|
100
|
+
spm_unit_size: 3
|
|
101
|
+
is_tanf_enrolled: true
|
|
102
|
+
or_tanf_countable_income: 800
|
|
103
|
+
or_tanf_adjusted_income: 500
|
|
104
|
+
employment_income_before_lsr: 6_000
|
|
105
|
+
output:
|
|
106
|
+
or_tanf_income_eligible: true
|
|
107
|
+
|
|
108
|
+
- name: ELI eligible - income at ELI limit is ineligible
|
|
109
|
+
# 3-person household:
|
|
110
|
+
# ELI limit = $506 × 2 = $1,012
|
|
111
|
+
# Countable income ($1,012) >= $1,012 - fails ELI test
|
|
112
|
+
period: 2024-01
|
|
113
|
+
input:
|
|
114
|
+
state_code: OR
|
|
115
|
+
spm_unit_size: 3
|
|
116
|
+
is_tanf_enrolled: true
|
|
117
|
+
or_tanf_countable_income: 1_012
|
|
118
|
+
or_tanf_adjusted_income: 600
|
|
119
|
+
employment_income_before_lsr: 6_000
|
|
120
|
+
output:
|
|
121
|
+
or_tanf_income_eligible: false
|
|
122
|
+
|
|
123
|
+
- name: ELI eligible - income just below ELI limit is eligible
|
|
124
|
+
# 3-person household:
|
|
125
|
+
# ELI limit = $506 × 2 = $1,012
|
|
126
|
+
# Countable income ($1,011) < $1,012 - passes ELI test
|
|
127
|
+
period: 2024-01
|
|
128
|
+
input:
|
|
129
|
+
state_code: OR
|
|
130
|
+
spm_unit_size: 3
|
|
131
|
+
is_tanf_enrolled: true
|
|
132
|
+
or_tanf_countable_income: 1_011
|
|
133
|
+
or_tanf_adjusted_income: 600
|
|
134
|
+
employment_income_before_lsr: 6_000
|
|
135
|
+
output:
|
|
136
|
+
or_tanf_income_eligible: true
|
|
137
|
+
|
|
138
|
+
- name: Not ELI eligible - enrolled but no earned income uses standard test
|
|
139
|
+
# 3-person household with only unearned income (not ELI eligible)
|
|
140
|
+
# Standard countable limit = $616
|
|
141
|
+
# Countable income ($700) >= $616 - fails standard test
|
|
142
|
+
period: 2024-01
|
|
143
|
+
input:
|
|
144
|
+
state_code: OR
|
|
145
|
+
spm_unit_size: 3
|
|
146
|
+
is_tanf_enrolled: true
|
|
147
|
+
or_tanf_countable_income: 700
|
|
148
|
+
or_tanf_adjusted_income: 400
|
|
149
|
+
output:
|
|
150
|
+
or_tanf_income_eligible: false
|
|
151
|
+
|
|
152
|
+
- name: Not enrolled with earned income - uses standard test not ELI
|
|
153
|
+
# New applicant (not enrolled) with earned income
|
|
154
|
+
# ELI does NOT apply to new applicants
|
|
155
|
+
# Standard countable limit = $616
|
|
156
|
+
# Countable income ($700) >= $616 - fails standard test
|
|
157
|
+
period: 2024-01
|
|
158
|
+
input:
|
|
159
|
+
state_code: OR
|
|
160
|
+
spm_unit_size: 3
|
|
161
|
+
is_tanf_enrolled: false
|
|
162
|
+
or_tanf_countable_income: 700
|
|
163
|
+
or_tanf_adjusted_income: 400
|
|
164
|
+
employment_income_before_lsr: 6_000
|
|
165
|
+
output:
|
|
166
|
+
or_tanf_income_eligible: false
|
|
167
|
+
|
|
168
|
+
# Household size > 10 (additional person increment tests)
|
|
169
|
+
|
|
170
|
+
- name: Eleven person household income test with additional person increment
|
|
171
|
+
# 11-person household:
|
|
172
|
+
# Countable income limit = $1,209 (size 10) + $125 = $1,334
|
|
173
|
+
# Adjusted income limit = $1,150 (size 10) + $110 = $1,260
|
|
174
|
+
# Countable income ($1,200) < $1,334 - passes
|
|
175
|
+
# Adjusted income ($1,100) < $1,260 - passes
|
|
176
|
+
period: 2024-01
|
|
177
|
+
input:
|
|
178
|
+
state_code: OR
|
|
179
|
+
spm_unit_size: 11
|
|
180
|
+
or_tanf_countable_income: 1_200
|
|
181
|
+
or_tanf_adjusted_income: 1_100
|
|
182
|
+
output:
|
|
183
|
+
or_tanf_income_eligible: true
|
|
184
|
+
|
|
185
|
+
- name: Twelve person household income test
|
|
186
|
+
# 12-person household:
|
|
187
|
+
# Countable income limit = $1,209 + 2 × $125 = $1,459
|
|
188
|
+
# Adjusted income limit = $1,150 + 2 × $110 = $1,370
|
|
189
|
+
# Countable income ($1,400) < $1,459 - passes
|
|
190
|
+
# Adjusted income ($1,300) < $1,370 - passes
|
|
191
|
+
period: 2024-01
|
|
192
|
+
input:
|
|
193
|
+
state_code: OR
|
|
194
|
+
spm_unit_size: 12
|
|
195
|
+
or_tanf_countable_income: 1_400
|
|
196
|
+
or_tanf_adjusted_income: 1_300
|
|
197
|
+
output:
|
|
198
|
+
or_tanf_income_eligible: true
|
|
199
|
+
|
|
200
|
+
- name: Eleven person household fails adjusted income test
|
|
201
|
+
# 11-person household:
|
|
202
|
+
# Adjusted income limit = $1,150 + $110 = $1,260
|
|
203
|
+
# Adjusted income ($1,260) >= $1,260 - fails
|
|
204
|
+
period: 2024-01
|
|
205
|
+
input:
|
|
206
|
+
state_code: OR
|
|
207
|
+
spm_unit_size: 11
|
|
208
|
+
or_tanf_countable_income: 1_200
|
|
209
|
+
or_tanf_adjusted_income: 1_260
|
|
210
|
+
output:
|
|
211
|
+
or_tanf_income_eligible: false
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Oregon TANF Payment Standards (OAR 461-155-0030)
|
|
2
|
+
# Monthly payment standards for benefit groups containing an adult
|
|
3
|
+
# Values effective since July 1, 2011
|
|
4
|
+
|
|
5
|
+
- name: Single person household gets $339 monthly payment standard
|
|
6
|
+
period: 2024-01
|
|
7
|
+
input:
|
|
8
|
+
state_code: OR
|
|
9
|
+
spm_unit_size: 1
|
|
10
|
+
output:
|
|
11
|
+
or_tanf_payment_standard: 339
|
|
12
|
+
|
|
13
|
+
- name: Two person household gets $432 monthly payment standard
|
|
14
|
+
period: 2024-01
|
|
15
|
+
input:
|
|
16
|
+
state_code: OR
|
|
17
|
+
spm_unit_size: 2
|
|
18
|
+
output:
|
|
19
|
+
or_tanf_payment_standard: 432
|
|
20
|
+
|
|
21
|
+
- name: Three person household gets $506 monthly payment standard
|
|
22
|
+
period: 2024-01
|
|
23
|
+
input:
|
|
24
|
+
state_code: OR
|
|
25
|
+
spm_unit_size: 3
|
|
26
|
+
output:
|
|
27
|
+
or_tanf_payment_standard: 506
|
|
28
|
+
|
|
29
|
+
- name: Four person household gets $621 monthly payment standard
|
|
30
|
+
period: 2024-01
|
|
31
|
+
input:
|
|
32
|
+
state_code: OR
|
|
33
|
+
spm_unit_size: 4
|
|
34
|
+
output:
|
|
35
|
+
or_tanf_payment_standard: 621
|
|
36
|
+
|
|
37
|
+
- name: Five person household gets $721 monthly payment standard
|
|
38
|
+
period: 2024-01
|
|
39
|
+
input:
|
|
40
|
+
state_code: OR
|
|
41
|
+
spm_unit_size: 5
|
|
42
|
+
output:
|
|
43
|
+
or_tanf_payment_standard: 721
|
|
44
|
+
|
|
45
|
+
- name: Six person household gets $833 monthly payment standard
|
|
46
|
+
period: 2024-01
|
|
47
|
+
input:
|
|
48
|
+
state_code: OR
|
|
49
|
+
spm_unit_size: 6
|
|
50
|
+
output:
|
|
51
|
+
or_tanf_payment_standard: 833
|
|
52
|
+
|
|
53
|
+
- name: Ten person household gets $1,204 monthly payment standard
|
|
54
|
+
period: 2024-01
|
|
55
|
+
input:
|
|
56
|
+
state_code: OR
|
|
57
|
+
spm_unit_size: 10
|
|
58
|
+
output:
|
|
59
|
+
or_tanf_payment_standard: 1_204
|
|
60
|
+
|
|
61
|
+
- name: Eleven person household gets payment standard with additional increment
|
|
62
|
+
# Size 10 ($1,204) + $110 increment = $1,314
|
|
63
|
+
period: 2024-01
|
|
64
|
+
input:
|
|
65
|
+
state_code: OR
|
|
66
|
+
spm_unit_size: 11
|
|
67
|
+
output:
|
|
68
|
+
or_tanf_payment_standard: 1_314
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Oregon TANF Resources Eligibility (OAR 461-160-0015)
|
|
2
|
+
# Resource limit: $10,000
|
|
3
|
+
|
|
4
|
+
- name: Zero resources is eligible
|
|
5
|
+
period: 2024-01
|
|
6
|
+
input:
|
|
7
|
+
state_code: OR
|
|
8
|
+
spm_unit_assets: 0
|
|
9
|
+
output:
|
|
10
|
+
or_tanf_resources_eligible: true
|
|
11
|
+
|
|
12
|
+
- name: Resources below limit is eligible
|
|
13
|
+
# Countable resources ($5,000) <= $10,000 limit
|
|
14
|
+
period: 2024-01
|
|
15
|
+
input:
|
|
16
|
+
state_code: OR
|
|
17
|
+
spm_unit_assets: 5_000
|
|
18
|
+
output:
|
|
19
|
+
or_tanf_resources_eligible: true
|
|
20
|
+
|
|
21
|
+
- name: Resources at limit is eligible
|
|
22
|
+
# Countable resources ($10,000) <= $10,000 limit
|
|
23
|
+
period: 2024-01
|
|
24
|
+
input:
|
|
25
|
+
state_code: OR
|
|
26
|
+
spm_unit_assets: 10_000
|
|
27
|
+
output:
|
|
28
|
+
or_tanf_resources_eligible: true
|
|
29
|
+
|
|
30
|
+
- name: Resources above limit is not eligible
|
|
31
|
+
# Countable resources ($10,001) > $10,000 limit
|
|
32
|
+
period: 2024-01
|
|
33
|
+
input:
|
|
34
|
+
state_code: OR
|
|
35
|
+
spm_unit_assets: 10_001
|
|
36
|
+
output:
|
|
37
|
+
or_tanf_resources_eligible: false
|
|
@@ -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/([^/]+)",
|
|
@@ -37,11 +37,31 @@ def split_into_batches(
|
|
|
37
37
|
if exclude is None:
|
|
38
38
|
exclude = []
|
|
39
39
|
|
|
40
|
-
# Special handling for contrib tests -
|
|
40
|
+
# Special handling for contrib tests - split into 7 batches by memory usage
|
|
41
41
|
# Only apply to policy/contrib (structural tests), not baseline/contrib
|
|
42
42
|
if str(base_path).endswith("policy/contrib"):
|
|
43
|
-
#
|
|
44
|
-
#
|
|
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)
|
|
45
65
|
subdirs = sorted(
|
|
46
66
|
[
|
|
47
67
|
item
|
|
@@ -50,25 +70,100 @@ def split_into_batches(
|
|
|
50
70
|
]
|
|
51
71
|
)
|
|
52
72
|
|
|
53
|
-
# Get root level YAML files
|
|
73
|
+
# Get root level YAML files
|
|
54
74
|
root_files = sorted(list(base_path.glob("*.yaml")))
|
|
55
75
|
|
|
56
|
-
#
|
|
57
|
-
|
|
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 = []
|
|
58
105
|
for subdir in subdirs:
|
|
59
|
-
|
|
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)
|
|
60
122
|
|
|
61
|
-
#
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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)
|
|
65
128
|
|
|
66
129
|
return batches
|
|
67
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
|
+
|
|
68
149
|
# Special handling for reform tests - run all together in one batch
|
|
69
150
|
if "reform" in str(base_path):
|
|
70
151
|
return [[str(base_path)]]
|
|
71
152
|
|
|
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
|
+
|
|
72
167
|
# Special handling for baseline tests
|
|
73
168
|
if "baseline" in str(base_path) and str(base_path).endswith("baseline"):
|
|
74
169
|
states_path = base_path / "gov" / "states"
|
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
|
+
)
|