ORCA: Object-Relationship Content Attributes

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.

Text Type indicator
Required field
Links to another object

Client Management

Persistent client identity & history

What is Person?

Key Characteristics

  • Total fields: 17
  • Required fields: 2
  • Read-only fields: 2
  • Nested objects: 9
Referenced By
Action Method Path Notes
List GET /persons Paginated, searchable
Create POST /persons Required: name, dateOfBirth
Get GET /persons/{personId} By ID
Update PATCH /persons/{personId} Partial updates
Read-Only Fields

These fields are managed by the system and cannot be modified:

  • createdAt - Date & Time
  • updatedAt - Date & Time
Fields
Field Type Req Notes
dateOfBirth Date Birth date of the person.
socialSecurityNumber SSN Social Security Number for identity verification.
phoneNumber Phone Phone number for the person.
email Email Email address of the person.
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.

Intake

Application submission & intake processing

Intake

Application

What is Application?

Key Characteristics

  • Total fields: 10
  • Required fields: 4
  • Read-only fields: 8
  • Nested objects: 0
Referenced By
Action Method Path Notes
List GET /applications Paginated, searchable
Create POST /applications
Get GET /applications/{applicationId} By ID
Update PATCH /applications/{applicationId} Partial updates
Read-Only Fields

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.
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.
Intake

Income

What is Income?

A single item of income, which may be earned or unearned.

Key Characteristics

  • Total fields: 16
  • Required fields: 7
  • Read-only fields: 1
  • Nested objects: 0
Belongs To
Action Method Path Notes
List GET /incomes Paginated, searchable
Create POST /incomes Required: personId, type, amount...
Get GET /incomes/{incomeId} By ID
Update PATCH /incomes/{incomeId} Partial updates
Read-Only Fields

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.
System
Field Type Req Notes
id read-only ID Unique identifier for the income.
Intake

ApplicationMember

Fields
Field Type Req Notes
roles Multi-select Options: primary applicant, household member, non applying member, authorized representative, absent parent
programsApplyingFor Multi-select Options: snap, medicaid, tanf
citizenshipStatus Dropdown Options: citizen, permanent resident, qualified non citizen, undocumented, other
applicationId read-only ID
System
Field Type Req Notes
id read-only ID
createdAt read-only Date & Time
updatedAt read-only Date & Time
Intake

Verification

Fields
Field Type Req Notes
memberId ID Member this obligation is for. Null for household-level obligations (e.g., proof of residency).
category Dropdown Options: citizenship, identity, immigration, income, residency
verificationType Dropdown Options: document, electronic
applicationId read-only ID
status read-only Dropdown Options: pending, inconclusive, satisfied, waived, cannot verify
evidence read-only List of Unknown Electronic and document evidence items accumulated against this obligation.
System
Field Type Req Notes
id read-only ID
createdAt read-only Date & Time
updatedAt read-only Date & Time

Eligibility

Program eligibility determination

Eligibility

Decision

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.
System
Field Type Req Notes
id read-only ID Unique identifier for the decision.
createdAt read-only Date & Time When the decision record was created.
updatedAt read-only Date & Time When the decision record was last updated.
Eligibility

Determination

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.
System
Field Type Req Notes
id read-only ID Unique identifier for the determination.
createdAt read-only Date & Time When the determination record was created.
updatedAt read-only Date & Time When the determination record was last updated.

Case Management

Cases, workers & staff assignments

A case represents the ongoing relationship with a client or household. It spans years, multiple applications, and multiple programs.

Fields
Field Type Req Notes
status Dropdown Options: active, closed
effectiveStartDate Date Date when coverage or the case relationship begins.
effectiveEndDate Date Date when the case was closed. Null while active.
primaryApplicantId ID Reference to the Person record for the primary applicant.
assignedToId ID Reference to the User record for the assigned case worker.
System
Field Type Req Notes
id read-only ID Unique identifier (server-generated).
createdAt read-only Date & Time Timestamp when the case was created.
updatedAt read-only Date & Time Timestamp when the case was last updated.

