PolicyEngine / PolicyEngine/policyengine-us

California BBCE applies a net-income eligibility test that CDSS waives (net_applies[CA] should be false)

Open
#9,175 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
162
Forks
212
Avg merge
3d 3h
Merged PRs (30d)
97

Description

**Versions:** policyengine-us 1.767.3 (source pin `49d19b239a593dbac8920ac6fd80cfe33372343a`), policyengine-core 3.30.3, Python 3.13.

**Summary:** California confers broad-based categorical eligibility (which CDSS calls *modified* categorical eligibility, MCE) on households at or below **200% FPG gross**, with **resources exempt** and the **net-income eligibility ceiling waived** — net income still determines the benefit amount, but it is not an eligibility test. PolicyEngine applies a net-income test to California BBCE households, so a household inside the state's gross screen is denied SNAP entirely.

**Repro** (single adult, CA, $30,000 earnings, 2026):
```python
from policyengine_us import Simulation
sim = Simulation(situation={
"people": {"p1": {"age": {"2026-01": 40}, "employment_income": {"2026": 30000}}},
"spm_units": {"s": {"members": ["p1"]}},
"households": {"h": {"members": ["p1"], "state_code": {"2026": "CA"}}},
})
for v in ["snap_gross_income_fpg_ratio", "snap_net_income_fpg_ratio",
"meets_tanf_non_cash_gross_income_test", "meets_tanf_non_cash_net_income_test",
"meets_tanf_non_cash_asset_test", "is_tanf_non_cash_eligible"]:
print(v, sim.calculate(v, "2026-01"))
print("snap", sim.calculate("snap", "2026-01"))
```
Output:
```
snap_gross_income_fpg_ratio [1.916933] # 191.7% — inside CA's 200% MCE screen
snap_net_income_fpg_ratio [1.3732908]
meets_tanf_non_cash_gross_income_test [True]
meets_tanf_non_cash_net_income_test [False]
meets_tanf_non_cash_asset_test [True]
is_tanf_non_cash_eligible [False]
snap [0.]
```

**Code path:** `variables/gov/hhs/tanf/non_cash/is_tanf_non_cash_eligible.py` returns `gross & net & asset`; `meets_tanf_non_cash_net_income_test.py` applies the limit whenever `gov.hhs.tanf.non_cash.income_limit.net_applies` is true for the state, and both `net_applies/non_hheod.yaml` and `net_applies/hheod.yaml` carry `CA: {2015-10-01: true}`.

**Authority:** CDSS ACL 14-56 establishes the statewide PUB 275 trigger, the inclusive 200-percent gross screen, and the exemption of all resources; ACL 15-42 restates the 200-percent boundary and the net-income treatment — net income determines the benefit amount, not MCE eligibility. Federally, 7 CFR 273.2(j)(2)(xi) is the retained provision under which a categorically eligible household is not subject to the SNAP net income eligibility limit. Setting `net_applies[CA] = false` (both household types) would match the state's program as documented.

**Impact:** in Axiom Foundation cross-engine validation over an Enhanced-CPS California SNAP population, this class accounts for roughly 735 household-month row divergences after California's MCE rules were encoded — the single largest remaining California SNAP divergence class.

Contributor guide

Open the contributing guide

Research direction

Start with gov/hhs/tanf/non_cash/is_tanf_non_cash_eligible.py and the net_applies/non_hheod.yaml and net_applies/hheod.yaml entries named in the issue. Update the California policy configuration in both household-type files, then rerun the supplied Simulation reproduction; done means California households inside the gross screen are not rejected by the net-income eligibility test.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.