Dial Level

Any and all non-support discussions

Moderators: gerski, enjay, williamconley, Op3r, Staydog, gardo, mflorell, MJCoate, mcargile, Kumba, Michael_N

Dial Level

Postby rixhardson » Thu Jan 01, 2009 9:09 am

I am thinking of using the ViciDial in my call centre, but I was wondering how exactly is the auto dial level calculated when dial method for the campaign is set to any of the ADAPT* methods? Is this known?

I was looking at the sub calculate_dial_level {...} method, but I am not very familiar with the ViciDial yet, and can't really get the "formula" out of it. Does anyone know how the auto dial level is calculated in detail?

Thanks!
rixhardson
 
Posts: 5
Joined: Thu Jan 01, 2009 9:03 am

Postby mflorell » Thu Jan 01, 2009 9:17 am

Here's the original doc that I wrote when I originally created the ADAPT dial methods over 2 years ago(This is the PREDICTIVE.txt doc file that is in every release):


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.
mflorell
Site Admin
 
Posts: 18387
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida

Postby rixhardson » Thu Jan 01, 2009 9:23 am

Thanks! I know I am being a bit pushy now, but ... :-) is there also a mathematical formula that one could get out of this (probably different formulas for each ADAPT* method)?
rixhardson
 
Posts: 5
Joined: Thu Jan 01, 2009 9:03 am

Postby mflorell » Thu Jan 01, 2009 1:48 pm

I did not base it on a pre-set formula, I based it on actual dialing and agent stats and the dial level adjusts according to what is going on with the agents and calls. It's really a lot more complicated than that, but if you want a formal "formula" you would have to take apart the AST_VDadapt.pl script yourself to do so.
mflorell
Site Admin
 
Posts: 18387
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida

Postby rixhardson » Thu Jan 01, 2009 4:06 pm

If I understand the AST_VDadapt.pl correctly, then the subroutine calculate_dial_level is the one that calculates the number of calls that will be made per currently free agents+Dial Level Difference Target based on the stats and data already gathered by other routines, or am I getting it completely wrong?
rixhardson
 
Posts: 5
Joined: Thu Jan 01, 2009 9:03 am

Postby mflorell » Thu Jan 01, 2009 8:52 pm

I think that is an oversimplification, but basically yes.
mflorell
Site Admin
 
Posts: 18387
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida

Postby rixhardson » Fri Jan 02, 2009 9:06 am

Yes, I was intentionally oversimplifying, just to see if I understand the general idea of the code correctly. Thanks!
rixhardson
 
Posts: 5
Joined: Thu Jan 01, 2009 9:03 am


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 70 guests