From a72f2e025f2d67fe26d617ab9c75ab8a1eb76fa7 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 29 Oct 2026 18:11:07 -0400 Subject: [PATCH 1/3] Stop the California state supplement from stacking the food allowance on the blind rates WIC 12200(e) gives the no-cooking allowance only with the aged or disabled amount under (c) or (d), and California pays the highest category. The allowance now counts only as far as it lifts the aged or disabled amount above the blind amount, so an aged-plus-blind couple without cooking facilities gets the one-blind rate alone (,238.44 in January 2026). Ruled for the statute over POMS SI 01415.058 code C on 2026-10-29 (PR 10379 comment 6509402355). Co-Authored-By: Claude Opus 5.5 --- .../ca-ssp-blind-food-allowance.fixed.md | 1 + .../ca_state_supplement_food_allowance.yaml | 80 +++++++++++++++++++ .../ca/cdss/state_supplement/integration.yaml | 6 +- .../ca_state_supplement_food_allowance.py | 23 +++++- 4 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 changelog.d/ca-ssp-blind-food-allowance.fixed.md 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..c937a69f44d --- /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 person and a blind person 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..642bb237155 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,83 @@ 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 and aged amounts + 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 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..215e9a5b642 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 @@ -8,7 +8,10 @@ class ca_state_supplement_food_allowance(Variable): 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 +20,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 + ) + blind_amount = spm_unit("ca_state_supplement_blind_amount", period) + return max_( + aged_disabled_amount + allowance - max_(blind_amount, aged_disabled_amount), + 0, + ) From e7c22682c95d3d72a582b619185be155c770e2a0 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 29 Oct 2026 18:21:41 -0400 Subject: [PATCH 2/3] Clarify the changelog and a test name for the CA SSP food allowance Co-Authored-By: Claude Opus 5.5 --- changelog.d/ca-ssp-blind-food-allowance.fixed.md | 2 +- .../state_supplement/ca_state_supplement_food_allowance.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/changelog.d/ca-ssp-blind-food-allowance.fixed.md b/changelog.d/ca-ssp-blind-food-allowance.fixed.md index c937a69f44d..309a16771d5 100644 --- a/changelog.d/ca-ssp-blind-food-allowance.fixed.md +++ b/changelog.d/ca-ssp-blind-food-allowance.fixed.md @@ -1 +1 @@ -Stop the California state supplement from adding the no-cooking food allowance to the blind rates: a couple of an aged person and a blind person 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)). +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 642bb237155..6c2f2383f4a 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 @@ -155,7 +155,7 @@ 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 and aged amounts +- 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: From 0dd023c109fee58ef8d40a36191832ebcf816f0b Mon Sep 17 00:00:00 2001 From: Ziming Date: Fri, 30 Oct 2026 10:46:39 -0400 Subject: [PATCH 3/3] Follow the statute in the CA one-blind couple candidate; relabel the food allowance top-up; add edge cases Pavel's G1-G3 on PR 10546: the us-ca:ssp-blind-couple-food-allowance candidate now follows the statute in both CAPI and the state supplement (10379 is on main); ca_state_supplement_food_allowance is labelled and documented as the top-up above the blind amount and reads ca_state_supplement_aged_blind_disabled_amount; three cases pin the two-blind aged couple, the disabled-plus-blind couple and 2025. Co-Authored-By: Claude Opus 5.5 --- .../ca_state_supplement_food_allowance.yaml | 79 +++++++++++++++++++ .../ca_state_supplement_food_allowance.py | 16 ++-- source_conflicts/candidates.yaml | 14 ++-- 3 files changed, 96 insertions(+), 13 deletions(-) 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 6c2f2383f4a..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 @@ -178,3 +178,82 @@ # 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/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 215e9a5b642..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,7 +4,13 @@ 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" @@ -36,8 +42,8 @@ def formula(spm_unit, period, parameters): aged_disabled_amount = spm_unit( "ca_state_supplement_aged_disabled_amount", period ) - blind_amount = spm_unit("ca_state_supplement_blind_amount", period) - return max_( - aged_disabled_amount + allowance - max_(blind_amount, aged_disabled_amount), - 0, + # 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: