Skip to content

Add Contra Costa County General Assistance#8593

Open
hua7450 wants to merge 6 commits into
PolicyEngine:mainfrom
hua7450:ca-contra-costa-ga
Open

Add Contra Costa County General Assistance#8593
hua7450 wants to merge 6 commits into
PolicyEngine:mainfrom
hua7450:ca-contra-costa-ga

Conversation

@hua7450

@hua7450 hua7450 commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

Implements Contra Costa County, California's General Assistance (GA) program — a county-administered indigent cash-assistance program under California Welfare & Institutions Code § 17000 et seq. GA pays the gap between a grant standard and the recipient's net countable income to adults without dependent children who are ineligible for other cash aid.

Administered by the Contra Costa County Employment and Human Services Department (EHSD). Files live under gov/local/ca/cc/, parallel to the existing Alameda County GA implementation at gov/local/ca/ala/ga/.

Closes #8592

Regulatory authority

Benefit

Fill-the-gap: max_(grant standard - max_(countable income, 0), 0), where the grant standard is ca_cc_general_assistance_maximum_grant. The inner max_(income, 0) floors countable income at zero so net-negative flows (e.g. self-employment losses) cannot inflate the grant above the standard.

Grant standard Monthly amount Effective Source
Single $336 2011-01-01 WCLP 2011 table ($178 housing + $158 food/needs); still $336 on the current EHSD page
Couple (2 eligible adults) $454 2011-01-01 Current EHSD page ($454/mo for an employable couple); back-dated to 2011 on the same frozen-standards basis as the single rate (see Verification notes)

Eligibility

The benefit gates on ca_cc_general_assistance_eligible (SPM unit), which ANDs three checks:

Requirement How modeled
At least one eligible person ca_cc_general_assistance_eligible_person (per person: age ≥ 18, personal property ≤ $500, qualified immigration status, head/spouse, not receiving SSI/SSDI/UIB/SDI)
No dependent children is_child & is_tax_unit_dependent summed to the SPM unit == 0 (families → CalWORKs)
Countable income < grant standard ca_cc_general_assistance_income_eligible: income < maximum_grant ("earnings less than the maximum allowable grant")
Contra Costa County residence in_cc (county_str == CONTRA_COSTA_COUNTY_CA)

Per-person checks (age ≥ 18; personal property ≤ $500; qualified immigration status — CITIZEN, REFUGEE, ASYLEE, CUBAN_HAITIAN_ENTRANT, LEGAL_PERMANENT_RESIDENT; not receiving SSI/SSDI/UIB/SDI via ssi, social_security_disability, unemployment_compensation, ca_state_disability_insurance) live in ca_cc_general_assistance_eligible_person.

Updates from review

