diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb2d..f84570f7f15 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Add Washington Apple Health for Kids and Apple Health Expansion programs. diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/expansion/eligibility/in_effect.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/expansion/eligibility/in_effect.yaml new file mode 100644 index 00000000000..265bf773b48 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/expansion/eligibility/in_effect.yaml @@ -0,0 +1,16 @@ +description: Washington provides Apple Health Expansion coverage for eligible adults. +metadata: + unit: bool + period: year + label: Washington Apple Health Expansion program in effect + reference: + - title: WAC 182-525-0300 - Apple Health expansion coverage + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-525-0300 + - title: HCA Apple Health Expansion Overview + href: https://www.hca.wa.gov/about-hca/programs-and-initiatives/apple-health-medicaid/apple-health-expansion + - title: ESSB 5187 Section 211(83) - 2023-2025 budget proviso + href: https://lawfilesext.leg.wa.gov/biennium/2023-24/Pdf/Bills/Session%20Laws/Senate/5187-S.SL.pdf + +values: + 2020-01-01: false + 2024-06-21: true diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/expansion/eligibility/income_limit.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/expansion/eligibility/income_limit.yaml new file mode 100644 index 00000000000..113182a26a1 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/expansion/eligibility/income_limit.yaml @@ -0,0 +1,13 @@ +description: Washington sets this income limit for Apple Health Expansion as a fraction of FPL. +metadata: + unit: /1 + period: year + label: Washington Apple Health Expansion income limit as fraction of FPL + reference: + - title: WAC 182-525-0300 - Apple Health expansion coverage + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-525-0300 + - title: HCA Income Standards (HCA 19-0096) + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf + +values: + 2024-06-21: 1.38 diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/expansion/eligibility/min_age.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/expansion/eligibility/min_age.yaml new file mode 100644 index 00000000000..fe2a49ae776 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/expansion/eligibility/min_age.yaml @@ -0,0 +1,11 @@ +description: Washington requires this minimum age for Apple Health Expansion. +metadata: + unit: year + period: year + label: Washington Apple Health Expansion minimum age + reference: + - title: WAC 182-525-0300 - Apple Health expansion coverage + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-525-0300 + +values: + 2024-06-21: 19 diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/eligibility/age_limit.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/eligibility/age_limit.yaml new file mode 100644 index 00000000000..ee299413c72 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/eligibility/age_limit.yaml @@ -0,0 +1,13 @@ +description: Washington sets this maximum age for Apple Health for Kids. +metadata: + unit: year + period: year + label: Washington Apple Health for Kids maximum age + reference: + - title: RCW 74.09.470 - Medical care for children + href: https://app.leg.wa.gov/rcw/default.aspx?cite=74.09.470 + - title: WAC 182-505-0210 - Children's eligibility + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-505-0210 + +values: + 2019-01-01: 19 diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/eligibility/in_effect.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/eligibility/in_effect.yaml new file mode 100644 index 00000000000..aaccbada430 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/eligibility/in_effect.yaml @@ -0,0 +1,13 @@ +description: Washington provides Apple Health for Kids coverage for eligible children. +metadata: + unit: bool + period: year + label: Washington Apple Health for Kids program in effect + reference: + - title: RCW 74.09.470 - Medical care for children + href: https://app.leg.wa.gov/rcw/default.aspx?cite=74.09.470 + - title: HCA Apple Health for Children + href: https://www.hca.wa.gov/free-or-low-cost-health-care/i-need-medical-dental-or-vision-care/children + +values: + 2019-01-01: true diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/income_limit/free.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/income_limit/free.yaml new file mode 100644 index 00000000000..3b875ea8041 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/income_limit/free.yaml @@ -0,0 +1,13 @@ +description: Washington sets this income limit for free Apple Health for Kids coverage as a fraction of FPL. +metadata: + unit: /1 + period: year + label: Washington Apple Health for Kids free coverage income limit as fraction of FPL + reference: + - title: WAC 182-505-0100 - Income standards (210% FPL statutory) + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-505-0100 + - title: HCA Income Standards (HCA 19-0096) - operational thresholds with 5pp disregard + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf + +values: + 2019-01-01: 2.15 diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/income_limit/tier_1.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/income_limit/tier_1.yaml new file mode 100644 index 00000000000..6dabb321408 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/income_limit/tier_1.yaml @@ -0,0 +1,13 @@ +description: Washington sets this income limit for Apple Health for Kids Tier 1 as a fraction of FPL. +metadata: + unit: /1 + period: year + label: Washington Apple Health for Kids Tier 1 income limit as fraction of FPL + reference: + - title: WAC 182-505-0225 - Premium requirements (260% FPL statutory) + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-505-0225 + - title: HCA Income Standards (HCA 19-0096) - operational thresholds with 5pp disregard + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf + +values: + 2019-01-01: 2.65 diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/income_limit/tier_2.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/income_limit/tier_2.yaml new file mode 100644 index 00000000000..05e83a1f62c --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/income_limit/tier_2.yaml @@ -0,0 +1,13 @@ +description: Washington sets this income limit for Apple Health for Kids Tier 2 as a fraction of FPL. +metadata: + unit: /1 + period: year + label: Washington Apple Health for Kids Tier 2 income limit as fraction of FPL + reference: + - title: WAC 182-505-0100 - Income standards (312% FPL statutory) + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-505-0100 + - title: HCA Income Standards (HCA 19-0096) - operational thresholds with 5pp disregard + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf + +values: + 2019-01-01: 3.17 diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_1_household_max.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_1_household_max.yaml new file mode 100644 index 00000000000..a9d683ad625 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_1_household_max.yaml @@ -0,0 +1,13 @@ +description: Washington sets this maximum household premium for Apple Health for Kids Tier 1. +metadata: + unit: currency-USD + period: month + label: Washington Apple Health for Kids Tier 1 household maximum premium + reference: + - title: WAC 182-505-0225 - Premium requirements (no more than 2 children) + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-505-0225 + - title: HCA Income Standards (HCA 19-0096) + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf + +values: + 2019-01-01: 40 diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_1_per_child.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_1_per_child.yaml new file mode 100644 index 00000000000..e4522370f12 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_1_per_child.yaml @@ -0,0 +1,13 @@ +description: Washington sets this per-child premium for Apple Health for Kids Tier 1. +metadata: + unit: currency-USD + period: month + label: Washington Apple Health for Kids Tier 1 premium per child + reference: + - title: WAC 182-505-0225 - Premium requirements ($20/child for 210-260% FPL) + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-505-0225 + - title: HCA Income Standards (HCA 19-0096) + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf + +values: + 2019-01-01: 20 diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_2_household_max.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_2_household_max.yaml new file mode 100644 index 00000000000..5176c3ed50f --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_2_household_max.yaml @@ -0,0 +1,13 @@ +description: Washington sets this maximum household premium for Apple Health for Kids Tier 2. +metadata: + unit: currency-USD + period: month + label: Washington Apple Health for Kids Tier 2 household maximum premium + reference: + - title: WAC 182-505-0225 - Premium requirements (no more than 2 children) + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-505-0225 + - title: HCA Income Standards (HCA 19-0096) + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf + +values: + 2019-01-01: 60 diff --git a/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_2_per_child.yaml b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_2_per_child.yaml new file mode 100644 index 00000000000..b02f8d9bec6 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/hca/apple_health/kids/premium/tier_2_per_child.yaml @@ -0,0 +1,13 @@ +description: Washington sets this per-child premium for Apple Health for Kids Tier 2. +metadata: + unit: currency-USD + period: month + label: Washington Apple Health for Kids Tier 2 premium per child + reference: + - title: WAC 182-505-0225 - Premium requirements ($30/child for 260-312% FPL) + href: https://app.leg.wa.gov/wac/default.aspx?cite=182-505-0225 + - title: HCA Income Standards (HCA 19-0096) + href: https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf + +values: + 2019-01-01: 30 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/costs/wa_apple_health_cost_if_enrolled.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/costs/wa_apple_health_cost_if_enrolled.yaml new file mode 100644 index 00000000000..de259894bac --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/costs/wa_apple_health_cost_if_enrolled.yaml @@ -0,0 +1,62 @@ +- name: Eligible child - Apple Health for Kids + period: 2024 + absolute_error_margin: 1 + input: + households: + household: + state_code: WA + members: [child] + people: + child: + age: 10 + medicaid_income_level: 2.0 # 200% FPL - below 317% threshold + output: + wa_apple_health_cost_if_enrolled: 3_643.43 # 3,188,000,000 / 875,000 + +- name: Eligible expansion adult - undocumented + period: 2025 + absolute_error_margin: 1 + input: + households: + household: + state_code: WA + members: [adult] + people: + adult: + age: 35 + immigration_status: UNDOCUMENTED + medicaid_income_level: 1.2 # 120% FPL - below 138% threshold + is_pregnant: false + output: + wa_apple_health_cost_if_enrolled: 8_792.99 # 7,773,000,000 / 884,000 + +- name: Ineligible - adult citizen (not expansion eligible) + period: 2024 + absolute_error_margin: 0.01 + input: + households: + household: + state_code: WA + members: [adult] + people: + adult: + age: 35 + immigration_status: CITIZEN + medicaid_income_level: 1.2 + output: + wa_apple_health_cost_if_enrolled: 0 + +- name: Ineligible - child over income threshold + period: 2024 + absolute_error_margin: 0.01 + input: + households: + household: + state_code: WA + members: [child] + people: + child: + age: 10 + medicaid_income_level: 4.0 # 400% FPL - above 317% threshold + output: + wa_apple_health_cost_if_enrolled: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/costs/wa_apple_health_group.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/costs/wa_apple_health_group.yaml new file mode 100644 index 00000000000..a1ed5adce71 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/costs/wa_apple_health_group.yaml @@ -0,0 +1,31 @@ +# Tests for Washington Apple Health spending group + +- name: Apple Health Kids eligible maps to CHILD group + period: 2024 + input: + age: 10 + medicaid_income_level: 2.0 # 200% FPL + state_code: WA + output: + wa_apple_health_group: CHILD + +- name: Apple Health Expansion eligible maps to EXPANSION_ADULT group + period: 2025 + input: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_group: EXPANSION_ADULT + +- name: Ineligible person maps to NONE group + period: 2024 + input: + age: 30 + immigration_status: CITIZEN + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_group: NONE diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_eligible.yaml new file mode 100644 index 00000000000..16def1c0473 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_eligible.yaml @@ -0,0 +1,122 @@ +# Tests for Washington Apple Health Expansion eligibility + +- name: Undocumented adult with low income eligible in 2025 + period: 2025 + input: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: true + +- name: Undocumented adult at income limit eligible + period: 2025 + input: + age: 45 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 1.38 # 138% FPL (at limit) + state_code: WA + output: + wa_apple_health_expansion_eligible: true + +- name: Undocumented adult with income above limit NOT eligible + period: 2025 + input: + age: 35 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 1.5 # 150% FPL (above 138% limit) + state_code: WA + output: + wa_apple_health_expansion_eligible: false + +- name: US citizen NOT eligible regardless of income + period: 2025 + input: + age: 30 + immigration_status: CITIZEN + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: false + +- name: Legal permanent resident NOT eligible + period: 2025 + input: + age: 30 + immigration_status: LEGAL_PERMANENT_RESIDENT + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: false + +- name: DACA recipient NOT eligible (pending HCA clarification) + period: 2025 + input: + age: 25 + immigration_status: DACA + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: false + +- name: Pregnant undocumented adult NOT eligible (must use pregnancy programs) + period: 2025 + input: + age: 28 + immigration_status: UNDOCUMENTED + is_pregnant: true + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: false + +- name: Undocumented child NOT eligible (must use Apple Health for Kids) + period: 2025 + input: + age: 15 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: false + +- name: Program NOT in effect before June 2024 + period: 2023 + input: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: false + +- name: 19-year-old eligible (at minimum age) + period: 2025 + input: + age: 19 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: true + +- name: 18-year-old NOT eligible (below minimum age) + period: 2025 + input: + age: 18 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_immigration_status_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_immigration_status_eligible.yaml new file mode 100644 index 00000000000..84c1d591f7c --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_immigration_status_eligible.yaml @@ -0,0 +1,49 @@ +# Tests for Washington Apple Health Expansion immigration status eligibility + +- name: Undocumented immigrant is eligible + period: 2025 + input: + immigration_status: UNDOCUMENTED + state_code: WA + output: + wa_apple_health_expansion_immigration_status_eligible: true + +- name: US citizen NOT eligible + period: 2025 + input: + immigration_status: CITIZEN + state_code: WA + output: + wa_apple_health_expansion_immigration_status_eligible: false + +- name: Legal permanent resident NOT eligible + period: 2025 + input: + immigration_status: LEGAL_PERMANENT_RESIDENT + state_code: WA + output: + wa_apple_health_expansion_immigration_status_eligible: false + +- name: Refugee NOT eligible (can access federal programs) + period: 2025 + input: + immigration_status: REFUGEE + state_code: WA + output: + wa_apple_health_expansion_immigration_status_eligible: false + +- name: DACA recipient NOT eligible (pending HCA clarification) + period: 2025 + input: + immigration_status: DACA + state_code: WA + output: + wa_apple_health_expansion_immigration_status_eligible: false + +- name: TPS recipient NOT eligible + period: 2025 + input: + immigration_status: TPS + state_code: WA + output: + wa_apple_health_expansion_immigration_status_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_income_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_income_eligible.yaml new file mode 100644 index 00000000000..31159ee1d94 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_income_eligible.yaml @@ -0,0 +1,33 @@ +# Tests for Washington Apple Health Expansion income eligibility + +- name: Income at 100% FPL is eligible + period: 2025 + input: + medicaid_income_level: 1.0 + state_code: WA + output: + wa_apple_health_expansion_income_eligible: true + +- name: Income at 138% FPL is eligible (at limit) + period: 2025 + input: + medicaid_income_level: 1.38 + state_code: WA + output: + wa_apple_health_expansion_income_eligible: true + +- name: Income at 139% FPL is NOT eligible + period: 2025 + input: + medicaid_income_level: 1.39 + state_code: WA + output: + wa_apple_health_expansion_income_eligible: false + +- name: Income at 150% FPL is NOT eligible + period: 2025 + input: + medicaid_income_level: 1.5 + state_code: WA + output: + wa_apple_health_expansion_income_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/integration.yaml new file mode 100644 index 00000000000..3f5de1c97fb --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/integration.yaml @@ -0,0 +1,51 @@ +# Integration tests for Washington Apple Health +# These state-funded programs are for people NOT eligible for federal Medicaid + +- name: Undocumented child eligible for Apple Health Kids but NOT federal Medicaid + period: 2024 + input: + age: 10 + immigration_status: UNDOCUMENTED + medicaid_income_level: 2.0 # 200% FPL + state_code: WA + output: + wa_apple_health_kids_eligible: true + is_medicaid_eligible: false + wa_apple_health_group: CHILD + +- name: Undocumented adult eligible for Expansion but NOT federal Medicaid + period: 2025 + input: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_expansion_eligible: true + is_medicaid_eligible: false + wa_apple_health_group: EXPANSION_ADULT + +- name: US citizen child eligible through BOTH Apple Health Kids AND federal Medicaid + period: 2024 + input: + age: 10 + immigration_status: CITIZEN + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_kids_eligible: true + is_medicaid_eligible: true + +- name: Undocumented adult above income limit NOT eligible for any program + period: 2025 + input: + age: 30 + immigration_status: UNDOCUMENTED + is_pregnant: false + medicaid_income_level: 2.0 # 200% FPL (above 138% limit for Expansion) + state_code: WA + output: + wa_apple_health_expansion_eligible: false + wa_apple_health_kids_eligible: false + is_medicaid_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_eligible.yaml new file mode 100644 index 00000000000..26a8dbf52ab --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_eligible.yaml @@ -0,0 +1,83 @@ +# Tests for Washington Apple Health for Kids eligibility + +- name: Child under 19 with low income eligible + period: 2024 + input: + age: 10 + medicaid_income_level: 1.5 # 150% FPL + state_code: WA + output: + wa_apple_health_kids_eligible: true + +- name: Child at Tier 1 income level eligible + period: 2024 + input: + age: 15 + medicaid_income_level: 2.5 # 250% FPL (between 210% and 265%) + state_code: WA + output: + wa_apple_health_kids_eligible: true + +- name: Child at Tier 2 income level eligible + period: 2024 + input: + age: 8 + medicaid_income_level: 3.0 # 300% FPL (between 265% and 317%) + state_code: WA + output: + wa_apple_health_kids_eligible: true + +- name: Child at exactly 317% FPL eligible + period: 2024 + input: + age: 12 + medicaid_income_level: 3.17 # 317% FPL (at limit) + state_code: WA + output: + wa_apple_health_kids_eligible: true + +- name: Child with income above 317% FPL NOT eligible + period: 2024 + input: + age: 10 + medicaid_income_level: 3.5 # 350% FPL (above limit) + state_code: WA + output: + wa_apple_health_kids_eligible: false + +- name: Adult NOT eligible regardless of income + period: 2024 + input: + age: 25 + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_kids_eligible: false + +- name: 18-year-old still eligible (under 19) + period: 2024 + input: + age: 18 + medicaid_income_level: 2.0 # 200% FPL + state_code: WA + output: + wa_apple_health_kids_eligible: true + +- name: 19-year-old NOT eligible + period: 2024 + input: + age: 19 + medicaid_income_level: 1.0 # 100% FPL + state_code: WA + output: + wa_apple_health_kids_eligible: false + +- name: Undocumented child eligible (covers all immigration statuses) + period: 2024 + input: + age: 10 + immigration_status: UNDOCUMENTED + medicaid_income_level: 2.0 # 200% FPL + state_code: WA + output: + wa_apple_health_kids_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_income_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_income_eligible.yaml new file mode 100644 index 00000000000..7c0bd556fe8 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_income_eligible.yaml @@ -0,0 +1,49 @@ +# Tests for Washington Apple Health for Kids income eligibility + +- name: Income at 150% FPL is eligible (free tier) + period: 2024 + input: + medicaid_income_level: 1.5 + state_code: WA + output: + wa_apple_health_kids_income_eligible: true + +- name: Income at 215% FPL is eligible (free tier boundary with 5pp disregard) + period: 2024 + input: + medicaid_income_level: 2.15 + state_code: WA + output: + wa_apple_health_kids_income_eligible: true + +- name: Income at 265% FPL is eligible (Tier 1 boundary) + period: 2024 + input: + medicaid_income_level: 2.65 + state_code: WA + output: + wa_apple_health_kids_income_eligible: true + +- name: Income at 317% FPL is eligible (Tier 2 maximum) + period: 2024 + input: + medicaid_income_level: 3.17 + state_code: WA + output: + wa_apple_health_kids_income_eligible: true + +- name: Income at 318% FPL is NOT eligible + period: 2024 + input: + medicaid_income_level: 3.18 + state_code: WA + output: + wa_apple_health_kids_income_eligible: false + +- name: Income at 400% FPL is NOT eligible + period: 2024 + input: + medicaid_income_level: 4.0 + state_code: WA + output: + wa_apple_health_kids_income_eligible: false diff --git a/policyengine_us/variables/gov/states/wa/hca/apple_health/costs/wa_apple_health_cost_if_enrolled.py b/policyengine_us/variables/gov/states/wa/hca/apple_health/costs/wa_apple_health_cost_if_enrolled.py new file mode 100644 index 00000000000..8d175e61ae3 --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/hca/apple_health/costs/wa_apple_health_cost_if_enrolled.py @@ -0,0 +1,57 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.hhs.medicaid.costs.medicaid_group import ( + MedicaidGroup, +) + + +class wa_apple_health_cost_if_enrolled(Variable): + value_type = float + entity = Person + label = "Per capita Washington Apple Health cost by eligibility group" + unit = USD + definition_period = YEAR + defined_for = StateCode.WA + reference = [ + "https://www.hca.wa.gov/about-hca/programs-and-initiatives/apple-health-medicaid/apple-health-expansion", + ] + documentation = """ + Calculates the per-capita cost of Washington Apple Health coverage based + on the person's eligibility group (Kids or Expansion). Uses Washington + state Medicaid cost data by eligibility category. + + Note: Apple Health Expansion is 100% state-funded (~$150M in 2025-2027 + biennial budget), while Apple Health for Kids uses a mix of state and + federal funds depending on the child's citizenship/immigration status. + """ + + def formula(person, period, parameters): + group = person("wa_apple_health_group", period) + + p = parameters(period).calibration.gov.hhs.medicaid + + is_child = group == MedicaidGroup.CHILD + is_expansion_adult = group == MedicaidGroup.EXPANSION_ADULT + + # Use Washington state Medicaid cost data + child_spend = p.spending.by_eligibility_group.child["WA"] + expansion_adult_spend = ( + p.spending.by_eligibility_group.expansion_adults["WA"] + ) + + child_enroll = p.enrollment.child["WA"] + expansion_adult_enroll = p.enrollment.expansion_adults["WA"] + + spend = select( + [is_child, is_expansion_adult], + [child_spend, expansion_adult_spend], + default=0, + ) + + enroll = select( + [is_child, is_expansion_adult], + [child_enroll, expansion_adult_enroll], + default=0, + ) + + # Calculate per-capita cost, avoiding divide-by-zero + return np.where(enroll > 0, spend / enroll, 0) diff --git a/policyengine_us/variables/gov/states/wa/hca/apple_health/costs/wa_apple_health_group.py b/policyengine_us/variables/gov/states/wa/hca/apple_health/costs/wa_apple_health_group.py new file mode 100644 index 00000000000..7ec372ff96e --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/hca/apple_health/costs/wa_apple_health_group.py @@ -0,0 +1,42 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.hhs.medicaid.costs.medicaid_group import ( + MedicaidGroup, +) + + +class wa_apple_health_group(Variable): + """Maps Washington Apple Health eligibility to Medicaid spending groups. + + Apple Health for Kids → CHILD + Apple Health Expansion → EXPANSION_ADULT + """ + + value_type = Enum + possible_values = MedicaidGroup + default_value = MedicaidGroup.NONE + entity = Person + label = "Washington Apple Health spending group" + definition_period = YEAR + defined_for = StateCode.WA + reference = [ + "https://www.hca.wa.gov/free-or-low-cost-health-care/i-need-medical-dental-or-vision-care/children", + "https://www.hca.wa.gov/about-hca/programs-and-initiatives/apple-health-medicaid/apple-health-expansion", + ] + + def formula(person, period, parameters): + kids_eligible = person("wa_apple_health_kids_eligible", period) + expansion_eligible = person( + "wa_apple_health_expansion_eligible", period + ) + + return select( + [ + kids_eligible, + expansion_eligible, + ], + [ + MedicaidGroup.CHILD, + MedicaidGroup.EXPANSION_ADULT, + ], + default=MedicaidGroup.NONE, + ) diff --git a/policyengine_us/variables/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_eligible.py b/policyengine_us/variables/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_eligible.py new file mode 100644 index 00000000000..f4b15abca9b --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_eligible.py @@ -0,0 +1,58 @@ +from policyengine_us.model_api import * + + +class wa_apple_health_expansion_eligible(Variable): + value_type = bool + entity = Person + label = "Eligible for Washington Apple Health Expansion" + definition_period = YEAR + defined_for = StateCode.WA + reference = [ + "https://app.leg.wa.gov/wac/default.aspx?cite=182-525-0300", + "https://www.hca.wa.gov/about-hca/programs-and-initiatives/apple-health-medicaid/apple-health-expansion", + ] + documentation = """ + Washington Apple Health Expansion provides state-funded coverage for + adults age 19+ who are ineligible for federally funded Medicaid or + QHPs with APTC due to immigration status. Income limit is 138% FPL. + + Note: This program has an enrollment cap and is not an entitlement. + Enrollment closed within 48 hours of launch on June 21, 2024. + The cap is not modeled here. + + Exclusions: + - Pregnant individuals (must use pregnancy programs) + - Qualified immigrants in 5-year bar + - DACA recipients (status unclear as of January 2026) + """ + + def formula(person, period, parameters): + p = parameters(period).gov.states.wa.hca.apple_health.expansion + + # Program must be in effect (launched June 21, 2024) + in_effect = p.eligibility.in_effect + + # Must be adult (19+) + age = person("age", period) + age_eligible = age >= p.eligibility.min_age + + # Must meet income requirements + income_eligible = person( + "wa_apple_health_expansion_income_eligible", period + ) + + # Must have eligible immigration status + immigration_eligible = person( + "wa_apple_health_expansion_immigration_status_eligible", period + ) + + # Must not be pregnant (pregnant individuals use pregnancy programs) + is_pregnant = person("is_pregnant", period) + + return ( + in_effect + & age_eligible + & income_eligible + & immigration_eligible + & ~is_pregnant + ) diff --git a/policyengine_us/variables/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_immigration_status_eligible.py b/policyengine_us/variables/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_immigration_status_eligible.py new file mode 100644 index 00000000000..83603c8430a --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_immigration_status_eligible.py @@ -0,0 +1,54 @@ +from policyengine_us.model_api import * + + +class wa_apple_health_expansion_immigration_status_eligible(Variable): + value_type = bool + entity = Person + label = ( + "Has eligible immigration status for Washington Apple Health Expansion" + ) + definition_period = YEAR + defined_for = StateCode.WA + reference = [ + "https://app.leg.wa.gov/wac/default.aspx?cite=182-525-0300", + "https://www.hca.wa.gov/about-hca/programs-and-initiatives/apple-health-medicaid/apple-health-expansion", + ] + documentation = """ + Washington Apple Health Expansion covers adults who are NOT eligible for + federally funded Medicaid or QHPs with APTC due to immigration status. + + Eligible immigration statuses: + - Undocumented immigrants + + Excluded: + - U.S. citizens (eligible for regular Medicaid/QHPs) + - Lawfully present immigrants (eligible for regular Medicaid/QHPs) + - Qualified immigrants in 5-year bar (must use other programs) + - DACA recipients: Status unclear as of January 2026. After Trump admin + rule (effective August 25, 2025), DACA recipients lost federal ACA + subsidies but can still use Washington Healthplanfinder with state + Cascade Care Savings subsidies. HCA has not clarified if they are + now eligible for Apple Health Expansion. Excluding for now. + """ + + def formula(person, period, parameters): + immigration_status = person("immigration_status", period) + + # Only undocumented immigrants are eligible + # They are ineligible for federal Medicaid and federal ACA subsidies + undocumented = ( + immigration_status + == immigration_status.possible_values.UNDOCUMENTED + ) + + # NOTE: Qualified immigrants in the federal 5-year bar (e.g., LPRs + # who've been in the US less than 5 years) are technically excluded + # per WAC 182-525-0300. However, we don't currently track years_in_us + # or immigration entry date. These individuals would need to self- + # identify their eligibility. A future enhancement could add a + # years_in_us input variable to properly model the 5-year bar. + + # DACA recipients excluded pending HCA clarification + # They may have access to Cascade Care Savings on state exchange + + return undocumented diff --git a/policyengine_us/variables/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_income_eligible.py b/policyengine_us/variables/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_income_eligible.py new file mode 100644 index 00000000000..749e82ef7f7 --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/hca/apple_health/expansion/eligibility/wa_apple_health_expansion_income_eligible.py @@ -0,0 +1,28 @@ +from policyengine_us.model_api import * + + +class wa_apple_health_expansion_income_eligible(Variable): + value_type = bool + entity = Person + label = "Meets Washington Apple Health Expansion income eligibility" + definition_period = YEAR + defined_for = StateCode.WA + reference = [ + "https://app.leg.wa.gov/wac/default.aspx?cite=182-525-0300", + "https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf", + ] + documentation = """ + Washington Apple Health Expansion uses MAGI-based income at or below + 138% FPL. The 5% disregard is already built into the threshold. + """ + + def formula(person, period, parameters): + p = parameters( + period + ).gov.states.wa.hca.apple_health.expansion.eligibility + + # Use MAGI-based income level (as fraction of FPL) + income_level = person("medicaid_income_level", period) + + # Eligible if at or below 138% FPL + return income_level <= p.income_limit diff --git a/policyengine_us/variables/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_eligible.py b/policyengine_us/variables/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_eligible.py new file mode 100644 index 00000000000..3b2ef6c6587 --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_eligible.py @@ -0,0 +1,38 @@ +from policyengine_us.model_api import * + + +class wa_apple_health_kids_eligible(Variable): + value_type = bool + entity = Person + label = "Eligible for Washington Apple Health for Kids" + definition_period = YEAR + defined_for = StateCode.WA + reference = [ + "https://app.leg.wa.gov/rcw/default.aspx?cite=74.09.470", + "https://www.hca.wa.gov/free-or-low-cost-health-care/i-need-medical-dental-or-vision-care/children", + ] + documentation = """ + Washington Apple Health for Kids provides state-funded Medicaid/CHIP + coverage for children under 19 regardless of immigration status. + Coverage is available at different premium tiers based on income. + """ + + def formula(person, period, parameters): + p = parameters(period).gov.states.wa.hca.apple_health.kids + + # Program must be in effect + in_effect = p.eligibility.in_effect + + # Must be under age limit (19) + age = person("age", period) + age_eligible = age < p.eligibility.age_limit + + # Must meet income requirements + income_eligible = person( + "wa_apple_health_kids_income_eligible", period + ) + + # Washington covers children regardless of immigration status + # No immigration status check needed + + return in_effect & age_eligible & income_eligible diff --git a/policyengine_us/variables/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_income_eligible.py b/policyengine_us/variables/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_income_eligible.py new file mode 100644 index 00000000000..173490fcdd4 --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/hca/apple_health/kids/eligibility/wa_apple_health_kids_income_eligible.py @@ -0,0 +1,27 @@ +from policyengine_us.model_api import * + + +class wa_apple_health_kids_income_eligible(Variable): + value_type = bool + entity = Person + label = "Meets Washington Apple Health for Kids income eligibility" + definition_period = YEAR + defined_for = StateCode.WA + reference = [ + "https://app.leg.wa.gov/wac/default.aspx?cite=182-505-0100", + "https://www.hca.wa.gov/assets/free-or-low-cost/income-standards.pdf", + ] + documentation = """ + Washington Apple Health for Kids uses MAGI-based income with the 5% + disregard already built into published thresholds. Maximum eligibility + is at 317% FPL. + """ + + def formula(person, period, parameters): + p = parameters(period).gov.states.wa.hca.apple_health.kids.income_limit + + # Use MAGI-based income level (as fraction of FPL) + income_level = person("medicaid_income_level", period) + + # Eligible if at or below Tier 2 maximum (317% FPL) + return income_level <= p.tier_2 diff --git a/uv.lock b/uv.lock index 06bf5cb6b5b..551b0a0dce1 100644 --- a/uv.lock +++ b/uv.lock @@ -718,7 +718,7 @@ name = "importlib-metadata" version = "8.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp" }, + { name = "zipp", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } wheels = [ @@ -1535,7 +1535,7 @@ wheels = [ [[package]] name = "policyengine-us" -version = "1.485.0" +version = "1.496.2" source = { editable = "." } dependencies = [ { name = "microdf-python" },