Document Management

Files, uploads & verification

A document record spanning all its versions. Holds identity, type, and correlation context; file bytes live in DocumentVersion records.

Fields
Field Type Req Notes
documentTypeId ID Links to the DocumentType governing retention rules for this document.
title Text Human-readable label (e.g. "Jane Smith — Pay Stub March 2026"). Distinct from the upload filename.
documentDate Date The date on the document's face (e.g. a pay stub date). Required when the document type's retentionTrigger is document_date.
lifecycleState Dropdown Options: active, retained, pending disposition, destroyed
legalHold Yes/No When true, the document cannot advance to pending_disposition regardless of retention schedule.
latestVersionId ID ID of the most recent DocumentVersion. Single authoritative pointer to the current file.
retentionDeadline Date The date when the retention period ends. Null until the document enters retained state.
dispositionApprovedBy Text Identity of the records manager who authorized destruction. Null until destroyed state.
dispositionApprovedAt Date & Time When destruction was authorized. Null until destroyed state.
System
Field Type Req Notes
id ID
createdAt Date & Time
updatedAt Date & Time

Workflow

Task lifecycle, queues & SLA tracking

Workflow

Queue

A routing queue that organizes tasks by team, program, or skill.

Fields
Field Type Req Notes
name Text Machine-readable name for the queue (e.g., snap-intake).
description Text Human-readable description of the queue's purpose.
source read-only Dropdown Options: system, user
System
Field Type Req Notes
id read-only ID Unique identifier for the queue.
createdAt read-only Date & Time Timestamp when the queue was created.
updatedAt read-only Date & Time Timestamp when the queue was last updated.
Workflow

Task

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.
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.

Data Exchange

External service facade — FDSH, IEVS, SAVE, SSA

Data Exchange

ExternalService

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").
serviceType Dropdown Options: fdsh ssa, fdsh vlp, fdsh fti, fdsh medicare, fdsh vci, ssa ievs, irs ievs, swica, uib, save, enrollment check, incarceration check
defaultCallMode Dropdown Options: async, sync
programs Multi-select Options: snap, medicaid, chip, tanf, ccdf
source read-only Dropdown Options: system, user
System
Field Type Req Notes
id ID Stable identifier. Referenced by ExternalServiceCall submissions.
createdAt Date & Time
updatedAt Date & Time
Data Exchange

ExternalServiceCall

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.
serviceType Dropdown Options: fdsh ssa, fdsh vlp, fdsh fti, fdsh medicare, fdsh vci, ssa ievs, irs ievs, swica, uib, save, enrollment check, incarceration check
requestingResourceId ID 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
System
Field Type Req Notes
id ID Unique identifier.
createdAt Date & Time When the call was submitted.
updatedAt Date & Time When the call status last changed.

Scheduling

Appointments & interviews

Scheduling

Appointment

A scheduled interaction between a staff member and a person at a given time.

Fields
Field Type Req Notes
startAt Date & Time When the appointment begins.
endAt Date & Time When the appointment ends.
appointmentType Text Type of appointment (e.g., interview, recertification, orientation). Free-text, not enum — states define their own types.
status Dropdown Options: scheduled, completed, canceled, no show
personId ID Reference to the Person record (the subject of the appointment).
assignedToId ID Reference to the User record (staff member conducting the appointment).
notes Text Free-text notes about the appointment.
System
Field Type Req Notes
id read-only ID Unique identifier (server-generated).
createdAt read-only Date & Time Timestamp when the appointment was created.
updatedAt read-only Date & Time Timestamp when the appointment was last updated.

Communications

Notices, letters & client alerts

Coming soon - this domain is part of the architecture but not yet implemented.

Appeals & Hearings

Fair hearings & appeal decisions

Coming soon - this domain is part of the architecture but not yet implemented.

Benefits & Payments

Benefit issuance, EBT & recoupment

Coming soon - this domain is part of the architecture but not yet implemented.

Household

What is Household?

Represents a household unit with multiple members.

Key Characteristics

  • Total fields: 7
  • Required fields: 5
  • Read-only fields: 3
  • Nested objects: 3
Belongs To
  • Person via members[].personId
Action Method Path Notes
List GET /households Paginated, searchable
Create POST /households Required: homeAddress, members
Get GET /households/{householdId} By ID
Update PATCH /households/{householdId} Partial updates
Read-Only Fields

These fields are managed by the system and cannot be modified:

  • id - ID
  • createdAt - Date & Time
  • updatedAt - Date & Time
Fields
Field Type Req Notes
phoneNumber Phone Primary phone number for the household.
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.

Fields
Field Type Req Notes
program Text Program identifier (e.g., snap, medicaid, tanf).
outcome Dropdown Options: approved, denied
determinedAt Date & Time When the determination was recorded.

ApplicationMemberWritable

Client-writable fields for an application member.

Fields
Field Type Req Notes
roles Multi-select Options: primary applicant, household member, non applying member, authorized representative, absent parent
programsApplyingFor Multi-select Options: snap, medicaid, tanf
citizenshipStatus Dropdown Options: citizen, permanent resident, qualified non citizen, undocumented, other

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.

Fields
Field Type Req Notes
serviceCallId ID
serviceType Dropdown Options: fdsh ssa, fdsh vlp, fdsh fti, fdsh medicare, fdsh vci, ssa ievs, irs ievs, swica, uib, save, enrollment check, incarceration check
requestingResourceId ID
result Dropdown Options: conclusive, inconclusive, partial

CallFailedEvent

Payload for the data_exchange.call.failed event.

Fields
Field Type Req Notes
serviceCallId ID
serviceType Dropdown Options: fdsh ssa, fdsh vlp, fdsh fti, fdsh medicare, fdsh vci, ssa ievs, irs ievs, swica, uib, save, enrollment check, incarceration check
requestingResourceId ID
failureReason Dropdown Options: connection error, service error, authentication error

CallMode

Whether the call blocks until a result is returned (sync) or enters an async waiting state (async).

CallSubmittedEvent

Payload for the data_exchange.call.submitted event.

Fields
Field Type Req Notes
serviceCallId ID
serviceType Dropdown Options: fdsh ssa, fdsh vlp, fdsh fti, fdsh medicare, fdsh vci, ssa ievs, irs ievs, swica, uib, save, enrollment check, incarceration check
requestingResourceId ID

CallTimedOutEvent

Payload for the data_exchange.call.timed_out event.

Fields
Field Type Req Notes
serviceCallId ID
serviceType Dropdown Options: fdsh ssa, fdsh vlp, fdsh fti, fdsh medicare, fdsh vci, ssa ievs, irs ievs, swica, uib, save, enrollment check, incarceration check
requestingResourceId ID

CaseMember

A person associated with a case and their relationship to the primary applicant.

Fields
Field Type Req Notes
personId ID Reference to the Person record.
relationship Text Relationship to the primary applicant.

CaseStatus

Current status of the case.

CitizenshipInfo

Citizenship and immigration status information.

Fields
Field Type Req Notes
status Dropdown Options: citizen, permanent resident, qualified non citizen, undocumented, other
certificateNumber Text Certificate number if naturalized or derived citizen.

ContactInfo

Contact information and communication preferences.

Fields
Field Type Req Notes
otherPhoneNumber Phone Alternative phone number.
isHomeless Yes/No Whether the person is currently homeless.
preferredNoticeMethod Dropdown Options: paper, email, both
preferredContactMethod Dropdown Options: phone, email, mail, sms

DecisionPath

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

DocumentLifecycleState

Where the document is in its records management lifecycle.

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

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.
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.

Fields
Field Type Req Notes
serviceType Dropdown Options: fdsh ssa, fdsh vlp, fdsh fti, fdsh medicare, fdsh vci, ssa ievs, irs ievs, swica, uib, save, enrollment check, incarceration check
result Dropdown Options: conclusive, inconclusive, partial, error
receivedAt Date & Time When the result was received.

ElectronicCheckSummary

Summary of a single electronic data check that informed a decision.

Fields
Field Type Req Notes
serviceType Text The data exchange service that performed the check.
result Text The outcome of the check (e.g., conclusive, inconclusive).
checkedAt Date & Time When the check result was received.

Employer

An employer of one or more people.

EmploymentInfo

Basic employment information (employers and dates only).

Fields
Field Type Req Notes

EnrollmentCheckResult

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

ExpeditedScreeningResponse

Response from expedited SNAP screening.

Fields
Field Type Req Notes
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.

Fields
Field Type Req Notes
userId ID User Service identifier.

HouseholdDeterminationRequest

Final determination request for per-household programs (snap). Extends PerHouseholdProgramRequest with the verification summary for the household.

Fields
Field Type Req Notes
program Dropdown Options: snap, medicaid, chip, tanf, ccdf
members List of → Member All members in the household benefit unit.
verificationSummary List of → VerificationSummary Status of verification obligations relevant to this household and program.

ImmigrationInfo

Fields
Field Type Req Notes
status Dropdown Options: lawful permanent resident, refugee, asylee, deportation withheld, parolee, conditional entrant, cuban haitian entrant, amerasian, battered non citizen, trafficking victim, temporary protected status, other
documentType Dropdown Options: i 551, i 766, i 94, i 327, i 571, foreign passport, machine readable immigrant visa, other
documentNumber Text Document number used to verify immigration status via FDSH VLP or USCIS SAVE.
alienOrI94Number Text Alien registration number or I-94 admission number.
documentExpirationDate Date Expiration date of the immigration document.
countryOfIssuance Text ISO 3166-1 alpha-2 country code of the country that issued the immigration document.
hasSponsor Yes/No Whether this non-citizen has a financial sponsor.

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
program Dropdown Options: snap, medicaid, chip, tanf, ccdf
verificationSummary List of → VerificationSummary 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).

Fields
Field Type Req Notes
startDate Date Date employment started.
endDate Date Date employment ended (omit if current job).

MedicaidExParteRequest

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
program Dropdown Options: snap, medicaid, chip, tanf, ccdf

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.
programs Multi-select Options: snap, medicaid, chip, tanf, ccdf

Metric

A computed metric value with definition metadata.

Fields
Field Type Req Notes
name read-only Text Human-readable metric name.
aggregate read-only Dropdown Options: count, ratio, duration
value read-only Number Computed scalar value. count: total matching records. ratio: 0–1. duration: median seconds between paired events. null when groupBy is specified.
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
program Dropdown Options: snap, medicaid, chip, tanf, ccdf
members List of → Member All members in the household benefit unit.

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
program Dropdown Options: snap, medicaid, chip, tanf, ccdf

PersonIdentity

Basic identity and contact information for a person.

Fields
Field Type Req Notes
dateOfBirth Date Birth date of the person.
socialSecurityNumber SSN Social Security Number for identity verification.
phoneNumber Phone Phone number for the person.
email Email Email address of the person.

ProgramDecision

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
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.

Fields
Field Type Req Notes
type Dropdown Options: person, case, application, task, appointment
count Number Number of matching results for this type.

SearchResult

A single search result with a uniform shape regardless of the underlying resource type. Attributes provide typed key-value pairs for consistent client rendering.

Fields
Field Type Req Notes
type Dropdown Options: person, case, application, task, appointment
title Text Display title for the result (e.g., person name, case number).
url URL Canonical API URL of the matched resource.
score Number Relevance score between 0 and 1. Higher is more relevant.
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.

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.
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.

Fields
Field Type Req Notes

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.

Fields
Field Type Req Notes
userId ID User Service identifier.

TribalInfo

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.

