The system
How the system worksThe DirectoryDispatchThe LedgerAI modelsAI agentsYour installationThe appThe research libraryWhat changes for your businessUse it from your softwareEverything it can do
Messaging
iMessageWhatsApp
Ads and leads
AdsCreativeLeads
Devices
Devices
Industries
RealtorsRestaurantsHome services
Explore
How it worksPermissions and limitsCompareSet upQuestionsText me

The California benefits graph: 80 programs, 24 life events and 13 reusable household facts as one queryable object

Every public benefit a California household might reach, as data: 80 programs with stable ids, who each is for, its income test, how to apply, its official address and its renewal rule; 24 life events and the programs each one triggers; and the 13 household facts the means-tested programs keep asking for, so a fact given once can be reused across every program that needs it. This is the object the CalFresh article and every later benefit article screen against.

What this object is

One JSON object that holds the whole map a household has to navigate: which programs exist, who each is for, what each asks, and which facts they share. Every program has a stable id (B001 is CalFresh; B011 is Medi-Cal; B003 is WIC), every life event names the programs it may trigger, and every reusable household fact names the programs that demand it. The page you are reading is a projection of that object; the object itself is at /a/california-benefits-graph.json.

The point of holding it as data rather than prose: a household that gives its size and monthly income once has answered the first question of eleven programs, and a model screening for CalFresh can see, without being told, that the same two facts open Medi-Cal, WIC, CalWORKs, CARE and LIHEAP.

80
programs, 25 life events, 13 reusable facts and 172 edges, read from the workbook on 9 October 2026

How to read it

  • facts.programs is a map from id to program node: name, category, administrator, who it is for, the income test as the workbook states it, the benefit, how to apply, the official address, the interview and renewal rules.
  • facts.life_events lists events (job loss, pregnancy, release from incarceration, a child turning 18) with the program ids each may trigger, the first action, the time-critical deadlines and the documents to gather.
  • facts.facts_catalog is the set of canonical household facts, each with its type, evidence class, how long it stays valid and the programs that demand it.
  • facts.edges is the same information flattened to {from, rel, to} rows, ready for an edge table: may_trigger from an event to a program, requires from a program to a fact.

The figures inside program rows are the workbook's and are dated by it. The CalFresh row's figures were checked against the federal and California sources on 9 October 2026 and live, with their sources, in the CalFresh article.

The reusable facts and who demands them
JSONThe reusable facts and who demands them
16 items
5 keys
"fact""household.size"
"type""integer"
"evidence""user assertion + corroboration"
"validity""until composition change"
"demanded_by" 6 items
"B001"
"B003"
"B011"
"B021"
"B045"
"B049"
5 keys
"fact""household.composition.members[]"
"type""list(person)"
"evidence""user assertion + documents"
"validity""until change"
"demanded_by" 3 items
"B001"
"B011"
"B021"
5 keys
"fact""household.income.monthly_gross"
"type""money"
"evidence""pay stubs / benefit letters"
"validity""30-90 days"
"demanded_by" 8 items
"B001"
"B003"
"B011"
"B021"
"B043"
"B044"
"B045"
"B060"
5 keys
"fact""household.income.annual"
"type""money"
"evidence""tax return / W-2"
"validity""1 year"
"demanded_by" 4 items
"B012"
"B049"
"B050"
"B056"
5 keys
"fact""household.assets.liquid"
"type""money"
"evidence""bank statements"
"validity""30-90 days"
"demanded_by" 2 items
"B023"
"B024"
5 keys
"fact""person.address.residential.state"
"type""enum(state)"
"evidence""derived from address"
"validity""until move"
"demanded_by" 6 items
"B001"
"B011"
"B021"
"B027"
"B043"
"B045"
5 keys
"fact""person.address.residential.postal_code"
"type""string"
"evidence""derived"
"validity""until move"
"demanded_by" 5 items
"B001"
"B035"
"B043"
"B045"
"B058"
5 keys
"fact""person.identity.date_of_birth"
"type""date"
"evidence""birth certificate / passport"
"validity""permanent"
"demanded_by" 5 items
"B001"
"B011"
"B013"
"B023"
"B063"
5 keys
"fact""person.identity.citizenship"
"type""enum"
"evidence""passport / birth certificate / naturalization"
"validity""permanent"
"demanded_by" 4 items
"B001"
"B002"
"B011"
"B080"
5 keys
"fact""person.identity.immigration_status"
"type""enum"
"evidence""USCIS documents"
"validity""status-dependent"
"demanded_by" 5 items
"B001"
"B002"
"B011"
"B024"
"B080"
5 keys
"fact""employment.status"
"type""enum"
"evidence""pay stub / separation letter"
"validity""30-90 days"
"demanded_by" 4 items
"B001"
"B027"
"B028"
"B060"
5 keys
"fact""education.enrollment.status"
"type""enum"
"evidence""enrollment verification"
"validity""term"
"demanded_by" 3 items
"B001"
"B056"
"B057"
5 keys
"fact""benefits.currently_receiving[]"
"type""list(program)"
"evidence""award letters"
"validity""term"
"demanded_by" 4 items
"B001"
"B009"
"B043"
"B047"
6 keys
"fact""household.members.any_elderly_or_disabled"
"type""boolean"
"evidence""article field f:elderly_or_disabled (california-calfresh)"
"validity""UNKNOWN"
"demanded_by" 1 item
"B001"
"added_by""S13 2026-10-09 from article fields"
6 keys
"fact""person.address.residential.county"
"type""string"
"evidence""article field f:county (california-calfresh)"
"validity""UNKNOWN"
"demanded_by" 1 item
"B001"
"added_by""S13 2026-10-09 from article fields"
6 keys
"fact""household.expenses.shelter_monthly"
"type""money"
"evidence""article field f:rent (california-calfresh)"
"validity""UNKNOWN"
"demanded_by" 1 item
"B001"
"added_by""S13 2026-10-09 from article fields"
Life events and the programs they trigger
JSONLife events and the programs they trigger
25 items
7 keys
"id""event:job_loss_fired_laid_off_quit_with_cause"
"event""Job loss (fired / laid off / quit with cause)"
"triggers" 9 items
"B001"
"B011"
"B012"
"B027"
"B035"
"B036"
"B043"
"B049"
"B052"
"first_action""File UI in week 1; apply CalFresh + Medi-Cal the same week (one BenefitsCal session)"
"deadlines""UI: file week 1 or lose weeks. Covered CA special enrollment: 60 days from coverage loss. CalFresh expedited: 3-day issuance if destitute"
"documents""Final pay stub, separation letter, ID, lease, last utility bill"
"cross_eligibility""UI income counts for CalFresh/Medi-Cal on different clocks - model both; severance treatment differs by program"
7 keys
"id""event:hours_cut_income_drop_still_employed"
"event""Hours cut / income drop (still employed)"
"triggers" 6 items
"B001"
"B043"
"B044"
"B045"
"B060"
"B076"
"first_action""Re-screen the whole household at the new income - most working-poor aid keys off current monthly income"
"deadlines""CalFresh: apply the month income drops (benefits start from filing). LIHEAP: before funds exhaust"
"documents""Recent pay stubs showing the drop, employer letter if available"
"cross_eligibility""Current-month income is what most programs test - a bad month is exactly when to file"
7 keys
"id""event:eviction_notice_received_3_day_30_day_unlawful_detainer"
"event""Eviction notice received (3-day / 30-day / unlawful detainer)"
"triggers" 5 items
"B021"
"B040"
"B042"
"B067"
"B079"
"first_action""Call legal aid the day the notice arrives; answer any unlawful detainer within the court deadline"
"deadlines""CA unlawful detainer answer deadline: 10 court days after service (VERIFY current rule - changed by AB 2347 to 10 days from Jan 2025). Never miss it"
"documents""Lease, notices, rent receipts, photos of unit conditions, all court papers"
"cross_eligibility""Habitability and notice defects are defenses; a negotiated move-out without judgment protects the record"
7 keys
"id""event:became_homeless_no_address_tonight"
"event""Became homeless (no address tonight)"
"triggers" 7 items
"B001"
"B009"
"B011"
"B022"
"B063"
"B070"
"B079"
"first_action""Coordinated Entry assessment + expedited CalFresh + a mail solution (county office / General Delivery / shelter address)"
"deadlines""Expedited CalFresh: 3-day issuance for destitute households. Shelter beds: same-day via 211"
"documents""Whatever ID survives; counties must accept alternative proofs - know the flexibilities"
"cross_eligibility""No fixed address does NOT bar benefits; homeless status unlocks exemptions (ABAWD, interview flexibilities)"
7 keys
"id""event:pregnancy_new_baby"
"event""Pregnancy / new baby"
"triggers" 8 items
"B001"
"B003"
"B011"
"B028"
"B050"
"B053"
"B058"
"B060"
"first_action""Enroll WIC + Medi-Cal pregnancy coverage at first prenatal contact; file PFL dates before the birth"
"deadlines""Medi-Cal presumptive eligibility is same-day at qualified providers. Newborn is deemed Medi-Cal eligible when mother is enrolled - report the birth immediately"
"documents""ID, pregnancy verification (clinic), income proof"
"cross_eligibility""Baby counts in household size for CalFresh from birth; WIC covers the pregnant person AND then the infant - two enrollments, one visit"
7 keys
"id""event:job_related_injury_can_t_work_temporary"
"event""Job-related injury / can't work (temporary)"
"triggers" 4 items
"B001"
"B011"
"B028"
"B072"
"first_action""File DWC-1 with employer immediately; if treatment or pay stalls, file SDI"
"deadlines""DWC-1: give to employer within 30 days (rights can be lost at 1 year). SDI: file within 49 days of disability start"
"documents""Incident details, employer info, medical notes, pay records"
"cross_eligibility""SDI and comp coordinate: SDI pays when comp is denied/delayed, with lien/repayment rules - file both, disclose both"
7 keys
"id""event:disability_becomes_long_term_permanent"
"event""Disability becomes long-term / permanent"
"triggers" 7 items
"B011"
"B013"
"B015"
"B023"
"B025"
"B037"
"B076"
"first_action""File SSI/SSDI EARLY - protective filing date sets back pay; do not wait for SDI to end"
"deadlines""SDI exhausts at 52 weeks: file federal claims by month 6 of disability. SSDI: Medicare starts 24 months after entitlement"
"documents""Full provider list, treatment timeline, work history, function statements"
"cross_eligibility""1619(b) lets SSI recipients keep Medi-Cal while working; SSDI has its own work-incentive rules - 'working = lose everything' is false"
7 keys
"id""event:turning_65"
"event""Turning 65"
"triggers" 9 items
"B007"
"B008"
"B013"
"B014"
"B023"
"B041"
"B062"
"B063"
"B073"
"first_action""Enroll Medicare in the initial window; screen MSP + Extra Help the same week (they pay the premiums Medicare just started charging)"
"deadlines""Medicare IEP: 7 months around the 65th birthday - late Part B enrollment = permanent premium penalty + coverage gap"
"documents""Medicare card, income facts, current coverage letters"
"cross_eligibility""Turning 65 while on Medi-Cal: the programs stack (Medi-Cal + Medicare + MSP + Extra Help) - a configuration problem, not a single application"
7 keys
"id""event:senior_needs_care_at_home_aging_parent_own_decline"
"event""Senior needs care at home (aging parent / own decline)"
"triggers" 6 items
"B011"
"B015"
"B016"
"B029"
"B063"
"B073"
"first_action""Request IHSS assessment; get the SOC 873 certification started with the doctor"
"deadlines""IHSS hours start from application/assessment - delays are unrecoverable care hours"
"documents""Medi-Cal card, physician info, daily-living limitation list"
"cross_eligibility""A spouse or adult child can be the PAID IHSS provider - the family often already has its caregiver"
7 keys
"id""event:child_starts_school_turns_5"
"event""Child starts school / turns 5"
"triggers" 6 items
"B004"
"B005"
"B055"
"B056"
"B059"
"B060"
"first_action""File the school Universal Benefits Application even though meals are free - it drives SUN Bucks"
"deadlines""UBA / meal application: file at school-year start; SUN Bucks eligibility cutoff end of August"
"documents""School enrollment, income facts"
"cross_eligibility""Free meals need no form; SUN Bucks does. The same form also drives school funding - schools will push it"
7 keys
"id""event:leaving_foster_care_18_21"
"event""Leaving foster care (18-21)"
"triggers" 5 items
"B001"
"B011"
"B051"
"B056"
"B061"
"first_action""Confirm EFC participation conditions; file Medi-Cal former-foster-youth category (no income test to 26)"
"deadlines""Medi-Cal FFY: enroll any time before 26. EFC: participation conditions reviewed every 6 months"
"documents""Court/dependency verification letter (also unlocks B051)"
"cross_eligibility""The FFY Medi-Cal category is the single most valuable fact here: full coverage to 26 regardless of income"
7 keys
"id""event:release_from_incarceration"
"event""Release from incarceration"
"triggers" 4 items
"B001"
"B011"
"B022"
"B079"
"first_action""Start pre-release: Medi-Cal activation + ID documents are the two rails everything else rides on"
"deadlines""Pell Grants restored for incarcerated students in approved programs (FAFSA) - education path opens at enrollment"
"documents""Release papers, any surviving ID, court records"
"cross_eligibility""Benefits generally cannot pay for periods of incarceration (SSI suspends after 30 days, terminates after 12 months - reinstatement rules differ)"
7 keys
"id""event:immigration_status_change_mixed_status_fear"
"event""Immigration status change / mixed-status fear"
"triggers" 7 items
"B002"
"B003"
"B004"
"B011"
"B024"
"B033"
"B080"
"first_action""Screen member-by-member: citizens and qualified noncitizens first; state-funded programs second; never issue a household-level refusal"
"deadlines""CFAP 55+ expansion: Oct 1, 2027. Public-charge rule: most benefits in this workbook are NOT counted (current rule excludes most non-cash benefits and SNAP/Medicaid for most categories - VERIFY current policy before advising)"
"documents""Status documents per member"
"cross_eligibility""Household members can apply for eligible members only; non-applicant members' status is not the county's business in most programs"
7 keys
"id""event:divorce_separation_partner_leaves"
"event""Divorce / separation / partner leaves"
"triggers" 7 items
"B001"
"B011"
"B021"
"B035"
"B042"
"B052"
"B053"
"first_action""Report the composition change to every open case within its window (10 days for CalWORKs/Medi-Cal); re-screen as a smaller household"
"deadlines""Support/custody orders take months - benefits re-screen on ACTUAL composition now, not the court outcome"
"documents""Separation proof (separate addresses, statements), children's documents"
"cross_eligibility""The departing partner's income stops counting when they actually leave - file the change, don't wait for the divorce decree"
7 keys
"id""event:death_of_a_spouse_parent"
"event""Death of a spouse / parent"
"triggers" 5 items
"B001"
"B021"
"B026"
"B034"
"B064"
"first_action""Call SSA promptly - survivors benefits for children start from application month; some are retroactive only 6 months"
"deadlines""Survivors: apply within months to protect retroactivity. Burial benefits (SSA lump sum $255) require filing within 2 years"
"documents""Death certificate (order multiple certified copies), marriage/birth records, decedent's SSN"
"cross_eligibility""Children's survivors benefits are frequently larger than any cash-aid grant - and unclaimed for years out of simple unawareness"
7 keys
"id""event:natural_disaster_fire_flood_earthquake"
"event""Natural disaster (fire / flood / earthquake)"
"triggers" 5 items
"B010"
"B027"
"B034"
"B045"
"B064"
"first_action""Register with FEMA first (it gates other aid); watch for the D-SNAP window announcement"
"deadlines""FEMA registration: within 60 days of declaration. D-SNAP: ~7-day window when announced. DUA: 30 days from announcement"
"documents""ID (flexible post-disaster), address proof, insurance info"
"cross_eligibility""Insurance-first rule at FEMA; D-SNAP uses a different, simpler income test than regular CalFresh"
7 keys
"id""event:fleeing_domestic_violence"
"event""Fleeing domestic violence"
"triggers" 4 items
"B021"
"B033"
"B034"
"B042"
"first_action""Safety plan with a DV advocate FIRST; benefits second - advocate hotlines route everything"
"deadlines""CalWORKs good-cause and DV waivers must be requested - they are not automatic"
"documents""Whatever documents are safely accessible; programs accept alternative verification in DV cases"
"cross_eligibility""Address confidentiality (Safe at Home) protects the location across every case and school record"
7 keys
"id""event:utility_shutoff_notice"
"event""Utility shutoff notice"
"triggers" 3 items
"B043"
"B045"
"B067"
"first_action""Call the utility + LIHEAP agency the same day; Medical Baseline if any medical device"
"deadlines""CA rules bar shutoff for some categories and require notice periods; crisis LIHEAP decisions can be 48 hours (life-threatening)"
"documents""Shutoff notice, bill, income proof"
"cross_eligibility""A pending LIHEAP application can halt a shutoff - the application itself is the intervention"
7 keys
"id""event:benefits_denied_or_terminated_any_program"
"event""Benefits denied or terminated (any program)"
"triggers" 1 item
"B042"
"first_action""Read the NOA: reason, regulation, computation, appeal deadline - in that order"
"deadlines""Aid-pending-appeal windows are ~10 days (FOOD/MEDICAL/CASH) - the single most valuable deadline in this workbook"
"documents""The NOA itself, prior case documents, receipts"
"cross_eligibility""Procedural denials (missed interview, missing paper) are cured, not appealed; merits denials are appealed, not re-filed. Mixing these up wastes the window"
7 keys
"id""event:child_ages_out_family_status_shifts_18th_birthday_aging_out_of_child_only_rules"
"event""Child ages out / family status shifts (18th birthday, aging out of child-only rules)"
"triggers" 5 items
"B001"
"B011"
"B051"
"B055"
"B061"
"first_action""Re-screen the young adult as their own household where the rules allow"
"deadlines""FAFSA dependency is NOT the same as benefits household rules - different systems, different answers"
"documents""School enrollment proof (unlocks CalFresh student exemptions)"
"cross_eligibility""An 18-year-old can be in three different 'households' (tax, benefits, FAFSA) simultaneously with three different correct answers"
7 keys
"id""event:rural_home_repair_need"
"event""Rural home repair need"
"triggers"
"first_action""USDA Rural Development + WAP office"
"deadlines""Availability and income tests differ"
"documents"""
"cross_eligibility"""
7 keys
"id""event:tax_season_with_low_income"
"event""Tax season with low income"
"triggers"
"first_action""IRS VITA + FTB"
"deadlines""Do not confuse current tax-year and filing-year law"
"documents"""
"cross_eligibility"""
8 keys
"id""event:benefits_denied_terminated"
"event""Benefits denied/terminated"
"triggers"
"first_action""Issuing agency + legal aid"
"deadlines""Appeal deadlines and continuation-of-benefits vary"
"documents"""
"cross_eligibility"""
"alias_of""event:benefits_denied_or_terminated_any_program"
7 keys
"id""event:benefit_renewal_due"
"event""Benefit renewal due"
"triggers"
"first_action""Current program portal"
"deadlines""Never assume same renewal rule across programs"
"documents"""
"cross_eligibility"""
7 keys
"id""event:moving_across_counties_states"
"event""Moving across counties/states"
"triggers"
"first_action""Origin/destination agencies"
"deadlines""Interstate continuity is not automatic"
"documents"""
"cross_eligibility"""

The first article built on it

Related pages
References (2)
  1. Income limits — LSNC Guide to CalFresh Benefits“The CalFresh program has two income tests: gross and net monthly income limits.”
  2. CalFresh (California Department of Social Services) — CDSS“CalFresh is federally mandated and in California, is state-supervised and county-operated.”