Journey: SNAP approval + family consent grants the children Medicaid (Express Lane)

On this page

A family files SNAP for themselves and two young children. The caseworker records the family’s Express Lane Eligibility (ELE) consent and runs the determination — the SNAP approval, with consent on file, grants each eligible child a Medicaid-tier flag without a separate Medicaid determination. The ELE active for 2 children badge appears on the case identity hero, and the applicant can sign back in to see their approved SNAP home.

NOTE

Reproducibility tier: Fully manual. The applicant files the whole case live at /apply; the caseworker records consent + determines; the applicant signs back in to view the outcome. A complete side-by-side dual-persona walk.

IMPORTANT

This walkthrough is paired with the automated spec tests/e2e/specs/journey-snap-ele-grant.spec.ts, covering scenario xp.ele.partner-approval-grants-medicaid. The screenshots below are captured by that spec. See Verifying the journey to run it.

What this journey shows

  1. An applicant files a SNAP application for an adult plus two dependent children, both under the ELE child age gate (the apply wizard’s Express Lane opt-in is left un-ticked — the worker records the family’s consent instead).

  2. The caseworker records the family’s ELE consent through the case Action ▾ → Record ELE consent action, while the application is still pre-determination (the action is disabled once determined). Consent is now on file.

  3. The caseworker runs the SNAP determination. The zero-income family of three is approved; because consent is on file when the approval fires, the ELE grant subscriber grants (rather than defers) each eligible child — the ELE active for 2 children badge appears on the identity hero.

  4. The case Audit stream shows the partner approval → ELE grant chain, and the applicant signs back in to view their approved SNAP home + approval letter.

Personas & credentials

Persona Credentials / identity Role in the journey

Applicant

Files at the portal /apply flow; the Application ID (HH-…) + 12-digit passcode shown on submit are the /lookup sign-in.

Files the SNAP application for the family with two children; signs back in to view the outcome.

Caseworker

Worker portal, Keycloak login jane.caseworker / password (see UAT Facilitator Guide).

Records the family’s ELE consent, runs the determination, confirms the grant.

Bring-up & reset

cargo xtask dev start --profile full     # SNAP + applications + medicaid + notices + the applicant portal
cargo xtask seed --seed 42
# reset between runs: cargo xtask migrate rollback  (+ a fresh browser/incognito window)

See the Demo Runbook for full bring-up + reset detail.

Concrete precondition

The applicant files, at /apply:

  • Head of household: Ada Everline, DOB 1986-02-12, at a Georgia address, no income (the family has zero earned income — a determinate, approvable case).

  • Two children (both well under the ELE child age gate): Cora Everline, DOB 2015-05-09, and Milo Everline, DOB 2018-11-30 — relationship child.

  • Express Lane opt-in: left un-ticked on the income step — the caseworker records the family’s consent (the worker-attestation path).

The caseworker records nothing else — the two children under the age gate are what the ELE grant ruleset counts.

The walkthrough, step by step

# Screen Action Expected Screenshot

01

Applicant

At /apply: Begin → fill Ada’s details → add both children → Safety No → Income No one works right now, quick-check 0/0, migrant No, leave Express Lane un-ticked → Review → Submit.

The Application submitted screen shows a fresh Application ID (HH-…) + 12-digit passcode. Write them down.

Application submitted

02

Caseworker

Log in (jane.caseworker / password) → Case Search → open the filed SNAP case.

The household’s SNAP case opens as Submitted (pre-determination). No ELE badge yet.

Case opened

03

Caseworker

Open the top-bar Action ▾ dropdown → Record ELE consent.

Redirects back to the case; the family’s ELE consent is now on file (recorded while the application is still pre-determination).

ELE consent recorded

04

Caseworker

Open Action ▾Run Determination.

SNAP returns Approved; because consent is on file when the approval fires, the ELE grant fires with it.

Approved

05

Caseworker

Read the identity hero.

The ELE active for 2 children until … badge appears — the SNAP approval, with consent on file, granted Medicaid to both eligible children.

ELE badge

06

Caseworker

Open the Audit tab.

The event stream shows snap.application_approved followed by medicaid.ele.granted — the partner-approval → ELE-grant chain.

Audit chain

07

Applicant

Sign in at /lookup with the Application ID + passcode → view /home, then /letters.

Home shows the approved SNAP hero; Letters shows the approval Notice of Action.

Applicant home

Expected outcome / oracle

The ELE grant surfaces on the case identity hero after the consent-then-approval (O1), and the badge names exactly two children — the derived count the ele-grant-2026 ruleset computes from the household composition, never a hardcoded figure (O2). The audit chain proves snap.application_approvedmedicaid.ele.granted.

Honest scope

  • Consent must precede the determination here. The worker ELE-consent action is enabled only pre-determination (the endpoint 409s once determined), so the live worker walk records consent first; the approval then fires with consent on file and grants immediately. The harness deferred-drain variant (approval fires first, consent drains it later) needs the orchestrator /determine, which the worker portal does not use — both are the same policy outcome.

  • Worker attestation records the applicant as the consent actor (consent_source = worker_attestation, but consent_recorded_by is the submitter, ADR-019). The family-native path — the applicant ticking the Express Lane opt-in on the apply wizard’s income step (consent_source = applicant_portal) — is a real, separately-tested capability.

  • "Partner approval" is an internal SNAP approval, not an external partner agency (canopy-exchange is a stub). The grant is a Medicaid-tier flag; no separate Medicaid determination is run.

Verifying the journey

cargo xtask e2e --devstack-profile full -- \
  specs/journey-snap-ele-grant.spec.ts --project journey

The spec files the SNAP application through the real served portal wizard (two children, no ELE opt-in), records the family’s ELE consent through the worker Action ▾ → Record ELE consent action, runs the determination, and asserts the ELE grant surfaces naming exactly the two eligible children — capturing the step screenshots into test-results/e2e/walkthroughs/… for commit into docs/modules/ROOT/assets/images/walkthroughs/….

Edit this page · default