Fields
Field Type Req Notes
userId ID User Service identifier.
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.

Fields
Field Type Req Notes
type Dropdown Options: electronic
source Dropdown Options: fdsh fti, fdsh ssa, fdsh vlp, save, ssa ievs
result Dropdown Options: conclusive, inconclusive
serviceCallId ID ID of the data-exchange service call that produced this result.
receivedAt Date & Time When the result was received.

VerificationEvidenceItem

An electronic or document evidence item accumulated against a verification obligation.

VerificationSource

A source of verification, which may be an external API or document.

System
Field Type Req Notes
id read-only ID Unique identifier for the verification source.

VerificationSummary

A verification summary as passed by the intake domain. Extends the common shape with the member identifier from the intake domain.

Fields
Field Type Req Notes
category Text The type of verification (e.g., income, identity, residency).
status Dropdown Options: pending, inconclusive, satisfied, waived, cannot verify
memberId ID 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).
category Dropdown Options: citizenship, identity, immigration, income, residency
verificationType Dropdown Options: document, electronic
Case Management Nested in Case

Member

A person associated with a case and their relationship to the primary applicant.

Fields
Field Type Req Notes
personId ID Reference to the Person record.
relationship Text Relationship to the primary applicant.
Nested in MemberContext

Income

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.
Nested in MemberContext

Expense

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
Nested in MemberContext

Asset

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
value Number The current fair market value of the asset.
description Text Optional free-text description of the asset.
Nested in PerHouseholdProgramRequest

Household

Household-level data used in benefit calculation.

Fields
Field Type Req Notes
size Number 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)).
Nested in MedicaidExParteRequest

ElectronicCheck

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.

Fields
Field Type Req Notes
serviceType Dropdown Options: fdsh ssa, fdsh vlp, fdsh fti, fdsh medicare, fdsh vci, ssa ievs, irs ievs, swica, uib, save, enrollment check, incarceration check
result Dropdown Options: conclusive, inconclusive, partial, error
receivedAt Date & Time When the result was received.
Nested in Household

HomeAddress

Home address of the household.

Fields
Field Type Req Notes
addressLine1 Text Primary street address line.
addressLine2 Text Secondary address line such as apartment or unit.
city Text City or locality of residence.
stateProvince Text State, province, or region of residence.
postalCode Text Postal or ZIP code.
county Text County or equivalent administrative region.
Nested in Household

MailingAddress

Mailing address if different from home address.

Fields
Field Type Req Notes
addressLine1 Text Primary street address line.
addressLine2 Text Secondary address line such as apartment or unit.
city Text City or locality of residence.
stateProvince Text State, province, or region of residence.
postalCode Text Postal or ZIP code.
county Text County or equivalent administrative region.
Nested in ApplicationMemberWritable

ImmigrationInfo

Immigration document details. Required when citizenshipStatus is not citizen and the member is applying for Medicaid.

Fields
Field Type Req Notes
status Dropdown Options: lawful permanent resident, refugee, asylee, deportation withheld, parolee, conditional entrant, cuban haitian entrant, amerasian, battered non citizen, trafficking victim, temporary protected status, other
documentType Dropdown Options: i 551, i 766, i 94, i 327, i 571, foreign passport, machine readable immigrant visa, other
documentNumber Text Document number used to verify immigration status via FDSH VLP or USCIS SAVE.
alienOrI94Number Text Alien registration number or I-94 admission number.
documentExpirationDate Date Expiration date of the immigration document.
countryOfIssuance Text ISO 3166-1 alpha-2 country code of the country that issued the immigration document.
Intake Nested in ApplicationMember

ProgramDetermination

A single program eligibility determination result for a household member.

Fields
Field Type Req Notes
program Text Program identifier (e.g., snap, medicaid, tanf).
outcome Dropdown Options: approved, denied
determinedAt Date & Time When the determination was recorded.
Intake Nested in Verification

DocumentRequest

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
Client Management Nested in Person

Name

