Journey: SNAP intake → determination → Notice of Action (within 30 days)

On this page

A side-by-side, two-persona journey: an applicant files a SNAP application through the real served applicant portal; a caseworker records the household’s wage, runs the determination, and a written Notice of Action (NOA) is generated; then the applicant signs back in and reads the approval. This is the file → determination → notice arc that 7 CFR 273.2(g)(1) bounds to 30 days — canopy determines synchronously, so the NOA appears within seconds, well inside the ceiling.

NOTE

Reproducibility tier: Fully manual. Both personas can be driven entirely by hand in the two portals — the applicant files in the real /apply wizard and the caseworker acts in the real worker portal — with no harness or given-library scaffolding. A live demo is exactly the click-path below.

IMPORTANT

This walkthrough is paired with the automated spec tests/e2e/specs/journey-snap-thirty-day-determination-noa.spec.ts, covering scenario snap.intake.thirty-day-determination-noa. 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 through the served portal /apply wizard; a reference number (HH-…) + 12-digit passcode are issued on submission.

  2. The filed application lands in the caseworker’s My queue as a Submitted SNAP case.

  3. The caseworker records the household’s wage (the portal captures income categories, never amounts), then runs the SNAP determination through the worker portal; the household is approved with a positive monthly benefit.

  4. A written Notice of Action (SNAP Eligibility Approval, form DHS-297-A) is generated and delivered — visible on the case Notices tab.

  5. The applicant signs back in at /lookup and reads the approval NOA on their Letters page.

Personas & credentials

Persona Credentials / identity Role in the journey

Applicant (Jordan Rivers)

Files at the portal /apply flow; a reference number (HH-…) + 12-digit passcode are shown on submission. Signs back in at /lookup with that HH-… + passcode (save them at submit — they are shown once).

Files the SNAP application; later views the approval + NOA.

Caseworker

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

Records the wage, runs the determination, confirms the NOA.

Bring-up & reset

cargo xtask dev start --profile full     # every service + the applicant portal
cargo xtask seed --seed 42               # deterministic fixtures
# reset between runs:
cargo xtask migrate rollback             # restore the golden snapshot (Postgres only)
# + open a fresh browser context / incognito window per run

The Demo Runbook owns the full bring-up + reset + credential detail; this journey files a brand-new applicant, so no pre-seeded cast member is required.

Concrete precondition

The journey depends on exactly these applicant inputs:

  • Household composition: head of household only — Jordan Rivers, DOB 1990-05-04, phone 404-555-0100, address 100 Demo St, Atlanta, GA 30303. No other members.

  • Income the caseworker records (the portal never captures the amount): wages, $900 / month, effective today, employer Peachtree Staffing.

  • No expenses and no additional address are recorded — this journey does not exercise the expense or address editors. (The portal drops the apply address at finalize; the approval here turns only on the recorded wage.)

The $900 wage is a construction input chosen to clear the SNAP gross-income test and yield a positive allotment in any jurisdiction fixture — never an asserted threshold.

The walkthrough, step by step

# Screen Action Expected Screenshot

01

Applicant

Open the portal /apply, click Begin application, and complete the wizard — About you (Jordan Rivers, DOB 1990-05-04, phone, address), Household (just me — no added people), Safety (standard protections), Income (no one works right now; quick-check income + assets 0; not a migrant worker) → ReviewSubmit application.

An Application submitted screen reveals a reference number (HH-…) and a 12-digit passcode. Save both — they are the applicant’s one-time /lookup login.

Credential reveal

02

Caseworker

Log into the worker portal (jane.caseworker / password). The freshly-filed case shows in My queue among recent submissions; if the queue (a top-10 worklist) is busy, find it by the applicant’s name in Case Search. Open it.

The household’s SNAP case detail opens as Submitted (an HH-… case number, applicant name), ready for the intake beats.

Case opened

03

Caseworker

Open the case → Income tab → + Add income for Jordan Rivers → record wages, $900 / month, effective today, employer Peachtree StaffingSave.

The wage appears on the Income tab (the portal filed no amount; the worker supplies it — the intake data-collection beat).

Income recorded

04

Caseworker

Open the case → Action ▾Run Determination.

The SNAP determination returns Approved with a positive monthly benefit; a banner reads "Determination recomputed. A Notice of Action (NOA) will appear in the Notices tab within a few seconds."

Approved determination

05

Caseworker

Open the Notices tab.

A notice_of_action entry — SNAP Eligibility Approval, form DHS-297-A, delivery Sent, with a downloadable PDF — generated the same day (well within the 30-day ceiling). One NOA is issued per determination run.

Notice of Action

06

Applicant

Sign back in at the portal /lookup with the HH-… reference + passcode from step 01 → land on /home.

The home greeting renders (Hi, Jordan.); the case shows as approved.

Applicant home

07

Applicant

Open Letters → open the most recent letter.

The approval Notice of Action appears as the applicant’s letter — the worker’s NOA reflected across to the applicant portal.

Approval letter

Expected outcome / oracle

The relational oracle (no literal policy dollar or threshold is asserted): a portal-filed SNAP application reaches an Approved determination with a positive monthly allotment (benefit > 0); a Notice of Action row appears on the case Notices tab (the case started with zero notices); and that NOA reflects across to the applicant’s Letters page when they sign back in. The recorded $900 wage is a construction input, not an oracle.

Honest scope

The scenario’s "interview / provides verification / worker completes data collection" beats are review steps a caseworker performs on a case the applicant already populated. If the portal-filed application carries an open verification, Run Determination is blocked until the worker accepts the supporting document (Verifications / Documents tab) — resolve it first, then continue at step 04. The automated oracle asserts the file → determine → NOA spine; interview conduct and document adjudication beyond that resolution are not modelled.

Verifying the journey

cargo xtask e2e --devstack-profile full -- \
  specs/journey-snap-thirty-day-determination-noa.spec.ts --project journey

The spec files the SNAP application through the real served portal /apply wizard on an unauthenticated applicant context, drives the worker steps above through the portal BFF (records the wage, runs the determination), asserts the approved determination with a positive allotment and the delivered NOA, has the applicant sign back in to read the letter, and captures the step screenshots into test-results/e2e/walkthroughs/… for commit into docs/modules/ROOT/assets/images/walkthroughs/….

Edit this page · default