This branch incorporates /review-program findings plus follow-up refactors:

  • Eligibility structure. ca_cc_general_assistance_income_eligible is now purely the income test (income < maximum_grant); a new composite ca_cc_general_assistance_eligible ANDs has-eligible-person, no-dependent-children, and income eligibility, and the benefit gates on it (mirrors the San Mateo Add San Mateo County General Assistance #8360 structure). The no-children rule no longer lives inside the income variable.
  • Renamed ca_cc_general_assistance_base_amountca_cc_general_assistance_maximum_grant — it is the full grant standard, not a base that gets supplemented.
  • Dependent children modeled as is_child & is_tax_unit_dependent (explicit; equal to the minor-child count in the current model, since only adults can head/spouse a tax unit).
  • Couple amount dating. $454 now dated 2011-01-01 (was 2024-01-01): the single rate is corroborated at $336 from 2011 (WCLP) through today, so the standards appear frozen and the couple rate is applied back on the same basis (the EHSD page lists $336 single and $454 couple together).
  • Immigration status. Dropped PAROLED_ONE_YEAR — time-limited parole conflicts with EHSD's "no limitation on your stay" criterion; aligns with Santa Clara (Add Santa Clara County General Assistance Program #8358) and San Mateo (Add San Mateo County General Assistance #8360) County GA.
  • Reference accuracy. Re-anchored the personal-property limit, fill-the-gap, and no-children references from the GA-80 brochure (which does not print those figures) to the EHSD program page.
  • Tests. Added income=0→$336, income==$336→ineligible/$0 (strict <), three eligible adults→single $336, personal property summed across members, composite-eligibility cases, and an endogenous SSI integration test (an aged adult whose SSI the model computes — not forced as input — is excluded from GA). Test count 46 → 56.
  • Comment. Clarified that only SSDI bars eligibility, while OASDI retirement/survivors count as income.

Verification notes / known simplifications

  • Couple amount dated on a stability assumption. $454 appears only on the (undated) EHSD page. Because the single rate is independently corroborated as unchanged at $336 since 2011, the GA standards are treated as frozen and the couple rate is applied back to 2011-01-01.
  • No earned-income disregard modeled. CC's exact disregard (if any) is not published on the EHSD page or brochure; matches the Alameda GA precedent.
  • Immigration-status list. CC does not publish an explicit qualified-status enumeration; the EHSD criterion is the broad "non-citizen legally in the country with no limitation on your stay." The modeled list maps that criterion onto the closest enum members. DEPORTATION_WITHHELD / CONDITIONAL_ENTRANT (used by Add Santa Clara County General Assistance Program #8358 / Add San Mateo County General Assistance #8360) are not added here because the EHSD page does not enumerate them for Contra Costa.
  • SSI exclusion scope. GA excludes people actually receiving SSI (ssi > 0). Unlike San Mateo (Add San Mateo County General Assistance #8360), CC does not additionally exclude CAPI-eligible applicants (the aged/blind/disabled-LPR SSI off-ramp); the "apply for potential income" rule is therefore only partially modeled.
  • Household sizes ≥ 3 are not separately sourced; 3+ eligible adults fall through to the single amount, and any 2 eligible adults are treated as a couple (marital pairing is not tracked within the SPM unit).
  • Personal-property limit. The $500 figure is the EHSD page value. The GA-80 brochure's granular asset rules (home, one vehicle ≤ $4,500, cash < $50) are separate exclusions and are not modeled; personal_property is treated as the net countable-asset figure.
  • Authoritative grant table unobtainable online. The Contra Costa GA Standard Practices Manual / Board resolution is not published online; the CCWRO Public Assistance Tables checked contain no GA/GR section.

Not modeled (by design)

  • 90-day / 3-month-in-12 employable time limit (lifetime/cumulative limits are a known framework limitation)
  • Reimbursement/loan agreement (Form SSP-14)
  • Special Need Allowance, shared-housing reduction, vendor/in-kind rent payment
  • 15-day residency-duration requirement; granular resource exclusions

Files

parameters/gov/local/ca/cc/general_assistance/
variables/gov/local/ca/cc/ga/
  ca_cc_general_assistance.py            (fill-the-gap benefit; gates on ..._eligible)
  ca_cc_general_assistance_maximum_grant.py   (grant standard: single/couple)
  eligibility/
    ca_cc_general_assistance_eligible.py        (composite SPM-unit gate)
    ca_cc_general_assistance_eligible_person.py (per-person categorical checks)
    ca_cc_general_assistance_income_eligible.py (pure income test)
    ca_cc_general_assistance_age_eligible.py
    ca_cc_general_assistance_immigration_status_eligible.py
    ca_cc_general_assistance_personal_property_eligible.py
  income/  (+ in_cc.py)
tests/policy/baseline/gov/local/ca/cc/ga/
programs.yaml  (registered ca_cc_general_assistance)

Reference implementation

Test plan

  • 56 unit/YAML tests pass locally (policyengine-core test policyengine_us/tests/policy/baseline/gov/local/ca/cc/)
  • make format clean (ruff format + check)
  • CI passes

🤖 Generated with Claude Code

hua7450 and others added 2 commits June 5, 2026 10:19
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add the county-administered General Assistance (GA) cash-relief program
(CA Welfare & Institutions Code section 17000 et seq.):

- Fill-the-gap benefit: max_(grant standard - max_(countable income, 0), 0),
  with the inner floor guarding against negative-income inflation.
- Grant standards: single $336/month (stable since 2011 per WCLP), couple
  $454/month (current EHSD).
- Eligibility: age >= 18; $500 personal-property limit; qualified immigration
  status; no dependent children (families -> CalWORKs); not receiving
  SSI/SSDI/UIB/SDI; Contra Costa County residence.
- Register the program in programs.yaml.
- 46 unit/integration tests, all passing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (bd1ae42) to head (7ee6dc2).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##             main     #8593       +/-   ##
============================================
+ Coverage   77.77%   100.00%   +22.22%     
============================================
  Files           1        11       +10     
  Lines           9       135      +126     
============================================
+ Hits            7       135      +128     
+ Misses          2         0        -2     
Flag Coverage Δ
unittests 100.00% <100.00%> (+22.22%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

hua7450 and others added 3 commits June 7, 2026 00:16
- Date couple grant ($454) at 2011-01-01 to match the stable single rate;
  document the frozen-standards rationale (single $336 unchanged since 2011).
- Drop PAROLED_ONE_YEAR from qualified immigration statuses (time-limited
  parole conflicts with EHSD's 'no limitation on stay'); aligns with Santa
  Clara (PolicyEngine#8358) and San Mateo (PolicyEngine#8360) County GA. Add comment + test.
- Re-anchor personal-property limit, fill-the-gap, and no-children references
  from the GA-80 brochure (which lacks those figures) to the EHSD program page.
- Note only SSDI bars eligibility; OASDI retirement/survivors count as income.
- Add tests: income=0 -> full $336, income==$336 -> ineligible/$0, three
  eligible adults -> single $336, personal property summed across members.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Rename ca_cc_general_assistance_base_amount -> _maximum_grant (it is the full
  grant standard, not a base that gets supplemented).
- Split eligibility: ca_cc_general_assistance_income_eligible is now purely the
  income test (income < maximum_grant); a new composite
  ca_cc_general_assistance_eligible ANDs has-eligible-person, no-dependent-children,
  and income eligibility. The benefit now gates on the composite.
- Model 'dependent children' as is_child & is_tax_unit_dependent (explicit;
  equivalent to minor children in the current model).
- Add an endogenous SSI integration test: an aged adult who qualifies for SSI
  (computed, not input) is excluded from GA.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review June 7, 2026 05:03
Document that 3+ eligible adults in one SPM unit is not a real GA
configuration (each adult or couple is a separate case); the fall-through
to the single grant standard is a defensive default. Clarify the comment
in ca_cc_general_assistance_maximum_grant and the corresponding test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 requested a review from PavelMakarchuk June 7, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Contra Costa County General Assistance

1 participant