diff --git a/changelog.d/ca-ssp-blind-food-allowance.fixed.md b/changelog.d/ca-ssp-blind-food-allowance.fixed.md new file mode 100644 index 00000000000..309a16771d5 --- /dev/null +++ b/changelog.d/ca-ssp-blind-food-allowance.fixed.md @@ -0,0 +1 @@ +Stop the California state supplement from adding the no-cooking food allowance to the blind rates: a couple of an aged or disabled person and a blind person who is neither aged nor disabled gets the one-blind couple rate alone, and the allowance counts only where the aged or disabled amount with it is higher (WIC 12200(e)). diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/state_supplement/ca_state_supplement_food_allowance.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/state_supplement/ca_state_supplement_food_allowance.yaml index 291e8c07457..46571ae1c7b 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/state_supplement/ca_state_supplement_food_allowance.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/state_supplement/ca_state_supplement_food_allowance.yaml @@ -98,3 +98,162 @@ state_code: CA output: ca_state_supplement_food_allowance: 1_632 + +- name: 2026 couple of an aged person and a blind person under 65 without cooking facilities gets no food allowance + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_tax_unit_head: true + person2: + age: 50 + is_tax_unit_spouse: true + is_blind: true + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + living_arrangements_allow_for_food_preparation: false + output: + # The couple is paid the one-blind rate (WIC 12200(b)), and 12200(e) + # gives the allowance only under (c) or (d): no food allowance. The + # aged amount with the allowance, 1,233.94 + 128.87 = 1,362.81, is below + # the one-blind couple amount, so the standard is 2,238.44. + ca_state_supplement_food_allowance: 0 + ca_state_supplement_payment_standard: 2_238.44 + +- name: 2026 aged couple with one blind spouse without cooking facilities gets the aged couple amount with the food allowance + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_tax_unit_head: true + is_blind: true + person2: + age: 68 + is_tax_unit_spouse: true + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + living_arrangements_allow_for_food_preparation: false + output: + # Both spouses are aged, so the couple also qualifies under WIC 12200(d) + # with the (e) allowance: 2,098.83 + 257.74 = 2,356.57, above the + # one-blind rate of 2,238.44. California pays the highest category, so + # the allowance adds 2,356.57 - 2,238.44 = 118.13 to the blind amount. + ca_state_supplement_food_allowance: 118.13 + ca_state_supplement_payment_standard: 2_356.57 + +- name: 2026 single aged and blind person without cooking facilities gets the higher of the blind amount and the aged amount with the food allowance + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_tax_unit_head: true + is_blind: true + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: CA + living_arrangements_allow_for_food_preparation: false + output: + # The aged amount with the (e) allowance, 1,233.94 + 128.87 = 1,362.81, + # is above the blind amount of 1,318.32 (WIC 12200(a), (c), (e)). The + # allowance adds 1,362.81 - 1,318.32 = 44.49 to the blind amount. + ca_state_supplement_food_allowance: 44.49 + ca_state_supplement_payment_standard: 1_362.81 + +- name: 2026 aged couple with both spouses blind without cooking facilities gets the aged couple amount with the food allowance + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_tax_unit_head: true + is_blind: true + person2: + age: 68 + is_tax_unit_spouse: true + is_blind: true + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + living_arrangements_allow_for_food_preparation: false + output: + # The aged couple amount with the (e) allowance, 2,098.83 + 257.74 = + # 2,356.57, is above the two-blind rate of 2,324.35 (WIC 12200(a), (d), + # (e)). The allowance adds 2,356.57 - 2,324.35 = 32.22. + ca_state_supplement_food_allowance: 32.22 + ca_state_supplement_payment_standard: 2_356.57 + +- name: 2026 couple of a disabled person and a blind person under 65 without cooking facilities gets no food allowance + period: 2026-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 50 + is_tax_unit_head: true + is_disabled: true + meets_ssi_disability_criteria: true + person2: + age: 45 + is_tax_unit_spouse: true + is_blind: true + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: CA + living_arrangements_allow_for_food_preparation: false + output: + # As for an aged person: the one-blind couple rate under WIC 12200(b), + # 2,238.44, is above 1,233.94 + 128.87 = 1,362.81, and (e) adds nothing. + ca_state_supplement_food_allowance: 0 + ca_state_supplement_payment_standard: 2_238.44 + +- name: 2025 single aged and blind person without cooking facilities gets the aged amount with the food allowance + period: 2025-01 + absolute_error_margin: 0.01 + input: + people: + person1: + age: 70 + is_tax_unit_head: true + is_blind: true + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: CA + living_arrangements_allow_for_food_preparation: false + output: + # 1,206.94 + 128.87 = 1,335.81 is above the 2025 blind amount of 1,291.32, + # so the allowance adds 1,335.81 - 1,291.32 = 44.49. + ca_state_supplement_food_allowance: 44.49 + ca_state_supplement_payment_standard: 1_335.81 diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/state_supplement/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/state_supplement/integration.yaml index 41c32a8b50b..fc6eaa221c2 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/state_supplement/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/cdss/state_supplement/integration.yaml @@ -48,7 +48,11 @@ state_code: CA living_arrangements_allow_for_food_preparation: false output: - ca_state_supplement_payment_standard: 2_639 + # Both spouses are aged, so the couple takes the higher of the one-blind + # rate, 1,295, and the aged couple amount with the food allowance, 1,167 + # + 136 = 1,303 (WIC 12200(b), (d), (e)). With the 499 dependent amount + # and the 709 out-of-home care amount: 1,303 + 499 + 709 = 2,511. + ca_state_supplement_payment_standard: 2_511 - name: Case A ,single disabled parent with non eligible dependent child. period: 2025-01 diff --git a/policyengine_us/variables/gov/states/ca/cdss/state_supplement/payment_standard/ca_state_supplement_food_allowance.py b/policyengine_us/variables/gov/states/ca/cdss/state_supplement/payment_standard/ca_state_supplement_food_allowance.py index 2bebf658508..b7c3e9adeea 100644 --- a/policyengine_us/variables/gov/states/ca/cdss/state_supplement/payment_standard/ca_state_supplement_food_allowance.py +++ b/policyengine_us/variables/gov/states/ca/cdss/state_supplement/payment_standard/ca_state_supplement_food_allowance.py @@ -4,11 +4,20 @@ class ca_state_supplement_food_allowance(Variable): value_type = float entity = SPMUnit - label = "California SSI state supplement food allowance" + label = "California SSI state supplement food allowance above the blind amount" + documentation = ( + "The part of the no-cooking (restaurant meals) allowance that lifts the " + "aged or disabled amount above the blind amount, since California pays " + "the higher of the two. It is the full allowance unless the unit's blind " + "amount is higher than its aged or disabled amount." + ) unit = USD definition_period = MONTH defined_for = "ca_state_supplement_food_allowance_eligible" - reference = "https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=12200" + reference = ( + "https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=WIC§ionNum=12200", + "https://secure.ssa.gov/apps10/poms.nsf/lnx/0501415058", + ) def formula(spm_unit, period, parameters): p = parameters(period).gov.states.ca.cdss.state_supplement.payment_standard @@ -17,8 +26,24 @@ def formula(spm_unit, period, parameters): "ca_state_supplement_aged_disabled_count", period ) # Food allowance amount - return where( + allowance = where( is_married & (aged_disabled_count == 2), p.allowance.food.married, p.allowance.food.single, ) + # WIC 12200(e) adds the allowance only to the aged or disabled amount + # under (c) or (d), not to the blind amounts under (a) or (b), and + # California pays the highest category (POMS SI 01415.058 B.2.a note). + # So the allowance counts only as far as it lifts the aged or disabled + # amount above the blind amount; a couple of an aged person and a blind + # person who is neither aged nor disabled gets none. POMS code C adds + # the individual allowance for that couple; PolicyEngine follows the + # statute (ruled 2026-10-29, PR 10379 comment 6509402355). + aged_disabled_amount = spm_unit( + "ca_state_supplement_aged_disabled_amount", period + ) + # The higher of the blind and the aged or disabled amounts. + aged_blind_disabled_amount = spm_unit( + "ca_state_supplement_aged_blind_disabled_amount", period + ) + return max_(aged_disabled_amount + allowance - aged_blind_disabled_amount, 0) diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index a450b0cd371..85135e1b050 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -1394,9 +1394,9 @@ candidates: other: POMS adds the individual restaurant meals allowance for the aged or disabled member of a couple with one blind member whose living arrangement lacks cooking facilities. example: In January 2026, a couple of an aged person and a blind person aged 50 without cooking facilities has a - $2,238.44 standard under the statute, which PE-US follows for CAPI, and $2,367.31 under POMS. + $2,238.44 standard under the statute, which PE-US follows, and $2,367.31 under POMS. pe_us: - follows: conflicting-source + follows: statute code: - policyengine_us/variables/gov/states/ca/cdss/capi/_ca_capi_ssi_ssp_standard.py - policyengine_us/variables/gov/states/ca/cdss/state_supplement/payment_standard/ca_state_supplement_food_allowance.py @@ -1412,12 +1412,10 @@ candidates: note: 'Ruled 2026-10-29 for the statute by the project lead for the Medicaid fixes; the ruling record is https://github.com/PolicyEngine/policyengine-us/pull/10379#issuecomment-6509402355. WIC 12200(e) gives the no-cooking allowance only under (c) and (d), so a couple paid the one-blind rate under (b) gets none, in CAPI and - in the state supplement. CAPI follows the statute: _ca_capi_ssi_ssp_standard.py adds no food allowance to the - one-blind couple rate, and a couple both aged or disabled takes the aged or disabled rate with the couple - allowance when that is higher. Until PolicyEngine/policyengine-us#10546 merges, the state supplement follows - POMS: ca_state_supplement_food_allowance.py adds the individual allowance for the aged or disabled member, so in - January 2026 the same couple has a $2,367.31 standard as citizens and $2,238.44 as CAPI recipients. That PR - makes the state supplement follow the statute and sets pe_us.follows to statute.' + in the state supplement. CAPI (_ca_capi_ssi_ssp_standard.py) and the state supplement + (ca_state_supplement_food_allowance.py) both follow the statute: neither adds a food allowance to the one-blind + couple rate, and a couple both aged or disabled takes the aged or disabled rate with the couple allowance when + that is higher.' - id: us-ca:ssp-nmohc-couple-standard program: ssi-ssp years: