The Claim document (packages/shared/src/claim.ts) is the contract between the generator, the stores, the claim screens, the chat tools and every embedding host. This is its input shape: what a host or the generator must supply. Fields marked required must be present; everything else is filled with an empty, honest default when the document is parsed, so every consumer still receives a complete claim.
Money is a plain number in the claim's currency. Dates are YYYY-MM-DD strings. "Required" inside an optional section means required when that section is supplied. See The Claim contract for why it is shaped this way.
This page is generated by docusaurus/scripts/generate-reference.ts from the source it describes. Edit the source, then run npm run docs:reference.
Top-level sections
Sections in detail
Required. Claim reference, e.g. CP-AUT-260381
Type: string.
lineOfBusiness
Required.
Type: auto · property · workers_compensation · general_liability.
title
Required. Banner title, e.g. "Priya Natarajan v Halden Logistics Ltd"
Type: string.
status
Required.
Type: filed · under_review · approved · paid · denied · closed · reopened · reclosed.
currency
Required.
Type: GBP · USD.
claimant
Required.
| Field | Type | Required | Notes |
|---|
claimant.name | string | yes | |
claimant.type | individual · organisation | yes | |
claimant.dateOfBirth | date (YYYY-MM-DD) | | |
claimant.contact | object | | |
claimant.contact.phone | string | | |
claimant.contact.email | string | | |
claimant.contact.address | object | | |
claimant.contact.address.line1 | string | | |
claimant.contact.address.line2 | string | | |
claimant.contact.address.city | string | | |
claimant.contact.address.region | string | | |
claimant.contact.address.postalCode | string | | |
claimant.contact.address.country | string | | |
claimant.relationshipToPolicyholder | string | | Default "". |
claimant.representation | object | | |
claimant.representation.firm | string | | |
claimant.representation.contact | string | | |
claimant.wage | object | | |
claimant.wage.weeklyWage | number | | |
claimant.wage.occupation | string | | |
claimant.wage.employer | string | | |
claimant.wage.hoursPerWeek | number | | |
claimant.injury | object | | |
claimant.injury.bodyPart | string | | |
claimant.injury.natureOfInjury | string | | |
claimant.injury.severity | minor · moderate · severe · catastrophic | | |
claimant.injury.description | string | | |
claimant.returnToWork | object | | |
claimant.returnToWork.status | not_applicable · off_work · light_duties · returned · unable | | |
claimant.returnToWork.expectedDate | date (YYYY-MM-DD) | | |
claimant.returnToWork.actualDate | date (YYYY-MM-DD) | | |
claimant.returnToWork.restrictions | string | | |
incident
Required.
| Field | Type | Required | Notes |
|---|
incident.dateOfLoss | date (YYYY-MM-DD) | yes | |
incident.timeOfLoss | string | | |
incident.dateReported | date (YYYY-MM-DD) | yes | |
incident.dateReceived | string | | Default "". |
incident.occurrenceNumber | string | | Default "". |
incident.location | object | | |
incident.location.description | string | | Default "". |
incident.location.address | object | | |
incident.location.address.line1 | string | | |
incident.location.address.line2 | string | | |
incident.location.address.city | string | | |
incident.location.address.region | string | | |
incident.location.address.postalCode | string | | |
incident.location.address.country | string | | |
incident.description | string | yes | Narrative of what happened |
incident.cause | string | | Default "". |
incident.policeReference | string | | |
incident.weather | string | | |
incident.witnesses | object[] | | |
incident.witnesses[].name | string | | |
incident.witnesses[].contact | string | | |
incident.witnesses[].statement | string | | |
policy
Required.
| Field | Type | Required | Notes |
|---|
policy.policyNumber | string | yes | |
policy.insuranceType | string | | Insurance Types: health, life, auto, property, liability … Default "". |
policy.policyType | string | | Policy Types: individual, group, commercial, fleet … Default "". |
policy.insurer | string | | Default "". |
policy.policyholder | object | yes | |
policy.policyholder.name | string | yes | |
policy.policyholder.type | individual · organisation | yes | |
policy.policyholder.contact | object | | |
policy.policyholder.contact.phone | string | | |
policy.policyholder.contact.email | string | | |
policy.policyholder.contact.address | object | | |
policy.policyholder.contact.address.line1 | string | | |
policy.policyholder.contact.address.line2 | string | | |
policy.policyholder.contact.address.city | string | | |
policy.policyholder.contact.address.region | string | | |
policy.policyholder.contact.address.postalCode | string | | |
policy.policyholder.contact.address.country | string | | |
policy.policyholder.dateOfBirth | date (YYYY-MM-DD) | | |
policy.effectiveFrom | date (YYYY-MM-DD) | yes | |
policy.effectiveTo | date (YYYY-MM-DD) | yes | |
policy.state | active · lapsed · cancelled · expired · pending_renewal | yes | |
policy.policyClass | string | | Policy Class: rating class / occupation class / property class Default "". |
policy.coverages | object[] | | |
policy.coverages[].code | string | | |
policy.coverages[].name | string | | |
policy.coverages[].limit | number or null | | Default null. |
policy.coverages[].deductible | number or null | | Default null. |
policy.coverages[].description | string | | |
policy.exclusions | string[] | | Default []. |
policy.endorsements | string[] | | Default []. |
policy.additionalInsured | string[] | | Default []. |
policy.scheduleItems | object[] | | |
policy.scheduleItems[].item | string | | |
policy.scheduleItems[].description | string | | |
policy.scheduleItems[].sumInsured | number | | |
policy.premium | object | | |
policy.premium.annual | number | | |
policy.premium.paidToDate | number | | |
policy.premium.outstanding | number | | |
policy.premium.paymentFrequency | string | | |
policy.conditions | string[] | | Policy conditions that could affect this claim (e.g. notification within 30 days) Default []. |
scenario
Short slug naming the demo scenario this claim exists to exercise
Type: string.
restricted
Type: boolean.
product
Product hierarchy shown under KEY FACTS
Type: string[].
client
| Field | Type | Required | Notes |
|---|
client.id | string | | |
client.name | string | | |
client.abbreviation | string | | |
client.programme | string | | The programme / scheme this claim is handled under |
client.contact | object | | |
client.contact.phone | string | | |
client.contact.email | string | | |
client.contact.address | object | | |
client.contact.address.line1 | string | | |
client.contact.address.line2 | string | | |
client.contact.address.city | string | | |
client.contact.address.region | string | | |
client.contact.address.postalCode | string | | |
client.contact.address.country | string | | |
client.handlingRules | string[] | | |
client.slaDays | object | | |
client.slaDays.acknowledge | number | | |
client.slaDays.firstContact | number | | |
client.slaDays.reserveReview | number | | |
client.authorityLimit | number | | Handler authority limit set by this client |
loss
| Field | Type | Required | Notes |
|---|
loss.type | string | | |
loss.description | string | | |
loss.estimatedValue | number | | |
loss.items | object[] | | |
loss.items[].description | string | | |
loss.items[].category | string | | |
loss.items[].amount | number | | |
loss.items[].coverageCode | string | | |
diagnosis
| Field | Type | Required | Notes |
|---|
diagnosis.icd10 | object[] | | |
diagnosis.icd10[].code | string | | |
diagnosis.icd10[].description | string | | |
diagnosis.drgCode | string | | |
diagnosis.treatingProvider | string | | |
diagnosis.treatmentPlan | string | | |
diagnosis.prognosis | string | | |
diagnosis.maximumMedicalImprovement | date (YYYY-MM-DD) | | |
adjuster
| Field | Type | Required | Notes |
|---|
adjuster.id | string | | |
adjuster.firstName | string | | |
adjuster.lastName | string | | |
adjuster.team | string | | |
adjuster.teamLeader | string | | |
adjuster.dateAssigned | date (YYYY-MM-DD) | | |
adjuster.authorityLimit | number | | |
statusHistory
| Field | Type | Required | Notes |
|---|
statusHistory[].status | filed · under_review · approved · paid · denied · closed · reopened · reclosed | | |
statusHistory[].date | date (YYYY-MM-DD) | | |
statusHistory[].note | string | | |
dates
| Field | Type | Required | Notes |
|---|
dates.made | string | | Default "". |
dates.received | string | | Default "". |
dates.assigned | string | | Default "". |
dates.instruction | string | | Default "". |
dates.closed | date (YYYY-MM-DD) | | |
dates.denied | date (YYYY-MM-DD) | | |
dates.reopened | date (YYYY-MM-DD) | | |
financials
| Field | Type | Required | Notes |
|---|
financials.reserves | object | | |
financials.reserves.indemnity | number | | |
financials.reserves.expense | number | | |
financials.reserves.legal | number | | |
financials.paid | object | | |
financials.paid.indemnity | number | | |
financials.paid.expense | number | | |
financials.paid.legal | number | | |
financials.byCoverage | object[] | | |
financials.byCoverage[].coverageCode | string | | |
financials.byCoverage[].reserve | number | | |
financials.byCoverage[].paid | number | | |
financials.byCoverage[].recovered | number | | |
financials.byCoverage[].firstPaymentDate | date (YYYY-MM-DD) | | |
financials.byCoverage[].lastPaymentDate | date (YYYY-MM-DD) | | |
payments
| Field | Type | Required | Notes |
|---|
payments[].id | string | | |
payments[].date | date (YYYY-MM-DD) | | |
payments[].type | indemnity · expense · legal · reimbursement · reversal | | |
payments[].coverageCode | string | | |
payments[].payee | string | | |
payments[].amount | number | | |
payments[].status | pending · issued · cleared · voided | | |
payments[].method | string | | |
payments[].description | string | | |
payments[].approvedBy | string | | |
payments[].approvedDate | date (YYYY-MM-DD) | | |
reimbursements
| Field | Type | Required | Notes |
|---|
reimbursements[].id | string | | |
reimbursements[].provider | string | | |
reimbursements[].invoiceReference | string | | |
reimbursements[].serviceStart | date (YYYY-MM-DD) | | |
reimbursements[].serviceEnd | date (YYYY-MM-DD) | | |
reimbursements[].billed | number | | |
reimbursements[].ppoDiscount | number | | |
reimbursements[].allowed | number | | |
reimbursements[].paid | number | | |
reimbursements[].billStatus | received · in_review · paid · disputed · unpaid | | |
recovery
| Field | Type | Required | Notes |
|---|
recovery.subrogation | object | | |
recovery.subrogation.potential | boolean | | |
recovery.subrogation.target | string | | |
recovery.subrogation.amountSought | number | | |
recovery.subrogation.status | string | | |
recovery.salvage | object | | |
recovery.salvage.potential | boolean | | |
recovery.salvage.estimatedValue | number | | |
recovery.amountRecovered | number | | |
involvements
| Field | Type | Required | Notes |
|---|
involvements[].id | string | | |
involvements[].role | claimant · defendant · policyholder · insurer · solicitor · repairer · physician · hospital · pharmacy · expert · witness · court · employer · broker · contractor · loss_adjuster · other | | |
involvements[].name | string | | |
involvements[].organisation | string | | |
involvements[].reference | string | | |
involvements[].contact | object | | |
involvements[].contact.phone | string | | |
involvements[].contact.email | string | | |
involvements[].contact.address | object | | |
involvements[].contact.address.line1 | string | | |
involvements[].contact.address.line2 | string | | |
involvements[].contact.address.city | string | | |
involvements[].contact.address.region | string | | |
involvements[].contact.address.postalCode | string | | |
involvements[].contact.address.country | string | | |
involvements[].status | active · settled · closed | | |
involvements[].notes | string | | |
serviceProviders
| Field | Type | Required | Notes |
|---|
serviceProviders[].id | string | | |
serviceProviders[].type | string | | |
serviceProviders[].name | string | | |
serviceProviders[].registrationNumber | string | | NPI / licence / company number |
serviceProviders[].contact | object | | |
serviceProviders[].contact.phone | string | | |
serviceProviders[].contact.email | string | | |
serviceProviders[].contact.address | object | | |
serviceProviders[].contact.address.line1 | string | | |
serviceProviders[].contact.address.line2 | string | | |
serviceProviders[].contact.address.city | string | | |
serviceProviders[].contact.address.region | string | | |
serviceProviders[].contact.address.postalCode | string | | |
serviceProviders[].contact.address.country | string | | |
serviceProviders[].onPanel | boolean | | |
litigation
| Field | Type | Required | Notes |
|---|
litigation.status | none · pre_litigation · proceedings_issued · defended · trial_listed · settled · judgment | | |
litigation.proceedings | object[] | | |
litigation.proceedings[].claimNumber | string | | |
litigation.proceedings[].type | string | | |
litigation.proceedings[].claimant | string | | |
litigation.proceedings[].defendant | string | | |
litigation.proceedings[].court | string | | |
litigation.proceedings[].issuedDate | date (YYYY-MM-DD) | | |
litigation.proceedings[].nextHearing | date (YYYY-MM-DD) | | |
litigation.proceedings[].nextHearingType | string | | |
litigation.appearances | object[] | | |
litigation.appearances[].date | date (YYYY-MM-DD) | | |
litigation.appearances[].type | string | | |
litigation.appearances[].outcome | string | | |
litigation.counsel | string | | |
investigation
| Field | Type | Required | Notes |
|---|
investigation.coverage | confirmed · pending · disputed · declined | | |
investigation.liability | accepted · denied · split · pending · not_applicable | | |
investigation.liabilitySplit | number | | Percentage attributed to the insured, when split |
investigation.employment | confirmed · pending · not_applicable | | |
investigation.companyRecords | received · requested · not_applicable | | |
investigation.medical | received · requested · not_applicable | | |
investigation.findings | object[] | | |
investigation.findings[].date | date (YYYY-MM-DD) | | |
investigation.findings[].summary | string | | |
investigation.outstanding | string[] | | |
riskFlags
| Field | Type | Required | Notes |
|---|
riskFlags[].code | LATE_REPORTING · PRIOR_CLAIMS_HISTORY · INCONSISTENT_STATEMENTS · DUPLICATE_INVOICE · PROVIDER_WATCHLIST · POLICY_INCEPTION_PROXIMITY · SOCIAL_MEDIA_CONTRADICTION · UNUSUAL_TREATMENT_PATTERN · REPAIR_COST_ABOVE_MARKET · NO_POLICE_REPORT | | |
riskFlags[].severity | low · medium · high | | |
riskFlags[].description | string | | |
riskFlags[].raisedOn | date (YYYY-MM-DD) | | |
riskFlags[].source | string | | |
compliance
| Field | Type | Required | Notes |
|---|
compliance.jurisdiction | string | | |
compliance.regulatoryDeadlines | object[] | | |
compliance.regulatoryDeadlines[].name | string | | |
compliance.regulatoryDeadlines[].due | date (YYYY-MM-DD) | | |
compliance.regulatoryDeadlines[].met | boolean or null | | |
compliance.sanctionsCheck | object | | |
compliance.sanctionsCheck.performed | boolean | | |
compliance.sanctionsCheck.date | date (YYYY-MM-DD) | | |
compliance.sanctionsCheck.flagged | boolean | | |
compliance.auditNotes | string[] | | |
feedback
| Field | Type | Required | Notes |
|---|
feedback.satisfactionScore | number or null | | |
feedback.complaints | object[] | | |
feedback.complaints[].date | date (YYYY-MM-DD) | | |
feedback.complaints[].summary | string | | |
feedback.complaints[].status | open · resolved | | |
diary
| Field | Type | Required | Notes |
|---|
diary[].id | string | | |
diary[].date | date (YYYY-MM-DD) | | |
diary[].author | string | | |
diary[].type | note · call · email · letter · meeting · system | | |
diary[].content | string | | |
tasks
| Field | Type | Required | Notes |
|---|
tasks[].id | string | | |
tasks[].dueDate | date (YYYY-MM-DD) | | |
tasks[].category | string | | |
tasks[].name | string | | |
tasks[].owner | string | | |
tasks[].status | open · done · overdue | | |
tasks[].critical | boolean | | |
documents
| Field | Type | Required | Notes |
|---|
documents[].id | string | | |
documents[].date | date (YYYY-MM-DD) | | |
documents[].direction | inbound · outbound | | |
documents[].type | string | | |
documents[].title | string | | |
documents[].from | string | | |
documents[].to | string | | |
documents[].summary | string | | What the document says — the chat reads this in place of the file |
| Field | Type | Required | Notes |
|---|
mi.initialReported | boolean | | |
mi.resolutionReported | boolean | | |
mi.costsReported | boolean | | |
| Field | Type | Required | Notes |
|---|
metadata.generatedBy | string | | Default "". |
metadata.generatedAt | string | | Default "". |
metadata.taxonomyVersion | string | | Default "". |
metadata.scenarioNotes | string | | What this claim is designed to demonstrate in Claimpilot Chat Default "". |
metadata.demo | object | | |
metadata.demo.hint | string | | One sentence shown as a floating hint on the claim screen, e.g. "Try Validate policy — cover lapsed a week before the loss." |
metadata.demo.showcases | string[] | | Capability ids this claim is built to demonstrate |
metadata.demo.gotchas | string[] | | The traps planted in the record, in plain words, so a presenter knows what the assistant should find |