Head (before)

Questions on simulation layout and getting desired KPIs — Simul8 Community Forum

Head (after)

Ask the Simul8 Community

Content (before)

Questions on simulation layout and getting desired KPIs

Created at
in Community support


I am working on a healthcare simulation for outpatient services. Our business wants to simulate the flow of patients in outpatient clinics based on theoretical schedules we could use.

We are using a lot of assumptions on timing, but generally the patient schedule (appointments) and staff schedules (resources) will be correct.

I have used a schedule sheet for patient arrivals, and a schedule sheet for resource schedules, all read from excel from 'VL on reset'

The layout is below, but having some issues.

I need to calculate my queue size between 8am and 6pm, with all related stats. I currently use a seperate waiting area (queue) for each outpatient service, but the reality is the patients sit in 3 - 4 different waiting area, but I couldn't figure out an easy way to route the patients from the waiting area to the correct treatement area.

  1. How can I calculate my queue (waiting area) stats based on a particular time period, on each day?
  2. Is there a way to keep the resources on hand even after their shift ends if there are more patients to see? Right now the staff leave and then the patient sits in queue overnight, which is not accurate.
  3. I need to calculate patient waiting times, where can I add this KPI?
  4. How can I calculate patients in each clinic by hour? A clinic will be a set of activities in the layout below, along with the waiting area for that clinic.
  5. Staff also have virtual appointments, this is time where I need to show the staff as busy and unable to see patients to help patients in the clinic. I couldn't think of a way to tie up staff and show them as busy during these appointments and calculate their utilization. The patients that have virtual appointments instead arrive ontime and bypass the waiting areas and wait in their treatment queue (with highest priority). However this will make the queue size KPIs inaccurate. How else can I simulate this part?

Please see the diagram below, is there a better way I could have laid this out and routed the patients accurately?



  • Was this answer helpful?


    Hi there, I recently started using SIMUL8, and might have some tips for your questions
    1. When clicking on graphs of any Object, you'll see the results being presented across Simulation time, and you can then check waiting time for a particular time period. For more specific results though, you can use Time Interval results: https://www.simul8.com/support/help/doku.php?id=features:time_interval_results
    2. Yes, you need to select "Allow tasks to complete" under Shift Behaviour: https://www.simul8.com/support/help/doku.php?id=features:shift_work_patterns:behavior
    3. If your patients are the Work items, you can use Transaction logs by Area: https://www.simul8.com/support/help/doku.php?id=features:detailed_transaction_log_by_area to check how much time each patient stayed in an area, e.g. time between entering and exiting the Waiting Queue
    4. Again Time Interval results might be ideal for this
    5. If I was you, I'd create a separate process for virtual appointments and assign my Staff resources there.

    Do these help at all?
    Oscar B)

  • BetweenComments (1)

  • Was this answer helpful?


    Another way that I use is that I have logging functions that I can use in VL and insert where ever I need statistics. I have found that if what you are doing in somewhat complex, it is easier to create a log file of events (e.g., entry/exit to workcenters and queues) and to post process this outside of SIMUL8. I use the open source statistical package R which allows me to do any processing and then create tables/charts within a report since it used RMarkdown for creating output.

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Attach file
Attach image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file

Content (after)