A simple tool to simulate outbound call campaigns and understand how concurrency and CPS limits affect your calling operations.
-
Install dependencies:
pip install -r requirements.txt
-
Run the simulator:
python3 simulator.py
Simulates phone calls with realistic behavior:
- Ring phase: Calls ring for ~5 seconds before being answered
- Talk phase: Conversations last an average of 10 seconds (configurable)
- Pickup rate: 80% of calls are answered (configurable)
- Respects limits: Honors both CPS (calls per second) and concurrency constraints
Edit simulator.py to customize your simulation:
run_simulation(
total_calls=400_000, # Total number of calls
concurrency_limit=100, # Max simultaneous calls
cps_limit=16, # Max calls started per second
mean_call_duration=10.0, # Average call length (seconds)
mean_ring_duration=5.0, # Average ring time (seconds)
pickup_rate=0.8, # 80% answer rate
)The simulator generates:
- Console statistics: Detailed metrics about your campaign
- Timeline charts: Visual graphs showing concurrency and CPS over time
- Bottleneck analysis: Identifies whether CPS or concurrency is limiting throughput
- Plan outbound campaign capacity
- Understand how many concurrent lines you need
- Optimize CPS limits to minimize campaign duration
- Estimate campaign completion times
Built for Retell AI customers to model voice AI outbound campaigns.