Skip to main content

Overview

The SimulationConfig object defines all parameters needed to configure and launch a bank simulation. It controls the number of resources, arrival patterns, service characteristics, and operational limits.

Schema

num_tellers
integer
default:3
Number of teller windows available to serve customers simultaneously.Constraints:
  • Must be a positive integer
  • Recommended range: 1-10 for optimal performance
arrival_config
object
Configuration object defining customer arrival patterns.
service_config
object
Configuration object defining service time characteristics.
max_simulation_time
float
default:28800
Maximum simulation time horizon in seconds. Simulation will terminate when this time is reached.Default: 28800 seconds (8 hours)Common values:
  • 3600 - 1 hour
  • 14400 - 4 hours
  • 28800 - 8 hours (full business day)
  • 43200 - 12 hours
max_queue_capacity
integer
default:100
Maximum number of customers that can wait in queue simultaneously. Customers arriving when the queue is at capacity will be rejected.Constraints:
  • Must be a positive integer
  • Recommended: Set based on physical space constraints
Note: When queue reaches capacity, new arrivals are rejected and counted in the customers_rejected metric.

Example Configuration

Basic Configuration

{
  "num_tellers": 3,
  "arrival_config": {
    "arrival_rate": 1.0,
    "arrival_dist": "exponential",
    "priority_weights": [0.1, 0.3, 0.6]
  },
  "service_config": {
    "service_mean": 5.0,
    "service_dist": "exponential",
    "service_stddev": 1.0
  },
  "max_simulation_time": 28800,
  "max_queue_capacity": 100
}

High-Traffic Scenario

{
  "num_tellers": 5,
  "arrival_config": {
    "arrival_rate": 2.5,
    "arrival_dist": "exponential",
    "priority_weights": [0.2, 0.3, 0.5]
  },
  "service_config": {
    "service_mean": 3.5,
    "service_dist": "exponential",
    "service_stddev": 0.8
  },
  "max_simulation_time": 14400,
  "max_queue_capacity": 150
}

Low-Traffic Scenario

{
  "num_tellers": 2,
  "arrival_config": {
    "arrival_rate": 0.5,
    "arrival_dist": "exponential",
    "priority_weights": [0.1, 0.2, 0.7]
  },
  "service_config": {
    "service_mean": 6.0,
    "service_dist": "exponential",
    "service_stddev": 1.5
  },
  "max_simulation_time": 28800,
  "max_queue_capacity": 50
}

Validation Rules

All configuration parameters are validated on simulation start. Invalid configurations will return a 400 Bad Request error.
Common validation errors:
  • priority_weights must sum to 1.0
  • num_tellers must be at least 1
  • arrival_rate and service_mean must be positive
  • max_simulation_time must be greater than 0
  • max_queue_capacity must be a positive integer

Performance Considerations

System Utilization: The ratio of arrival rate to service capacity (ρ = λ/(μ×c)) should typically be less than 1.0 to avoid unbounded queue growth, where:
  • λ = arrival_rate
  • μ = 1/service_mean
  • c = num_tellers
ScenarioTellersArrival RateService MeanUtilization
Low20.56.0~45%
Medium31.05.0~60%
High52.53.5~87%
Stress32.02.5~97%

Build docs developers (and LLMs) love