SCENARIOS / SC-009 / POLICY SERVICING
SC-009 Insurance Ops

Policy Servicing

High-volume service requests against a growing policy book and a fixed human team.

Async Tick FSM
POLICY BOOK REQUEST AUTO 90% RESOLVED REPS
SC-009 / SCHEMATICInsurance Ops
Clock tick
Update Asynchronous
Auto-resolve ~90%
Rep queue cap 1 in progress
Book growth ~2% / turn
OVERVIEW

A policy-servicing operation under load. The in-force book grows as policies self-spawn each turn, raising service requests that resolve automatically around ninety percent of the time. The remainder escalate to a small, fixed team of service reps whose queue is capped — escalation is a first-match message with backpressure, so an over-full rep defers and the request retries. Handle time is drawn from a long-tailed distribution.

Quantifies the automation dividend. With the book expanding and headcount flat, the share of work deflected by automation is exactly what keeps the rep queue from blowing up — a lever you can vary and measure against the exported handle-time and queue-depth columns.

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
policy ID, region, product_line, requests_raised, requests_completed, current_state One row per policy: region, product line and the count of requests it has raised and completed.
servicerequest ID, region, product_line, request_type, resolution_path, requester, channel, handle_minutes, policy_id, rep_id, current_state One row per request: type, auto-vs-human resolution path, channel, handle time, and references to the policy and assigned rep.
servicerep ID, region, queue_depth, cases_taken, cases_closed, current_state One row per rep: region, current queue depth (capped) and lifetime taken/closed counts.
LIVE API

Generated REST endpoints. Also exposed as MCP tools.

POST /scenarios/policy-servicing/experiments Seed a new world (an experiment)
POST /scenarios/policy-servicing/experiments/{eid}/run Advance N turns, or request an event
GET /scenarios/policy-servicing/experiments/{eid}/entities/servicerequest Query requests by resolution path
GET /scenarios/policy-servicing/experiments/{eid}/events Append-only event log
GET /scenarios/policy-servicing/experiments/{eid}/dataset Download the exported dataset
SEMANTIC LAYER

OSI-compatible definition, emitted with the dataset.

# policy-servicing.osi.yaml — emitted automatically
semantic_model:
  name: "policy-servicing"
  source: "duckdb://policy-servicing.db"
  entities:
    - name: policy
      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'"