diff --git a/changelog.d/add-hi-oss.added.md b/changelog.d/add-hi-oss.added.md new file mode 100644 index 00000000000..4b5130e532c --- /dev/null +++ b/changelog.d/add-hi-oss.added.md @@ -0,0 +1 @@ +Added Hawaii Optional State Supplementation (OSS) for SSI recipients in qualifying care facilities. diff --git a/policyengine_us/parameters/gov/household/household_state_benefits.yaml b/policyengine_us/parameters/gov/household/household_state_benefits.yaml index 9ad7c2dae5d..a050d0ebe67 100644 --- a/policyengine_us/parameters/gov/household/household_state_benefits.yaml +++ b/policyengine_us/parameters/gov/household/household_state_benefits.yaml @@ -22,6 +22,8 @@ values: # Massachusetts benefits - ma_eaedc - ma_tafdc + # Hawaii benefits + - hi_oss 2024-01-01: # Massachusetts benefits - ma_state_supplement @@ -46,6 +48,8 @@ values: # Massachusetts benefits - ma_eaedc - ma_tafdc + # Hawaii benefits + - hi_oss metadata: unit: list period: year diff --git a/policyengine_us/parameters/gov/states/hi/dhs/oss/payment/couple/amount.yaml b/policyengine_us/parameters/gov/states/hi/dhs/oss/payment/couple/amount.yaml new file mode 100644 index 00000000000..2c67684872d --- /dev/null +++ b/policyengine_us/parameters/gov/states/hi/dhs/oss/payment/couple/amount.yaml @@ -0,0 +1,27 @@ +description: >- + Hawaii provides this monthly Optional State Supplementation payment amount + to eligible couples (both members receiving SSI) based on their living + arrangement. This is the total couple amount; each member receives half. +metadata: + unit: currency-USD + period: month + label: Hawaii OSS monthly payment amount for couples + breakdown: + - hi_oss_living_arrangement + reference: + - title: SSA POMS SI 01415.057 - Federally Administered Optional Supplementary Payment Programs for January 2025 + href: https://secure.ssa.gov/POMS.NSF/lnx/0501415057 + - title: SSA POMS SI 01415.055 - Federally Administered Optional Supplemental Payment Programs for January 2023 + href: https://secure.ssa.gov/apps10/poms.nsf/lnx/0501415055 +COMMUNITY_CARE: + 2023-01-01: 1640.80 + 2025-01-01: 1905 +DOMICILIARY_CARE_I: + 2023-01-01: 1640.80 + 2025-01-01: 1905 +DOMICILIARY_CARE_II: + 2023-01-01: 1856.80 + 2025-01-01: 2121 +MEDICAID_INSTITUTION: + 2023-01-01: 40 + 2025-01-01: 90 diff --git a/policyengine_us/parameters/gov/states/hi/dhs/oss/payment/individual/amount.yaml b/policyengine_us/parameters/gov/states/hi/dhs/oss/payment/individual/amount.yaml new file mode 100644 index 00000000000..e1a490c5d39 --- /dev/null +++ b/policyengine_us/parameters/gov/states/hi/dhs/oss/payment/individual/amount.yaml @@ -0,0 +1,26 @@ +description: >- + Hawaii provides this monthly Optional State Supplementation payment amount + to eligible individual SSI recipients based on their living arrangement. +metadata: + unit: currency-USD + period: month + label: Hawaii OSS monthly payment amount for individuals + breakdown: + - hi_oss_living_arrangement + reference: + - title: SSA POMS SI 01415.057 - Federally Administered Optional Supplementary Payment Programs for January 2025 + href: https://secure.ssa.gov/POMS.NSF/lnx/0501415057 + - title: SSA POMS SI 01415.055 - Federally Administered Optional Supplemental Payment Programs for January 2023 + href: https://secure.ssa.gov/apps10/poms.nsf/lnx/0501415055 +COMMUNITY_CARE: + 2023-01-01: 651.90 + 2025-01-01: 784 +DOMICILIARY_CARE_I: + 2023-01-01: 651.90 + 2025-01-01: 784 +DOMICILIARY_CARE_II: + 2023-01-01: 759.90 + 2025-01-01: 892 +MEDICAID_INSTITUTION: + 2023-01-01: 20 + 2025-01-01: 45 diff --git a/policyengine_us/tests/policy/baseline/gov/states/hi/dhs/oss/hi_oss.yaml b/policyengine_us/tests/policy/baseline/gov/states/hi/dhs/oss/hi_oss.yaml new file mode 100644 index 00000000000..cedfb970ccb --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/hi/dhs/oss/hi_oss.yaml @@ -0,0 +1,127 @@ +- name: Individual in community care foster family home receives $9,408/year (2025) + period: 2025 + input: + state_code: HI + ssi: 360 + hi_oss_living_arrangement: COMMUNITY_CARE + output: + hi_oss: 9408 + +- name: Individual in domiciliary care I receives $9,408/year (2025) + period: 2025 + input: + state_code: HI + ssi: 360 + hi_oss_living_arrangement: DOMICILIARY_CARE_I + output: + hi_oss: 9408 + +- name: Individual in domiciliary care II receives $10,704/year (2025) + period: 2025 + input: + state_code: HI + ssi: 360 + hi_oss_living_arrangement: DOMICILIARY_CARE_II + output: + hi_oss: 10704 + +- name: Individual in Medicaid institution receives $540/year (2025) + period: 2025 + input: + state_code: HI + ssi: 360 + hi_oss_living_arrangement: MEDICAID_INSTITUTION + output: + hi_oss: 540 + +- name: SSI recipient not in qualifying facility gets $0 + period: 2025 + input: + state_code: HI + ssi: 360 + hi_oss_living_arrangement: NONE + output: + hi_oss: 0 + +- name: Person without SSI in qualifying facility gets $0 + period: 2025 + input: + state_code: HI + ssi: 0 + hi_oss_living_arrangement: COMMUNITY_CARE + output: + hi_oss: 0 + +- name: Non-Hawaii resident is ineligible + period: 2025 + input: + state_code: CA + ssi: 360 + hi_oss_living_arrangement: COMMUNITY_CARE + output: + hi_oss: 0 + +- name: Married couple in community care receives couple rate (2025) + period: 2025 + input: + people: + person1: + ssi: 360 + hi_oss_living_arrangement: COMMUNITY_CARE + person2: + ssi: 360 + hi_oss_living_arrangement: COMMUNITY_CARE + families: + family1: + members: [person1, person2] + tax_units: + tax_unit1: + members: [person1, person2] + spm_units: + spm_unit1: + members: [person1, person2] + households: + household1: + members: [person1, person2] + state_code: HI + output: + hi_oss: + - 11430 + - 11430 + +- name: Married couple in Medicaid institution receives couple rate (2025) + period: 2025 + input: + people: + person1: + ssi: 360 + hi_oss_living_arrangement: MEDICAID_INSTITUTION + person2: + ssi: 360 + hi_oss_living_arrangement: MEDICAID_INSTITUTION + families: + family1: + members: [person1, person2] + tax_units: + tax_unit1: + members: [person1, person2] + spm_units: + spm_unit1: + members: [person1, person2] + households: + household1: + members: [person1, person2] + state_code: HI + output: + hi_oss: + - 540 + - 540 + +- name: Individual in community care receives 2023 rate + period: 2023 + input: + state_code: HI + ssi: 360 + hi_oss_living_arrangement: COMMUNITY_CARE + output: + hi_oss: 7822.80 diff --git a/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss.py b/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss.py new file mode 100644 index 00000000000..6622fe3c1fa --- /dev/null +++ b/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss.py @@ -0,0 +1,18 @@ +from policyengine_us.model_api import * + + +class hi_oss(Variable): + value_type = float + entity = Person + label = "Hawaii Optional State Supplementation" + unit = USD + definition_period = YEAR + defined_for = "hi_oss_eligible" + reference = ( + "https://secure.ssa.gov/apps10/poms.nsf/lnx/0501415200SF", + "https://secure.ssa.gov/POMS.NSF/lnx/0501415057", + ) + + def formula(person, period, parameters): + monthly_amount = person("hi_oss_payment_amount", period) + return monthly_amount * MONTHS_IN_YEAR diff --git a/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss_eligible.py b/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss_eligible.py new file mode 100644 index 00000000000..3f4deaf38a3 --- /dev/null +++ b/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss_eligible.py @@ -0,0 +1,24 @@ +from policyengine_us.model_api import * +from policyengine_us.variables.gov.states.hi.dhs.oss.hi_oss_living_arrangement import ( + HIOSSLivingArrangement, +) + + +class hi_oss_eligible(Variable): + value_type = bool + entity = Person + label = "Whether the person is eligible for Hawaii OSS" + definition_period = YEAR + defined_for = StateCode.HI + reference = ( + "https://secure.ssa.gov/apps10/poms.nsf/lnx/0501415200SF", + "https://secure.ssa.gov/POMS.NSF/lnx/0501415057", + ) + + def formula(person, period, parameters): + receives_ssi = person("ssi", period) > 0 + living_arrangement = person("hi_oss_living_arrangement", period) + in_qualifying_facility = ( + living_arrangement != HIOSSLivingArrangement.NONE + ) + return receives_ssi & in_qualifying_facility diff --git a/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss_living_arrangement.py b/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss_living_arrangement.py new file mode 100644 index 00000000000..067d33f5094 --- /dev/null +++ b/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss_living_arrangement.py @@ -0,0 +1,23 @@ +from policyengine_us.model_api import * + + +class HIOSSLivingArrangement(Enum): + COMMUNITY_CARE = "Community care foster family home" + DOMICILIARY_CARE_I = "Domiciliary care facility with 5 or fewer residents" + DOMICILIARY_CARE_II = "Domiciliary care facility with 6 or more residents" + MEDICAID_INSTITUTION = "Medicaid institution paying more than 50% of care cost" + NONE = "Not in a qualifying facility" + + +class hi_oss_living_arrangement(Variable): + value_type = Enum + entity = Person + label = "Hawaii OSS living arrangement" + definition_period = YEAR + defined_for = StateCode.HI + possible_values = HIOSSLivingArrangement + default_value = HIOSSLivingArrangement.NONE + reference = ( + "https://secure.ssa.gov/poms.nsf/lnx/0501415210SF", + "https://secure.ssa.gov/POMS.NSF/lnx/0501415057", + ) diff --git a/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss_payment_amount.py b/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss_payment_amount.py new file mode 100644 index 00000000000..1b1689f915e --- /dev/null +++ b/policyengine_us/variables/gov/states/hi/dhs/oss/hi_oss_payment_amount.py @@ -0,0 +1,21 @@ +from policyengine_us.model_api import * + + +class hi_oss_payment_amount(Variable): + value_type = float + entity = Person + label = "Hawaii OSS monthly payment amount" + unit = USD + definition_period = YEAR + defined_for = StateCode.HI + reference = ( + "https://secure.ssa.gov/POMS.NSF/lnx/0501415057", + ) + + def formula(person, period, parameters): + living_arrangement = person("hi_oss_living_arrangement", period) + is_married = person.family("is_married", period.this_year) + p = parameters(period).gov.states.hi.dhs.oss.payment + individual_amount = p.individual.amount[living_arrangement] + couple_amount = p.couple.amount[living_arrangement] / 2 + return where(is_married, couple_amount, individual_amount)