From 5b0bc3a03186607a77939f591469128e0d2f0c0a Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 18 Mar 2026 12:50:15 -0400 Subject: [PATCH 1/9] Implement Alabama State Supplementary Payment (SSP) Adds Alabama's optional state supplement to federal SSI for recipients in qualifying care arrangements (IHC Level A/B, Foster Home Care, Cerebral Palsy). Flat monthly amounts, frozen since 1995. Co-Authored-By: Claude Opus 4.6 (1M context) --- changelog.d/al-ssi-ssp.added.md | 1 + .../al/dhr/ssp/amount/cerebral_palsy.yaml | 14 + .../states/al/dhr/ssp/amount/foster_care.yaml | 14 + .../gov/states/al/dhr/ssp/amount/level_a.yaml | 14 + .../gov/states/al/dhr/ssp/amount/level_b.yaml | 14 + .../gov/states/al/dhr/ssp/al_ssp.yaml | 98 ++++ .../states/al/dhr/ssp/al_ssp_eligible.yaml | 71 +++ .../variables/gov/states/al/dhr/ssp/al_ssp.py | 37 ++ .../gov/states/al/dhr/ssp/al_ssp_eligible.py | 21 + .../al/dhr/ssp/al_ssp_living_arrangement.py | 20 + .../income/spm_unit/spm_unit_benefits.py | 2 + sources/working_references.md | 531 ++++++++++++++++++ 12 files changed, 837 insertions(+) create mode 100644 changelog.d/al-ssi-ssp.added.md create mode 100644 policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml create mode 100644 policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml create mode 100644 policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml create mode 100644 policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml create mode 100644 policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py create mode 100644 policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py create mode 100644 policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py create mode 100644 sources/working_references.md diff --git a/changelog.d/al-ssi-ssp.added.md b/changelog.d/al-ssi-ssp.added.md new file mode 100644 index 00000000000..249168cd6b3 --- /dev/null +++ b/changelog.d/al-ssi-ssp.added.md @@ -0,0 +1 @@ +Implement Alabama State Supplementary Payment (SSP). diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml new file mode 100644 index 00000000000..cf9ce35d689 --- /dev/null +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml @@ -0,0 +1,14 @@ +description: Alabama provides this amount as the monthly supplement for Cerebral Palsy Treatment Center care under the State Supplementary Payment program. + +values: + 1995-01-01: 196 + +metadata: + unit: currency-USD + period: month + label: Alabama SSP Cerebral Palsy supplement amount + reference: + - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients + href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 + - title: SSA State Assistance Programs for SSI Recipients, January 2011 -- Alabama + href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.pdf diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml new file mode 100644 index 00000000000..21bf83b8fb4 --- /dev/null +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml @@ -0,0 +1,14 @@ +description: Alabama provides this amount as the monthly supplement for Foster Home Care under the State Supplementary Payment program. + +values: + 1995-01-01: 110 + +metadata: + unit: currency-USD + period: month + label: Alabama SSP Foster Home Care supplement amount + reference: + - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients + href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 + - title: SSA State Assistance Programs for SSI Recipients, January 2011 -- Alabama + href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.pdf diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml new file mode 100644 index 00000000000..50c0d7a2000 --- /dev/null +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml @@ -0,0 +1,14 @@ +description: Alabama provides this amount as the monthly supplement for Independent Homelife Care Level A under the State Supplementary Payment program. + +values: + 1995-01-01: 60 + +metadata: + unit: currency-USD + period: month + label: Alabama SSP Level A supplement amount + reference: + - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients + href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 + - title: SSA State Assistance Programs for SSI Recipients, January 2011 -- Alabama + href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.pdf diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml new file mode 100644 index 00000000000..38ed5ce92eb --- /dev/null +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml @@ -0,0 +1,14 @@ +description: Alabama provides this amount as the monthly supplement for Independent Homelife Care Level B under the State Supplementary Payment program. + +values: + 1995-01-01: 56 + +metadata: + unit: currency-USD + period: month + label: Alabama SSP Level B supplement amount + reference: + - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients + href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 + - title: SSA State Assistance Programs for SSI Recipients, January 2011 -- Alabama + href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.pdf diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml new file mode 100644 index 00000000000..408286e26bd --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml @@ -0,0 +1,98 @@ +- name: IHC Level A individual + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_A + ssi_claim_is_joint: false + output: + al_ssp: 60 + +- name: IHC Level B individual + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_B + ssi_claim_is_joint: false + output: + al_ssp: 56 + +- name: Foster Home Care individual + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: FOSTER_CARE + ssi_claim_is_joint: false + output: + al_ssp: 110 + +- name: Cerebral Palsy individual + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: CEREBRAL_PALSY + ssi_claim_is_joint: false + output: + al_ssp: 196 + +- name: Specialized IHC individual (same as Level A) + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: SPECIALIZED_IHC + ssi_claim_is_joint: false + output: + al_ssp: 60 + +- name: IHC Level A couple (joint claim) + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_A + ssi_claim_is_joint: true + output: + al_ssp: 120 + +- name: IHC Level B couple (joint claim) + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_B + ssi_claim_is_joint: true + output: + al_ssp: 112 + +- name: Foster Home Care couple (joint claim) + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: FOSTER_CARE + ssi_claim_is_joint: true + output: + al_ssp: 220 + +- name: Cerebral Palsy couple (joint claim) + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: CEREBRAL_PALSY + ssi_claim_is_joint: true + output: + al_ssp: 392 + +- name: Specialized IHC couple (joint claim, same as Level A) + period: 2025-01 + input: + al_ssp_eligible: true + al_ssp_living_arrangement: SPECIALIZED_IHC + ssi_claim_is_joint: true + output: + al_ssp: 120 + +- name: Not eligible + period: 2025-01 + input: + al_ssp_eligible: false + al_ssp_living_arrangement: IHC_LEVEL_A + ssi_claim_is_joint: false + output: + al_ssp: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml new file mode 100644 index 00000000000..421af8b6c22 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml @@ -0,0 +1,71 @@ +- name: SSI eligible in IHC Level A + period: 2025-01 + input: + is_ssi_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_A + state_code: AL + output: + al_ssp_eligible: true + +- name: SSI eligible but no qualifying arrangement + period: 2025-01 + input: + is_ssi_eligible: true + al_ssp_living_arrangement: NONE + state_code: AL + output: + al_ssp_eligible: false + +- name: Not SSI eligible in IHC Level B + period: 2025-01 + input: + is_ssi_eligible: false + al_ssp_living_arrangement: IHC_LEVEL_B + state_code: AL + output: + al_ssp_eligible: false + +- name: Not SSI eligible and no arrangement + period: 2025-01 + input: + is_ssi_eligible: false + al_ssp_living_arrangement: NONE + state_code: AL + output: + al_ssp_eligible: false + +- name: SSI eligible in Foster Care + period: 2025-01 + input: + is_ssi_eligible: true + al_ssp_living_arrangement: FOSTER_CARE + state_code: AL + output: + al_ssp_eligible: true + +- name: SSI eligible in Cerebral Palsy center + period: 2025-01 + input: + is_ssi_eligible: true + al_ssp_living_arrangement: CEREBRAL_PALSY + state_code: AL + output: + al_ssp_eligible: true + +- name: SSI eligible in Specialized IHC + period: 2025-01 + input: + is_ssi_eligible: true + al_ssp_living_arrangement: SPECIALIZED_IHC + state_code: AL + output: + al_ssp_eligible: true + +- name: Wrong state + period: 2025-01 + input: + is_ssi_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_A + state_code: CO + output: + al_ssp_eligible: false diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py new file mode 100644 index 00000000000..487d376aee4 --- /dev/null +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py @@ -0,0 +1,37 @@ +from policyengine_us.model_api import * + + +class al_ssp(Variable): + value_type = float + entity = Person + label = "Alabama State Supplementary Payment" + unit = USD + definition_period = MONTH + defined_for = "al_ssp_eligible" + reference = "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24" + + def formula(person, period, parameters): + p = parameters(period).gov.states.al.dhr.ssp.amount + living_arrangement = person("al_ssp_living_arrangement", period) + la = living_arrangement.possible_values + # Look up monthly amount by living arrangement. + # Specialized IHC uses same amount as Level A. + monthly_amount = select( + [ + living_arrangement == la.IHC_LEVEL_A, + living_arrangement == la.IHC_LEVEL_B, + living_arrangement == la.FOSTER_CARE, + living_arrangement == la.CEREBRAL_PALSY, + living_arrangement == la.SPECIALIZED_IHC, + ], + [ + p.level_a, + p.level_b, + p.foster_care, + p.cerebral_palsy, + p.level_a, # Specialized IHC = Level A amount + ], + ) + # Double for joint SSI claims (both spouses are ABD). + joint_claim = person("ssi_claim_is_joint", period.this_year) + return monthly_amount * (1 + joint_claim) diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py new file mode 100644 index 00000000000..cc8e2a2c524 --- /dev/null +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py @@ -0,0 +1,21 @@ +from policyengine_us.model_api import * + + +class al_ssp_eligible(Variable): + value_type = bool + entity = Person + label = "Alabama SSP eligible" + definition_period = MONTH + defined_for = StateCode.AL + reference = ( + "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=6", + "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=8", + ) + + def formula(person, period, parameters): + is_ssi_eligible = person("is_ssi_eligible", period.this_year) + living_arrangement = person("al_ssp_living_arrangement", period) + in_qualifying_arrangement = ( + living_arrangement != living_arrangement.possible_values.NONE + ) + return is_ssi_eligible & in_qualifying_arrangement diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py new file mode 100644 index 00000000000..091e30c4b9e --- /dev/null +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py @@ -0,0 +1,20 @@ +from policyengine_us.model_api import * + + +class ALSSPLivingArrangement(Enum): + NONE = "Not in a qualifying care arrangement" + IHC_LEVEL_A = "Independent Homelife Care, Level A" + IHC_LEVEL_B = "Independent Homelife Care, Level B" + FOSTER_CARE = "Foster Home Care" + CEREBRAL_PALSY = "Cerebral Palsy Treatment Center" + SPECIALIZED_IHC = "Specialized Independent Homelife Care" + + +class al_ssp_living_arrangement(Variable): + value_type = Enum + entity = Person + label = "Alabama SSP living arrangement" + definition_period = MONTH + possible_values = ALSSPLivingArrangement + default_value = ALSSPLivingArrangement.NONE + reference = "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=6" diff --git a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py index 014384941e9..526ae0b0cd1 100644 --- a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py +++ b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py @@ -12,6 +12,8 @@ def formula(spm_unit, period, parameters): BENEFITS = [ "social_security", "ssi", + # Alabama programs. + "al_ssp", "ma_state_supplement", # Massachusetts benefits # California programs. "ca_cvrp", # California Clean Vehicle Rebate Project. diff --git a/sources/working_references.md b/sources/working_references.md new file mode 100644 index 00000000000..26feecad99d --- /dev/null +++ b/sources/working_references.md @@ -0,0 +1,531 @@ +# Collected Documentation + +## Alabama SSI/SSP (State Supplementary Payment) Implementation +**Collected**: 2026-03-18 +**Implementation Task**: Implement Alabama's State Supplementary Payment (SSP) to the federal Supplemental Security Income (SSI) program + +--- + +## Official Program Name + +**Federal Program**: Supplemental Security Income (SSI) +**State's Official Name**: State Supplementation (SUP) -- also referred to as Optional Supplementation +**Abbreviation**: SUP (in DHR documents), SSP (federal terminology) +**Source**: Alabama Administrative Code Chapter 660-2-4, "STATE SUPPLEMENTATION"; Code of Alabama 1975, Title 38 +**Administering Agency**: Alabama Department of Human Resources (DHR), Economic Assistance Division -- administered at the county level through County Departments of Human Resources + +**Variable Prefix**: `al_ssp` (using federal SSP terminology for consistency with other state implementations) + +--- + +## Program Overview + +Alabama provides a state-administered optional supplement to SSI recipients (and certain grandfathered non-SSI recipients) who require care in specific living arrangements. The program is entirely state-funded (both administration and assistance). + +**Key characteristics:** +- State-administered (NOT federally administered -- SSA does not issue these payments) +- Extremely small caseload: approximately 20 recipients statewide as of January 2025 (9 OAP + 0 AB + 11 APTD) +- Payment amounts have been frozen since at least 1995 (no COLA adjustments) +- Limited to persons requiring care in specified living arrangements +- No additional income disregards beyond federal SSI rules + +**Program categories (legacy names from pre-1974 adult assistance programs):** +- **OAP** - Old Age Pension (aged 65+) +- **AB** - Aid to the Blind +- **APTD** - Aid to the Permanently and Totally Disabled + +--- + +## Source 1: Alabama Administrative Code, Chapter 660-2-4 + +### Source Information +- **Title**: Alabama Administrative Code, Chapter 660-2-4 -- STATE SUPPLEMENTATION +- **Citation**: Ala. Admin. Code r. 660-2-4-.01 through 660-2-4-.29 and Appendix A +- **URL**: https://admincode.legislature.state.al.us/api/chapter/660-2-4 +- **Effective Date**: Original effective June 28, 1983; various amendments through January 15, 1992. Supplement dated 3/31/95 +- **Format**: 61-page PDF + +### Key Rules and Thresholds + +#### General Eligibility (660-2-4-.15) + +Eligibility on the factors of age, disability, blindness, residence, citizenship, resources, and income is established by Supplemental Security Income (SSI) Program staff based on Title XVI of the Social Security Act. + +**Meaning**: Alabama defers to federal SSI rules for all basic eligibility factors. No separate state eligibility determination for these factors. + +#### Eligibility Factors Other Than Need (660-2-4-.16) + +A person meeting general eligibility criteria must ALSO meet one of these care requirements: + +1. **Independent Homelife Care (IHC)**: Must be certified as needing independent homelife care in: + - A private home, OR + - A foster home licensed/approved by DHR + - *Note: Personal care (pre-9/30/1986 recipients only) -- grandfathered* + +2. **Specialized Independent Homelife Care**: Must be certified as needing (on or after 10/1/1986) specialized IHC AND: + - Must be receiving benefits under the Elderly/Disabled Medicaid Waiver Program + - Must meet skilled nursing facility criteria per 660-2-4-.28 + +**Physician certification required**: Recommendation for care must be made by a legally licensed physician. + +#### Definition of Independent Homelife Care (660-2-4-.17) + +Care from someone else to enable a person to live as independently as possible outside a nursing home. Services include: +- Help with prescribed exercise routines +- Changing bandages/dressings on physician's advice +- Administering prescribed medication +- Assisting with prostheses or ambulation aids +- Assistance in locomotion +- Maintaining acceptable state of cleanliness +- Maintaining orientation to time, place, and events +- Reminding of medication needs +- Other health-related functions + +**Not included**: Companionship for pleasure or convenience rather than protection and necessity. + +#### Definition of Specialized Independent Homelife Care (660-2-4-.27) + +Services incidental to a medical need to assist the functionally impaired individual with: +- Personal hygiene +- Dressing +- Ambulation +- Meal preparation +- Eating +- Self-administering medications +- Maintaining a safe and sanitary environment + +#### Care in Cerebral Palsy Treatment Centers (660-2-4-.18) + +- Limited to persons who were eligible for optional supplementation as of June 1, 1981 +- Supplement amount: **$196/month** +- For non-SSI recipients: difference between $196 and income in excess of the SSI federal benefit rate +- Only for APTD category +- **Effectively closed to new enrollment since June 1981** + +#### Need Requirement (660-2-4-.19) + +To be eligible for SUP based on need, an individual must be a recipient of SSI through the Social Security Administration. + +**Critical rule**: SSI recipients are considered needy and entitled to the **full supplement**, if otherwise eligible. No separate income/resource determination is necessary for SSI recipients. + +#### Amount of Assistance Payment (660-2-4-.10) + +The amount of assistance payment is determined by the **kind of care needed**, subject to funds available. When available funds are expended on current recipients, the State Department may freeze the caseload. + +#### Non-SSI Supplementation (SUP) Recipients (660-2-4-.26) + +- Limited to persons receiving optional supplementation as of March 7, 1986 +- **Effectively closed to new non-SSI enrollment since March 1986** +- Must meet all eligibility requirements AND only be ineligible for SSI due to income +- Supplement = difference between countable income and applicable supplement amount +- Must not have: + - Resources exceeding Title XVI maximum + - Gross countable income exceeding Alabama Medicaid Agency limit + - Net countable income exceeding appropriate supplement +- Income/resource rules per 20 CFR 416, Subparts K and L + +#### Care Provider Requirements (660-2-4-.29) + +Effective February 14, 1992: +- Must be employed by a certified home health agency, OR +- If County Health Department does not make services available: an individual who declares in writing having at least 6th grade education, is physically/mentally able, has not been convicted of a serious crime, has not been fired for dereliction of duty +- **Cannot be**: child, stepchild, adoptive child, son/daughter-in-law, parent, stepparent, adoptive parent, spouse, brother, sister, brother/sister-in-law + +### Payment Amounts (Attachment 660-2-4-.19a) + +**SPECIAL NEEDS OF APPLICANTS AND RECIPIENTS** + +| Living Arrangement / Care Type | Monthly Payment | Maximum Budgeted | +|---|---|---| +| FCMP Nursing Care (when required) | $100.00 | $60.00 | +| Nursing Care Supplement | $60.00 | $60.00 | +| Personal Care Supplement -- Level of Independence "A" | $60.00 | $60.00 | +| Personal Care Supplement -- Level of Independence "B" | $56.00 | $56.00 | +| Personal Care or Nursing Care Supplement in Foster Care | $110.00 | $110.00 | +| Care in a Cerebral Palsy Treatment Center (APTD) | $196.00 | $196.00 | + +**Source**: Attachment 660-2-4-.19a, PDF page 24 of Chapter 660-2-4 +**PDF URL**: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 + +#### Level A vs Level B Distinction + +- **Level A ($60)**: Higher level of independence -- person requires less intensive care +- **Level B ($56)**: Lower level of independence -- person requires more intensive care +- The exact clinical criteria for Level A vs Level B are determined by physician certification + +### Federal Benefit Rate Chart (Attachment 660-2-4-.26a) + +This chart is used for Non-SSI SUP recipients to determine gross income eligibility. Values shown are from January 1, 1995 (frozen in regulations but the actual FBR used follows current federal rates): + +| Living Arrangement | FBR | Gross Income Limit | +|---|---|---| +| Individual in own home | $458.00 | $1,374.00 | +| Individual in household of another (receiving support and maintenance) | $305.34 | $916.02 | +| Individual with spouse both in household of another (Couple standard) | $687.00 | $2,748.00 | +| Individual in nursing home | $30.00 | -- | + +**Source**: Attachment 660-2-4-.26a, PDF page 26 of Chapter 660-2-4 +**PDF URL**: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=26 + +**NOTE**: The FBR values in the regulation text are from 1995 and are outdated. The actual FBR follows current federal SSI rates. But the state supplement amounts ($56/$60/$110/$196) have NOT changed and remain frozen at 1995 levels as confirmed by January 2025 DHR statistical reports. + +--- + +## Source 2: Alabama DHR Public Assistance Payment Manual (Appendix N, Section 3) + +### Source Information +- **Title**: Appendix N Sec 3 -- Public Assistance Payment Manual +- **Citation**: Alabama DHR Policy Manual, Section 12200 (Income) +- **URL**: https://dhr.alabama.gov/wp-content/uploads/2022/04/Appendix-N-Sec-3-Public-Assistance-Payment-Manual.pdf +- **Effective Date**: Various revisions through Rev 770 (April 2012) + +### Key Rules + +#### Income Determination for SSI Recipients (Section 12200) + +"In determining eligibility for a supplement, a separate income/resource determination is not necessary for persons receiving SSI. **SSI recipients are considered needy and entitled to the full supplement**, if otherwise eligible." + +"SSI recipient" includes a person who was determined eligible for SSI, but whose SSI payment is "in suspense", or withheld, for a reason other than ineligibility. + +#### Income Determination for Non-SSI Recipients (Section 12200) + +A person not receiving SSI may receive optional supplementation only if his gross income is within certain limits. Refer to the Federal Benefit Rate Chart in Appendix I. + +#### Income Exclusions + +Federal SSI income exclusions apply (20 CFR 416, Subpart K). No additional state-specific income disregards beyond federal SSI rules. + +#### Resource Limits + +Under the reserve policy for the Supplementation Program: +- Individual: $2,000 +- Married couple living together: $3,000 (whether one or both eligible) +- These match the federal SSI resource limits + +#### Deeming Rules (Section 12100) + +Follows federal SSI deeming rules: +- **Spouse to spouse**: Uses SSI deeming methodology (20 CFR 416) +- **Parent to child**: Uses SSI deeming methodology +- $65 earned income exclusion and 1/2 remainder applied +- 1/2 FBR individual comparison for deemed income threshold + +--- + +## Source 3: Alabama DHR Monthly Statistical Reports (Green Books) + +### Source Information +- **Title**: Alabama DHR Monthly Statistical Reports +- **URLs**: + - January 2025: https://dhr.alabama.gov/wp-content/uploads/2025/07/STAT0125.pdf + - March 2024: https://dhr.alabama.gov/wp-content/uploads/2024/09/STAT0324.pdf + - November 2023: https://dhr.alabama.gov/wp-content/uploads/2024/02/STAT1123.pdf + +### Current Caseload and Payment Data (January 2025) + +| Category | Total Recipients | Average Payment/Case | +|---|---|---| +| OAP (Old Age Pensions) | 9 | $57.33 | +| AB (Aid to Blind) | 0 | $0.00 | +| APTD (Aid to Permanently/Totally Disabled) | 11 | $56.73 | +| **TOTAL** | **20** | -- | + +Individual payment amounts observed in January 2025 data: +- $56.00 (most common -- Level B) +- $60.00 (Level A) +- $58.00 (appears to be an average or partial-month payment) + +**APTD footnote (January 2025)**: "Includes home life supplements of $168.00 for 3 adults and 0 children in foster homes licensed or approved by the Department of Human Resources." ($168 / 3 = $56 per adult) + +### Historical Consistency + +Comparing November 2023, March 2024, and January 2025 reports confirms: +- Payment amounts ($56/$60) have been unchanged +- Caseload is stable at approximately 20 recipients statewide +- No foster care supplement ($110) or cerebral palsy supplement ($196) recipients appear in recent data (though the regulatory authority remains) + +--- + +## Source 4: SSA State Assistance Programs for SSI Recipients (2011 report) + +### Source Information +- **Title**: State Assistance Programs for SSI Recipients, January 2011 -- Alabama +- **Citation**: SSA Publication +- **URL**: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.html +- **Note**: Returns 403 error -- content obtained from WorkWorld mirror and web search excerpts + +### Key Information from SSA Report + +**Administration**: State-administered (not federally administered). SSA does not issue these payments. + +**Statutory Authority**: Code of Alabama 1975 as amended, Title 38 + +**Funding**: Both administration and assistance funded with state funds + +**Coverage**: All SSI recipients (including children) and certain grandfathered non-SSI recipients in specified living arrangements + +**Benefit amounts (2011 data, per SSA):** +- Level A Individual (IHC in private home/personal care home): $60 supplement +- Level B Individual: $56 supplement +- Specialized IHC: $60 supplement +- Foster Home Care: $110 supplement +- Cerebral Palsy Treatment Center: $196 supplement +- Couples receive double the individual amounts + +**No additional disregards**: Beyond federal SSI standards + +**Resource limits**: Federal SSI limitations apply + +**Recoveries/Liens**: None + +**Financial responsibility**: Spouse for spouse; parent/stepparent for child under 18 + +--- + +## Source 5: WorkWorld SSI State Supplement -- Alabama + +### Source Information +- **Title**: SSI State Supplement -- Alabama +- **URL**: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm +- **Data Year**: Calendar year 2010 payment levels + +### Combined Benefit Amounts (Federal SSI + State Supplement) + +This source provides the **combined** amounts (federal FBR + state supplement). The state supplement amount is the difference: + +| Living Arrangement | State Supplement | Combined Total (2010) | +|---|---|---| +| IHC Level A (Private Home) | $60 | $734 | +| IHC Level B (Private Home) | $56 | $730 | +| IHC Level A (with Support & Maintenance) | $60 | $509.34 | +| IHC Level B (with Support & Maintenance) | $56 | $505.34 | +| Specialized IHC | $60 | $734 | +| Foster Home Care | $110 | $784 | +| Cerebral Palsy Treatment Center | $196 | $870 | + +**Couple amounts**: Double the individual amounts + +--- + +## Source 6: Code of Alabama 1975, Title 38 + +### Source Information +- **Title**: Code of Alabama 1975, Title 38 -- Public Welfare +- **Citation**: Code of Alabama 1975, Title 38, Chapter 4 (Public Assistance Generally) +- **URL**: https://law.justia.com/codes/alabama/title-38/chapter-4/ +- **Key Section**: Section 38-4-1 (Persons to Whom Public Assistance Payable) + +### Statutory Provisions + +Public assistance payable to: +- Needy blind persons (AB category) +- Needy persons over age 65 (OAP category) +- Dependent children +- Permanently and totally disabled persons (APTD category) + +**Restrictions**: No assistance to inmates of public institutions (except patients in institutions where payments are matchable under the Social Security Act). + +**For APTD eligibility (Section 38-4-1)**: Person must be: +1. Age 18 or older +2. Permanently and totally disabled per state department definition +3. Unable to provide himself with necessities of life due to disability +4. Without sufficient income and resources from all sources +5. Alabama resident at time of application +6. Has not disposed of property to qualify +7. Not receiving other federally-matched public assistance + +--- + +## Benefit Calculation + +### For SSI Recipients (Current -- the vast majority of cases) + +**Formula**: Flat supplement amount based on living arrangement + +``` +State Supplement = Flat amount per living arrangement +``` + +The SSI recipient receives the full supplement amount regardless of their SSI payment amount. No income test or offset applies -- SSI eligibility IS the need determination. + +| Living Arrangement | Individual/Month | Couple/Month | +|---|---|---| +| Independent Homelife Care -- Level A | $60 | $120 | +| Independent Homelife Care -- Level B | $56 | $112 | +| Foster Home Care | $110 | $220 | +| Cerebral Palsy Treatment Center (APTD only) | $196 | $392 | +| Specialized Independent Homelife Care | $60 | $120 | + +### For Non-SSI SUP Recipients (Grandfathered -- effectively closed since March 1986) + +**Formula**: Difference between supplement level and countable income above FBR + +``` +State Supplement = Applicable Supplement Level - (Countable Income - Federal Benefit Rate) +``` + +If the result is negative, no supplement is paid. + +**Eligibility test**: Gross countable income must not exceed the Medicaid Agency gross income limit. + +### For Cerebral Palsy Treatment Center (Non-SSI) + +``` +State Supplement = $196 - (Income in excess of SSI Federal Benefit Rate) +``` + +--- + +## Implementation Approach + +### Relationship to Existing Federal SSI Implementation + +The existing PolicyEngine SSI implementation (`ssi` variable) handles all federal eligibility and benefit calculation. The Alabama SSP is an ADD-ON to SSI. + +**Key design decision**: The Alabama SSP is primarily a flat supplement for SSI recipients in specific living arrangements. The implementation requires: + +1. **Eligibility**: Person must be `is_ssi_eligible_individual` AND in a qualifying living arrangement +2. **Benefit**: Flat amount based on living arrangement (no income offset for SSI recipients) +3. **Living arrangement**: New input variable needed (or reuse existing `ssi_living_arrangement` if one exists) + +### Implementation Complexity: SIMPLE + +- No complex income calculations (uses federal SSI eligibility) +- Flat payment amounts (no formula-based computation for SSI recipients) +- No state-specific deductions or disregards +- Payment amounts frozen since 1995 (no COLA mechanism) +- Very small caseload (~20 people) +- The non-SSI recipient path is effectively closed and could be excluded from initial implementation + +### Recommended Variables + +1. `al_ssp` -- Main benefit variable (Person, YEAR, float) +2. `al_ssp_eligible` -- Eligibility variable (Person, YEAR, bool) +3. Input variable for living arrangement category needed (or adapt existing) + +### Parameter Structure + +``` +gov/states/al/dhr/ssp/ + amount/ + level_a.yaml # $60/month (IHC Level A and Specialized IHC) + level_b.yaml # $56/month (IHC Level B) + foster_care.yaml # $110/month + cerebral_palsy.yaml # $196/month (APTD only, grandfathered) +``` + +### References for Metadata + +```yaml +# For parameters: +reference: + - title: "Ala. Admin. Code r. 660-2-4-.19a -- Special Needs of Applicants and Recipients" + href: "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24" + - title: "Alabama DHR Monthly Statistical Report (January 2025)" + href: "https://dhr.alabama.gov/wp-content/uploads/2025/07/STAT0125.pdf#page=5" +``` + +```python +# For variables: +reference = "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24" +``` + +--- + +## Demographic Eligibility + +**SSI Eligibility Required**: Person must be eligible for federal SSI (aged, blind, or disabled) + +**Implementation approach:** +- [x] Use federal SSI eligibility (`is_ssi_eligible_individual` or `is_ssi_aged_blind_disabled`) +- [x] No state-specific age/disability thresholds (defers to federal SSI Title XVI) + +## Immigration Eligibility + +**Implementation approach:** +- [x] Use federal SSI immigration eligibility (state follows federal rules per 660-2-4-.15) +- No state-specific immigration rules for SSP + +## Income/Resource Rules + +**Implementation approach:** +- [x] Use federal SSI income/resource rules (per 660-2-4-.15 and 660-2-4-.26) +- [x] No additional state income disregards +- For SSI recipients: no separate income test (SSI eligibility = need determination) + +--- + +## Special Cases and Exceptions + +1. **Grandfathered populations**: Several categories are closed to new enrollment: + - Non-SSI SUP recipients (closed since March 7, 1986) + - Personal care recipients (closed since September 30, 1986) + - Cerebral Palsy Treatment Center residents (closed since June 1981) + - These are extremely small populations and may not need modeling + +2. **SSI payment in suspense**: A person whose SSI payment is "in suspense" or withheld for a reason OTHER than ineligibility is still considered an SSI recipient for SUP purposes + +3. **Caseload freeze**: Alabama reserves the right to freeze the caseload when funds are exhausted -- not implementable in a microsimulation model + +4. **Living arrangement requirement**: The supplement is ONLY available to persons requiring specific care arrangements, not to all SSI recipients. This is the most significant limiting factor. + +--- + +## PDFs Downloaded and Extracted + +1. **Alabama Administrative Code Chapter 660-2-4** (61 pages) + - URL: https://admincode.legislature.state.al.us/api/chapter/660-2-4 + - Saved to: /tmp/al_admin_code_660-2-4.pdf + - Text extracted to: /tmp/al_admin_code_660-2-4.txt + - Key pages rendered at 300 DPI: pages 24-26 (payment tables) + +2. **Alabama DHR Payment Manual Section 3** (large file) + - URL: https://dhr.alabama.gov/wp-content/uploads/2022/04/Appendix-N-Sec-3-Public-Assistance-Payment-Manual.pdf + - Saved to: /tmp/al_dhr_payment_manual_sec3.pdf + - Text extracted to: /tmp/al_dhr_sec3.txt + +3. **Alabama DHR Monthly Statistical Report -- January 2025** + - URL: https://dhr.alabama.gov/wp-content/uploads/2025/07/STAT0125.pdf + - Saved to: /tmp/al_dhr_stat_0125.pdf + - Text extracted to: /tmp/al_dhr_stat_0125.txt + - Key pages rendered at 300 DPI: pages 5-10 (supplementation tables) + +4. **Alabama DHR Monthly Statistical Report -- March 2024** + - URL: https://dhr.alabama.gov/wp-content/uploads/2024/09/STAT0324.pdf + - Saved to: /tmp/al_dhr_stat_0324.pdf + - Key pages rendered at 300 DPI: pages 5-10 + +5. **Alabama DHR Monthly Statistical Report -- November 2023** + - URL: https://dhr.alabama.gov/wp-content/uploads/2024/02/STAT1123.pdf + - Saved to: /tmp/al_dhr_stat_1123.pdf + +--- + +## Failed Fetches + +1. **SSA State Assistance Programs for SSI Recipients -- Alabama (2011)** + - URL: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.html + - Error: 403 Forbidden + - Expected content: Comprehensive overview of Alabama's state assistance programs for SSI recipients with payment levels, eligibility rules, and program structure + - Mitigation: Content obtained from WorkWorld mirror and web search excerpts + +2. **SSA State Assistance Programs for SSI Recipients -- Alabama (2006, 2007)** + - URLs: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2006/al.html, .../2007/al.html + - Error: 403 Forbidden + - Expected content: Earlier editions of same report + +3. **SSA Annual Statistical Supplement 2024, Section 7B** + - URL: https://www.ssa.gov/policy/docs/statcomps/supplement/2024/7b.html + - Error: 403 Forbidden + - Expected content: SSI data by state including supplementation payments. However, since Alabama's SSP is state-administered, this report likely does NOT contain Alabama SSP data. + +4. **Justia Alabama Code Title 38, Chapter 4** + - URL: https://law.justia.com/codes/alabama/title-38/chapter-4/ + - Error: 403 Forbidden + - Expected content: Complete statutory text for Alabama public assistance + - Mitigation: Section 38-4-1 content obtained from web search excerpts + +5. **Justia Alabama Administrative Code Chapter 660-2-4** + - URL: https://regulations.justia.com/states/alabama/title-660/chapter-660-2-4/ + - Error: 403 Forbidden + - Mitigation: Full chapter obtained directly from admincode.legislature.state.al.us as PDF From 54cba87d14bfffc3fbc39c23056c2863b419534d Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 18 Mar 2026 13:16:02 -0400 Subject: [PATCH 2/9] Fix review findings: references, page numbers, integration test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace dead SSA reference (403) with WorkWorld mirror in all 4 params - Fix page numbers in variable references (6/8 → 9/10/14) - Add source citation for Specialized IHC = Level A mapping - Add integration test with 5 scenarios Co-Authored-By: Claude Opus 4.6 (1M context) --- .../al/dhr/ssp/amount/cerebral_palsy.yaml | 4 +- .../states/al/dhr/ssp/amount/foster_care.yaml | 4 +- .../gov/states/al/dhr/ssp/amount/level_a.yaml | 4 +- .../gov/states/al/dhr/ssp/amount/level_b.yaml | 4 +- .../gov/states/al/dhr/ssp/integration.yaml | 117 ++++++++++++++++++ .../variables/gov/states/al/dhr/ssp/al_ssp.py | 3 +- .../gov/states/al/dhr/ssp/al_ssp_eligible.py | 4 +- .../al/dhr/ssp/al_ssp_living_arrangement.py | 6 +- 8 files changed, 134 insertions(+), 12 deletions(-) create mode 100644 policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml index cf9ce35d689..11f2ad9074b 100644 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml @@ -10,5 +10,5 @@ metadata: reference: - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 - - title: SSA State Assistance Programs for SSI Recipients, January 2011 -- Alabama - href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.pdf + - title: WorkWorld SSI State Supplement -- Alabama + href: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml index 21bf83b8fb4..0ff63a4b6fc 100644 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml @@ -10,5 +10,5 @@ metadata: reference: - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 - - title: SSA State Assistance Programs for SSI Recipients, January 2011 -- Alabama - href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.pdf + - title: WorkWorld SSI State Supplement -- Alabama + href: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml index 50c0d7a2000..663155486e5 100644 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml @@ -10,5 +10,5 @@ metadata: reference: - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 - - title: SSA State Assistance Programs for SSI Recipients, January 2011 -- Alabama - href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.pdf + - title: WorkWorld SSI State Supplement -- Alabama + href: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml index 38ed5ce92eb..acc166766f0 100644 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml @@ -10,5 +10,5 @@ metadata: reference: - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 - - title: SSA State Assistance Programs for SSI Recipients, January 2011 -- Alabama - href: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.pdf + - title: WorkWorld SSI State Supplement -- Alabama + href: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml new file mode 100644 index 00000000000..844fa881301 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml @@ -0,0 +1,117 @@ +- name: Case 1, SSI-eligible person in IHC Level A. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_ssi_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_A + ssi_claim_is_joint: false + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + # Eligible: SSI-eligible AND qualifying arrangement (IHC_LEVEL_A != NONE) + al_ssp_eligible: [true] + # Benefit: Level A = $60, individual (not joint) = $60 * (1 + 0) = $60 + al_ssp: [60] + +- name: Case 2, SSI-eligible couple in Foster Care with joint claim. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 68 + is_ssi_eligible: true + al_ssp_living_arrangement: FOSTER_CARE + ssi_claim_is_joint: true + person2: + age: 65 + is_ssi_eligible: true + al_ssp_living_arrangement: FOSTER_CARE + ssi_claim_is_joint: true + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: AL + output: + # Both eligible: SSI-eligible AND qualifying arrangement + al_ssp_eligible: [true, true] + # Foster Care = $110, joint claim = $110 * (1 + 1) = $220 each + al_ssp: [220, 220] + +- name: Case 3, person not SSI-eligible receives zero. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 45 + is_ssi_eligible: false + al_ssp_living_arrangement: IHC_LEVEL_A + ssi_claim_is_joint: false + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + # Not eligible: not SSI-eligible + al_ssp_eligible: [false] + al_ssp: [0] + +- name: Case 4, SSI-eligible person with no qualifying arrangement. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 55 + is_ssi_eligible: true + al_ssp_living_arrangement: NONE + ssi_claim_is_joint: false + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + # Not eligible: arrangement is NONE + al_ssp_eligible: [false] + al_ssp: [0] + +- name: Case 5, SSI-eligible person in Cerebral Palsy Treatment Center. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 60 + is_ssi_eligible: true + al_ssp_living_arrangement: CEREBRAL_PALSY + ssi_claim_is_joint: false + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + # Eligible: SSI-eligible AND qualifying arrangement + al_ssp_eligible: [true] + # Cerebral Palsy = $196, individual = $196 * (1 + 0) = $196 + al_ssp: [196] diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py index 487d376aee4..f2a5990ebaa 100644 --- a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py @@ -15,7 +15,8 @@ def formula(person, period, parameters): living_arrangement = person("al_ssp_living_arrangement", period) la = living_arrangement.possible_values # Look up monthly amount by living arrangement. - # Specialized IHC uses same amount as Level A. + # Specialized IHC uses Level A amount per WorkWorld SSI + # State Supplement -- Alabama (2010 payment levels). monthly_amount = select( [ living_arrangement == la.IHC_LEVEL_A, diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py index cc8e2a2c524..2b707edb2b7 100644 --- a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py @@ -8,8 +8,8 @@ class al_ssp_eligible(Variable): definition_period = MONTH defined_for = StateCode.AL reference = ( - "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=6", - "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=8", + "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=9", + "https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm", ) def formula(person, period, parameters): diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py index 091e30c4b9e..ba89adce99b 100644 --- a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py @@ -17,4 +17,8 @@ class al_ssp_living_arrangement(Variable): definition_period = MONTH possible_values = ALSSPLivingArrangement default_value = ALSSPLivingArrangement.NONE - reference = "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=6" + reference = ( + "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=9", + "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=10", + "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=14", + ) From 520dfb04b1f62de4598a2b29cae9ef5f7c3c0986 Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 25 Mar 2026 17:54:07 -0400 Subject: [PATCH 3/9] Fix AL SSP: remove joint claim doubling, align with Admin Code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove incorrect joint claim doubling (each person gets flat individual amount per Attachment 660-2-4-.19a, couple total = sum of individuals) - Add all 6 payment categories from Admin Code payment table (FCMP Nursing Care, Nursing Care, IHC Level A/B, Foster Care, Cerebral Palsy) - Remove Specialized IHC enum value (not a separate payment category — it maps to IHC Level A per 660-2-4-.16) - Consolidate 6 parameter files into single amount.yaml with breakdown - Simplify formula from select() to direct parameter lookup Co-Authored-By: Claude Opus 4.6 (1M context) --- .../gov/states/al/dhr/ssp/amount.yaml | 32 +++++++++ .../al/dhr/ssp/amount/cerebral_palsy.yaml | 14 ---- .../states/al/dhr/ssp/amount/foster_care.yaml | 14 ---- .../gov/states/al/dhr/ssp/amount/level_a.yaml | 14 ---- .../gov/states/al/dhr/ssp/amount/level_b.yaml | 14 ---- .../gov/states/al/dhr/ssp/al_ssp.yaml | 67 ++++--------------- .../states/al/dhr/ssp/al_ssp_eligible.yaml | 13 +++- .../gov/states/al/dhr/ssp/integration.yaml | 16 ++--- .../variables/gov/states/al/dhr/ssp/al_ssp.py | 28 ++------ .../al/dhr/ssp/al_ssp_living_arrangement.py | 5 +- 10 files changed, 67 insertions(+), 150 deletions(-) create mode 100644 policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml delete mode 100644 policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml delete mode 100644 policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml delete mode 100644 policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml delete mode 100644 policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml new file mode 100644 index 00000000000..5af15cb184e --- /dev/null +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml @@ -0,0 +1,32 @@ +description: Alabama maximum budgeted monthly supplement amount by living arrangement under the State Supplementary Payment program. + +metadata: + unit: currency-USD + period: month + label: Alabama SSP supplement amount + breakdowns: + - al_ssp_living_arrangement + reference: + - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients + href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 + +FCMP_NURSING_CARE: + 1995-01-01: 60 + +NURSING_CARE: + 1995-01-01: 60 + +IHC_LEVEL_A: + 1995-01-01: 60 + +IHC_LEVEL_B: + 1995-01-01: 56 + +FOSTER_CARE: + 1995-01-01: 110 + +CEREBRAL_PALSY: + 1995-01-01: 196 + +NONE: + 1995-01-01: 0 diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml deleted file mode 100644 index 11f2ad9074b..00000000000 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/cerebral_palsy.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Alabama provides this amount as the monthly supplement for Cerebral Palsy Treatment Center care under the State Supplementary Payment program. - -values: - 1995-01-01: 196 - -metadata: - unit: currency-USD - period: month - label: Alabama SSP Cerebral Palsy supplement amount - reference: - - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients - href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 - - title: WorkWorld SSI State Supplement -- Alabama - href: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml deleted file mode 100644 index 0ff63a4b6fc..00000000000 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/foster_care.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Alabama provides this amount as the monthly supplement for Foster Home Care under the State Supplementary Payment program. - -values: - 1995-01-01: 110 - -metadata: - unit: currency-USD - period: month - label: Alabama SSP Foster Home Care supplement amount - reference: - - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients - href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 - - title: WorkWorld SSI State Supplement -- Alabama - href: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml deleted file mode 100644 index 663155486e5..00000000000 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_a.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Alabama provides this amount as the monthly supplement for Independent Homelife Care Level A under the State Supplementary Payment program. - -values: - 1995-01-01: 60 - -metadata: - unit: currency-USD - period: month - label: Alabama SSP Level A supplement amount - reference: - - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients - href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 - - title: WorkWorld SSI State Supplement -- Alabama - href: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml deleted file mode 100644 index acc166766f0..00000000000 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount/level_b.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Alabama provides this amount as the monthly supplement for Independent Homelife Care Level B under the State Supplementary Payment program. - -values: - 1995-01-01: 56 - -metadata: - unit: currency-USD - period: month - label: Alabama SSP Level B supplement amount - reference: - - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients - href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 - - title: WorkWorld SSI State Supplement -- Alabama - href: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml index 408286e26bd..7507b01021b 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml @@ -1,98 +1,55 @@ -- name: IHC Level A individual +- name: FCMP Nursing Care individual period: 2025-01 input: al_ssp_eligible: true - al_ssp_living_arrangement: IHC_LEVEL_A - ssi_claim_is_joint: false + al_ssp_living_arrangement: FCMP_NURSING_CARE output: al_ssp: 60 -- name: IHC Level B individual - period: 2025-01 - input: - al_ssp_eligible: true - al_ssp_living_arrangement: IHC_LEVEL_B - ssi_claim_is_joint: false - output: - al_ssp: 56 - -- name: Foster Home Care individual - period: 2025-01 - input: - al_ssp_eligible: true - al_ssp_living_arrangement: FOSTER_CARE - ssi_claim_is_joint: false - output: - al_ssp: 110 - -- name: Cerebral Palsy individual +- name: Nursing Care individual period: 2025-01 input: al_ssp_eligible: true - al_ssp_living_arrangement: CEREBRAL_PALSY - ssi_claim_is_joint: false - output: - al_ssp: 196 - -- name: Specialized IHC individual (same as Level A) - period: 2025-01 - input: - al_ssp_eligible: true - al_ssp_living_arrangement: SPECIALIZED_IHC - ssi_claim_is_joint: false + al_ssp_living_arrangement: NURSING_CARE output: al_ssp: 60 -- name: IHC Level A couple (joint claim) +- name: IHC Level A individual period: 2025-01 input: al_ssp_eligible: true al_ssp_living_arrangement: IHC_LEVEL_A - ssi_claim_is_joint: true output: - al_ssp: 120 + al_ssp: 60 -- name: IHC Level B couple (joint claim) +- name: IHC Level B individual period: 2025-01 input: al_ssp_eligible: true al_ssp_living_arrangement: IHC_LEVEL_B - ssi_claim_is_joint: true output: - al_ssp: 112 + al_ssp: 56 -- name: Foster Home Care couple (joint claim) +- name: Foster Home Care individual period: 2025-01 input: al_ssp_eligible: true al_ssp_living_arrangement: FOSTER_CARE - ssi_claim_is_joint: true output: - al_ssp: 220 + al_ssp: 110 -- name: Cerebral Palsy couple (joint claim) +- name: Cerebral Palsy individual period: 2025-01 input: al_ssp_eligible: true al_ssp_living_arrangement: CEREBRAL_PALSY - ssi_claim_is_joint: true output: - al_ssp: 392 - -- name: Specialized IHC couple (joint claim, same as Level A) - period: 2025-01 - input: - al_ssp_eligible: true - al_ssp_living_arrangement: SPECIALIZED_IHC - ssi_claim_is_joint: true - output: - al_ssp: 120 + al_ssp: 196 - name: Not eligible period: 2025-01 input: al_ssp_eligible: false al_ssp_living_arrangement: IHC_LEVEL_A - ssi_claim_is_joint: false output: al_ssp: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml index 421af8b6c22..c28cb7507f5 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml @@ -52,11 +52,20 @@ output: al_ssp_eligible: true -- name: SSI eligible in Specialized IHC +- name: SSI eligible in FCMP Nursing Care period: 2025-01 input: is_ssi_eligible: true - al_ssp_living_arrangement: SPECIALIZED_IHC + al_ssp_living_arrangement: FCMP_NURSING_CARE + state_code: AL + output: + al_ssp_eligible: true + +- name: SSI eligible in Nursing Care + period: 2025-01 + input: + is_ssi_eligible: true + al_ssp_living_arrangement: NURSING_CARE state_code: AL output: al_ssp_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml index 844fa881301..22edb6a56d6 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml @@ -7,7 +7,6 @@ age: 70 is_ssi_eligible: true al_ssp_living_arrangement: IHC_LEVEL_A - ssi_claim_is_joint: false spm_units: spm_unit: members: [person1] @@ -18,10 +17,10 @@ output: # Eligible: SSI-eligible AND qualifying arrangement (IHC_LEVEL_A != NONE) al_ssp_eligible: [true] - # Benefit: Level A = $60, individual (not joint) = $60 * (1 + 0) = $60 + # Benefit: Level A = $60 per person al_ssp: [60] -- name: Case 2, SSI-eligible couple in Foster Care with joint claim. +- name: Case 2, SSI-eligible couple in Foster Care. period: 2025-01 absolute_error_margin: 0.01 input: @@ -30,12 +29,10 @@ age: 68 is_ssi_eligible: true al_ssp_living_arrangement: FOSTER_CARE - ssi_claim_is_joint: true person2: age: 65 is_ssi_eligible: true al_ssp_living_arrangement: FOSTER_CARE - ssi_claim_is_joint: true spm_units: spm_unit: members: [person1, person2] @@ -46,8 +43,8 @@ output: # Both eligible: SSI-eligible AND qualifying arrangement al_ssp_eligible: [true, true] - # Foster Care = $110, joint claim = $110 * (1 + 1) = $220 each - al_ssp: [220, 220] + # Foster Care = $110 per person; couple total = $220 + al_ssp: [110, 110] - name: Case 3, person not SSI-eligible receives zero. period: 2025-01 @@ -58,7 +55,6 @@ age: 45 is_ssi_eligible: false al_ssp_living_arrangement: IHC_LEVEL_A - ssi_claim_is_joint: false spm_units: spm_unit: members: [person1] @@ -80,7 +76,6 @@ age: 55 is_ssi_eligible: true al_ssp_living_arrangement: NONE - ssi_claim_is_joint: false spm_units: spm_unit: members: [person1] @@ -102,7 +97,6 @@ age: 60 is_ssi_eligible: true al_ssp_living_arrangement: CEREBRAL_PALSY - ssi_claim_is_joint: false spm_units: spm_unit: members: [person1] @@ -113,5 +107,5 @@ output: # Eligible: SSI-eligible AND qualifying arrangement al_ssp_eligible: [true] - # Cerebral Palsy = $196, individual = $196 * (1 + 0) = $196 + # Cerebral Palsy = $196 per person al_ssp: [196] diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py index f2a5990ebaa..288ebfcedda 100644 --- a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py @@ -11,28 +11,8 @@ class al_ssp(Variable): reference = "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24" def formula(person, period, parameters): - p = parameters(period).gov.states.al.dhr.ssp.amount + p = parameters(period).gov.states.al.dhr.ssp living_arrangement = person("al_ssp_living_arrangement", period) - la = living_arrangement.possible_values - # Look up monthly amount by living arrangement. - # Specialized IHC uses Level A amount per WorkWorld SSI - # State Supplement -- Alabama (2010 payment levels). - monthly_amount = select( - [ - living_arrangement == la.IHC_LEVEL_A, - living_arrangement == la.IHC_LEVEL_B, - living_arrangement == la.FOSTER_CARE, - living_arrangement == la.CEREBRAL_PALSY, - living_arrangement == la.SPECIALIZED_IHC, - ], - [ - p.level_a, - p.level_b, - p.foster_care, - p.cerebral_palsy, - p.level_a, # Specialized IHC = Level A amount - ], - ) - # Double for joint SSI claims (both spouses are ABD). - joint_claim = person("ssi_claim_is_joint", period.this_year) - return monthly_amount * (1 + joint_claim) + # Look up maximum budgeted monthly amount by living arrangement. + # Per Attachment 660-2-4-.19a, page 24. + return p.amount[living_arrangement] diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py index ba89adce99b..fa375f27900 100644 --- a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_living_arrangement.py @@ -2,12 +2,13 @@ class ALSSPLivingArrangement(Enum): - NONE = "Not in a qualifying care arrangement" + FCMP_NURSING_CARE = "FCMP Nursing Care" + NURSING_CARE = "Nursing Care Supplement" IHC_LEVEL_A = "Independent Homelife Care, Level A" IHC_LEVEL_B = "Independent Homelife Care, Level B" FOSTER_CARE = "Foster Home Care" CEREBRAL_PALSY = "Cerebral Palsy Treatment Center" - SPECIALIZED_IHC = "Specialized Independent Homelife Care" + NONE = "Not in a qualifying care arrangement" class al_ssp_living_arrangement(Variable): From 379a639bc78177263c913a92a2f18f23fadf78ed Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 25 Mar 2026 18:03:54 -0400 Subject: [PATCH 4/9] Add WorkWorld 2010 combined Federal/State verification tests Add 6 integration tests verifying combined SSI + AL SSP amounts match WorkWorld 2010 data ($674 FBR individual, $1,011 couple). Fix test naming to follow Case N convention. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../gov/states/al/dhr/ssp/integration.yaml | 205 ++++++++++++++++-- 1 file changed, 192 insertions(+), 13 deletions(-) diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml index 22edb6a56d6..3b9f4bb5e6c 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml @@ -1,4 +1,4 @@ -- name: Case 1, SSI-eligible person in IHC Level A. +- name: Case 1, SSI eligible person in IHC Level A. period: 2025-01 absolute_error_margin: 0.01 input: @@ -15,12 +15,10 @@ members: [person1] state_code: AL output: - # Eligible: SSI-eligible AND qualifying arrangement (IHC_LEVEL_A != NONE) al_ssp_eligible: [true] - # Benefit: Level A = $60 per person al_ssp: [60] -- name: Case 2, SSI-eligible couple in Foster Care. +- name: Case 2, SSI eligible couple in Foster Care. period: 2025-01 absolute_error_margin: 0.01 input: @@ -41,12 +39,10 @@ members: [person1, person2] state_code: AL output: - # Both eligible: SSI-eligible AND qualifying arrangement al_ssp_eligible: [true, true] - # Foster Care = $110 per person; couple total = $220 al_ssp: [110, 110] -- name: Case 3, person not SSI-eligible receives zero. +- name: Case 3, person not SSI eligible receives zero. period: 2025-01 absolute_error_margin: 0.01 input: @@ -63,11 +59,10 @@ members: [person1] state_code: AL output: - # Not eligible: not SSI-eligible al_ssp_eligible: [false] al_ssp: [0] -- name: Case 4, SSI-eligible person with no qualifying arrangement. +- name: Case 4, SSI eligible person with no qualifying arrangement. period: 2025-01 absolute_error_margin: 0.01 input: @@ -84,11 +79,10 @@ members: [person1] state_code: AL output: - # Not eligible: arrangement is NONE al_ssp_eligible: [false] al_ssp: [0] -- name: Case 5, SSI-eligible person in Cerebral Palsy Treatment Center. +- name: Case 5, SSI eligible person in Cerebral Palsy Treatment Center. period: 2025-01 absolute_error_margin: 0.01 input: @@ -105,7 +99,192 @@ members: [person1] state_code: AL output: - # Eligible: SSI-eligible AND qualifying arrangement al_ssp_eligible: [true] - # Cerebral Palsy = $196 per person al_ssp: [196] + +# Combined Federal SSI + State SSP verification against WorkWorld 2010 data. +# Source: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm +# 2010 FBR: Individual = $674/month, Couple = $1,011/month. +# ssi is a YEAR variable; at monthly period it auto-divides by 12. + +- name: Case 6, WorkWorld 2010 IHC Level A individual combined $734/month. + period: 2010-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + employment_income: 0 + al_ssp_living_arrangement: IHC_LEVEL_A + tax_units: + tax_unit: + members: [person1] + marital_units: + marital_unit: + members: [person1] + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + # Federal SSI: $674/month + ssi: [674] + # State SSP: $60/month (Level A) + al_ssp: [60] + # Combined: $674 + $60 = $734/month (matches WorkWorld) + +- name: Case 7, WorkWorld 2010 IHC Level B individual combined $730/month. + period: 2010-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + employment_income: 0 + al_ssp_living_arrangement: IHC_LEVEL_B + tax_units: + tax_unit: + members: [person1] + marital_units: + marital_unit: + members: [person1] + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + # Federal SSI: $674/month + ssi: [674] + # State SSP: $56/month (Level B) + al_ssp: [56] + # Combined: $674 + $56 = $730/month (matches WorkWorld) + +- name: Case 8, WorkWorld 2010 Foster Care individual combined $784/month. + period: 2010-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + employment_income: 0 + al_ssp_living_arrangement: FOSTER_CARE + tax_units: + tax_unit: + members: [person1] + marital_units: + marital_unit: + members: [person1] + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + # Federal SSI: $674/month + ssi: [674] + # State SSP: $110/month (Foster Care) + al_ssp: [110] + # Combined: $674 + $110 = $784/month (matches WorkWorld) + +- name: Case 9, WorkWorld 2010 Cerebral Palsy individual combined $870/month. + period: 2010-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + employment_income: 0 + al_ssp_living_arrangement: CEREBRAL_PALSY + tax_units: + tax_unit: + members: [person1] + marital_units: + marital_unit: + members: [person1] + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + # Federal SSI: $674/month + ssi: [674] + # State SSP: $196/month (Cerebral Palsy) + al_ssp: [196] + # Combined: $674 + $196 = $870/month (matches WorkWorld) + +- name: Case 10, WorkWorld 2010 IHC Level A couple combined $1,131/month. + period: 2010-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + employment_income: 0 + al_ssp_living_arrangement: IHC_LEVEL_A + person2: + age: 68 + employment_income: 0 + al_ssp_living_arrangement: IHC_LEVEL_A + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: AL + output: + # Federal SSI: couple FBR $1,011/month / 2 = $505.50/month each + ssi: [505.50, 505.50] + # State SSP: $60/month each (Level A) + al_ssp: [60, 60] + # Combined: ($505.50 + $60) x 2 = $1,131/month (matches WorkWorld) + +- name: Case 11, WorkWorld 2010 Foster Care couple combined $1,231/month. + period: 2010-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + employment_income: 0 + al_ssp_living_arrangement: FOSTER_CARE + person2: + age: 68 + employment_income: 0 + al_ssp_living_arrangement: FOSTER_CARE + tax_units: + tax_unit: + members: [person1, person2] + marital_units: + marital_unit: + members: [person1, person2] + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: AL + output: + # Federal SSI: couple FBR $1,011/month / 2 = $505.50/month each + ssi: [505.50, 505.50] + # State SSP: $110/month each (Foster Care) + al_ssp: [110, 110] + # Combined: ($505.50 + $110) x 2 = $1,231/month (matches WorkWorld) From f5a6ba164ea5e5f0efb1f5d2239b55d4b2dee757 Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 25 Mar 2026 18:13:51 -0400 Subject: [PATCH 5/9] remove sources --- sources/working_references.md | 531 ---------------------------------- 1 file changed, 531 deletions(-) delete mode 100644 sources/working_references.md diff --git a/sources/working_references.md b/sources/working_references.md deleted file mode 100644 index 26feecad99d..00000000000 --- a/sources/working_references.md +++ /dev/null @@ -1,531 +0,0 @@ -# Collected Documentation - -## Alabama SSI/SSP (State Supplementary Payment) Implementation -**Collected**: 2026-03-18 -**Implementation Task**: Implement Alabama's State Supplementary Payment (SSP) to the federal Supplemental Security Income (SSI) program - ---- - -## Official Program Name - -**Federal Program**: Supplemental Security Income (SSI) -**State's Official Name**: State Supplementation (SUP) -- also referred to as Optional Supplementation -**Abbreviation**: SUP (in DHR documents), SSP (federal terminology) -**Source**: Alabama Administrative Code Chapter 660-2-4, "STATE SUPPLEMENTATION"; Code of Alabama 1975, Title 38 -**Administering Agency**: Alabama Department of Human Resources (DHR), Economic Assistance Division -- administered at the county level through County Departments of Human Resources - -**Variable Prefix**: `al_ssp` (using federal SSP terminology for consistency with other state implementations) - ---- - -## Program Overview - -Alabama provides a state-administered optional supplement to SSI recipients (and certain grandfathered non-SSI recipients) who require care in specific living arrangements. The program is entirely state-funded (both administration and assistance). - -**Key characteristics:** -- State-administered (NOT federally administered -- SSA does not issue these payments) -- Extremely small caseload: approximately 20 recipients statewide as of January 2025 (9 OAP + 0 AB + 11 APTD) -- Payment amounts have been frozen since at least 1995 (no COLA adjustments) -- Limited to persons requiring care in specified living arrangements -- No additional income disregards beyond federal SSI rules - -**Program categories (legacy names from pre-1974 adult assistance programs):** -- **OAP** - Old Age Pension (aged 65+) -- **AB** - Aid to the Blind -- **APTD** - Aid to the Permanently and Totally Disabled - ---- - -## Source 1: Alabama Administrative Code, Chapter 660-2-4 - -### Source Information -- **Title**: Alabama Administrative Code, Chapter 660-2-4 -- STATE SUPPLEMENTATION -- **Citation**: Ala. Admin. Code r. 660-2-4-.01 through 660-2-4-.29 and Appendix A -- **URL**: https://admincode.legislature.state.al.us/api/chapter/660-2-4 -- **Effective Date**: Original effective June 28, 1983; various amendments through January 15, 1992. Supplement dated 3/31/95 -- **Format**: 61-page PDF - -### Key Rules and Thresholds - -#### General Eligibility (660-2-4-.15) - -Eligibility on the factors of age, disability, blindness, residence, citizenship, resources, and income is established by Supplemental Security Income (SSI) Program staff based on Title XVI of the Social Security Act. - -**Meaning**: Alabama defers to federal SSI rules for all basic eligibility factors. No separate state eligibility determination for these factors. - -#### Eligibility Factors Other Than Need (660-2-4-.16) - -A person meeting general eligibility criteria must ALSO meet one of these care requirements: - -1. **Independent Homelife Care (IHC)**: Must be certified as needing independent homelife care in: - - A private home, OR - - A foster home licensed/approved by DHR - - *Note: Personal care (pre-9/30/1986 recipients only) -- grandfathered* - -2. **Specialized Independent Homelife Care**: Must be certified as needing (on or after 10/1/1986) specialized IHC AND: - - Must be receiving benefits under the Elderly/Disabled Medicaid Waiver Program - - Must meet skilled nursing facility criteria per 660-2-4-.28 - -**Physician certification required**: Recommendation for care must be made by a legally licensed physician. - -#### Definition of Independent Homelife Care (660-2-4-.17) - -Care from someone else to enable a person to live as independently as possible outside a nursing home. Services include: -- Help with prescribed exercise routines -- Changing bandages/dressings on physician's advice -- Administering prescribed medication -- Assisting with prostheses or ambulation aids -- Assistance in locomotion -- Maintaining acceptable state of cleanliness -- Maintaining orientation to time, place, and events -- Reminding of medication needs -- Other health-related functions - -**Not included**: Companionship for pleasure or convenience rather than protection and necessity. - -#### Definition of Specialized Independent Homelife Care (660-2-4-.27) - -Services incidental to a medical need to assist the functionally impaired individual with: -- Personal hygiene -- Dressing -- Ambulation -- Meal preparation -- Eating -- Self-administering medications -- Maintaining a safe and sanitary environment - -#### Care in Cerebral Palsy Treatment Centers (660-2-4-.18) - -- Limited to persons who were eligible for optional supplementation as of June 1, 1981 -- Supplement amount: **$196/month** -- For non-SSI recipients: difference between $196 and income in excess of the SSI federal benefit rate -- Only for APTD category -- **Effectively closed to new enrollment since June 1981** - -#### Need Requirement (660-2-4-.19) - -To be eligible for SUP based on need, an individual must be a recipient of SSI through the Social Security Administration. - -**Critical rule**: SSI recipients are considered needy and entitled to the **full supplement**, if otherwise eligible. No separate income/resource determination is necessary for SSI recipients. - -#### Amount of Assistance Payment (660-2-4-.10) - -The amount of assistance payment is determined by the **kind of care needed**, subject to funds available. When available funds are expended on current recipients, the State Department may freeze the caseload. - -#### Non-SSI Supplementation (SUP) Recipients (660-2-4-.26) - -- Limited to persons receiving optional supplementation as of March 7, 1986 -- **Effectively closed to new non-SSI enrollment since March 1986** -- Must meet all eligibility requirements AND only be ineligible for SSI due to income -- Supplement = difference between countable income and applicable supplement amount -- Must not have: - - Resources exceeding Title XVI maximum - - Gross countable income exceeding Alabama Medicaid Agency limit - - Net countable income exceeding appropriate supplement -- Income/resource rules per 20 CFR 416, Subparts K and L - -#### Care Provider Requirements (660-2-4-.29) - -Effective February 14, 1992: -- Must be employed by a certified home health agency, OR -- If County Health Department does not make services available: an individual who declares in writing having at least 6th grade education, is physically/mentally able, has not been convicted of a serious crime, has not been fired for dereliction of duty -- **Cannot be**: child, stepchild, adoptive child, son/daughter-in-law, parent, stepparent, adoptive parent, spouse, brother, sister, brother/sister-in-law - -### Payment Amounts (Attachment 660-2-4-.19a) - -**SPECIAL NEEDS OF APPLICANTS AND RECIPIENTS** - -| Living Arrangement / Care Type | Monthly Payment | Maximum Budgeted | -|---|---|---| -| FCMP Nursing Care (when required) | $100.00 | $60.00 | -| Nursing Care Supplement | $60.00 | $60.00 | -| Personal Care Supplement -- Level of Independence "A" | $60.00 | $60.00 | -| Personal Care Supplement -- Level of Independence "B" | $56.00 | $56.00 | -| Personal Care or Nursing Care Supplement in Foster Care | $110.00 | $110.00 | -| Care in a Cerebral Palsy Treatment Center (APTD) | $196.00 | $196.00 | - -**Source**: Attachment 660-2-4-.19a, PDF page 24 of Chapter 660-2-4 -**PDF URL**: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 - -#### Level A vs Level B Distinction - -- **Level A ($60)**: Higher level of independence -- person requires less intensive care -- **Level B ($56)**: Lower level of independence -- person requires more intensive care -- The exact clinical criteria for Level A vs Level B are determined by physician certification - -### Federal Benefit Rate Chart (Attachment 660-2-4-.26a) - -This chart is used for Non-SSI SUP recipients to determine gross income eligibility. Values shown are from January 1, 1995 (frozen in regulations but the actual FBR used follows current federal rates): - -| Living Arrangement | FBR | Gross Income Limit | -|---|---|---| -| Individual in own home | $458.00 | $1,374.00 | -| Individual in household of another (receiving support and maintenance) | $305.34 | $916.02 | -| Individual with spouse both in household of another (Couple standard) | $687.00 | $2,748.00 | -| Individual in nursing home | $30.00 | -- | - -**Source**: Attachment 660-2-4-.26a, PDF page 26 of Chapter 660-2-4 -**PDF URL**: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=26 - -**NOTE**: The FBR values in the regulation text are from 1995 and are outdated. The actual FBR follows current federal SSI rates. But the state supplement amounts ($56/$60/$110/$196) have NOT changed and remain frozen at 1995 levels as confirmed by January 2025 DHR statistical reports. - ---- - -## Source 2: Alabama DHR Public Assistance Payment Manual (Appendix N, Section 3) - -### Source Information -- **Title**: Appendix N Sec 3 -- Public Assistance Payment Manual -- **Citation**: Alabama DHR Policy Manual, Section 12200 (Income) -- **URL**: https://dhr.alabama.gov/wp-content/uploads/2022/04/Appendix-N-Sec-3-Public-Assistance-Payment-Manual.pdf -- **Effective Date**: Various revisions through Rev 770 (April 2012) - -### Key Rules - -#### Income Determination for SSI Recipients (Section 12200) - -"In determining eligibility for a supplement, a separate income/resource determination is not necessary for persons receiving SSI. **SSI recipients are considered needy and entitled to the full supplement**, if otherwise eligible." - -"SSI recipient" includes a person who was determined eligible for SSI, but whose SSI payment is "in suspense", or withheld, for a reason other than ineligibility. - -#### Income Determination for Non-SSI Recipients (Section 12200) - -A person not receiving SSI may receive optional supplementation only if his gross income is within certain limits. Refer to the Federal Benefit Rate Chart in Appendix I. - -#### Income Exclusions - -Federal SSI income exclusions apply (20 CFR 416, Subpart K). No additional state-specific income disregards beyond federal SSI rules. - -#### Resource Limits - -Under the reserve policy for the Supplementation Program: -- Individual: $2,000 -- Married couple living together: $3,000 (whether one or both eligible) -- These match the federal SSI resource limits - -#### Deeming Rules (Section 12100) - -Follows federal SSI deeming rules: -- **Spouse to spouse**: Uses SSI deeming methodology (20 CFR 416) -- **Parent to child**: Uses SSI deeming methodology -- $65 earned income exclusion and 1/2 remainder applied -- 1/2 FBR individual comparison for deemed income threshold - ---- - -## Source 3: Alabama DHR Monthly Statistical Reports (Green Books) - -### Source Information -- **Title**: Alabama DHR Monthly Statistical Reports -- **URLs**: - - January 2025: https://dhr.alabama.gov/wp-content/uploads/2025/07/STAT0125.pdf - - March 2024: https://dhr.alabama.gov/wp-content/uploads/2024/09/STAT0324.pdf - - November 2023: https://dhr.alabama.gov/wp-content/uploads/2024/02/STAT1123.pdf - -### Current Caseload and Payment Data (January 2025) - -| Category | Total Recipients | Average Payment/Case | -|---|---|---| -| OAP (Old Age Pensions) | 9 | $57.33 | -| AB (Aid to Blind) | 0 | $0.00 | -| APTD (Aid to Permanently/Totally Disabled) | 11 | $56.73 | -| **TOTAL** | **20** | -- | - -Individual payment amounts observed in January 2025 data: -- $56.00 (most common -- Level B) -- $60.00 (Level A) -- $58.00 (appears to be an average or partial-month payment) - -**APTD footnote (January 2025)**: "Includes home life supplements of $168.00 for 3 adults and 0 children in foster homes licensed or approved by the Department of Human Resources." ($168 / 3 = $56 per adult) - -### Historical Consistency - -Comparing November 2023, March 2024, and January 2025 reports confirms: -- Payment amounts ($56/$60) have been unchanged -- Caseload is stable at approximately 20 recipients statewide -- No foster care supplement ($110) or cerebral palsy supplement ($196) recipients appear in recent data (though the regulatory authority remains) - ---- - -## Source 4: SSA State Assistance Programs for SSI Recipients (2011 report) - -### Source Information -- **Title**: State Assistance Programs for SSI Recipients, January 2011 -- Alabama -- **Citation**: SSA Publication -- **URL**: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.html -- **Note**: Returns 403 error -- content obtained from WorkWorld mirror and web search excerpts - -### Key Information from SSA Report - -**Administration**: State-administered (not federally administered). SSA does not issue these payments. - -**Statutory Authority**: Code of Alabama 1975 as amended, Title 38 - -**Funding**: Both administration and assistance funded with state funds - -**Coverage**: All SSI recipients (including children) and certain grandfathered non-SSI recipients in specified living arrangements - -**Benefit amounts (2011 data, per SSA):** -- Level A Individual (IHC in private home/personal care home): $60 supplement -- Level B Individual: $56 supplement -- Specialized IHC: $60 supplement -- Foster Home Care: $110 supplement -- Cerebral Palsy Treatment Center: $196 supplement -- Couples receive double the individual amounts - -**No additional disregards**: Beyond federal SSI standards - -**Resource limits**: Federal SSI limitations apply - -**Recoveries/Liens**: None - -**Financial responsibility**: Spouse for spouse; parent/stepparent for child under 18 - ---- - -## Source 5: WorkWorld SSI State Supplement -- Alabama - -### Source Information -- **Title**: SSI State Supplement -- Alabama -- **URL**: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm -- **Data Year**: Calendar year 2010 payment levels - -### Combined Benefit Amounts (Federal SSI + State Supplement) - -This source provides the **combined** amounts (federal FBR + state supplement). The state supplement amount is the difference: - -| Living Arrangement | State Supplement | Combined Total (2010) | -|---|---|---| -| IHC Level A (Private Home) | $60 | $734 | -| IHC Level B (Private Home) | $56 | $730 | -| IHC Level A (with Support & Maintenance) | $60 | $509.34 | -| IHC Level B (with Support & Maintenance) | $56 | $505.34 | -| Specialized IHC | $60 | $734 | -| Foster Home Care | $110 | $784 | -| Cerebral Palsy Treatment Center | $196 | $870 | - -**Couple amounts**: Double the individual amounts - ---- - -## Source 6: Code of Alabama 1975, Title 38 - -### Source Information -- **Title**: Code of Alabama 1975, Title 38 -- Public Welfare -- **Citation**: Code of Alabama 1975, Title 38, Chapter 4 (Public Assistance Generally) -- **URL**: https://law.justia.com/codes/alabama/title-38/chapter-4/ -- **Key Section**: Section 38-4-1 (Persons to Whom Public Assistance Payable) - -### Statutory Provisions - -Public assistance payable to: -- Needy blind persons (AB category) -- Needy persons over age 65 (OAP category) -- Dependent children -- Permanently and totally disabled persons (APTD category) - -**Restrictions**: No assistance to inmates of public institutions (except patients in institutions where payments are matchable under the Social Security Act). - -**For APTD eligibility (Section 38-4-1)**: Person must be: -1. Age 18 or older -2. Permanently and totally disabled per state department definition -3. Unable to provide himself with necessities of life due to disability -4. Without sufficient income and resources from all sources -5. Alabama resident at time of application -6. Has not disposed of property to qualify -7. Not receiving other federally-matched public assistance - ---- - -## Benefit Calculation - -### For SSI Recipients (Current -- the vast majority of cases) - -**Formula**: Flat supplement amount based on living arrangement - -``` -State Supplement = Flat amount per living arrangement -``` - -The SSI recipient receives the full supplement amount regardless of their SSI payment amount. No income test or offset applies -- SSI eligibility IS the need determination. - -| Living Arrangement | Individual/Month | Couple/Month | -|---|---|---| -| Independent Homelife Care -- Level A | $60 | $120 | -| Independent Homelife Care -- Level B | $56 | $112 | -| Foster Home Care | $110 | $220 | -| Cerebral Palsy Treatment Center (APTD only) | $196 | $392 | -| Specialized Independent Homelife Care | $60 | $120 | - -### For Non-SSI SUP Recipients (Grandfathered -- effectively closed since March 1986) - -**Formula**: Difference between supplement level and countable income above FBR - -``` -State Supplement = Applicable Supplement Level - (Countable Income - Federal Benefit Rate) -``` - -If the result is negative, no supplement is paid. - -**Eligibility test**: Gross countable income must not exceed the Medicaid Agency gross income limit. - -### For Cerebral Palsy Treatment Center (Non-SSI) - -``` -State Supplement = $196 - (Income in excess of SSI Federal Benefit Rate) -``` - ---- - -## Implementation Approach - -### Relationship to Existing Federal SSI Implementation - -The existing PolicyEngine SSI implementation (`ssi` variable) handles all federal eligibility and benefit calculation. The Alabama SSP is an ADD-ON to SSI. - -**Key design decision**: The Alabama SSP is primarily a flat supplement for SSI recipients in specific living arrangements. The implementation requires: - -1. **Eligibility**: Person must be `is_ssi_eligible_individual` AND in a qualifying living arrangement -2. **Benefit**: Flat amount based on living arrangement (no income offset for SSI recipients) -3. **Living arrangement**: New input variable needed (or reuse existing `ssi_living_arrangement` if one exists) - -### Implementation Complexity: SIMPLE - -- No complex income calculations (uses federal SSI eligibility) -- Flat payment amounts (no formula-based computation for SSI recipients) -- No state-specific deductions or disregards -- Payment amounts frozen since 1995 (no COLA mechanism) -- Very small caseload (~20 people) -- The non-SSI recipient path is effectively closed and could be excluded from initial implementation - -### Recommended Variables - -1. `al_ssp` -- Main benefit variable (Person, YEAR, float) -2. `al_ssp_eligible` -- Eligibility variable (Person, YEAR, bool) -3. Input variable for living arrangement category needed (or adapt existing) - -### Parameter Structure - -``` -gov/states/al/dhr/ssp/ - amount/ - level_a.yaml # $60/month (IHC Level A and Specialized IHC) - level_b.yaml # $56/month (IHC Level B) - foster_care.yaml # $110/month - cerebral_palsy.yaml # $196/month (APTD only, grandfathered) -``` - -### References for Metadata - -```yaml -# For parameters: -reference: - - title: "Ala. Admin. Code r. 660-2-4-.19a -- Special Needs of Applicants and Recipients" - href: "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24" - - title: "Alabama DHR Monthly Statistical Report (January 2025)" - href: "https://dhr.alabama.gov/wp-content/uploads/2025/07/STAT0125.pdf#page=5" -``` - -```python -# For variables: -reference = "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24" -``` - ---- - -## Demographic Eligibility - -**SSI Eligibility Required**: Person must be eligible for federal SSI (aged, blind, or disabled) - -**Implementation approach:** -- [x] Use federal SSI eligibility (`is_ssi_eligible_individual` or `is_ssi_aged_blind_disabled`) -- [x] No state-specific age/disability thresholds (defers to federal SSI Title XVI) - -## Immigration Eligibility - -**Implementation approach:** -- [x] Use federal SSI immigration eligibility (state follows federal rules per 660-2-4-.15) -- No state-specific immigration rules for SSP - -## Income/Resource Rules - -**Implementation approach:** -- [x] Use federal SSI income/resource rules (per 660-2-4-.15 and 660-2-4-.26) -- [x] No additional state income disregards -- For SSI recipients: no separate income test (SSI eligibility = need determination) - ---- - -## Special Cases and Exceptions - -1. **Grandfathered populations**: Several categories are closed to new enrollment: - - Non-SSI SUP recipients (closed since March 7, 1986) - - Personal care recipients (closed since September 30, 1986) - - Cerebral Palsy Treatment Center residents (closed since June 1981) - - These are extremely small populations and may not need modeling - -2. **SSI payment in suspense**: A person whose SSI payment is "in suspense" or withheld for a reason OTHER than ineligibility is still considered an SSI recipient for SUP purposes - -3. **Caseload freeze**: Alabama reserves the right to freeze the caseload when funds are exhausted -- not implementable in a microsimulation model - -4. **Living arrangement requirement**: The supplement is ONLY available to persons requiring specific care arrangements, not to all SSI recipients. This is the most significant limiting factor. - ---- - -## PDFs Downloaded and Extracted - -1. **Alabama Administrative Code Chapter 660-2-4** (61 pages) - - URL: https://admincode.legislature.state.al.us/api/chapter/660-2-4 - - Saved to: /tmp/al_admin_code_660-2-4.pdf - - Text extracted to: /tmp/al_admin_code_660-2-4.txt - - Key pages rendered at 300 DPI: pages 24-26 (payment tables) - -2. **Alabama DHR Payment Manual Section 3** (large file) - - URL: https://dhr.alabama.gov/wp-content/uploads/2022/04/Appendix-N-Sec-3-Public-Assistance-Payment-Manual.pdf - - Saved to: /tmp/al_dhr_payment_manual_sec3.pdf - - Text extracted to: /tmp/al_dhr_sec3.txt - -3. **Alabama DHR Monthly Statistical Report -- January 2025** - - URL: https://dhr.alabama.gov/wp-content/uploads/2025/07/STAT0125.pdf - - Saved to: /tmp/al_dhr_stat_0125.pdf - - Text extracted to: /tmp/al_dhr_stat_0125.txt - - Key pages rendered at 300 DPI: pages 5-10 (supplementation tables) - -4. **Alabama DHR Monthly Statistical Report -- March 2024** - - URL: https://dhr.alabama.gov/wp-content/uploads/2024/09/STAT0324.pdf - - Saved to: /tmp/al_dhr_stat_0324.pdf - - Key pages rendered at 300 DPI: pages 5-10 - -5. **Alabama DHR Monthly Statistical Report -- November 2023** - - URL: https://dhr.alabama.gov/wp-content/uploads/2024/02/STAT1123.pdf - - Saved to: /tmp/al_dhr_stat_1123.pdf - ---- - -## Failed Fetches - -1. **SSA State Assistance Programs for SSI Recipients -- Alabama (2011)** - - URL: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2011/al.html - - Error: 403 Forbidden - - Expected content: Comprehensive overview of Alabama's state assistance programs for SSI recipients with payment levels, eligibility rules, and program structure - - Mitigation: Content obtained from WorkWorld mirror and web search excerpts - -2. **SSA State Assistance Programs for SSI Recipients -- Alabama (2006, 2007)** - - URLs: https://www.ssa.gov/policy/docs/progdesc/ssi_st_asst/2006/al.html, .../2007/al.html - - Error: 403 Forbidden - - Expected content: Earlier editions of same report - -3. **SSA Annual Statistical Supplement 2024, Section 7B** - - URL: https://www.ssa.gov/policy/docs/statcomps/supplement/2024/7b.html - - Error: 403 Forbidden - - Expected content: SSI data by state including supplementation payments. However, since Alabama's SSP is state-administered, this report likely does NOT contain Alabama SSP data. - -4. **Justia Alabama Code Title 38, Chapter 4** - - URL: https://law.justia.com/codes/alabama/title-38/chapter-4/ - - Error: 403 Forbidden - - Expected content: Complete statutory text for Alabama public assistance - - Mitigation: Section 38-4-1 content obtained from web search excerpts - -5. **Justia Alabama Administrative Code Chapter 660-2-4** - - URL: https://regulations.justia.com/states/alabama/title-660/chapter-660-2-4/ - - Error: 403 Forbidden - - Mitigation: Full chapter obtained directly from admincode.legislature.state.al.us as PDF From 6299409cdfdf9256c7119e726cb545efd35da9ec Mon Sep 17 00:00:00 2001 From: Ziming Date: Wed, 25 Mar 2026 18:57:05 -0400 Subject: [PATCH 6/9] Address review findings: fix param conventions, add edge case tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix parameter `breakdowns` → `breakdown` (singular convention) - Fix parameter description to standard template wording - Remove unnecessary inline comments in al_ssp.py - Add 3 integration edge cases: mixed eligibility couple, mixed living arrangements, wrong state - Renumber WorkWorld cases to 9-14 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../gov/states/al/dhr/ssp/amount.yaml | 4 +- .../gov/states/al/dhr/ssp/integration.yaml | 84 +++++++++++++++++-- .../variables/gov/states/al/dhr/ssp/al_ssp.py | 2 - 3 files changed, 80 insertions(+), 10 deletions(-) diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml index 5af15cb184e..42735c03caa 100644 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml @@ -1,10 +1,10 @@ -description: Alabama maximum budgeted monthly supplement amount by living arrangement under the State Supplementary Payment program. +description: Alabama provides this amount as the monthly supplement under the State Supplementary Payment program. metadata: unit: currency-USD period: month label: Alabama SSP supplement amount - breakdowns: + breakdown: - al_ssp_living_arrangement reference: - title: Ala. Admin. Code r. 660-2-4-.19a -- Attachment, Special Needs of Applicants and Recipients diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml index 3b9f4bb5e6c..f4a03bf73fa 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml @@ -102,12 +102,84 @@ al_ssp_eligible: [true] al_ssp: [196] +- name: Case 6, mixed eligibility couple, one SSI eligible one not. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_ssi_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_A + person2: + age: 65 + is_ssi_eligible: false + al_ssp_living_arrangement: IHC_LEVEL_A + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: AL + output: + # person1: SSI eligible + Level A = $60 + # person2: not SSI eligible = $0 + al_ssp_eligible: [true, false] + al_ssp: [60, 0] + +- name: Case 7, mixed living arrangement couple. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_ssi_eligible: true + al_ssp_living_arrangement: FOSTER_CARE + person2: + age: 68 + is_ssi_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_B + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: AL + output: + # person1: Foster Care = $110 + # person2: Level B = $56 + al_ssp_eligible: [true, true] + al_ssp: [110, 56] + +- name: Case 8, wrong state receives zero. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_ssi_eligible: true + al_ssp_living_arrangement: IHC_LEVEL_A + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: GA + output: + al_ssp_eligible: [false] + al_ssp: [0] + # Combined Federal SSI + State SSP verification against WorkWorld 2010 data. # Source: https://help.workworldapp.com/wwwebhelp/ssi_state_supplement_alabama.htm # 2010 FBR: Individual = $674/month, Couple = $1,011/month. # ssi is a YEAR variable; at monthly period it auto-divides by 12. -- name: Case 6, WorkWorld 2010 IHC Level A individual combined $734/month. +- name: Case 9, WorkWorld 2010 IHC Level A individual combined $734/month. period: 2010-01 absolute_error_margin: 0.01 input: @@ -136,7 +208,7 @@ al_ssp: [60] # Combined: $674 + $60 = $734/month (matches WorkWorld) -- name: Case 7, WorkWorld 2010 IHC Level B individual combined $730/month. +- name: Case 10, WorkWorld 2010 IHC Level B individual combined $730/month. period: 2010-01 absolute_error_margin: 0.01 input: @@ -165,7 +237,7 @@ al_ssp: [56] # Combined: $674 + $56 = $730/month (matches WorkWorld) -- name: Case 8, WorkWorld 2010 Foster Care individual combined $784/month. +- name: Case 11, WorkWorld 2010 Foster Care individual combined $784/month. period: 2010-01 absolute_error_margin: 0.01 input: @@ -194,7 +266,7 @@ al_ssp: [110] # Combined: $674 + $110 = $784/month (matches WorkWorld) -- name: Case 9, WorkWorld 2010 Cerebral Palsy individual combined $870/month. +- name: Case 12, WorkWorld 2010 Cerebral Palsy individual combined $870/month. period: 2010-01 absolute_error_margin: 0.01 input: @@ -223,7 +295,7 @@ al_ssp: [196] # Combined: $674 + $196 = $870/month (matches WorkWorld) -- name: Case 10, WorkWorld 2010 IHC Level A couple combined $1,131/month. +- name: Case 13, WorkWorld 2010 IHC Level A couple combined $1,131/month. period: 2010-01 absolute_error_margin: 0.01 input: @@ -256,7 +328,7 @@ al_ssp: [60, 60] # Combined: ($505.50 + $60) x 2 = $1,131/month (matches WorkWorld) -- name: Case 11, WorkWorld 2010 Foster Care couple combined $1,231/month. +- name: Case 14, WorkWorld 2010 Foster Care couple combined $1,231/month. period: 2010-01 absolute_error_margin: 0.01 input: diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py index 288ebfcedda..d7dd89fbddf 100644 --- a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp.py @@ -13,6 +13,4 @@ class al_ssp(Variable): def formula(person, period, parameters): p = parameters(period).gov.states.al.dhr.ssp living_arrangement = person("al_ssp_living_arrangement", period) - # Look up maximum budgeted monthly amount by living arrangement. - # Per Attachment 660-2-4-.19a, page 24. return p.amount[living_arrangement] From 884e36df6b278d84b7e0b9466fdd13b6caca2de6 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 26 Mar 2026 16:57:56 -0400 Subject: [PATCH 7/9] Add uncapped_ssi income check to AL SSP eligibility, remove from spm_unit_benefits - Require uncapped_ssi > 0 (actual SSI receipt) in addition to is_ssi_eligible (categorical eligibility) per federal SSI rules - Add test case for SSI-eligible person with income too high - Remove al_ssp from spm_unit_benefits.py (SSP not aggregated there) Co-Authored-By: Claude Opus 4.6 (1M context) --- .../gov/states/al/dhr/ssp/al_ssp_eligible.yaml | 10 ++++++++++ .../variables/gov/states/al/dhr/ssp/al_ssp_eligible.py | 3 ++- .../household/income/spm_unit/spm_unit_benefits.py | 2 -- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml index c28cb7507f5..e5ae7c3731d 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml @@ -70,6 +70,16 @@ output: al_ssp_eligible: true +- name: SSI eligible but income too high to receive SSI + period: 2025-01 + input: + is_ssi_eligible: true + uncapped_ssi: 0 + al_ssp_living_arrangement: IHC_LEVEL_A + state_code: AL + output: + al_ssp_eligible: false + - name: Wrong state period: 2025-01 input: diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py index 2b707edb2b7..4aa917cf5a0 100644 --- a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py @@ -14,8 +14,9 @@ class al_ssp_eligible(Variable): def formula(person, period, parameters): is_ssi_eligible = person("is_ssi_eligible", period.this_year) + receives_ssi = person("uncapped_ssi", period) > 0 living_arrangement = person("al_ssp_living_arrangement", period) in_qualifying_arrangement = ( living_arrangement != living_arrangement.possible_values.NONE ) - return is_ssi_eligible & in_qualifying_arrangement + return is_ssi_eligible & receives_ssi & in_qualifying_arrangement diff --git a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py index 526ae0b0cd1..014384941e9 100644 --- a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py +++ b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py @@ -12,8 +12,6 @@ def formula(spm_unit, period, parameters): BENEFITS = [ "social_security", "ssi", - # Alabama programs. - "al_ssp", "ma_state_supplement", # Massachusetts benefits # California programs. "ca_cvrp", # California Clean Vehicle Rebate Project. From 68a4ae6ec609e1d502a10a6e7639ba6ebb0ff8f0 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Thu, 26 Mar 2026 22:11:04 -0400 Subject: [PATCH 8/9] Fix Alabama SSP eligibility and payments --- .../household/household_state_benefits.yaml | 4 ++ .../gov/states/al/dhr/ssp/amount.yaml | 2 +- .../gov/states/al/dhr/ssp/al_ssp.yaml | 2 +- .../states/al/dhr/ssp/al_ssp_eligible.yaml | 29 +++++++++- .../gov/states/al/dhr/ssp/integration.yaml | 53 ++++++++++++++++++- .../gov/states/al/dhr/ssp/al_ssp_eligible.py | 16 ++++-- .../states/al/dhr/ssp/al_ssp_grandfathered.py | 20 +++++++ .../income/spm_unit/spm_unit_benefits.py | 1 + 8 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_grandfathered.py diff --git a/policyengine_us/parameters/gov/household/household_state_benefits.yaml b/policyengine_us/parameters/gov/household/household_state_benefits.yaml index 9ad7c2dae5d..a473ee0abfb 100644 --- a/policyengine_us/parameters/gov/household/household_state_benefits.yaml +++ b/policyengine_us/parameters/gov/household/household_state_benefits.yaml @@ -17,6 +17,8 @@ values: - ca_la_expectant_parent_payment - ca_capi - ca_state_supplement + # Alabama benefits + - al_ssp # Nebraska benefits - ne_child_care_subsidies # Massachusetts benefits @@ -39,6 +41,8 @@ values: - ca_la_expectant_parent_payment - ca_capi - ca_state_supplement + # Alabama benefits + - al_ssp # Nebraska benefits - ne_child_care_subsidies # North Carolina benefits diff --git a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml index 42735c03caa..87a005745da 100644 --- a/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml +++ b/policyengine_us/parameters/gov/states/al/dhr/ssp/amount.yaml @@ -11,7 +11,7 @@ metadata: href: https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=24 FCMP_NURSING_CARE: - 1995-01-01: 60 + 1995-01-01: 100 NURSING_CARE: 1995-01-01: 60 diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml index 7507b01021b..46565e9be12 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp.yaml @@ -4,7 +4,7 @@ al_ssp_eligible: true al_ssp_living_arrangement: FCMP_NURSING_CARE output: - al_ssp: 60 + al_ssp: 100 - name: Nursing Care individual period: 2025-01 diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml index e5ae7c3731d..d6257249c36 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/al_ssp_eligible.yaml @@ -2,6 +2,7 @@ period: 2025-01 input: is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: IHC_LEVEL_A state_code: AL output: @@ -38,6 +39,7 @@ period: 2025-01 input: is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: FOSTER_CARE state_code: AL output: @@ -47,15 +49,17 @@ period: 2025-01 input: is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: CEREBRAL_PALSY state_code: AL output: - al_ssp_eligible: true + al_ssp_eligible: false - name: SSI eligible in FCMP Nursing Care period: 2025-01 input: is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: FCMP_NURSING_CARE state_code: AL output: @@ -65,6 +69,7 @@ period: 2025-01 input: is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: NURSING_CARE state_code: AL output: @@ -80,6 +85,28 @@ output: al_ssp_eligible: false +- name: Grandfathered cerebral palsy recipient remains eligible + period: 2025-01 + input: + is_ssi_eligible: false + uncapped_ssi: 0 + al_ssp_grandfathered: true + al_ssp_living_arrangement: CEREBRAL_PALSY + state_code: AL + output: + al_ssp_eligible: true + +- name: Grandfathered non-SSI recipient remains eligible + period: 2025-01 + input: + is_ssi_eligible: false + uncapped_ssi: 0 + al_ssp_grandfathered: true + al_ssp_living_arrangement: IHC_LEVEL_A + state_code: AL + output: + al_ssp_eligible: true + - name: Wrong state period: 2025-01 input: diff --git a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml index f4a03bf73fa..9db413e2768 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/al/dhr/ssp/integration.yaml @@ -6,6 +6,7 @@ person1: age: 70 is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: IHC_LEVEL_A spm_units: spm_unit: @@ -17,6 +18,7 @@ output: al_ssp_eligible: [true] al_ssp: [60] + spm_unit_benefits: 353.58334 - name: Case 2, SSI eligible couple in Foster Care. period: 2025-01 @@ -26,10 +28,12 @@ person1: age: 68 is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: FOSTER_CARE person2: age: 65 is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: FOSTER_CARE spm_units: spm_unit: @@ -82,7 +86,7 @@ al_ssp_eligible: [false] al_ssp: [0] -- name: Case 5, SSI eligible person in Cerebral Palsy Treatment Center. +- name: Case 5, non-grandfathered cerebral palsy case is not eligible. period: 2025-01 absolute_error_margin: 0.01 input: @@ -90,6 +94,27 @@ person1: age: 60 is_ssi_eligible: true + uncapped_ssi: 1 + al_ssp_living_arrangement: CEREBRAL_PALSY + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + al_ssp_eligible: [false] + al_ssp: [0] + +- name: Case 5b, grandfathered cerebral palsy case remains eligible. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 60 + al_ssp_grandfathered: true al_ssp_living_arrangement: CEREBRAL_PALSY spm_units: spm_unit: @@ -110,6 +135,7 @@ person1: age: 70 is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: IHC_LEVEL_A person2: age: 65 @@ -136,10 +162,12 @@ person1: age: 70 is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: FOSTER_CARE person2: age: 68 is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: IHC_LEVEL_B spm_units: spm_unit: @@ -154,6 +182,27 @@ al_ssp_eligible: [true, true] al_ssp: [110, 56] +- name: Case 7b, FCMP nursing care uses the $100 payment amount. + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_ssi_eligible: true + uncapped_ssi: 1 + al_ssp_living_arrangement: FCMP_NURSING_CARE + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: AL + output: + al_ssp_eligible: [true] + al_ssp: [100] + - name: Case 8, wrong state receives zero. period: 2025-01 absolute_error_margin: 0.01 @@ -162,6 +211,7 @@ person1: age: 70 is_ssi_eligible: true + uncapped_ssi: 1 al_ssp_living_arrangement: IHC_LEVEL_A spm_units: spm_unit: @@ -274,6 +324,7 @@ person1: age: 70 employment_income: 0 + al_ssp_grandfathered: true al_ssp_living_arrangement: CEREBRAL_PALSY tax_units: tax_unit: diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py index 4aa917cf5a0..12cc5f0edad 100644 --- a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py @@ -16,7 +16,17 @@ def formula(person, period, parameters): is_ssi_eligible = person("is_ssi_eligible", period.this_year) receives_ssi = person("uncapped_ssi", period) > 0 living_arrangement = person("al_ssp_living_arrangement", period) - in_qualifying_arrangement = ( - living_arrangement != living_arrangement.possible_values.NONE + grandfathered = person("al_ssp_grandfathered", period) + values = living_arrangement.possible_values + in_qualifying_arrangement = living_arrangement != values.NONE + requires_closed_cohort = ( + living_arrangement == values.CEREBRAL_PALSY ) - return is_ssi_eligible & receives_ssi & in_qualifying_arrangement + current_ssi_linked_eligibility = ( + is_ssi_eligible + & receives_ssi + & in_qualifying_arrangement + & ~requires_closed_cohort + ) + grandfathered_eligibility = grandfathered & in_qualifying_arrangement + return current_ssi_linked_eligibility | grandfathered_eligibility diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_grandfathered.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_grandfathered.py new file mode 100644 index 00000000000..30e3cdeb886 --- /dev/null +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_grandfathered.py @@ -0,0 +1,20 @@ +from policyengine_us.model_api import * + + +class al_ssp_grandfathered(Variable): + value_type = bool + entity = Person + label = "Alabama SSP grandfathered eligibility override" + definition_period = MONTH + defined_for = StateCode.AL + default_value = False + reference = ( + "https://admincode.legislature.state.al.us/api/chapter/660-2-4#page=9", + "https://admincode.legislature.state.al.us/api/rule/660-2-4-.26", + ) + documentation = """ + Flags people who remain eligible for Alabama supplementation through the + grandfathered non-SSI or closed-cohort rules. This is required for + arrangements such as the cerebral palsy treatment center that are no + longer broadly open to new recipients. + """ diff --git a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py index 014384941e9..437e48289c5 100644 --- a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py +++ b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py @@ -12,6 +12,7 @@ def formula(spm_unit, period, parameters): BENEFITS = [ "social_security", "ssi", + "al_ssp", "ma_state_supplement", # Massachusetts benefits # California programs. "ca_cvrp", # California Clean Vehicle Rebate Project. From 7d5120c4d5e29e6d9d0167e317e506835ee5c9e9 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Thu, 26 Mar 2026 22:13:46 -0400 Subject: [PATCH 9/9] Format Alabama SSP review fix --- .../variables/gov/states/al/dhr/ssp/al_ssp_eligible.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py index 12cc5f0edad..98cd98f1f72 100644 --- a/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py +++ b/policyengine_us/variables/gov/states/al/dhr/ssp/al_ssp_eligible.py @@ -19,9 +19,7 @@ def formula(person, period, parameters): grandfathered = person("al_ssp_grandfathered", period) values = living_arrangement.possible_values in_qualifying_arrangement = living_arrangement != values.NONE - requires_closed_cohort = ( - living_arrangement == values.CEREBRAL_PALSY - ) + requires_closed_cohort = living_arrangement == values.CEREBRAL_PALSY current_ssi_linked_eligibility = ( is_ssi_eligible & receives_ssi