Field & Estimate Operations
From adjuster dispatch through repair estimate approval to final settlement — the physical and financial resolution of a claim.
What this group does
Once a claim reaches adjuster_assigned in the Claim Files Hub, these three screens carry it through the operational chain that most people picture when they think of "processing a claim": physically inspecting the loss, pricing the repair, and paying it out. The chain is linear and each screen hands real data to the next.
Each screen is backed by shared TypeScript contracts (ClaimRecord, FieldTaskRecord, EstimateRecord, PayoutRecord) in src/types/insurOps.ts, and every integration action below performs a real read-modify-write on the next screen's persisted record — not a simulated hand-off.
1. Dispatch & Field Calendar
Purpose: Match approved claim files to field adjusters and schedule/track the physical inspection. A split map/schedule view shows both the geographic distribution of losses and the lifecycle status of field tasks.
Key features
- Split map/schedule view — a mock map plots incident locations (pin colour = urgency: red/amber/green) and adjuster coverage areas; the schedule list sits alongside it.
- Smart Matching engine — opened from the "Smart Match" button, candidates are ranked by a combined score: proximity (closer is better), specialty match (claim type → ideal
AdjusterSpecialty, bonus points on match), and workload (fewer open tasks scores higher). The top-ranked candidate is marked with a ✦. - Field task lifecycle —
pending_dispatch → en_route → on_site_inspection → report_submitted, tracked via status badges. - Field Inspection Summary modal — field photos (emoji placeholders), GPS check-in time, preliminary valuation, and field notes for the selected task.
Integration triggers
| Action | What it does |
|---|---|
| Submit Inspection & Push to Estimate | Marks the field task report_submitted; sets the linked ClaimRecord.estimateStep to pending_approval and carries the preliminary valuation forward as the estimate amount — the claim now appears in Estimate Approvals & Limits' review queue. |
| Flag Investigation | Appends the field notes as a new red-flag reason and re-routes the claim to Fraud & Risk Scoring (creates or updates the linked FraudAlertRecord). |
2. Estimate Approvals & Limits
Purpose: Review the repair estimate line by line, compare it against loss photos, and approve or declare a total loss through a multi-tier authority workflow.
Key features
- Itemized line-item grid — Part Name / Category (OEM, Aftermarket, Labor, Paint) / Unit Cost / Labor Hours / Discount Rate / Total, fully editable; each row's total is computed automatically (labor rows are
hours × rate, others use unit cost, both discounted). - Side-by-side photo comparison — the "Compare Photos" modal shows FNOL loss photos (
ClaimRecord.fnolSnapshot.evidenceThumbnails) next to the requested repair line items, so reviewers can sanity-check parts against actual damage. - Multi-tier authority limit workflow — a badge derived automatically from the estimate total:
| Tier | Threshold | Meaning |
|---|---|---|
| Tier 1 · Auto/Desk Approval | < $2,500 | Auto-approved at desk level |
| Tier 2 · Senior Adjuster Approval | $2,500 – $15,000 | Requires senior adjuster sign-off |
| Tier 3 · Director Signature Required | ≥ $15,000 | Requires director signature |
Thresholds live in APPROVAL_TIER_LIMITS (src/types/insurOps.ts); the badge is informational — real authorization is enforced server-side via RBAC capabilities (ins:estimate:review, ins:estimate:approve).
Integration triggers
| Action | What it does |
|---|---|
| Approve & Lock Reserve | Marks the estimate approved, sets ClaimRecord.status to estimate_approved, and locks the reserve amount to the estimate total — the claim now shows up in Settlement & Payouts as an approved estimate awaiting payout. |
| Declare Total Loss (Pert) | Marks the estimate total_loss and rejects the claim's estimate step; also emits a TotalLossPayload that opens a real SalvageAssetRecord in Salvage & Parts Management (reserve price and estimated salvage value are derived from the estimate total). |
3. Settlement & Payouts
Purpose: Compute the net payout from an approved estimate, route it to the right payee and bank, execute the payment, and open a subrogation file when a third party shares fault.
Key features
- Financial settlement ledger —
Approved Repair Total − Deductible − Depreciation − Salvage Retention = Net Payout Amount, computed live as you edit the figures. - Payee & banking routing panel — destination selector (Pay to Insured / Pay Directly to Body Shop, auto-filling the payee name from the Repair & Service Network / Third-Party Beneficiary), IBAN verification badge, Bank Name field, and Payment Method (EFT/Wire, Check, Direct Voucher).
- Payment execution & status pipeline — a queue table with Payout ID, Claim ID, Payee Name, Gross Amount, Deductions, Net Payout, and Bank Status (Pending Execution / Processing / Paid / Failed).
- Pending-estimate hint strip — approved estimates that don't yet have a payout are surfaced in an info banner at the bottom of the screen.
Integration triggers
| Action | What it does |
|---|---|
| Execute Payout | Marks the payout paid, sets the linked ClaimRecord.status to closed and its payoutStep.payoutStatus to paid — the claim now shows as closed in the Claim Files Hub. |
| Initiate Subrogation (conditional) | Only enabled when Third-Party Fault % > 0. Opens a full SubrogationRecord dossier (demand amount = net payout × fault share) and sets payoutStep.subrogationStatus to pending — ready for negotiation in Subrogation & Recovery. |
End-to-end data flow
| Source screen | Action | Target screen / record |
|---|---|---|
| Claim Files Hub | Adjuster assigned | Claim enters Dispatch & Field Calendar's queue |
| Dispatch & Field Calendar | Submit Inspection & Push to Estimate | ClaimRecord.estimateStep.approvalStatus = pending_approval → Estimate Approvals queue |
| Dispatch & Field Calendar | Flag Investigation | FraudAlertRecord opened/updated → Fraud & Risk Scoring |
| Estimate Approvals & Limits | Approve & Lock Reserve | ClaimRecord.status = estimate_approved → Settlement & Payouts queue |
| Estimate Approvals & Limits | Declare Total Loss | SalvageAssetRecord created → Salvage & Parts Management (see Recovery & Analytics) |
| Settlement & Payouts | Execute Payout | ClaimRecord.status = closed → visible as closed in Claim Files Hub |
| Settlement & Payouts | Initiate Subrogation | SubrogationRecord created → Subrogation & Recovery (see Recovery & Analytics) |