SCENARIOS / SC-004 / CLAIMS FNOL
SC-004 Insurance Claims

Claims FNOL

First notice of loss through settlement, with capacity-capped regional adjusters.

Async Tick FSM
FNOL TRIAGE INVEST SETTLE DENY ADJUSTERS COASTAL MOUNTAIN IDLE
SC-004 / SCHEMATICInsurance Claims
Clock tick
Update Asynchronous
Perils Hurricane / Flood / Wildfire / Quake
Adjuster cap 4 open cases
Regions 4
OVERVIEW

A property-and-casualty claims process from first notice of loss to settlement. A claim is triaged, validated against coverage, and assigned to a regional adjuster whose caseload is capped — assignment is a first-match message that the adjuster can defer when full, with the claim retrying later. Reserves develop during investigation, drawn from a peril-and-severity dependency chain, before the claim settles, is denied, or is withdrawn.

A faithful model of a staffing bottleneck. Because the coastal region receives a disproportionate share of claims against a thin adjuster pool, a queue emerges there while other regions idle — the kind of capacity-versus- demand imbalance you can quantify directly from the exported tables. Built to study throughput, routing and where to add headcount.

TRAITS
Async
Independent, event-driven timelines
Tick
Discrete fixed-step time
FSM
Entities are finite-state machines
SCHEMA

Linked tables with guaranteed referential integrity.

TABLECOLUMNSDESCRIPTION
claim ID, region, peril, severity, intake_channel, reserve_estimate, policyholder_id, adjuster_id, current_state One row per claim: region, peril and severity, intake channel, developing reserve, and references to the policyholder and assigned adjuster.
adjuster ID, region, open_cases, cases_accepted, cases_closed, current_state One row per adjuster: region, current open caseload (capped) and lifetime accepted/closed counts.
policyholder ID, region, claims_filed, claims_settled, claims_denied, current_state One row per policyholder: region and the running tally of filed, settled and denied claims.
LIVE API

Generated REST endpoints. Also exposed as MCP tools.

POST /scenarios/claims-fnol/experiments Seed a new claims floor
POST /scenarios/claims-fnol/experiments/{eid}/run Advance N turns, or request an event
GET /scenarios/claims-fnol/experiments/{eid}/entities/claim Query claims by state, region or peril
GET /scenarios/claims-fnol/experiments/{eid}/events Append-only event log
GET /scenarios/claims-fnol/experiments/{eid}/dataset Download the exported dataset
SEMANTIC LAYER

OSI-compatible definition, emitted with the dataset.

# claims-fnol.osi.yaml — emitted automatically
semantic_model:
  name: "claims-fnol"
  source: "duckdb://claims-fnol.db"
  entities:
    - name: claim
      primary_key: id
  dimensions:
    - name: state
      type: categorical
    - name: t
      type: time
  measures:
    - name: row_count
      agg: count
    - name: active
      agg: sum
      filter: "state = 'ACTIVE'"