SCENARIOS / SC-008 / SERVICE QUEUE
SC-008 Service Operations

Service Queue

Bank-branch queueing — tellers, peak periods, and complexity-driven wait times.

Async Tick FSM
λ PEAK QUEUE TELLERS c=3 μ
SC-008 / SCHEMATICService Operations
Clock 60 Hz tick
Update Asynchronous
Service types 8
Priority Standard / Priority / VIP
Regions 5
OVERVIEW

A branch-banking queue model. Branches move through an open / closing / closed cycle and open teller windows as load demands. Customers arrive with a service type, priority class and segment; their service complexity and wait depend on what they came in for and which peak period they hit. Sessions and tickets record how the queue actually resolved, and feedback captures the outcome.

A tunable operations sandbox: region sets branch size and baseline wait, service mix sets complexity, and peak periods concentrate demand. Ideal for studying staffing, queue discipline and SLA trade-offs against a dataset where every wait and handoff is recorded and reproducible.

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
branch ID, region, branch_size, customers_served, active_tellers, current_state One row per branch: region, size, customers served and tellers currently open.
customer ID, region, customer_segment, priority_class, service_type, peak_period, visits, wait_turns, current_state One row per customer: segment, priority, what they need, the peak period they arrived in and turns waited.
teller ID, region, sessions_completed, escalations, branch_id, current_state Tellers spawned by a branch: sessions completed and escalations.
servicesession ID, region, service_type, interactions, resolution, teller_id, current_state One row per service session: type, interaction count and how it resolved.
ticket ID, service_type, priority_class, peak_period, position_changes, customer_id, current_state Queue tickets: service type, priority and how often position changed.
feedback ID, service_type, customer_segment, customer_id, current_state Post-service feedback per customer.
LIVE API

Generated REST endpoints. Also exposed as MCP tools.

POST /scenarios/service-queue/experiments Seed a new world (an experiment)
POST /scenarios/service-queue/experiments/{eid}/run Advance N turns, or request an event
GET /scenarios/service-queue/experiments/{eid}/entities/customer Query customers by service type or wait
GET /scenarios/service-queue/experiments/{eid}/events Append-only event log
GET /scenarios/service-queue/experiments/{eid}/dataset Download the exported dataset
SEMANTIC LAYER

OSI-compatible definition, emitted with the dataset.

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