Legal name of the person.

Fields
Field Type Req Notes
firstName Text First name.
middleInitial Text Middle initial.
middleName Text Middle name.
lastName Text Last name.
maidenName Text Maiden name if applicable.
suffix Text Name suffix such as Jr., Sr., III, etc.
Client Management Nested in Person

Address

Address of the person.

Fields
Field Type Req Notes
addressLine1 Text Primary street address line.
addressLine2 Text Secondary address line such as apartment or unit.
city Text City or locality of residence.
stateProvince Text State, province, or region of residence.
postalCode Text Postal or ZIP code.
county Text County or equivalent administrative region.
Client Management Nested in Person

DemographicInfo

Demographic information including sex, marital status, and race.

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
Client Management Nested in Person

CitizenshipInfo

Citizenship and immigration status information.

Fields
Field Type Req Notes
status Dropdown Options: citizen, permanent resident, qualified non citizen, undocumented, other
certificateNumber Text Certificate number if naturalized or derived citizen.
Client Management Nested in Person

ContactInfo

Contact information and communication preferences.

Fields
Field Type Req Notes
otherPhoneNumber Phone Alternative phone number.
isHomeless Yes/No Whether the person is currently homeless.
preferredNoticeMethod Dropdown Options: paper, email, both
preferredContactMethod Dropdown Options: phone, email, mail, sms
Client Management Nested in Person

EmploymentInfo

Employment and self-employment information.

Fields
Field Type Req Notes
Client Management Nested in Person

EducationInfo

Student enrollment information for this person.

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).
Client Management Nested in Person

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.
Client Management Nested in Person

TribalInfo

American Indian or Alaska Native tribal information for this person.

Fields
Field Type Req Notes
tribeName Text
tribeState Text
hasReceivedServiceFromIndianHealthService Yes/No
isEligibleForIndianHealthService Yes/No
Nested in ContactInfo

LanguagePreference

Language preferences for communications.

Fields
Field Type Req Notes
written Text Preferred language for written communications (BCP 47 language tag).
spoken Text Preferred language for spoken communications (BCP 47 language tag).
Nested in EmploymentInfo

Job

Basic employment record (employer and dates only).

Fields
Field Type Req Notes
startDate Date Date employment started.
endDate Date Date employment ended (omit if current job).
Nested in Job

Employer

Employer information.

Fields
Field Type Req Notes
name Text Employer or business name.
phone Phone Employer phone number.
identificationNumber Text Employer Identification Number (EIN).
Nested in Sponsor

Spouse

Basic identity and contact information for a person.

Fields
Field Type Req Notes
dateOfBirth Date Birth date of the person.
socialSecurityNumber SSN Social Security Number for identity verification.
phoneNumber Phone Phone number for the person.
email Email Email address of the person.
Nested in SearchResult

Attribute

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
Nested in User

Roles

Role and permissions for authorization.

Fields
Field Type Req Notes
name Dropdown Options: applicant, case worker, supervisor, county admin, state admin, partner readonly
permissions List of Text Permission strings in the format {resource}:{action}. Examples: applications:read, persons:update, users:create
Workflow Nested in Task

SlaInfo

Engine-managed SLA tracking entry. Returned in resource responses. All fields except slaTypeCode are populated and managed by the engine.

Fields
Field Type Req Notes
slaTypeCode Text Identifies which SLA type applies. Valid values are injected at resolve time from the domain's *-sla-types.yaml.
status read-only Dropdown Options: active, warning, paused, breached, completed
clockStartedAt read-only Date & Time When the SLA clock started. Engine-managed.
deadline read-only Date & Time Computed deadline. Recalculated after a resume to exclude accumulated paused duration. Engine-managed.
Nested in Metric

Target

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
Nested in TaskUpdatedEvent

Change

A single field change recorded in an updated event.

Fields
Field Type Req Notes
field Text Name of the changed field.
before Unknown Value of the field before the update.
after Unknown Value of the field after the update.