PREDICTIVE Summary and Overview 2006-08-29 *** PREDICTIVE OUTBOUND CALLING FUNCTIONALITY WAS ADDED IN THE 2.0.1 RELEASE *** This will outline the methods used to predictively dial outbound calling campaigns in VICIDIAL with the ADAPT dial methods. This is a description of the first versions of the Predictive/Adaptive dialing algorithms used in VICIDIAL. As the need arises we will create more versions of different algorithms in the future. The gathering of data to analyze: In order to properly analyze calling trends and adapt to the current list that is being called we need to first gather a lot of data to analyze. The first set of data we want to gather is the recent queue and agent statistics for each campaign. This information is gathered by the AST_VDauto_dial.pl script as it runs through each loop every 2.5-3.0 seconds. This data is used only for Blended CLOSER campaigns doing Predictive dialing and for the timeonVDADall realtime campaign reports. The data gathered in this script are all averages of the last 15 and 60 seconds of agent and queue activity: 1. The average number of agents that are logged into the campaign across one minute 2. The average number of calls waiting to be transferred to an agent across one minute 3. The average number of agents waiting for calls across one minute 4. The difference between the waiting calls and ready agents across one minute This number if positive means that on average more agents were waiting for calls than calls waiting for agents in the last minute for that campaign. The second set of data to gather is dropped call information across several intervals as well as faster agent and queue call statistics. This information will be gathered by the actual AST_VDadapt.pl script that will also be the script actually changing the dial level when the predictive/adaptive dial method is activated. Once a second this script will gather: 1. The average number of agents that are logged into the campaign for the last 15 seconds 2. The average number of calls waiting to be transferred to an agent for the last 15 seconds 3. The average number of agents waiting for calls for the last 15 seconds 4. The difference between the waiting calls and ready agents for the last 15 seconds Once every 15 seconds this script will: 1. Calculate the average dial level differential for the last 15 seconds 2. Apply the campaign's adaptive_dl_diff_target 3. Apply the campaign's adaptive_intensity setting 4. Calculate the new desired dial_level 5. Check the drop rate cap method(HARD_LIMIT, TAPERED, AVERAGE) 6. If drop rate is over the limit the proper equation is used to figure out new dial_level difference. 7. Change the dial level for the campaign to the new suggested dial level Once a minute this script will gather: 1. Total drops and total calls for the campaign since midnight 2. Total drops and total calls for the campaign in the past hour 3. Total drops and total calls for the campaign in the past half hour 4. Total drops and total calls for the campaign in the past five minutes 5. Total drops and total calls for the campaign in the past one minute Also, the drop percentage is calculated and stored in the vicidial_campaign_stats table. The settings in the campaign detail screen: Dial Method - This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift(as defined by call_time selected for campaign) and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. Auto Dial Level - This is where you set how many lines VICIDIAL should use per active agent. zero 0 means auto dialing is off and the agents will click to dial each number. Otherwise VICIDIAL will keep dialing lines equal to active agents multiplied by the dial level to arrive at how many lines this campaign on each server should allow. Available Only Tally - This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N. Drop Percentage Limit - This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO. Dropped calls percentage is measured out of the total number of Answered calls for the campaign for the day. Maximum Adapt Dial Level - This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0. Latest Server Time - This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling. Adapt Intensity Modifier - This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods. Dial Level Difference Target - This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods. To use adaptive dialing you must have the ADMIN keepaliveAST_VDadapt.pl script in your crontab running every minute: ### keepalive script for VICIDIAL predictive script * * * * * /usr/share/astguiclient/ADMIN_keepalive_AST_VDadapt.pl NOTE: With Predictive dialing, the dial_level will never drop below 1.0.