SCENARIOS / SC-010 / SUBMISSION INTAKE
SC-010 Insurance Underwriting

Submission Intake

The commercial submission-to-bind funnel — extraction, NIGO chase, referral, quote, bind.

Async Tick FSM
BROKER SUBMIT UW QUOTE BIND REFERRAL NIGO DECLINE
SC-010 / SCHEMATICInsurance Underwriting
Clock tick
Update Asynchronous
Lines Property / GL / WC / Auto / Cyber
Handling AI 70% / Manual 30%
UW cap 4 referrals
OVERVIEW

A commercial-lines intake funnel. A submission is extracted (by an AI agent or manually), reviewed for good order, and chased back to the broker when not-in-good-order — a multi-round NIGO loop. Once clean it escalates to a capacity-capped underwriter, gets rated against a line-of-business premium base, and is quoted, then bound, declined or lost. Appetite gates entry: a cyber risk is far likelier to fall out of appetite than property.

Models the real friction of underwriting: incomplete submissions, referral capacity and appetite. The NIGO chase and backpressured referral queue make cycle time emergent rather than assumed, so you can study where submissions stall and what automation in extraction would buy.

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
submission ID, region, line_of_business, handling_mode, channel, appetite, nigo_rounds, premium_estimate, broker_id, underwriter_id, current_state One row per submission: line of business, AI-vs-manual handling, appetite, NIGO rounds, premium estimate and broker/underwriter references.
broker ID, region, submissions_sent, nigo_queries, quotes_received, submissions_bound, current_state One row per broker: region and the running tally of sent, queried, quoted and bound submissions.
underwriter ID, line_of_business, open_referrals, referrals_taken, referrals_cleared, current_state One row per underwriter: line, current open referrals (capped) and lifetime taken/cleared counts.
LIVE API

Generated REST endpoints. Also exposed as MCP tools.

POST /scenarios/submission-intake/experiments Seed a new world (an experiment)
POST /scenarios/submission-intake/experiments/{eid}/run Advance N turns, or request an event
GET /scenarios/submission-intake/experiments/{eid}/entities/submission Query submissions by state or line
GET /scenarios/submission-intake/experiments/{eid}/events Append-only event log
GET /scenarios/submission-intake/experiments/{eid}/dataset Download the exported dataset
SEMANTIC LAYER

OSI-compatible definition, emitted with the dataset.

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