Person
A household member, including legal, health, work, and income profiles.
PersonBase
Section titled “PersonBase”An individual member of a household. Eligibility-relevant attributes are grouped into `legalProfile`, `healthProfile`, and `workProfile` so related fields stay together and additional fields can be added within each group without restructuring the top level.
| Property | Type | Required | Description |
|---|---|---|---|
identifiers | PersonIdentifiers | Yes | System, cross-system, and named canonical identifiers for this person. |
name | Name | Yes | The person's name. |
dateOfBirth | isoDate | Yes | Date of birth in ISO 8601 format (YYYY-MM-DD). |
isHeadOfHousehold | boolean | Yes | `true` if this person is the head of household. Exactly one per household. |
legalProfile | PersonLegalProfile | No | The person's legal-status profile (citizenship, immigration). |
healthProfile | PersonHealthProfile | No | The person's health profile (disability, pregnancy). |
workProfile | PersonWorkProfile | No | The person's work profile (employment, student, caregiver). |
incomeSources | PersonIncomeSource[] | No | The person's sources of income. |
customFields | RecordCustomField | No | Implementation-defined custom fields. |
{ "identifiers": { "systemId": "30a12e5e-5940-4c08-921c-17a8960fcf4b", "ssn": "123-45-6789" }, "name": { "prefix": "Ms.", "firstName": "Jane", "lastName": "Smith" }, "dateOfBirth": "1985-03-15", "isHeadOfHousehold": true, "legalProfile": { "citizenshipStatus": { "value": "us_citizen", "description": "" }, "immigrationStatus": { "value": "not_applicable", "description": "" } }, "healthProfile": { "disability": { "status": { "value": "none", "description": "" } }, "pregnancy": { "status": { "value": "not_pregnant", "description": "" } } }, "workProfile": { "employmentStatus": { "value": "employed_part_time", "description": "Part-time retail" }, "studentStatus": { "value": "not_enrolled", "description": "" }, "hoursWorkedPerWeek": 20, "caregiverStatus": { "value": "none", "description": "" } }, "incomeSources": [ { "type": { "value": "wages", "description": "Part-time retail" }, "amount": { "amount": "1200", "currency": "USD" }, "frequency": { "value": "monthly", "description": "" } } ]}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonBase.yamltype: objectproperties: identifiers: $ref: PersonIdentifiers.yaml description: System, cross-system, and named canonical identifiers for this person. name: $ref: Name.yaml description: The person's name. dateOfBirth: $ref: isoDate.yaml description: Date of birth in ISO 8601 format (YYYY-MM-DD). isHeadOfHousehold: type: boolean description: "`true` if this person is the head of household. Exactly one per household." legalProfile: $ref: PersonLegalProfile.yaml description: The person's legal-status profile (citizenship, immigration). healthProfile: $ref: PersonHealthProfile.yaml description: The person's health profile (disability, pregnancy). workProfile: $ref: PersonWorkProfile.yaml description: The person's work profile (employment, student, caregiver). incomeSources: type: array items: $ref: PersonIncomeSource.yaml description: The person's sources of income. customFields: $ref: "#/$defs/RecordCustomField" description: Implementation-defined custom fields.required: - identifiers - name - dateOfBirth - isHeadOfHouseholdexamples: - identifiers: systemId: 30a12e5e-5940-4c08-921c-17a8960fcf4b ssn: 123-45-6789 name: prefix: Ms. firstName: Jane lastName: Smith dateOfBirth: 1985-03-15 isHeadOfHousehold: true legalProfile: citizenshipStatus: value: us_citizen description: "" immigrationStatus: value: not_applicable description: "" healthProfile: disability: status: value: none description: "" pregnancy: status: value: not_pregnant description: "" workProfile: employmentStatus: value: employed_part_time description: Part-time retail studentStatus: value: not_enrolled description: "" hoursWorkedPerWeek: 20 caregiverStatus: value: none description: "" incomeSources: - type: value: wages description: Part-time retail amount: amount: "1200" currency: USD frequency: value: monthly description: ""description: |- An individual member of a household.
Eligibility-relevant attributes are grouped into `legalProfile`, `healthProfile`, and `workProfile` so related fields stay together and additional fields can be added within each group without restructuring the top level.$defs: RecordCustomField: type: object properties: {} unevaluatedProperties: $ref: CustomField.yaml/** An individual member of a household. * * Eligibility-relevant attributes are grouped into `legalProfile`, * `healthProfile`, and `workProfile` so related fields stay together and * additional fields can be added within each group without restructuring * the top level. */@example(Examples.Person.headOfHousehold)@Versioning.added(Versions.v0_1)model PersonBase { /** System, cross-system, and named canonical identifiers for this person. */ identifiers: PersonIdentifiers;
/** The person's name. */ name: Fields.Name;
/** Date of birth in ISO 8601 format (YYYY-MM-DD). */ dateOfBirth: Types.isoDate;
/** `true` if this person is the head of household. Exactly one per household. */ isHeadOfHousehold: boolean;
/** The person's legal-status profile (citizenship, immigration). */ legalProfile?: PersonLegalProfile;
/** The person's health profile (disability, pregnancy). */ healthProfile?: PersonHealthProfile;
/** The person's work profile (employment, student, caregiver). */ workProfile?: PersonWorkProfile;
/** The person's sources of income. */ incomeSources?: PersonIncomeSource[];
/** Implementation-defined custom fields. */ customFields?: Record<Fields.CustomField>;}PersonIdentifiers
Section titled “PersonIdentifiers”Identifiers for a Person (household member). Adds `ssn` as a named canonical identifier on top of the base `Fields.Identifiers` shape. Implementations MUST encrypt `ssn` at rest.
| Property | Type | Required | Description |
|---|---|---|---|
ssn | string | No | Social Security Number. **Sensitive**: must be encrypted at rest. |
systemId | uuid | Yes | The system-assigned identifier. |
otherIds | RecordIdEntry | No | Cross-system identifiers keyed by a caller-defined label. |
{ "systemId": "30a12e5e-5940-4c08-921c-17a8960fcf4b", "otherIds": { "benefits_gov": { "registry": "benefits_gov", "value": "SNAP-CO", "description": "Benefits.gov program identifier" } }}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonIdentifiers.yamltype: objectproperties: ssn: type: string description: 'Social Security Number. **Sensitive**: must be encrypted at rest.' systemId: $ref: uuid.yaml description: The system-assigned identifier. otherIds: $ref: '#/$defs/RecordIdEntry' description: Cross-system identifiers keyed by a caller-defined label.description: |- Identifiers for a Person (household member).
Adds `ssn` as a named canonical identifier on top of the base `Fields.Identifiers` shape. Implementations MUST encrypt `ssn` at rest.required: - systemId/** Identifiers for a Person (household member). * * Adds `ssn` as a named canonical identifier on top of the base * `Fields.Identifiers` shape. Implementations MUST encrypt `ssn` at rest. */@Versioning.added(Versions.v0_1)model PersonIdentifiers extends Fields.Identifiers { /** Social Security Number. **Sensitive**: must be encrypted at rest. */ ssn?: string;}PersonLegalProfile
Section titled “PersonLegalProfile”A grouping of a person's legal-status attributes (citizenship and immigration). Distinct from `*Status` enum wrappers — Profile types are containers for related attribute fields.
| Property | Type | Required | Description |
|---|---|---|---|
citizenshipStatus | PersonCitizenshipStatus | No | The person's citizenship status. |
immigrationStatus | PersonImmigrationStatus | No | The person's immigration status. |
{ "citizenshipStatus": { "value": "us_citizen", "customValue": "string", "description": "string" }, "immigrationStatus": { "value": "lpr", "customValue": "string", "description": "string" }}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonLegalProfile.yamltype: objectproperties: citizenshipStatus: $ref: PersonCitizenshipStatus.yaml description: The person's citizenship status. immigrationStatus: $ref: PersonImmigrationStatus.yaml description: The person's immigration status.description: |- A grouping of a person's legal-status attributes (citizenship and immigration). Distinct from `*Status` enum wrappers — Profile types are containers for related attribute fields./** A grouping of a person's legal-status attributes (citizenship and * immigration). Distinct from `*Status` enum wrappers — Profile types are * containers for related attribute fields. */@Versioning.added(Versions.v0_1)model PersonLegalProfile { /** The person's citizenship status. */ citizenshipStatus?: PersonCitizenshipStatus;
/** The person's immigration status. */ immigrationStatus?: PersonImmigrationStatus;}PersonCitizenshipStatus
Section titled “PersonCitizenshipStatus”A person's citizenship status.
| Property | Type | Required | Description |
|---|---|---|---|
value | PersonCitizenshipStatusOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "us_citizen", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonCitizenshipStatus.yamltype: objectproperties: value: $ref: PersonCitizenshipStatusOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: A person's citizenship status./** A person's citizenship status. */@Versioning.added(Versions.v0_1)model PersonCitizenshipStatus is Fields.ExtensibleEnumT<PersonCitizenshipStatusOptions>;
// #########################################################// PersonImmigrationStatus// #########################################################
/** Predefined set of immigration statuses. * * - `lpr`: Lawful Permanent Resident. * - `visa_holder`: Holder of a temporary visa. * - `daca`: Deferred Action for Childhood Arrivals. * - `temporary_protected_status`: Temporary Protected Status. * - `undocumented`: Undocumented. * - `not_applicable`: Not applicable (e.g., U.S. citizen). * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonImmigrationStatusOptions { lpr, visa_holder, daca, temporary_protected_status, undocumented, not_applicable, custom,}PersonCitizenshipStatusOptions
Section titled “PersonCitizenshipStatusOptions”Predefined set of citizenship statuses.
| Value | Description |
|---|---|
us_citizen | U.S. citizen. |
lawful_permanent_resident | Lawful Permanent Resident (green card holder). |
refugee | Refugee. |
asylee | Person granted asylum. |
cuban_haitian_entrant | Cuban or Haitian entrant. |
amerasian | Amerasian. |
us_national | U.S. national (non-citizen). |
victim_of_trafficking | Certified victim of human trafficking. |
not_applicable | Not applicable to this member. |
custom | A caller-defined status. |
"us_citizen"$schema: https://json-schema.org/draft/2020-12/schema$id: PersonCitizenshipStatusOptions.yamltype: stringenum: - us_citizen - lawful_permanent_resident - refugee - asylee - cuban_haitian_entrant - amerasian - us_national - victim_of_trafficking - not_applicable - customdescription: |- Predefined set of citizenship statuses.
- `us_citizen`: U.S. citizen. - `lawful_permanent_resident`: Lawful Permanent Resident (green card holder). - `refugee`: Refugee. - `asylee`: Person granted asylum. - `cuban_haitian_entrant`: Cuban or Haitian entrant. - `amerasian`: Amerasian. - `us_national`: U.S. national (non-citizen). - `victim_of_trafficking`: Certified victim of human trafficking. - `not_applicable`: Not applicable to this member. - `custom`: A caller-defined status./** Predefined set of citizenship statuses. * * - `us_citizen`: U.S. citizen. * - `lawful_permanent_resident`: Lawful Permanent Resident (green card holder). * - `refugee`: Refugee. * - `asylee`: Person granted asylum. * - `cuban_haitian_entrant`: Cuban or Haitian entrant. * - `amerasian`: Amerasian. * - `us_national`: U.S. national (non-citizen). * - `victim_of_trafficking`: Certified victim of human trafficking. * - `not_applicable`: Not applicable to this member. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonCitizenshipStatusOptions { us_citizen, lawful_permanent_resident, refugee, asylee, cuban_haitian_entrant, amerasian, us_national, victim_of_trafficking, not_applicable, custom,}PersonImmigrationStatus
Section titled “PersonImmigrationStatus”A person's immigration status.
| Property | Type | Required | Description |
|---|---|---|---|
value | PersonImmigrationStatusOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "lpr", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonImmigrationStatus.yamltype: objectproperties: value: $ref: PersonImmigrationStatusOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: A person's immigration status./** A person's immigration status. */@Versioning.added(Versions.v0_1)model PersonImmigrationStatus is Fields.ExtensibleEnumT<PersonImmigrationStatusOptions>;
// #########################################################// PersonLegalProfile// #########################################################
/** A grouping of a person's legal-status attributes (citizenship and * immigration). Distinct from `*Status` enum wrappers — Profile types are * containers for related attribute fields. */@Versioning.added(Versions.v0_1)model PersonLegalProfile { /** The person's citizenship status. */ citizenshipStatus?: PersonCitizenshipStatus;
/** The person's immigration status. */ immigrationStatus?: PersonImmigrationStatus;}PersonImmigrationStatusOptions
Section titled “PersonImmigrationStatusOptions”Predefined set of immigration statuses.
| Value | Description |
|---|---|
lpr | Lawful Permanent Resident. |
visa_holder | Holder of a temporary visa. |
daca | Deferred Action for Childhood Arrivals. |
temporary_protected_status | Temporary Protected Status. |
undocumented | Undocumented. |
not_applicable | Not applicable (e.g., U.S. citizen). |
custom | A caller-defined status. |
"lpr"$schema: https://json-schema.org/draft/2020-12/schema$id: PersonImmigrationStatusOptions.yamltype: stringenum: - lpr - visa_holder - daca - temporary_protected_status - undocumented - not_applicable - customdescription: |- Predefined set of immigration statuses.
- `lpr`: Lawful Permanent Resident. - `visa_holder`: Holder of a temporary visa. - `daca`: Deferred Action for Childhood Arrivals. - `temporary_protected_status`: Temporary Protected Status. - `undocumented`: Undocumented. - `not_applicable`: Not applicable (e.g., U.S. citizen). - `custom`: A caller-defined status./** Predefined set of immigration statuses. * * - `lpr`: Lawful Permanent Resident. * - `visa_holder`: Holder of a temporary visa. * - `daca`: Deferred Action for Childhood Arrivals. * - `temporary_protected_status`: Temporary Protected Status. * - `undocumented`: Undocumented. * - `not_applicable`: Not applicable (e.g., U.S. citizen). * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonImmigrationStatusOptions { lpr, visa_holder, daca, temporary_protected_status, undocumented, not_applicable, custom,}PersonHealthProfile
Section titled “PersonHealthProfile”A grouping of a person's health attributes (disability and pregnancy).
| Property | Type | Required | Description |
|---|---|---|---|
disability | PersonDisability | No | The person's disability information. |
pregnancy | PersonPregnancy | No | The person's pregnancy information. |
{ "disability": { "status": { "value": "none", "customValue": "string", "description": "string" }, "determinationDate": "2025-01-01", "determinationSource": "string" }, "pregnancy": { "status": { "value": "not_pregnant", "customValue": "string", "description": "string" }, "expectedDueDate": "2025-01-01" }}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonHealthProfile.yamltype: objectproperties: disability: $ref: PersonDisability.yaml description: The person's disability information. pregnancy: $ref: PersonPregnancy.yaml description: The person's pregnancy information.description: A grouping of a person's health attributes (disability and pregnancy)./** A grouping of a person's health attributes (disability and pregnancy). */@Versioning.added(Versions.v0_1)model PersonHealthProfile { /** The person's disability information. */ disability?: PersonDisability;
/** The person's pregnancy information. */ pregnancy?: PersonPregnancy;}PersonDisability
Section titled “PersonDisability”A person's disability information.
| Property | Type | Required | Description |
|---|---|---|---|
status | PersonDisabilityStatus | Yes | The disability status. |
determinationDate | isoDate | null | No | The date the disability was determined. Month-level precision is acceptable. |
determinationSource | string | null | No | The source of the determination (e.g., `ssa`, `state_medicaid`). |
{ "status": { "value": "none", "customValue": "string", "description": "string" }, "determinationDate": "2025-01-01", "determinationSource": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonDisability.yamltype: objectproperties: status: $ref: PersonDisabilityStatus.yaml description: The disability status. determinationDate: anyOf: - $ref: isoDate.yaml - type: "null" description: The date the disability was determined. Month-level precision is acceptable. determinationSource: anyOf: - type: string - type: "null" description: The source of the determination (e.g., `ssa`, `state_medicaid`).required: - statusdescription: A person's disability information./** A person's disability information. */@Versioning.added(Versions.v0_1)model PersonDisability { /** The disability status. */ status: PersonDisabilityStatus;
/** The date the disability was determined. Month-level precision is acceptable. */ determinationDate?: Types.isoDate | null;
/** The source of the determination (e.g., `ssa`, `state_medicaid`). */ determinationSource?: string | null;}PersonDisabilityStatus
Section titled “PersonDisabilityStatus”A person's disability status.
| Property | Type | Required | Description |
|---|---|---|---|
value | PersonDisabilityStatusOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "none", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonDisabilityStatus.yamltype: objectproperties: value: $ref: PersonDisabilityStatusOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: A person's disability status./** A person's disability status. */@Versioning.added(Versions.v0_1)model PersonDisabilityStatus is Fields.ExtensibleEnumT<PersonDisabilityStatusOptions>;
/** A person's disability information. */@Versioning.added(Versions.v0_1)model PersonDisability { /** The disability status. */ status: PersonDisabilityStatus;
/** The date the disability was determined. Month-level precision is acceptable. */ determinationDate?: Types.isoDate | null;
/** The source of the determination (e.g., `ssa`, `state_medicaid`). */ determinationSource?: string | null;}PersonDisabilityStatusOptions
Section titled “PersonDisabilityStatusOptions”Predefined set of disability statuses.
| Value | Description |
|---|---|
none | No disability. |
ssa_disability | SSA-determined disability. |
ssi_recipient | Supplemental Security Income recipient. |
state_defined | State-defined disability determination. |
custom | A caller-defined status. |
"none"$schema: https://json-schema.org/draft/2020-12/schema$id: PersonDisabilityStatusOptions.yamltype: stringenum: - none - ssa_disability - ssi_recipient - state_defined - customdescription: |- Predefined set of disability statuses.
- `none`: No disability. - `ssa_disability`: SSA-determined disability. - `ssi_recipient`: Supplemental Security Income recipient. - `state_defined`: State-defined disability determination. - `custom`: A caller-defined status./** Predefined set of disability statuses. * * - `none`: No disability. * - `ssa_disability`: SSA-determined disability. * - `ssi_recipient`: Supplemental Security Income recipient. * - `state_defined`: State-defined disability determination. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonDisabilityStatusOptions { none, ssa_disability, ssi_recipient, state_defined, custom,}PersonPregnancy
Section titled “PersonPregnancy”A person's pregnancy information.
| Property | Type | Required | Description |
|---|---|---|---|
status | PersonPregnancyStatus | Yes | The pregnancy status. |
expectedDueDate | isoDate | null | No | The expected due date in ISO 8601 format. |
{ "status": { "value": "not_pregnant", "customValue": "string", "description": "string" }, "expectedDueDate": "2025-01-01"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonPregnancy.yamltype: objectproperties: status: $ref: PersonPregnancyStatus.yaml description: The pregnancy status. expectedDueDate: anyOf: - $ref: isoDate.yaml - type: "null" description: The expected due date in ISO 8601 format.required: - statusdescription: A person's pregnancy information./** A person's pregnancy information. */@Versioning.added(Versions.v0_1)model PersonPregnancy { /** The pregnancy status. */ status: PersonPregnancyStatus;
/** The expected due date in ISO 8601 format. */ expectedDueDate?: Types.isoDate | null;}PersonPregnancyStatus
Section titled “PersonPregnancyStatus”A person's pregnancy status.
| Property | Type | Required | Description |
|---|---|---|---|
value | PersonPregnancyStatusOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "not_pregnant", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonPregnancyStatus.yamltype: objectproperties: value: $ref: PersonPregnancyStatusOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: A person's pregnancy status./** A person's pregnancy status. */@Versioning.added(Versions.v0_1)model PersonPregnancyStatus is Fields.ExtensibleEnumT<PersonPregnancyStatusOptions>;
/** A person's pregnancy information. */@Versioning.added(Versions.v0_1)model PersonPregnancy { /** The pregnancy status. */ status: PersonPregnancyStatus;
/** The expected due date in ISO 8601 format. */ expectedDueDate?: Types.isoDate | null;}PersonPregnancyStatusOptions
Section titled “PersonPregnancyStatusOptions”Predefined set of pregnancy statuses.
| Value | Description |
|---|---|
not_pregnant | Not pregnant. |
pregnant | Pregnant. |
custom | A caller-defined status. |
"not_pregnant"$schema: https://json-schema.org/draft/2020-12/schema$id: PersonPregnancyStatusOptions.yamltype: stringenum: - not_pregnant - pregnant - customdescription: |- Predefined set of pregnancy statuses.
- `not_pregnant`: Not pregnant. - `pregnant`: Pregnant. - `custom`: A caller-defined status./** Predefined set of pregnancy statuses. * * - `not_pregnant`: Not pregnant. * - `pregnant`: Pregnant. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonPregnancyStatusOptions { not_pregnant, pregnant, custom,}PersonWorkProfile
Section titled “PersonWorkProfile”A grouping of a person's work attributes (employment, student, hours worked, caregiver). Grouped because SNAP and Medicaid work requirements share exemption categories (disability, pregnancy, caregiving, student enrollment).
| Property | Type | Required | Description |
|---|---|---|---|
employmentStatus | PersonEmploymentStatus | No | The person's employment status. |
studentStatus | PersonStudentStatus | No | The person's student enrollment status. |
hoursWorkedPerWeek | integer | No | Hours worked per week. Relevant to work requirement thresholds. |
caregiverStatus | PersonCaregiverStatus | No | The person's caregiver status. |
{ "employmentStatus": { "value": "employed_full_time", "customValue": "string", "description": "string" }, "studentStatus": { "value": "not_enrolled", "customValue": "string", "description": "string" }, "hoursWorkedPerWeek": 0, "caregiverStatus": { "value": "none", "customValue": "string", "description": "string" }}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonWorkProfile.yamltype: objectproperties: employmentStatus: $ref: PersonEmploymentStatus.yaml description: The person's employment status. studentStatus: $ref: PersonStudentStatus.yaml description: The person's student enrollment status. hoursWorkedPerWeek: type: integer description: Hours worked per week. Relevant to work requirement thresholds. caregiverStatus: $ref: PersonCaregiverStatus.yaml description: The person's caregiver status.description: |- A grouping of a person's work attributes (employment, student, hours worked, caregiver). Grouped because SNAP and Medicaid work requirements share exemption categories (disability, pregnancy, caregiving, student enrollment)./** A grouping of a person's work attributes (employment, student, hours * worked, caregiver). Grouped because SNAP and Medicaid work requirements * share exemption categories (disability, pregnancy, caregiving, student * enrollment). */@Versioning.added(Versions.v0_1)model PersonWorkProfile { /** The person's employment status. */ employmentStatus?: PersonEmploymentStatus;
/** The person's student enrollment status. */ studentStatus?: PersonStudentStatus;
/** Hours worked per week. Relevant to work requirement thresholds. */ hoursWorkedPerWeek?: integer;
/** The person's caregiver status. */ caregiverStatus?: PersonCaregiverStatus;}PersonEmploymentStatus
Section titled “PersonEmploymentStatus”A person's employment status.
| Property | Type | Required | Description |
|---|---|---|---|
value | PersonEmploymentStatusOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "employed_full_time", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonEmploymentStatus.yamltype: objectproperties: value: $ref: PersonEmploymentStatusOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: A person's employment status./** A person's employment status. */@Versioning.added(Versions.v0_1)model PersonEmploymentStatus is Fields.ExtensibleEnumT<PersonEmploymentStatusOptions>;
// #########################################################// PersonStudentStatus// #########################################################
/** Predefined set of student enrollment statuses. * * - `not_enrolled`: Not enrolled. * - `enrolled_half_time`: Enrolled half-time. * - `enrolled_full_time`: Enrolled full-time. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonStudentStatusOptions { not_enrolled, enrolled_half_time, enrolled_full_time, custom,}PersonEmploymentStatusOptions
Section titled “PersonEmploymentStatusOptions”Predefined set of employment statuses.
| Value | Description |
|---|---|
employed_full_time | Employed full-time. |
employed_part_time | Employed part-time. |
self_employed | Self-employed. |
unemployed | Unemployed and seeking work. |
not_in_labor_force | Not in the labor force. |
custom | A caller-defined status. |
"employed_full_time"$schema: https://json-schema.org/draft/2020-12/schema$id: PersonEmploymentStatusOptions.yamltype: stringenum: - employed_full_time - employed_part_time - self_employed - unemployed - not_in_labor_force - customdescription: |- Predefined set of employment statuses.
- `employed_full_time`: Employed full-time. - `employed_part_time`: Employed part-time. - `self_employed`: Self-employed. - `unemployed`: Unemployed and seeking work. - `not_in_labor_force`: Not in the labor force. - `custom`: A caller-defined status./** Predefined set of employment statuses. * * - `employed_full_time`: Employed full-time. * - `employed_part_time`: Employed part-time. * - `self_employed`: Self-employed. * - `unemployed`: Unemployed and seeking work. * - `not_in_labor_force`: Not in the labor force. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonEmploymentStatusOptions { employed_full_time, employed_part_time, self_employed, unemployed, not_in_labor_force, custom,}PersonStudentStatus
Section titled “PersonStudentStatus”A person's student enrollment status.
| Property | Type | Required | Description |
|---|---|---|---|
value | PersonStudentStatusOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "not_enrolled", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonStudentStatus.yamltype: objectproperties: value: $ref: PersonStudentStatusOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: A person's student enrollment status./** A person's student enrollment status. */@Versioning.added(Versions.v0_1)model PersonStudentStatus is Fields.ExtensibleEnumT<PersonStudentStatusOptions>;
// #########################################################// PersonCaregiverStatus// #########################################################
/** Predefined set of caregiver statuses. * * - `none`: Not a caregiver. * - `caregiver_child_under_6`: Caregiver for a child under 6. * - `caregiver_disabled_member`: Caregiver for a disabled household member. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonCaregiverStatusOptions { none, caregiver_child_under_6, caregiver_disabled_member, custom,}PersonStudentStatusOptions
Section titled “PersonStudentStatusOptions”Predefined set of student enrollment statuses.
| Value | Description |
|---|---|
not_enrolled | Not enrolled. |
enrolled_half_time | Enrolled half-time. |
enrolled_full_time | Enrolled full-time. |
custom | A caller-defined status. |
"not_enrolled"$schema: https://json-schema.org/draft/2020-12/schema$id: PersonStudentStatusOptions.yamltype: stringenum: - not_enrolled - enrolled_half_time - enrolled_full_time - customdescription: |- Predefined set of student enrollment statuses.
- `not_enrolled`: Not enrolled. - `enrolled_half_time`: Enrolled half-time. - `enrolled_full_time`: Enrolled full-time. - `custom`: A caller-defined status./** Predefined set of student enrollment statuses. * * - `not_enrolled`: Not enrolled. * - `enrolled_half_time`: Enrolled half-time. * - `enrolled_full_time`: Enrolled full-time. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonStudentStatusOptions { not_enrolled, enrolled_half_time, enrolled_full_time, custom,}PersonCaregiverStatus
Section titled “PersonCaregiverStatus”A person's caregiver status.
| Property | Type | Required | Description |
|---|---|---|---|
value | PersonCaregiverStatusOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "none", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonCaregiverStatus.yamltype: objectproperties: value: $ref: PersonCaregiverStatusOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: A person's caregiver status./** A person's caregiver status. */@Versioning.added(Versions.v0_1)model PersonCaregiverStatus is Fields.ExtensibleEnumT<PersonCaregiverStatusOptions>;
// #########################################################// PersonWorkProfile// #########################################################
/** A grouping of a person's work attributes (employment, student, hours * worked, caregiver). Grouped because SNAP and Medicaid work requirements * share exemption categories (disability, pregnancy, caregiving, student * enrollment). */@Versioning.added(Versions.v0_1)model PersonWorkProfile { /** The person's employment status. */ employmentStatus?: PersonEmploymentStatus;
/** The person's student enrollment status. */ studentStatus?: PersonStudentStatus;
/** Hours worked per week. Relevant to work requirement thresholds. */ hoursWorkedPerWeek?: integer;
/** The person's caregiver status. */ caregiverStatus?: PersonCaregiverStatus;}PersonCaregiverStatusOptions
Section titled “PersonCaregiverStatusOptions”Predefined set of caregiver statuses.
| Value | Description |
|---|---|
none | Not a caregiver. |
caregiver_child_under_6 | Caregiver for a child under 6. |
caregiver_disabled_member | Caregiver for a disabled household member. |
custom | A caller-defined status. |
"none"$schema: https://json-schema.org/draft/2020-12/schema$id: PersonCaregiverStatusOptions.yamltype: stringenum: - none - caregiver_child_under_6 - caregiver_disabled_member - customdescription: |- Predefined set of caregiver statuses.
- `none`: Not a caregiver. - `caregiver_child_under_6`: Caregiver for a child under 6. - `caregiver_disabled_member`: Caregiver for a disabled household member. - `custom`: A caller-defined status./** Predefined set of caregiver statuses. * * - `none`: Not a caregiver. * - `caregiver_child_under_6`: Caregiver for a child under 6. * - `caregiver_disabled_member`: Caregiver for a disabled household member. * - `custom`: A caller-defined status. */@Versioning.added(Versions.v0_1)enum PersonCaregiverStatusOptions { none, caregiver_child_under_6, caregiver_disabled_member, custom,}PersonIncomeSource
Section titled “PersonIncomeSource”A single source of income for a person.
| Property | Type | Required | Description |
|---|---|---|---|
type | PersonIncomeSourceType | Yes | The type of income. |
amount | Money | Yes | The monetary amount per period. |
frequency | Frequency | Yes | The frequency at which the amount is received. |
{ "type": { "value": "wages", "description": "Part-time retail" }, "amount": { "amount": "1200", "currency": "USD" }, "frequency": { "value": "monthly", "description": "" }}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonIncomeSource.yamltype: objectproperties: type: $ref: PersonIncomeSourceType.yaml description: The type of income. amount: $ref: Money.yaml description: The monetary amount per period. frequency: $ref: Frequency.yaml description: The frequency at which the amount is received.required: - type - amount - frequencyexamples: - type: value: wages description: Part-time retail amount: amount: "1200" currency: USD frequency: value: monthly description: ""description: A single source of income for a person./** A single source of income for a person. */@example(Examples.Person.wagesIncome)@Versioning.added(Versions.v0_1)model PersonIncomeSource { /** The type of income. */ type: PersonIncomeSourceType;
/** The monetary amount per period. */ amount: Fields.Money;
/** The frequency at which the amount is received. */ frequency: Fields.Frequency;}PersonIncomeSourceType
Section titled “PersonIncomeSourceType”The type of an income source.
| Property | Type | Required | Description |
|---|---|---|---|
value | PersonIncomeSourceTypeOptions | Yes | The selected value, typed to `T`. |
customValue | string | No | Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). |
description | string | No | Human-readable description or annotation for the value. |
{ "value": "wages", "customValue": "string", "description": "string"}$schema: https://json-schema.org/draft/2020-12/schema$id: PersonIncomeSourceType.yamltype: objectproperties: value: $ref: PersonIncomeSourceTypeOptions.yaml description: The selected value, typed to `T`. customValue: type: string description: |- Caller-defined value when `value` is the `custom` option (or otherwise does not fit a predefined option in `T`). description: type: string description: Human-readable description or annotation for the value.required: - valuedescription: The type of an income source./** The type of an income source. */@Versioning.added(Versions.v0_1)model PersonIncomeSourceType is Fields.ExtensibleEnumT<PersonIncomeSourceTypeOptions>;
// #########################################################// PersonIncomeSource// #########################################################
/** A single source of income for a person. */@example(Examples.Person.wagesIncome)@Versioning.added(Versions.v0_1)model PersonIncomeSource { /** The type of income. */ type: PersonIncomeSourceType;
/** The monetary amount per period. */ amount: Fields.Money;
/** The frequency at which the amount is received. */ frequency: Fields.Frequency;}PersonIncomeSourceTypeOptions
Section titled “PersonIncomeSourceTypeOptions”Predefined set of income source types.
| Value | Description |
|---|---|
wages | Wages or salary from employment. |
self_employment | Self-employment income. |
unemployment | Unemployment benefits. |
social_security | Social Security retirement or disability benefits. |
ssi | Supplemental Security Income. |
child_support | Child support payments. |
alimony | Alimony or spousal support. |
rental | Rental income. |
interest | Interest income. |
dividends | Dividend income. |
pension | Pension or retirement income. |
veterans_benefits | Veterans benefits. |
workers_compensation | Workers' compensation. |
tribal_per_capita | Tribal per capita payments. |
custom | A caller-defined income type. |
"wages"$schema: https://json-schema.org/draft/2020-12/schema$id: PersonIncomeSourceTypeOptions.yamltype: stringenum: - wages - self_employment - unemployment - social_security - ssi - child_support - alimony - rental - interest - dividends - pension - veterans_benefits - workers_compensation - tribal_per_capita - customdescription: |- Predefined set of income source types.
- `wages`: Wages or salary from employment. - `self_employment`: Self-employment income. - `unemployment`: Unemployment benefits. - `social_security`: Social Security retirement or disability benefits. - `ssi`: Supplemental Security Income. - `child_support`: Child support payments. - `alimony`: Alimony or spousal support. - `rental`: Rental income. - `interest`: Interest income. - `dividends`: Dividend income. - `pension`: Pension or retirement income. - `veterans_benefits`: Veterans benefits. - `workers_compensation`: Workers' compensation. - `tribal_per_capita`: Tribal per capita payments. - `custom`: A caller-defined income type./** Predefined set of income source types. * * - `wages`: Wages or salary from employment. * - `self_employment`: Self-employment income. * - `unemployment`: Unemployment benefits. * - `social_security`: Social Security retirement or disability benefits. * - `ssi`: Supplemental Security Income. * - `child_support`: Child support payments. * - `alimony`: Alimony or spousal support. * - `rental`: Rental income. * - `interest`: Interest income. * - `dividends`: Dividend income. * - `pension`: Pension or retirement income. * - `veterans_benefits`: Veterans benefits. * - `workers_compensation`: Workers' compensation. * - `tribal_per_capita`: Tribal per capita payments. * - `custom`: A caller-defined income type. */@Versioning.added(Versions.v0_1)enum PersonIncomeSourceTypeOptions { wages, self_employment, unemployment, social_security, ssi, child_support, alimony, rental, interest, dividends, pension, veterans_benefits, workers_compensation, tribal_per_capita, custom,}