ORCA is a methodology for organizing and presenting data models in a way that's intuitive for designers.
This reference documents the Safety Net API data model—the standardized fields, types, and relationships
used across benefit program applications. Use this reference to understand what data exists, how it's
structured, and what values are valid for each field.
American Indian or Alaska Native tribal information for this person. [Nested]
consentToShareInformation
Yes/No
Consent to share information with partner agencies.
System
Field
Type
Req
Notes
id
ID
Unique identifier for the person. When creating an application, clients may
provide a temporary ID for linking related records (e.g., linking an absent
parent to a child). The server replaces client-provided IDs with server-generated
UUIDs upon submission.
createdAt read-only
Date & Time
Timestamp when the person record was created.
updatedAt read-only
Date & Time
Timestamp when the person record was last updated.
These fields are managed by the system and cannot be modified:
id - ID
status - Dropdown
isExpedited - boolean,null
submittedAt - Date & Time
withdrawnAt - Date & Time
closedAt - Date & Time
createdAt - Date & Time
updatedAt - Date & Time
Fields
Field
Type
Req
Notes
programs
Multi-select
Options: snap, medicaid, tanf
channel
Dropdown
Options: online, in person, phone, mail
status read-only
Dropdown
✓
Options: draft, submitted, under review, withdrawn, closed
isExpedited read-only
boolean,null
Whether the application qualifies for expedited processing (e.g., SNAP 7-day track). Set during caseworker expedited screening after submission. Null until screening is complete.
submittedAt read-only
Date & Time
When the application was formally submitted. Null until submitted.
withdrawnAt read-only
Date & Time
When the application was withdrawn. Null unless withdrawn.
These fields are managed by the system and cannot be modified:
id - ID
Fields
Field
Type
Req
Notes
personId
ID
✓
Foreign key reference to the person who has this income.
employerId
ID
Optional foreign key reference to the employer, third-party or self related to this income.
type
Dropdown
✓
Options: employed, self employed, unearned
unearnedType
Dropdown
Options: unemployment, kinship payment, veterans programs, adoption and refugee services, ssi or ssdi, private disability, workers compensation, disability from veterans programs, legal form or settlement, scholarship, educational grant, work study, spousal support, child support, retirement or pension plan, investment interest and dividends, social security retirement, renting home, renting room, renting equipment, gambling lottery or other winnings, donations or gifts, income from loan or mortgage, payment for participating in research, other money not reported
incomeBasis
Dropdown
Options: net, gross
amount
Number
✓
The amount of income this item represents.
frequency
Dropdown
✓
Options: hourly, daily, weekly, every 2 weeks, twice a month, monthly, yearly
reportedOn
Date
✓
The date the income was reported on.
source
Dropdown
✓
Options: client, authorized assister, county worker
startDate
Date
✓
When did the applicant first receive this income?
endDate
Date
Does applicant expect this income to end soon or has it already ended?
isVerified
Yes/No
Whether the income has been verified.
verifiedDate
Date
The date the income was verified.
verifiedBy
ID
The county worker who verified the income.
verificationSourceIds
List of ID
Array of verification sources related to this income.
A single program eligibility decision for one household member. One Decision is created per member per applied program at submission. Decisions are resolved automatically (via electronic checks and rules engine) or manually by a caseworker.
Fields
Field
Type
Req
Notes
determinationId
ID
✓
The determination this decision belongs to.
applicationId
ID
The application this decision belongs to.
memberId
ID
✓
The household member this decision covers.
program
Dropdown
✓
Options: snap, medicaid, chip, tanf, ccdf
status
Dropdown
✓
Options: pending, approved, denied, ineligible
path
Dropdown
Options: auto, manual
decidedAt
Date & Time
When the decision reached a terminal state.
denialReasonCode
Text
Machine-readable reason code when status is denied or ineligible.
The eligibility determination record for an application. One Determination is created per application at submission. Its status reflects the overall progress of evaluating all household members across all applied programs.
Fields
Field
Type
Req
Notes
applicationId
ID
✓
The application this determination belongs to.
status
Dropdown
✓
Options: pending, in progress, completed, withdrawn
expeditedFlagged
Yes/No
✓
Whether the application was flagged for expedited SNAP processing (7 CFR § 273.2(i)). Set at submission based on the rules engine expedited screening call.
A workflow task representing a unit of work in a safety net benefits program.
Fields
Field
Type
Req
Notes
name
Text
✓
Human-readable label for the task.
description
Text
Detailed information about the task.
status
Text
✓
Current lifecycle state. Valid values are injected at resolve time from workflow-state-machine.yaml.
taskType
Text
The type of work this task represents (e.g., application_review, interview, document_review). Used by state machine guards to enable type-specific lifecycle branches and by routing rules for type-aware assignment. Open string — states extend via overlay without schema changes.
subjectType
Dropdown
Options: application, case, document, appointment
subjectId
ID
Reference to the entity this task is associated with. The target entity type is determined by subjectType. Resolution is conditional on subjectType — consumers must resolve by type; no automatic expansion is performed.
programType
Dropdown
Options: snap, medicaid, chip, tanf, ccdf
isExpedited
Yes/No
Whether this task requires expedited processing. SNAP-specific concept tied to the 7-day regulatory deadline. Candidate for removal once context enrichment (#203) provides a generic alternative.
queueId
ID
Reference to the Queue this task is routed to.
priority
Dropdown
Options: expedited, high, normal, low
startedAt
Date & Time
When work began (status transitioned to in_progress).
completedAt
Date & Time
When work finished.
escalatedAt
Date & Time
When the task was escalated.
cancelledAt
Date & Time
When the task was cancelled.
blockedAt
Date & Time
When the task entered a waiting state (awaiting_client or awaiting_verification).
assignedToId
ID
Reference to the User assigned to this task.
outcome
Text
Completion outcome recorded when the task was completed (e.g., approved, denied).
completionNotes
Text
Optional notes recorded when the task was completed.
Engine-managed SLA tracking entries. Populated on create and updated on every transition. Read-only — use slaInfo on TaskCreate to specify which SLA types to track.
[Nested]
A configured external data source available in this deployment. Entries
are defined in `data-exchange-config.yaml` at deployment time — not
created via API. The blueprint defines entries for known federal services;
states overlay to add endpoint configuration and any state-specific services.
Fields
Field
Type
Req
Notes
name
Text
✓
Human-readable name (e.g., "SSA Composite via FDSH").
A single external service call from submission through resolution.
Governs the call lifecycle and serves as the correlation handle adapters
use when calling back with a result.
Fields
Field
Type
Req
Notes
serviceId
ID
✓
ID of the ExternalService catalog entry being called.
ID of the resource that triggered the call (e.g., an ApplicationMember ID). Combined with `serviceId`, forms the idempotency key.
requestingResourceType
Text
Resource type of the requesting resource, copied from the ExternalService catalog entry at submission time. Together with `requestingResourceId`, tells adapters where to fetch sensitive input fields.
callMode
Dropdown
✓
Options: async, sync
status
Dropdown
✓
Options: pending, completed, failed, timed out
data
→ Data
Optional per-call non-PII context (e.g., which FDSH sub-components to request). Polymorphic on `serviceType`. [Nested]
metadata
→ Metadata
Namespace-keyed metadata attached by calling domains for context passthrough. Keys are domain names; values are arbitrary objects. [Nested]
List of household members with their relationship to the head of household. [Nested]
System
Field
Type
Req
Notes
id read-only
ID
✓
Unique identifier for the household.
createdAt read-only
Date & Time
✓
Timestamp when the household record was created.
updatedAt read-only
Date & Time
✓
Timestamp when the household record was last updated.
ApplicationClosedEvent
Payload for application.closed — signals intake is complete.
Fields
Field
Type
Req
Notes
closedAt
Date & Time
✓
When the intake phase closed.
ApplicationCreatedEvent
Snapshot of the newly created application resource.
Fields
Field
Type
Req
Notes
programs
Multi-select
Options: snap, medicaid, tanf
channel
Dropdown
Options: online, in person, phone, mail
status read-only
Dropdown
✓
Options: draft, submitted, under review, withdrawn, closed
isExpedited read-only
boolean,null
Whether the application qualifies for expedited processing (e.g., SNAP 7-day track). Set during caseworker expedited screening after submission. Null until screening is complete.
submittedAt read-only
Date & Time
When the application was formally submitted. Null until submitted.
withdrawnAt read-only
Date & Time
When the application was withdrawn. Null unless withdrawn.
closedAt read-only
Date & Time
When the intake phase closed. Null until closed.
System
Field
Type
Req
Notes
id read-only
ID
✓
Unique identifier for the application.
createdAt read-only
Date & Time
✓
When the application record was created.
updatedAt read-only
Date & Time
✓
When the application record was last modified.
ApplicationDecisionCompletedEvent
Payload for eligibility.application.decision_completed.
Fields
Field
Type
Req
Notes
applicationId
ID
✓
determinationId
ID
✓
decisionId
ID
✓
memberId
ID
✓
The household member this decision covers.
program
Dropdown
✓
Options: snap, medicaid, chip, tanf, ccdf
status
Dropdown
✓
Options: pending, approved, denied, ineligible
path
Dropdown
Options: auto, manual
ApplicationDeletedEvent
Payload for application.deleted — auto-emitted when an application record is permanently removed.
System
Field
Type
Req
Notes
id
ID
✓
Identifier of the deleted application.
ApplicationDeterminationCompletedEvent
Payload for eligibility.application.determination_completed.
Fields
Field
Type
Req
Notes
applicationId
ID
✓
determinationId
ID
✓
ApplicationExpeditedEvent
Payload for eligibility.application.expedited.
Fields
Field
Type
Req
Notes
applicationId
ID
✓
determinationId
ID
✓
ApplicationMemberProgramDetermination
A single program eligibility determination result for a household member.
Immigration document details. Required when citizenshipStatus is not citizen and the member is applying for Medicaid. [Nested]
ApplicationOpenedEvent
Payload for application.opened — signals caseworker has begun active review.
Fields
Field
Type
Req
Notes
openedAt
Date & Time
✓
When the application moved to under_review.
programs
Multi-select
✓
Options: snap, medicaid, tanf
ApplicationReviewCompletedEvent
Payload for application.review_completed — signals data collection is complete; triggers eligibility determination.
Fields
Field
Type
Req
Notes
reviewCompletedAt
Date & Time
✓
When the caseworker signaled review was complete.
ApplicationSubmittedEvent
Payload for application.submitted — starts the regulatory clock; triggers program-type-aware routing (see Decision 15).
Fields
Field
Type
Req
Notes
submittedAt
Date & Time
✓
When the application was formally submitted.
programs
Multi-select
✓
Options: snap, medicaid, tanf
channel
Dropdown
Options: online, in person, phone, mail
ApplicationUpdatedEvent
Payload for application.updated — auto-emitted on PATCH; contains only the fields that changed.
ApplicationWithdrawnEvent
Payload for application.withdrawn — triggers open task cancellation and withdrawal notice.
Fields
Field
Type
Req
Notes
withdrawnAt
Date & Time
✓
When the application was withdrawn.
reason
Text
Why the application was withdrawn.
ApplicationWritable
Client-writable fields for an application.
Fields
Field
Type
Req
Notes
programs
Multi-select
Options: snap, medicaid, tanf
channel
Dropdown
Options: online, in person, phone, mail
AppointmentStatus
Current status of the appointment.
CallCompletedEvent
Payload for the data_exchange.call.completed event. Carries the full
result from the external service. The `result` field is polymorphic
on `serviceType`. Calling domains subscribe to this event and use
`metadata.{domain}` fields to route the result to the correct record.
How the decision was reached. `auto` — resolved by the rules engine without caseworker intervention (e.g., Medicaid ex parte). `manual` — resolved by a caseworker after review.
DecisionStatus
Outcome status of a single program eligibility decision. `pending` — not yet evaluated, or deferred to caseworker review by the rules engine. `approved` — member meets program requirements. `denied` — member does not meet requirements based on provided information. `ineligible` — member cannot qualify for this program (e.g., citizenship bar, age limit).
DemographicInfo
Demographic information for a person.
Fields
Field
Type
Req
Notes
sex
Dropdown
Options: male, female, unknown
maritalStatus
Dropdown
Options: single, married, divorced, separated, widowed, civil union, domestic partnership
isHispanicOrLatino
Yes/No
Whether the person identifies as Hispanic or Latino.
race
Multi-select
Options: american indian alaskan native, asian, black african american, native hawaiian pacific islander, white
DeterminationStatus
Lifecycle status of the determination. `pending` — created at submission, awaiting processing. `in_progress` — at least one Decision has been resolved. `completed` — all Decisions have reached a terminal state. `withdrawn` — the application was withdrawn before determination completed.
DocumentCreatedEvent
Payload for document_management.document.created — emitted when a document and its first version are created atomically.
Fields
Field
Type
Req
Notes
documentId
ID
✓
documentTypeId
ID
✓
title
Text
✓
latestVersionId
ID
✓
metadata
→ Metadata
✓
Echoed verbatim from Document.metadata so consumers can correlate without additional lookups. [Nested]
DocumentLifecycleState
Where the document is in its records management lifecycle.
DocumentLink
Associates a document with a program record (application, case, etc.) for cross-program reuse and retention tracking.
Fields
Field
Type
Req
Notes
documentId
ID
✓
subjectType
Dropdown
✓
Options: application, case
subjectId
ID
✓
ID of the linked record.
linkedBy
Text
✓
Identity of who created the link. Required for HIPAA chain-of-custody (45 CFR § 164.312).
closedAt
Date & Time
Set when the subject closes. Used as the retention trigger timestamp for case_closure and application_denial retention types.
System
Field
Type
Req
Notes
id
ID
✓
createdAt
Date & Time
✓
DocumentType
Defines the category and retention rules for a class of documents. Baseline types are seeded from document-management-config.yaml.
Fields
Field
Type
Req
Notes
name
Text
✓
retentionYears
Number
✓
How many years documents of this type must be retained after the retention trigger fires.
retentionTrigger
Dropdown
✓
Options: case closure, application denial, document date, submission date
source read-only
Dropdown
✓
Options: system, user
System
Field
Type
Req
Notes
id
ID
✓
createdAt
Date & Time
✓
updatedAt
Date & Time
✓
DocumentVersion
An immutable record of a specific file upload. Each upload creates a new version; prior versions are preserved.
Fields
Field
Type
Req
Notes
documentId
ID
✓
Links to the parent Document.
versionNumber
Number
✓
Sequential version number. 1 for the first version.
fileName
Text
✓
Original filename as uploaded.
mimeType
Text
✓
MIME type of the uploaded file.
sizeBytes
Number
✓
File size in bytes.
contentHash
Text
✓
SHA-256 hash of the file bytes. Stored for duplicate detection; baseline enforces nothing.
uploadedById
Text
✓
Identity of the uploader. Required for HIPAA chain-of-custody (45 CFR § 164.312).
System
Field
Type
Req
Notes
id
ID
✓
createdAt
Date & Time
✓
Authoritative upload timestamp.
DocumentVersionUploadedEvent
Payload for document_management.document_version.uploaded — emitted when a subsequent version is uploaded.
Fields
Field
Type
Req
Notes
documentId
ID
✓
documentVersionId
ID
✓
versionNumber
Number
✓
metadata
→ Metadata
✓
Echoed verbatim from Document.metadata. [Nested]
DomainEvent
A CloudEvents 1.0 envelope.
Fields
Field
Type
Req
Notes
specversion
Dropdown
✓
Options: 1.0
type
Text
✓
Fully qualified CloudEvents event type following the convention `org.codeforamerica.safety-net-blueprint.{domain}.{entity}.{verb}`.
source
Text
✓
Domain base path that produced the event (e.g., `/intake`, `/workflow`).
subject
ID
✓
Entity ID the event pertains to.
time
Date & Time
✓
When the event occurred.
datacontenttype
Dropdown
✓
Options: application/json
traceparent
string,null
W3C Trace Context header (optional). Propagated from the triggering request or event. The trace ID component is stable across the full causal chain.
data
→ Data
✓
Event payload. Schema is defined per event type in each domain's x-events section. [Nested]
System
Field
Type
Req
Notes
id
ID
✓
Unique event identifier.
EducationInfo
Education and enrollment information.
Fields
Field
Type
Req
Notes
lastGradeCompleted
Text
Last grade level completed.
isCurrentlyEnrolled
Yes/No
Whether this person is currently enrolled in school.
schoolName
Text
Name of the school or educational institution (if currently enrolled).
startDate
Date
Date enrollment started (if currently enrolled).
isFullTimeStudent
Yes/No
Whether the person is a full-time student (if currently enrolled).
expectedGraduationDate
Date
Expected graduation date (if currently enrolled).
ElectronicCheckResult
The outcome of a single data exchange service call. Shared between the CallCompletedEvent payload and the eligibility adapter input schema so both consumers reference the same field names and result values. The serviceResult field carries the service-specific raw payload — its shape is polymorphic on serviceType.
Health coverage enrollment check result. Used to detect existing
coverage that may affect Medicaid eligibility. Source and interface
vary by state.
ExpeditedScreeningRequest
Request payload for expedited SNAP screening. Evaluates household-level financial criteria only (7 CFR § 273.2(i)) — combined income, assets, and shelter costs. States needing member-level data for their rules engine can extend this via overlay.
Fields
Field
Type
Req
Notes
metadata
→ Metadata
Opaque correlation context set by the blueprint. Echo back unchanged in the response. The adapter must not inspect or modify this field.
[Nested]
Household-level data used in SNAP expedited screening criteria. [Nested]
ExpeditedScreeningResponse
Response from expedited SNAP screening.
Fields
Field
Type
Req
Notes
metadata
→ Metadata
✓
Echoed back unchanged from the request. The blueprint uses this to map the response to its internal records without exposing resource identities to the adapter.
[Nested]
expedited
Yes/No
✓
Whether the application qualifies for expedited SNAP processing.
ExternalServiceCallStatus
Lifecycle state of an external service call.
FdshFtiResult
IRS Federal Tax Information result via FDSH. Used for income verification
via tax records. See CMS FDSH FTI spec.
FdshMedicareResult
Medicare enrollment status result via FDSH. Used for Medicaid
third-party liability checks. See CMS FDSH Medicare spec.
FdshSsaResult
SSA Composite query result via FDSH. Covers SSA verification of
citizenship/identity and income (Title II/XVI). See CMS FDSH SSA Hub spec.
FdshVciResult
Veteran status and coverage result via FDSH VCI. Used for third-party
coverage discovery. See CMS FDSH VCI spec.
FdshVlpResult
USCIS Verification of Lawful Presence result via FDSH. Used for
immigration status verification. See CMS FDSH VLP spec.
FrontendAuthContext
Authorization context for frontend applications. Extends BackendAuthContext
with UI permissions and user preferences.
Used in enriched JWTs for frontends (via BFF/gateway) or returned by
GET /users/me. States can customize this independently from BackendAuthContext.
Computed UI permissions and display data for frontend feature toggling.
Backend computes these from role and permissions to provide
a UI-friendly interface for showing/hiding features.
Structure is flexible - states define their own fields via overlays.
Example fields: name, availableModules, canApproveApplications, etc.
[Nested]
preferences
→ Preferences
User preferences for the application.
Structure is flexible - states define their own fields via overlays.
Example fields: timezone, dateFormat, itemsPerPage, language, theme, etc.
[Nested]
HouseholdDeterminationRequest
Final determination request for per-household programs (snap). Extends PerHouseholdProgramRequest with the verification summary for the household.
Fields
Field
Type
Req
Notes
metadata
→ Metadata
Opaque correlation context set by the blueprint. Echo back unchanged in the response. The adapter must not inspect or modify this field.
[Nested]
Sponsor information for this non-citizen. [Nested]
IncarcerationCheckResult
Incarceration status check result. Used to detect active incarceration
that disqualifies applicants from certain programs. Source and interface
vary by state.
IndividualDeterminationRequest
Final determination request for per-applicant programs (medicaid, chip, tanf, ccdf). Extends PerMemberProgramRequest with the verification summary for this applicant.
Fields
Field
Type
Req
Notes
metadata
→ Metadata
Opaque correlation context set by the blueprint. Echo back unchanged in the response. The adapter must not inspect or modify this field.
[Nested]
Status of verification obligations relevant to this applicant and program.
Interview
Fields
Field
Type
Req
Notes
waiverGranted
boolean,null
Whether the interview requirement has been waived for this applicant.
waiverReason
Text
Reason the interview was waived. Required when waiverGranted is true.
completedAt
Date & Time
When the caseworker attested the interview obligation was satisfied. Null until completed.
applicationId read-only
ID
✓
appointments read-only
List of ID
✓
Appointment IDs from the scheduling domain accumulated for this interview obligation. Populated by the rules engine when scheduling.appointment.scheduled fires.
System
Field
Type
Req
Notes
id read-only
ID
✓
createdAt read-only
Date & Time
✓
updatedAt read-only
Date & Time
✓
InterviewWritable
Caseworker-writable fields for an interview obligation record.
Fields
Field
Type
Req
Notes
waiverGranted
boolean,null
Whether the interview requirement has been waived for this applicant.
waiverReason
Text
Reason the interview was waived. Required when waiverGranted is true.
completedAt
Date & Time
When the caseworker attested the interview obligation was satisfied. Null until completed.
IrsIevsResult
IRS Income and Eligibility Verification System result. Covers unearned
income data via the IEVS interface.
Job
Basic employment record (employer and dates only).
Request payload for Medicaid ex parte evaluation of one applicant. Extends PerMemberProgramRequest with the electronic check results needed to determine Medicaid eligibility without applicant-provided documentation.
Fields
Field
Type
Req
Notes
metadata
→ Metadata
Opaque correlation context set by the blueprint. Echo back unchanged in the response. The adapter must not inspect or modify this field.
[Nested]
Results from FDSH FTI, FDSH Medicare/VCI, and other Medicaid data exchange calls for this applicant.
[Nested]
MemberContext
A household member with their demographic data and associated income, expenses, and assets. Used as the evaluation payload passed to the adapter for each member.
Fields
Field
Type
Req
Notes
dateOfBirth
Date
✓
Member's date of birth. Used in age-based program eligibility criteria.
relationshipToHead
Dropdown
Options: head of household, spouse, partner, child, parent, sibling, grandparent, grandchild, other relative, non relative
citizenshipStatus
Dropdown
Options: us citizen, us national, non citizen
immigrationStatus
Dropdown
Options: qualified alien, lawful permanent resident, refugee, asylee, cuban haitian entrant, amerasian, victim of trafficking, parolee, undocumented, not applicable
isDisabled
Yes/No
Whether the member has a disability. Affects SNAP deductions for medical expenses (7 CFR § 273.9(d)(3)) and may affect Medicaid eligibility pathways.
Thresholds and goals from the metric definition. [Nested]
computedAt read-only
Date & Time
✓
Timestamp when the value was computed.
System
Field
Type
Req
Notes
id read-only
Text
✓
Unique metric identifier, from the domain's *-metrics.yaml.
MetricTarget
A threshold or goal for the metric.
Fields
Field
Type
Req
Notes
stat
Text
Statistic type (e.g., p50, ratio, trend).
operator
Dropdown
Options: <, <=, >, >=, ==
amount
Number
Machine-readable threshold value.
unit
Dropdown
Options: hours, minutes, days, percent, count
label
Text
Human-readable target label (e.g., "4h", "10%").
direction
Dropdown
Options: up, down
MilitaryInfo
Military and veteran status information.
Fields
Field
Type
Req
Notes
isMilitaryServiceMember
Yes/No
Whether this person is a military service member.
veteranStatus
Yes/No
Indicates whether the person has served in the armed forces.
PerHouseholdProgramRequest
Base request for per-household program evaluations (snap). One call per household per program. Extends AdapterRequest with the program being evaluated, all members in the household benefit unit, and household-level data. The returned ProgramDecision represents the household unit as a whole.
Fields
Field
Type
Req
Notes
metadata
→ Metadata
Opaque correlation context set by the blueprint. Echo back unchanged in the response. The adapter must not inspect or modify this field.
[Nested]
Household-level data used in benefit calculation. [Nested]
PerMemberProgramRequest
Base request for per-applicant program evaluations (medicaid, chip, tanf, ccdf). One call per applicant per program. Extends AdapterRequest with the program being evaluated and the applicant's context.
Fields
Field
Type
Req
Notes
metadata
→ Metadata
Opaque correlation context set by the blueprint. Echo back unchanged in the response. The adapter must not inspect or modify this field.
[Nested]
Eligibility decision for one program, returned by the adapter. Used as the response for both per-applicant and per-household evaluations — for household programs the decision represents the household unit as a whole. Extends AdapterResponse so the blueprint's metadata is echoed back for correlation.
Fields
Field
Type
Req
Notes
metadata
→ Metadata
✓
Echoed back unchanged from the request. The blueprint uses this to map the response to its internal records without exposing resource identities to the adapter.
[Nested]
program
Dropdown
✓
Options: snap, medicaid, chip, tanf, ccdf
status
Dropdown
✓
Options: pending, approved, denied, ineligible
path
Dropdown
Options: auto, manual
denialReasonCode
Text
Machine-readable reason code when status is denied or ineligible.
RetentionTrigger
The event that starts the retention clock for this document type.
RoleType
Authorization roles that determine base permissions and data scoping.
- applicant: Self-service access to own applications (scoped by personId)
- case_worker: Process applications for assigned county
- supervisor: Oversee case workers, approve determinations (may span counties)
- county_admin: Administer county staff and configuration
- state_admin: Statewide oversight and administration (all counties)
- partner_readonly: External partner with limited read access
SaveResult
USCIS SAVE (Systematic Alien Verification for Entitlements) result.
Used for immigration status verification outside of FDSH VLP. See
USCIS SAVE technical documentation.
SearchFacet
A result count for a single resource type, enabling UI to show type-based filtering.
A single search result with a uniform shape regardless of the underlying
resource type. Attributes provide typed key-value pairs for consistent
client rendering.
Typed key-value pairs describing the result (e.g., status, date of birth, case number). [Nested]
System
Field
Type
Req
Notes
id
ID
✓
Unique identifier of the matched resource.
createdAt
Date & Time
✓
When the matched resource was created.
updatedAt
Date & Time
✓
When the matched resource was last updated.
SearchResultAttribute
A typed key-value pair for rendering search result details.
Fields
Field
Type
Req
Notes
field
Text
✓
Machine-readable field key (e.g., "dob", "status", "caseNumber").
label
Text
Human-readable display label (e.g., "Date of Birth", "Status", "Case Number").
value
Text
✓
Display value, pre-formatted as a string regardless of type.
type
Dropdown
✓
Options: string, date, currency
SearchResultType
The type of resource matched by the search.
ServiceType
The specific federal service interface being called. Each type has a distinct adapter interface, input schema, and result schema.
FDSH services are prefixed fdsh_ — they route through the CMS Federal Data Services Hub. IEVS sources are separate systems with distinct interfaces. See the Data Exchange architecture doc for the full reference.
Basic identity and contact information for a person. [Nested]
totalPeopleInHousehold
Number
Total number of people in the sponsor's household.
SsaIevsResult
SSA Income and Eligibility Verification System result. Covers SSA
benefit and wage data via the IEVS interface (distinct from FDSH SSA).
SwicaResult
State Wage Information Collection Agency result. Returns state wage
records for income verification. Interface varies by state.
TaskApprovedEvent
Fields
Field
Type
Req
Notes
outcome
Text
✓
The outcome recorded at approval.
TaskAssignedEvent
Fields
Field
Type
Req
Notes
assignedToId
ID
Caseworker the task was assigned to, if any.
queueId
ID
Queue the task was assigned to, if any.
TaskAwaitingClientEvent
TaskAwaitingVerificationEvent
TaskCancelledEvent
Fields
Field
Type
Req
Notes
reason
Text
✓
Why the task was cancelled.
TaskClaimedEvent
Fields
Field
Type
Req
Notes
assignedToId
ID
✓
ID of the caseworker who claimed the task.
TaskCompletedEvent
Fields
Field
Type
Req
Notes
outcome
Text
✓
The outcome recorded at completion.
TaskCreatedEvent
A workflow task representing a unit of work in a safety net benefits program.
Fields
Field
Type
Req
Notes
name
Text
✓
Human-readable label for the task.
description
Text
Detailed information about the task.
status
Text
✓
Current lifecycle state. Valid values are injected at resolve time from workflow-state-machine.yaml.
taskType
Text
The type of work this task represents (e.g., application_review, interview, document_review). Used by state machine guards to enable type-specific lifecycle branches and by routing rules for type-aware assignment. Open string — states extend via overlay without schema changes.
subjectType
Dropdown
Options: application, case, document, appointment
subjectId
ID
Reference to the entity this task is associated with. The target entity type is determined by subjectType. Resolution is conditional on subjectType — consumers must resolve by type; no automatic expansion is performed.
programType
Dropdown
Options: snap, medicaid, chip, tanf, ccdf
isExpedited
Yes/No
Whether this task requires expedited processing. SNAP-specific concept tied to the 7-day regulatory deadline. Candidate for removal once context enrichment (#203) provides a generic alternative.
queueId
ID
Reference to the Queue this task is routed to.
priority
Dropdown
Options: expedited, high, normal, low
startedAt
Date & Time
When work began (status transitioned to in_progress).
completedAt
Date & Time
When work finished.
escalatedAt
Date & Time
When the task was escalated.
cancelledAt
Date & Time
When the task was cancelled.
blockedAt
Date & Time
When the task entered a waiting state (awaiting_client or awaiting_verification).
assignedToId
ID
Reference to the User assigned to this task.
outcome
Text
Completion outcome recorded when the task was completed (e.g., approved, denied).
completionNotes
Text
Optional notes recorded when the task was completed.
Engine-managed SLA tracking entries. Populated on create and updated on every transition. Read-only — use slaInfo on TaskCreate to specify which SLA types to track.
[Nested]
System
Field
Type
Req
Notes
id read-only
ID
✓
Unique identifier for the task.
createdAt read-only
Date & Time
✓
Timestamp when the task was created.
updatedAt read-only
Date & Time
✓
Timestamp when the task was last updated.
TaskDeEscalatedEvent
TaskDeletedEvent
Payload for a CRUD-emitted deleted event. Carries no data — the entity
no longer exists and consumers should treat the subject ID as permanently
removed.
TaskEscalatedEvent
Fields
Field
Type
Req
Notes
reason
Text
✓
Why the task was escalated.
TaskPriorityChangedEvent
Fields
Field
Type
Req
Notes
priority
Text
✓
The new priority value.
reason
Text
Why the priority was changed.
TaskReleasedEvent
Fields
Field
Type
Req
Notes
reason
Text
✓
Why the task was released.
TaskReopenedEvent
Fields
Field
Type
Req
Notes
reason
Text
✓
Why the task was reopened.
TaskResumedEvent
TaskReturnedToWorkerEvent
Fields
Field
Type
Req
Notes
reason
Text
✓
Why the task was returned for revision.
TaskSlaBreachedEvent
Fields
Field
Type
Req
Notes
reason
Dropdown
✓
Options: sla deadline exceeded
TaskSubmittedForReviewEvent
TaskSystemResumedEvent
Fields
Field
Type
Req
Notes
source
Text
✓
System that triggered the automated resumption.
result
Text
✓
Result of the verification or external check.
TaskUpdatedEvent
Payload for a CRUD-emitted updated event. Contains a field-level diff
recording which fields changed and their before/after values.
Emitted automatically by the mock server on every PATCH request.
Consumers can react to specific field mutations without fetching the
full resource.
List of fields that changed, with before and after values. [Nested]
TaskWritable
Client-writable task fields. Base schema for TaskCreate and TaskUpdate.
Fields
Field
Type
Req
Notes
name
Text
Human-readable label for the task.
description
Text
Detailed information about the task.
status
Text
Current lifecycle state. Valid values are injected at resolve time from workflow-state-machine.yaml.
taskType
Text
The type of work this task represents (e.g., application_review, interview, document_review). Used by state machine guards to enable type-specific lifecycle branches and by routing rules for type-aware assignment. Open string — states extend via overlay without schema changes.
subjectType
Dropdown
Options: application, case, document, appointment
subjectId
ID
Reference to the entity this task is associated with. The target entity type is determined by subjectType. Resolution is conditional on subjectType — consumers must resolve by type; no automatic expansion is performed.
programType
Dropdown
Options: snap, medicaid, chip, tanf, ccdf
isExpedited
Yes/No
Whether this task requires expedited processing. SNAP-specific concept tied to the 7-day regulatory deadline. Candidate for removal once context enrichment (#203) provides a generic alternative.
queueId
ID
Reference to the Queue this task is routed to.
priority
Dropdown
Options: expedited, high, normal, low
startedAt
Date & Time
When work began (status transitioned to in_progress).
completedAt
Date & Time
When work finished.
escalatedAt
Date & Time
When the task was escalated.
cancelledAt
Date & Time
When the task was cancelled.
blockedAt
Date & Time
When the task entered a waiting state (awaiting_client or awaiting_verification).
assignedToId
ID
Reference to the User assigned to this task.
outcome
Text
Completion outcome recorded when the task was completed (e.g., approved, denied).
completionNotes
Text
Optional notes recorded when the task was completed.
TokenClaims
Minimal authorization context for backend API authorization. Stored in the
User Service and embedded in JWT tokens during login. Domain APIs read these
claims for authorization decisions without runtime calls to the User Service.
For frontend tokens that include UI permissions and preferences, see
FrontendAuthContext in user.yaml.
American Indian or Alaska Native tribal membership information.
Fields
Field
Type
Req
Notes
tribeName
Text
tribeState
Text
hasReceivedServiceFromIndianHealthService
Yes/No
isEligibleForIndianHealthService
Yes/No
UibResult
Unemployment Insurance Benefit result. Returns current UI benefit
amounts for income verification. Interface varies by state.
UiPermissions
Computed UI permissions and display data for frontend feature toggling.
Backend computes these from role and permissions to provide
a UI-friendly interface for showing/hiding features.
Structure is flexible - states define their own fields via overlays.
Example fields: name, availableModules, canApproveApplications, etc.
User
User account for authentication and authorization. Links an IdP identity
to roles, permissions, and county assignments.
Note: Job function details (skills, team, workload) are not stored here.
Staff users link to a CaseWorker record in the Case Management domain.
Computed UI permissions and display data for frontend feature toggling.
Backend computes these from role and permissions to provide
a UI-friendly interface for showing/hiding features.
Structure is flexible - states define their own fields via overlays.
Example fields: name, availableModules, canApproveApplications, etc.
[Nested]
preferences
→ Preferences
User preferences for the application.
Structure is flexible - states define their own fields via overlays.
Example fields: timezone, dateFormat, itemsPerPage, language, theme, etc.
[Nested]
idpSubject
Text
✓
Subject identifier from the Identity Provider. Immutable after creation.
Format varies by IdP (e.g., "auth0|507f1f77bcf86cd799439011").
email
Email
✓
User's email address (from IdP or manually set).
status
Dropdown
✓
Options: active, inactive, pending, suspended
System
Field
Type
Req
Notes
id read-only
ID
✓
Unique identifier for the user (same as userId in JWT claims).
createdAt read-only
Date & Time
✓
Timestamp when the user was created.
updatedAt read-only
Date & Time
✓
Timestamp when the user was last updated.
UserPreferences
User preferences for the application.
Structure is flexible - states define their own fields via overlays.
Example fields: timezone, dateFormat, itemsPerPage, language, theme, etc.
UserStatus
User account status.
VerificationDocumentEvidence
A document submitted as evidence against a verification obligation.
Fields
Field
Type
Req
Notes
type
Dropdown
✓
Options: document
documentId
ID
✓
ID of the verified document in the document-management domain.
receivedAt
Date & Time
✓
When the document was received.
reviewedAt
Date & Time
When a caseworker reviewed the document.
reviewedBy
ID
ID of the caseworker who reviewed the document.
VerificationDocumentRequest
An outbound notice requesting documents from an applicant for a verification obligation.
Fields
Field
Type
Req
Notes
noticeId
ID
✓
ID of the notice in the communication domain.
sentAt
Date & Time
✓
When the notice was sent.
dueAt
Date & Time
Deadline by which the applicant must respond.
channel
Dropdown
Options: email, in person, mail, portal
VerificationElectronicEvidence
An electronic service check result recorded as evidence against a verification obligation.
Identifier of the intake domain member this verification applies to. Passed through from intake for correlation — the adapter does not resolve this identifier.
VerificationWritable
Client-writable fields for a verification obligation record.
Fields
Field
Type
Req
Notes
memberId
ID
Member this obligation is for. Null for household-level obligations (e.g., proof of residency).
A single income record for a household member. Used across domains wherever income data is collected, evaluated, or passed to the rules engine adapter.
Fields
Field
Type
Req
Notes
type
Dropdown
✓
Options: employed, self employed, unearned
unearnedType
Dropdown
Options: unemployment, kinship payment, veterans programs, adoption and refugee services, ssi or ssdi, private disability, workers compensation, disability from veterans programs, legal settlement, scholarship, educational grant, work study, spousal support, child support, retirement or pension, investment interest and dividends, social security retirement, rental income, gambling or lottery winnings, gifts or donations, loan or mortgage income, research participation, other
incomeBasis
Dropdown
Options: net, gross
amount
Number
✓
The income amount for the given frequency period.
frequency
Dropdown
✓
Options: hourly, daily, weekly, every 2 weeks, twice a month, monthly, yearly
startDate
Date
When the member first began receiving this income.
endDate
Date
When the member expects this income to end, if applicable.
A single expense record for a household member. Used across domains wherever expense data is collected, evaluated, or passed to the rules engine adapter. Certain expense categories affect SNAP net income calculations and Medicaid deductions (e.g., medical expenses for elderly/disabled members).
Fields
Field
Type
Req
Notes
category
Dropdown
✓
Options: housing, utilities, childcare, medical, dependent care, child support paid, other
amount
Number
✓
The expense amount for the given frequency period.
frequency
Dropdown
✓
Options: hourly, daily, weekly, every 2 weeks, twice a month, monthly, yearly
A single asset record for a household member. Used across domains wherever asset data is collected, evaluated, or passed to the rules engine adapter. Liquid assets are used in SNAP resource tests and expedited screening (7 CFR § 273.8, 7 CFR § 273.2(i)).
Fields
Field
Type
Req
Notes
type
Dropdown
✓
Options: liquid, vehicle, real property, retirement account, life insurance, other
Total number of people in the household. Used directly in SNAP benefit calculations and to determine applicable income thresholds.
housingCosts
Number
Monthly rent or mortgage payment. Used in SNAP expedited screening: households whose combined gross income and liquid resources fall below monthly housing + utility costs qualify for expedited processing (7 CFR § 273.2(i)).
utilityCosts
Number
Monthly utility costs. Used together with housingCosts in SNAP expedited screening (7 CFR § 273.2(i)).
isMigrantOrSeasonalFarmWorker
Yes/No
Whether any member of the household is a migrant or seasonal farm worker. Households with a migrant or seasonal farm worker member and liquid resources at or below $100 qualify for expedited SNAP processing regardless of income (7 CFR § 273.2(i)).
The outcome of a single data exchange service call. Shared between the CallCompletedEvent payload and the eligibility adapter input schema so both consumers reference the same field names and result values. The serviceResult field carries the service-specific raw payload — its shape is polymorphic on serviceType.