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
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class in_tanf_countable_earned_income_for_eligibility(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = (
|
|
8
|
+
"Indiana TANF countable earned income for eligibility determination"
|
|
9
|
+
)
|
|
10
|
+
unit = USD
|
|
11
|
+
definition_period = MONTH
|
|
12
|
+
reference = (
|
|
13
|
+
"https://iar.iga.in.gov/code/2026/470/10.3#470-10.3-4-4",
|
|
14
|
+
"https://iga.in.gov/laws/2025/ic/titles/12/#12-14-2-3",
|
|
15
|
+
)
|
|
16
|
+
defined_for = StateCode.IN
|
|
17
|
+
|
|
18
|
+
def formula(spm_unit, period, parameters):
|
|
19
|
+
# NOTE: The $30 and 1/3 disregard only applies for the first 4 months
|
|
20
|
+
# of continuing eligibility. This simplified implementation always
|
|
21
|
+
# applies the $30 and 1/3 disregard.
|
|
22
|
+
p = parameters(period).gov.states["in"].fssa.tanf.income.deductions
|
|
23
|
+
person = spm_unit.members
|
|
24
|
+
gross_earned = person("tanf_gross_earned_income", period)
|
|
25
|
+
|
|
26
|
+
# $90 per earner, then $30 + 1/3 per unit (470 IAC 10.3-4-4(c))
|
|
27
|
+
after_work_expense = spm_unit.sum(
|
|
28
|
+
max_(gross_earned - p.work_expense.amount, 0)
|
|
29
|
+
)
|
|
30
|
+
after_flat = max_(
|
|
31
|
+
after_work_expense - p.eligibility.flat_disregard.amount, 0
|
|
32
|
+
)
|
|
33
|
+
return after_flat * (1 - p.eligibility.earned_income_disregard.rate)
|
policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_income_for_eligibility.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class in_tanf_countable_income_for_eligibility(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Indiana TANF countable income for eligibility determination"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
reference = (
|
|
11
|
+
"https://iar.iga.in.gov/code/2026/470/10.3#470-10.3-4-4",
|
|
12
|
+
"https://iga.in.gov/laws/2025/ic/titles/12/#12-14-2-3",
|
|
13
|
+
)
|
|
14
|
+
defined_for = StateCode.IN
|
|
15
|
+
|
|
16
|
+
adds = [
|
|
17
|
+
"in_tanf_countable_earned_income_for_eligibility",
|
|
18
|
+
"tanf_gross_unearned_income",
|
|
19
|
+
]
|
policyengine_us/variables/gov/states/in/fssa/tanf/income/in_tanf_countable_income_for_payment.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class in_tanf_countable_income_for_payment(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Indiana TANF countable income for payment calculation"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
reference = "https://iar.iga.in.gov/code/2026/470/10.3#470-10.3-4-4"
|
|
11
|
+
defined_for = StateCode.IN
|
|
12
|
+
|
|
13
|
+
adds = ["in_tanf_countable_earned_income", "tanf_gross_unearned_income"]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class in_tanf_countable_resources(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Indiana TANF countable resources"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
defined_for = StateCode.IN
|
|
11
|
+
reference = (
|
|
12
|
+
"https://iar.iga.in.gov/code/2026/470/10.3#470-10.3-4-2",
|
|
13
|
+
"https://iga.in.gov/laws/2025/ic/titles/12/#12-14-2-1",
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
def formula(spm_unit, period, parameters):
|
|
17
|
+
p = (
|
|
18
|
+
parameters(period)
|
|
19
|
+
.gov.states["in"]
|
|
20
|
+
.fssa.tanf.resources.vehicle_exemption
|
|
21
|
+
)
|
|
22
|
+
total_assets = spm_unit("spm_unit_assets", period.this_year)
|
|
23
|
+
vehicle_value = spm_unit.household(
|
|
24
|
+
"household_vehicles_value", period.this_year
|
|
25
|
+
)
|
|
26
|
+
excluded_vehicle = min_(vehicle_value, p.amount)
|
|
27
|
+
return max_(total_assets - excluded_vehicle, 0)
|
policyengine_us/variables/gov/states/mo/tax/income/adjusted_gross_income/mo_adjusted_gross_income.py
CHANGED
|
@@ -39,5 +39,5 @@ class mo_adjusted_gross_income(Variable):
|
|
|
39
39
|
)
|
|
40
40
|
fed_agi = gross_income - ind_total_personal_alds - allocated_alds
|
|
41
41
|
# return MO AGI including MO additions and MO subtractions
|
|
42
|
-
subtractions = person("
|
|
42
|
+
subtractions = person("mo_agi_subtractions", period)
|
|
43
43
|
return max_(0, fed_agi - subtractions)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class mo_agi_subtractions(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Missouri AGI subtractions"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
defined_for = StateCode.MO
|
|
11
|
+
|
|
12
|
+
def formula(person, period, parameters):
|
|
13
|
+
p = parameters(period).gov.states.mo.tax.income.subtractions
|
|
14
|
+
total_subtractions = add(person, period, p.agi_subtractions)
|
|
15
|
+
# Prevent negative subtractions from acting as additions
|
|
16
|
+
return max_(0, total_subtractions)
|
policyengine_us/variables/gov/states/mo/tax/income/subtractions/mo_capital_gains_subtraction.py
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class mo_capital_gains_subtraction(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
label = "Missouri capital gains subtraction"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
reference = (
|
|
11
|
+
"https://dor.mo.gov/faq/taxation/individual/capital-gains-subtraction.html", # MO form MO-A
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.MO
|
|
14
|
+
|
|
15
|
+
def formula(tax_unit, period, parameters):
|
|
16
|
+
net_capital_gain = max_(0, tax_unit("net_capital_gain", period))
|
|
17
|
+
p = parameters(
|
|
18
|
+
period
|
|
19
|
+
).gov.states.mo.tax.income.subtractions.net_capital_gain
|
|
20
|
+
return net_capital_gain * p.rate
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class mo_capital_gains_subtraction_person(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Missouri capital gains subtraction for each person"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
reference = (
|
|
11
|
+
"https://dor.mo.gov/faq/taxation/individual/capital-gains-subtraction.html",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.MO
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
tax_unit = person.tax_unit
|
|
17
|
+
# Get the tax unit level capital gains subtraction
|
|
18
|
+
tax_unit_subtraction = tax_unit("mo_capital_gains_subtraction", period)
|
|
19
|
+
# Allocate proportionally based on each person's share of
|
|
20
|
+
# capital gains (both short-term and long-term) to match
|
|
21
|
+
# the net_capital_gain used at the tax unit level
|
|
22
|
+
person_cg = person("capital_gains", period)
|
|
23
|
+
tax_unit_cg = tax_unit.sum(person_cg)
|
|
24
|
+
# Use mask to avoid divide-by-zero, default to zero allocation
|
|
25
|
+
person_share = np.zeros_like(tax_unit_cg)
|
|
26
|
+
mask = tax_unit_cg > 0
|
|
27
|
+
person_share[mask] = person_cg[mask] / tax_unit_cg[mask]
|
|
28
|
+
return person_share * tax_unit_subtraction
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class oh_owf_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Ohio OWF eligibility"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
defined_for = StateCode.OH
|
|
10
|
+
reference = "https://codes.ohio.gov/ohio-revised-code/section-5107.10"
|
|
11
|
+
|
|
12
|
+
def formula(spm_unit, period, parameters):
|
|
13
|
+
person = spm_unit.members
|
|
14
|
+
|
|
15
|
+
# Must meet demographic requirements (minor child with parent/relative
|
|
16
|
+
# OR pregnant woman at least 6 months pregnant)
|
|
17
|
+
# Use federal demographic eligibility
|
|
18
|
+
demographic_eligible = spm_unit("is_demographic_tanf_eligible", period)
|
|
19
|
+
|
|
20
|
+
# Must have at least one citizen or legal immigrant
|
|
21
|
+
# Use federal immigration eligibility
|
|
22
|
+
immigration_status_eligible = spm_unit.any(
|
|
23
|
+
person("is_citizen_or_legal_immigrant", period)
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
# Must meet income requirements
|
|
27
|
+
# (oh_owf_income_eligible handles both initial and ongoing tests)
|
|
28
|
+
income_eligible = spm_unit("oh_owf_income_eligible", period)
|
|
29
|
+
|
|
30
|
+
# Ohio has NO resource limits per working_references.md:
|
|
31
|
+
# "No Resource Test: Resources such as a car or home ownership
|
|
32
|
+
# are NOT considered in determining eligibility"
|
|
33
|
+
|
|
34
|
+
# All requirements must be met
|
|
35
|
+
return (
|
|
36
|
+
demographic_eligible
|
|
37
|
+
& immigration_status_eligible
|
|
38
|
+
& income_eligible
|
|
39
|
+
)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class oh_owf_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Ohio OWF income eligibility"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
defined_for = StateCode.OH
|
|
10
|
+
reference = (
|
|
11
|
+
"https://codes.ohio.gov/ohio-administrative-code/rule-5101:1-23-20"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
def formula(spm_unit, period, parameters):
|
|
15
|
+
# Check enrollment status
|
|
16
|
+
enrolled = spm_unit("is_tanf_enrolled", period)
|
|
17
|
+
|
|
18
|
+
# Initial eligibility test: gross income < 50% FPL (new applicants)
|
|
19
|
+
initial_eligible = spm_unit("oh_owf_initial_income_eligible", period)
|
|
20
|
+
|
|
21
|
+
# Ongoing eligibility test: countable income < payment standard
|
|
22
|
+
countable_income = spm_unit("oh_owf_countable_income", period)
|
|
23
|
+
payment_standard = spm_unit("oh_owf_payment_standard", period)
|
|
24
|
+
ongoing_eligible = countable_income < payment_standard
|
|
25
|
+
|
|
26
|
+
# Per ORC 5107.10(D):
|
|
27
|
+
# - New applicants: must pass both initial (50% FPL) and ongoing tests
|
|
28
|
+
# - Enrolled recipients: only need to pass ongoing test
|
|
29
|
+
return where(
|
|
30
|
+
enrolled,
|
|
31
|
+
ongoing_eligible,
|
|
32
|
+
initial_eligible & ongoing_eligible,
|
|
33
|
+
)
|
policyengine_us/variables/gov/states/oh/odjfs/owf/eligibility/oh_owf_initial_income_eligible.py
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class oh_owf_initial_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Ohio OWF initial income eligibility"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
defined_for = StateCode.OH
|
|
10
|
+
reference = (
|
|
11
|
+
"https://codes.ohio.gov/ohio-administrative-code/rule-5101:1-23-20",
|
|
12
|
+
"https://dam.assets.ohio.gov/image/upload/jfs.ohio.gov/OWF/tanf/2024%20TANF%20State%20Plan%20Combined.pdf#page=4",
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
def formula(spm_unit, period, parameters):
|
|
16
|
+
# Get gross income (before any disregards) using federal TANF variables
|
|
17
|
+
gross_income = add(
|
|
18
|
+
spm_unit,
|
|
19
|
+
period,
|
|
20
|
+
["tanf_gross_earned_income", "tanf_gross_unearned_income"],
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
# Get initial eligibility income limit (50% of FPL effective July 1)
|
|
24
|
+
fpg = spm_unit("oh_owf_fpg", period)
|
|
25
|
+
p = parameters(period).gov.states.oh.odjfs.owf.initial_eligibility
|
|
26
|
+
income_limit = fpg * p.income_limit_rate
|
|
27
|
+
|
|
28
|
+
# Initial eligibility test: gross income must be below limit
|
|
29
|
+
# Per ORC 5107.10(D)(1) and ODJFS Payment Standards Table
|
|
30
|
+
return gross_income < income_limit
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class oh_owf_countable_income(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Ohio OWF countable income"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
defined_for = StateCode.OH
|
|
11
|
+
reference = (
|
|
12
|
+
"https://codes.ohio.gov/ohio-administrative-code/rule-5101:1-23-20",
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
def formula(spm_unit, period, parameters):
|
|
16
|
+
# Get gross earned income from federal TANF variable
|
|
17
|
+
gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"])
|
|
18
|
+
|
|
19
|
+
# Apply earned income disregard: $250 + 50% of remainder
|
|
20
|
+
# ORC 5107.10(D)(3) specifies "the two hundred-fifty dollar and
|
|
21
|
+
# one-half of the remainder disregards"
|
|
22
|
+
p = parameters(
|
|
23
|
+
period
|
|
24
|
+
).gov.states.oh.odjfs.owf.income.deductions.earned_income_disregard
|
|
25
|
+
|
|
26
|
+
# Calculate remainder after flat disregard
|
|
27
|
+
remainder = max_(gross_earned - p.flat_amount, 0)
|
|
28
|
+
|
|
29
|
+
# Apply percentage disregard to remainder
|
|
30
|
+
percent_disregarded = remainder * p.percentage_of_disregard
|
|
31
|
+
|
|
32
|
+
# Countable earned income = gross - flat disregard - percent of remainder
|
|
33
|
+
countable_earned = max_(remainder - percent_disregarded, 0)
|
|
34
|
+
|
|
35
|
+
# Get gross unearned income from federal variable
|
|
36
|
+
# Per ORC 5107.10(D)(3): "No disregards apply to gross unearned income"
|
|
37
|
+
gross_unearned = add(spm_unit, period, ["tanf_gross_unearned_income"])
|
|
38
|
+
|
|
39
|
+
# Total countable income
|
|
40
|
+
return countable_earned + gross_unearned
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class oh_owf(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Ohio OWF"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
defined_for = "oh_owf_eligible"
|
|
11
|
+
reference = (
|
|
12
|
+
"https://codes.ohio.gov/ohio-administrative-code/rule-5101:1-23-40"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
def formula(spm_unit, period, parameters):
|
|
16
|
+
# Get payment standard for assistance group size
|
|
17
|
+
payment_standard = spm_unit("oh_owf_payment_standard", period)
|
|
18
|
+
|
|
19
|
+
# Get countable income (after all disregards)
|
|
20
|
+
countable_income = spm_unit("oh_owf_countable_income", period)
|
|
21
|
+
|
|
22
|
+
# Per OAC 5101:1-23-40: benefit = payment standard - countable income
|
|
23
|
+
return max_(payment_standard - countable_income, 0)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class oh_owf_fpg(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Ohio OWF federal poverty guideline"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
defined_for = StateCode.OH
|
|
11
|
+
reference = (
|
|
12
|
+
"https://dam.assets.ohio.gov/image/upload/jfs.ohio.gov/OWF/tanf/2024%20TANF%20State%20Plan%20Combined.pdf#page=4",
|
|
13
|
+
"https://codes.ohio.gov/ohio-revised-code/section-5107.10", # (D)(2)
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
def formula(spm_unit, period, parameters):
|
|
17
|
+
# Ohio uses FPL effective July 1 of each year per state law
|
|
18
|
+
# "initial eligibility standards are annually indexed to fifty per cent
|
|
19
|
+
# of the federal poverty level (FPL) effective July 1 of each year"
|
|
20
|
+
n = spm_unit("spm_unit_size", period.this_year)
|
|
21
|
+
state_group = spm_unit.household("state_group_str", period.this_year)
|
|
22
|
+
year = period.start.year
|
|
23
|
+
month = period.start.month
|
|
24
|
+
# Use July 1 effective date (Ohio state fiscal year)
|
|
25
|
+
if month >= 7:
|
|
26
|
+
instant_str = f"{year}-07-01"
|
|
27
|
+
else:
|
|
28
|
+
instant_str = f"{year - 1}-07-01"
|
|
29
|
+
p_fpg = parameters(instant_str).gov.hhs.fpg
|
|
30
|
+
p1 = p_fpg.first_person[state_group] / MONTHS_IN_YEAR
|
|
31
|
+
pn = p_fpg.additional_person[state_group] / MONTHS_IN_YEAR
|
|
32
|
+
return p1 + pn * (n - 1)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class oh_owf_payment_standard(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Ohio OWF payment standard"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
defined_for = StateCode.OH
|
|
11
|
+
reference = "https://emanuals.jfs.ohio.gov/CashFoodAssist/CAM/ACT/"
|
|
12
|
+
|
|
13
|
+
def formula(spm_unit, period, parameters):
|
|
14
|
+
size = spm_unit("spm_unit_size", period)
|
|
15
|
+
p = parameters(period).gov.states.oh.odjfs.owf.payment_standard
|
|
16
|
+
|
|
17
|
+
# For assistance groups up to max_group_size, use table lookup
|
|
18
|
+
# For groups larger than max_group_size, calculate using increment
|
|
19
|
+
max_size = p.max_group_size
|
|
20
|
+
table_size = min_(size, max_size)
|
|
21
|
+
extra_members = max_(size - max_size, 0)
|
|
22
|
+
|
|
23
|
+
base_amount = p.amounts[table_size]
|
|
24
|
+
additional_amount = extra_members * p.additional_person_increment
|
|
25
|
+
|
|
26
|
+
return base_amount + additional_amount
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_payment_standard(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF payment standard"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
reference = "https://oregon.public.law/rules/oar_461-155-0030"
|
|
11
|
+
defined_for = StateCode.OR
|
|
12
|
+
|
|
13
|
+
def formula(spm_unit, period, parameters):
|
|
14
|
+
p = parameters(period).gov.states["or"].odhs.tanf
|
|
15
|
+
size = spm_unit("spm_unit_size", period.this_year)
|
|
16
|
+
max_size = p.maximum_need_group_size
|
|
17
|
+
size_capped = min_(size, max_size)
|
|
18
|
+
additional_people = max_(size - max_size, 0)
|
|
19
|
+
base_amount = p.payment_standard.amount[size_capped]
|
|
20
|
+
additional_amount = (
|
|
21
|
+
additional_people * p.payment_standard.additional_person
|
|
22
|
+
)
|
|
23
|
+
return base_amount + additional_amount
|
policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_adjusted_income_eligible.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_adjusted_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF adjusted income eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = (
|
|
10
|
+
"https://secure.sos.state.or.us/oard/viewSingleRule.action?ruleVrsnRsn=268185",
|
|
11
|
+
"https://oregon.public.law/rules/oar_461-155-0030",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.OR
|
|
14
|
+
|
|
15
|
+
def formula(spm_unit, period, parameters):
|
|
16
|
+
p = parameters(period).gov.states["or"].odhs.tanf
|
|
17
|
+
size = spm_unit("spm_unit_size", period.this_year)
|
|
18
|
+
max_size = p.maximum_need_group_size
|
|
19
|
+
size_capped = min_(size, max_size)
|
|
20
|
+
additional_people = max_(size - max_size, 0)
|
|
21
|
+
|
|
22
|
+
adjusted_income = spm_unit("or_tanf_adjusted_income", period)
|
|
23
|
+
adjusted_limit = (
|
|
24
|
+
p.income.adjusted_income_limit.amount[size_capped]
|
|
25
|
+
+ additional_people
|
|
26
|
+
* p.income.adjusted_income_limit.additional_person
|
|
27
|
+
)
|
|
28
|
+
return adjusted_income < adjusted_limit
|
policyengine_us/variables/gov/states/or/odhs/tanf/eligibility/or_tanf_countable_income_eligible.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_countable_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF countable income eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = (
|
|
10
|
+
"https://secure.sos.state.or.us/oard/viewSingleRule.action?ruleVrsnRsn=268185",
|
|
11
|
+
"https://oregon.public.law/rules/oar_461-155-0030",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.OR
|
|
14
|
+
|
|
15
|
+
def formula(spm_unit, period, parameters):
|
|
16
|
+
p = parameters(period).gov.states["or"].odhs.tanf
|
|
17
|
+
size = spm_unit("spm_unit_size", period.this_year)
|
|
18
|
+
max_size = p.maximum_need_group_size
|
|
19
|
+
size_capped = min_(size, max_size)
|
|
20
|
+
additional_people = max_(size - max_size, 0)
|
|
21
|
+
|
|
22
|
+
countable_income = spm_unit("or_tanf_countable_income", period)
|
|
23
|
+
countable_limit = (
|
|
24
|
+
p.income.countable_income_limit.amount[size_capped]
|
|
25
|
+
+ additional_people
|
|
26
|
+
* p.income.countable_income_limit.additional_person
|
|
27
|
+
)
|
|
28
|
+
return countable_income < countable_limit
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_eli_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF eligible for Exit Limit Increase (ELI) standards"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://oregon.public.law/rules/oar_461-155-0030"
|
|
10
|
+
defined_for = StateCode.OR
|
|
11
|
+
|
|
12
|
+
def formula(spm_unit, period, parameters):
|
|
13
|
+
# ELI applies when currently enrolled in TANF AND has earned income
|
|
14
|
+
is_enrolled = spm_unit("is_tanf_enrolled", period)
|
|
15
|
+
earned_income = add(spm_unit, period, ["tanf_gross_earned_income"])
|
|
16
|
+
return is_enrolled & (earned_income > 0)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_eli_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF ELI income eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = (
|
|
10
|
+
"https://secure.sos.state.or.us/oard/viewSingleRule.action?ruleVrsnRsn=268185",
|
|
11
|
+
"https://oregon.public.law/rules/oar_461-155-0030",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.OR
|
|
14
|
+
|
|
15
|
+
def formula(spm_unit, period, parameters):
|
|
16
|
+
p = parameters(period).gov.states["or"].odhs.tanf
|
|
17
|
+
countable_income = spm_unit("or_tanf_countable_income", period)
|
|
18
|
+
payment_standard = spm_unit("or_tanf_payment_standard", period)
|
|
19
|
+
eli_limit = payment_standard * p.income.eli_multiplier
|
|
20
|
+
return countable_income < eli_limit
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://oregon.public.law/rules/oar_461-135-0070"
|
|
10
|
+
defined_for = StateCode.OR
|
|
11
|
+
|
|
12
|
+
def formula(spm_unit, period, parameters):
|
|
13
|
+
person = spm_unit.members
|
|
14
|
+
demographic_eligible = spm_unit("is_demographic_tanf_eligible", period)
|
|
15
|
+
has_citizen = spm_unit.any(
|
|
16
|
+
person("is_citizen_or_legal_immigrant", period)
|
|
17
|
+
)
|
|
18
|
+
income_eligible = spm_unit("or_tanf_income_eligible", period)
|
|
19
|
+
resources_eligible = spm_unit("or_tanf_resources_eligible", period)
|
|
20
|
+
return (
|
|
21
|
+
demographic_eligible
|
|
22
|
+
& has_citizen
|
|
23
|
+
& income_eligible
|
|
24
|
+
& resources_eligible
|
|
25
|
+
)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF income eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://oregon.public.law/rules/oar_461-160-0100"
|
|
10
|
+
defined_for = StateCode.OR
|
|
11
|
+
|
|
12
|
+
def formula(spm_unit, period, parameters):
|
|
13
|
+
# Standard test: countable < limit AND adjusted < limit
|
|
14
|
+
passes_countable_test = spm_unit(
|
|
15
|
+
"or_tanf_countable_income_eligible", period
|
|
16
|
+
)
|
|
17
|
+
passes_adjusted_test = spm_unit(
|
|
18
|
+
"or_tanf_adjusted_income_eligible", period
|
|
19
|
+
)
|
|
20
|
+
passes_standard_test = passes_countable_test & passes_adjusted_test
|
|
21
|
+
|
|
22
|
+
# ELI test: countable < (payment_standard * multiplier)
|
|
23
|
+
passes_eli_test = spm_unit("or_tanf_eli_income_eligible", period)
|
|
24
|
+
|
|
25
|
+
eli_eligible = spm_unit("or_tanf_eli_eligible", period)
|
|
26
|
+
return where(eli_eligible, passes_eli_test, passes_standard_test)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_resources_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF resources eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = (
|
|
10
|
+
"https://secure.sos.state.or.us/oard/viewSingleRule.action?ruleVrsnRsn=316195",
|
|
11
|
+
"https://oregon.public.law/rules/oar_461-160-0015",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.OR
|
|
14
|
+
|
|
15
|
+
def formula(spm_unit, period, parameters):
|
|
16
|
+
p = parameters(period).gov.states["or"].odhs.tanf.resources.limit
|
|
17
|
+
# spm_unit_assets is a YEAR variable, access with period.this_year
|
|
18
|
+
countable_resources = spm_unit("spm_unit_assets", period.this_year)
|
|
19
|
+
return countable_resources <= p.amount
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_adjusted_income(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF adjusted income"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
reference = (
|
|
11
|
+
"https://oregon.public.law/rules/oar_461-001-0000",
|
|
12
|
+
"https://oregon.public.law/rules/oar_461-160-0160",
|
|
13
|
+
)
|
|
14
|
+
defined_for = StateCode.OR
|
|
15
|
+
|
|
16
|
+
def formula(spm_unit, period, parameters):
|
|
17
|
+
p = parameters(period).gov.states["or"].odhs.tanf.income
|
|
18
|
+
countable_income = spm_unit("or_tanf_countable_income", period)
|
|
19
|
+
gross_earned = add(spm_unit, period, ["tanf_gross_earned_income"])
|
|
20
|
+
earned_income_disregard = gross_earned * p.earned_income_disregard_rate
|
|
21
|
+
return max_(countable_income - earned_income_disregard, 0)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class or_tanf_child_support_disregard(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
label = "Oregon TANF child support disregard"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
reference = "https://oregon.public.law/rules/oar_461-145-0080"
|
|
11
|
+
defined_for = StateCode.OR
|
|
12
|
+
|
|
13
|
+
def formula(spm_unit, period, parameters):
|
|
14
|
+
p = parameters(period).gov.states["or"].odhs.tanf
|
|
15
|
+
child_support_received = add(
|
|
16
|
+
spm_unit, period, ["child_support_received"]
|
|
17
|
+
)
|
|
18
|
+
person = spm_unit.members
|
|
19
|
+
age = person("age", period.this_year)
|
|
20
|
+
is_child = age < p.age_threshold.minor_child
|
|
21
|
+
num_children = spm_unit.sum(is_child)
|
|
22
|
+
disregard = p.income.child_support_disregard
|
|
23
|
+
max_disregard_by_children = num_children * disregard.per_child
|
|
24
|
+
max_disregard = min_(max_disregard_by_children, disregard.max)
|
|
25
|
+
return min_(child_support_received, max_disregard)
|