Chapter 5 Modeling Detailed Operations A Simple Call Center System With lower priority than the sales calls Aslı Sencer 2 Balking A call is balked, i.e., gets a busy line sound on the phone and rejected from the call center system, if all trunk lines are busy. 1) After creation of a call, use a Queue and Seize blocks where the trunk line resource capacity =26 and queue capacity=0. 2) After creation of a call, use a Decide module to test NR(TrunkLine)<MR(TrunkLine) NR(TrunkLine): Number of busy resources of TrunkLine MR(TrunkLine): Capacity of resource TrunkLine Aside recall: NQ(Rework Process.Queue): Number in queue of the Process Module named Rework Process. Aslı Sencer 3 Arrival Cutoff Logic No more calls are allowed to enter the call center after 6 p.m., say after 600 min. of the simulation time. Thus no more calls should be created after 600 min. Aslı Sencer 4 Priority Queues Sales Calls are processed by Sales Resource. Order Status calls may ask to be processed by Sales Resource as well. Then they enter a ‘shared queue’ with Sales calls, where they have lower priority than the Sales Calls. 1) Use Process Sales Call.Queue Aslı Sencer 5 Priority Queues 2) Default queue ranking rule= FIFO. Others are LIFO, Lowest attribute value, Highest attribute value. Generate attribute: Sales Call Priority (Default value=0) =0, if it is a Sales Call; =1, if it is an Order Status Call that seizes a Sales Resource. Data Module Queue: Process Sales Call.Queue Type= Lowest Attribute value Attribute=Sales Call Priority Aslı Sencer 6 Undefined Simulation Duration Stop call arrivals at 18:00 by using Arrival Cutoff Logic; And continue simulation until all the existing calls at 18:00 are processes Use Assign to generate a counter WIP: Work in Process WIP:=WIP+1 when a call can seize a Trunk Line WIP:=WIP-1 When a call departs from the system Use Run Set up: Replication Length=Infinite Termination Condition = TNOW>=600 &&Total WIP= =0 (Hint: Use Expression builder by right clicking on the cell.) Aslı Sencer 7 Nonstationary Call Rates Model 5.2 Aslı Sencer 8 Nonstationary Call Rates Model 5.2 Average call rates differ during the day due to a nonstationary Poisson Process. Schedule Data Module:: Define average call rates in each hour of a day, name it Arrival Schedule. Create Call Arrivals: Time between arrivals: Type=Schedule Schedule Name=Arrival Schedule Aslı Sencer 9 Dynamic Resource Capacity 1) Sales Resource has dynamic capacity. Schedule Data Module: Define dynamic resource capacities and name it Sales Schedule. Resource Data Module: Resource name= Sales resource Type=Based on Schedule Schedule Name= Sales Schedule Dynamic capacity resources have identical skills, schedules! Aslı Sencer 10 Personal Working Schedules 2) Each Tech. Support Resource has his/her working schedule. Use Schedule and Resource Data modules similar to part (1) Aslı Sencer 11 Multi Skilled Resources The members of the Technical Support resource have multiple skills. Use Set Data Module to define these resource sets. Product 1={Charity, Noah, Anna, Sammy, Molly} Product 2={Tierry, Adrian, Emma, Anna, Sammy} Product 3={Shelly, Jenny, Christie, Anna, Sammy, Molly} Use Process Product Type 1 Tech. Call Resource type=Set, Set name=Product 1 Selection Rule=Preferred Order, i.e., their order in the set defines their preference in getting seized. Save attribute=Tech Agent Index, attribute holds the index of Aslı Sencer 12 the selected resource. Sets • Group similar objects (resources, sequences, pictures, etc.) together under a single name • Define: SETS data module from Basic Processes • Refer to objects in a Set by their original name and by a set index Product 1={Charity, Noah, Anna, Sammy, Molly} In Arena, Product 1 (2) = Noah. • An object can be a member of more than one Set (or not be in any Sets) Ex: Anna and Sammy are common in all resource sets • There can be sets of sets Aslı Sencer 13 Sets • Resource Sets – Allows dissimilar resources to be grouped – Entities can choose among members of a Resource Set according to preference rules. – Can animate individual Resources in a Set (state, picture) — unlike Dynamic-Capacity Resources • Sets of entity pictures (can access via part-type number) • In our model: Resource sets: Product 1, Product 2, Product 3 Counter set: Rejected Calls with ten members indicating the number of rejected calls in each hour Aslı Sencer 14 Trace the number of rejected calls in each hour • Statistic data module: Generate 10 counters: Period i Rejected Calls, i=1,2,…,10 • Set data module: Generate Counter set Rejected Calls with ten members • Record module Type=count, Value=1, Record into Set=Check Counter set name=Rejected Calls Set Index=AINT((TNOW/60)+1) Ex: TNOW=90min., 90/60+1=2.5, AINT(2.5)=2 So, Rejected Calls(2)=Period 2 Rejected Calls will be incremented by 1. Aslı Sencer 15 Selecting a Specific Resource Some technical calls require back office research and return call. A call is processed by the same resource member the next time it is processed again. Seize Block: Seize Tech Agent Type 1 Selection Rule=Specific Member Attribute=Tech Agent Index, is created in Process Product Type 1 Tech. Call to keep the index of the previous agent used. Aslı Sencer 16 Adding Staffing and Resource Costs Model 5.3 Current staff costs Sales staff altogether=45 hr/day x $20/hr x 5days/wk=4,500/wk Tech Support staff 8 people x 8hr/day/person x $18/hr x 5days/wk=$5,760/wk 1 person x 8hr/day/person x $20/hr x 5days/wk=$800/wk 2 people x 8hr/day/person x $22/hr x 5days/wk=$1,760/wk Total Cost=$12,820/wk (Model 5.2) Aslı Sencer 17 Adding variable number of staff Add both sales and technical support during 12:0016:00. Variable: New Sales, might be any value Schedule: Sales schedule Since New Sales variable will be used in the dynamic capacity, Graphical editor can not be used! Value (Capacity), Duration=1,2 Value (Capacity), Duration=5+New Sales,1 Aslı Sencer 18 Costs of the new resources • New Sales staff cost= $17/hr x 20hrs/wk = $340/wk/sales-staff • New Type 1 techs (Larry) cost= New Type 2 techs (Moe) cost= New Type 3 techs (Curly) cost= $16/wk/tech-staff x20 hrs/wk = $320/wk/tech-staff • New Type all (Hermann) cost=$18/wk/tech-all-staff (capable of all types) $18/wk/tech-all-staff x20 hrs/wk = $360/wk/tech-all-staff • Trunk Line cost=$98/wk/trunk line Aslı Sencer 19 Expressions of Model 5.3 • Use Expressions Data Module New Resource Cost = New Sales x 340 + (New Tech 1+New Tech 2+New Tech 3) x 320 + New Tech All x 360 + 98 x MR(Trunk Line) Aslı Sencer 20 Variables Data Module • A data module in the Basic Process panel. • Some parameters of the model can be set as a global variable so that if they has to be modified in the future it will be easier. Ex: New Sales, New Tech1,2,3,All are variables • Can be a scalar, vector, or 2-dim. matrix, but any entity can change the value of a variable during simulation. • Allow re-use of the same number(s) in different places • Cannot involve arithmetic expressions, entity attributes, other Variables, or distributions. Aslı Sencer 21 Expressions Data Module • A data module in the Advanced Process panel. • Can be a scalar, vector, or 2-dim. Matrix., but the form of the expression cannot be changed during the simulation • Aim is to use the same expression in several places in the model • A fixed “formula” or function that can involve arithmetic, entity attributes, other Variables, and distributions — very general • Expressions do not store values, name of the expression corresponds to a mathematical expression and its value is returned Aslı Sencer 22 Adding Costs due to Poor Customer Service • People have limits for waiting on the line 1 min. for Sales calls; 2 min. for Order Status calls 3 min. for Technical calls; • Beyond these limits, system incurs a cost 81.8 cent/min. for Sales calls; 34.6 cent/min. for Order Status calls 36.8cent/min. for Technical calls; Note: Simulation is run for a day. To estimate the weekly total costs, daily costs are multiplied by 5! So we have $4.09, $1.73, $1.84 as weekly costs per min. excess waiting. Aslı Sencer 23 Expressions of Model 5.3 • Use Assign Module Excess Technical Wait Time= Excess Technical Wait Time + MAX(ENTITY.WAITTIME-3,0) • Entity.Waittime: Built in Arena attribute that holds the total waiting times of an entity (also the delays in Wait state) Check Costing box in Run>Set up>Project parameters Aslı Sencer 24 Statistic Data Module • New Resource Cost= Excess Sales Wait Time x 4.09 + Excess Status Wait Time x 1.73 + Excess Technical Wait Time x 1.84 + 12,820 Type of statistic=Output Output statistics are computed only at the end of the simulation and shown in the reports under User Specified. • Percent Rejected= 100 x NC(Total Rejected Calls) / NC(Attempted Calls) NC is a bult in Arena function that returns the value of the counter. Aslı Sencer 25 Simulation Replication Data • Project replication parameters – Run/Setup dialog – Replication Parameters tab – 5 Replications of 660 min. each (No stopping condition) – Four options for Initialization Between Replications: • Initialize system (yes), initialize statistics (yes) – 5 independent and identical replications – no calls carried over – Reports for each day separately • Initialize system (yes), initialize statistics (no) – 5 independent replications – no calls carried over – Cumulative summary reports (repl. 1, repl. 1-2, repl. 1-3, …, repl. 1-5) • Initialize system (no), initialize statistics (yes): Selected – 5 continuous days (660 x 5 min.) – calls carried over – Reports are by replication (after each day) • Initialize system (no), initialize statistics (no) – 5 continuous days (660 x 5 min.) – calls carried over – Cumulative summary reports (repl. 1, repl. 1-2, repl. 1-3, …, repl. 1-5) Aslı Sencer 26