4. Running a report

To successfully run a report, your system administrator must have configured the correct queues in use on your system. You will find them in the drop-down menu on top of the page. See Section 18.3, “Configuring queues” for details on how to do it.

4.1. Quick activity reports

The quickest way to obtain an analysis is by selecting the queue you want to analyze and then click on the appropriate time frame below the "Quick activity reports" title on the home page.

The defined time frames are the following:

  • Today, Yesterday, The day before yesterday The day in question, starting from midnight to midnight
  • Last day, Last 7 days, Last 30 days, Last 90 days The exact time period, starting from the current hour backwards.

The system will then show the "Answered calls" page, like here below.

./Pictures/image016.jpg

On top of the page, you can see a multi-tab menu; by clicking on it you can select which part of the report you are going to see. To go back to the home page, click on the "Home" tab. You can also see all the analyses at once by clicking on the "All" label (this is mostly useful when printing the results to paper).

4.2. Agent report

If the user has the appropriate grants, s/he can restrict the analysis to a single agent. This way one can see exactly what one agent did.

To use this feature, select the agent you want to filter by and click on the desired time period in the "Agent report" section of the Home Page.

If you are running an agent-restricted report, you should know that:

  • For inbound traffic, no calls are shown in the "Lost calls" page. This is because an inbound call that has been lost has never been connected to any agent, so there is no way to attribute them to one single agent.
  • All outbound calls placed by the agent (answered or not) are shown
  • Agent statistics are shown only for the given agent
  • As always, activity is restricted by queue - no activity but the one happening on selected queues is shown.

4.3. Custom reports

Custom reports are available by clicking on "Run custom report" from the Home Page.

A new menu will appear, asking for custom report parameters:

./Pictures/image018b-customrep.png

The meaning is as follows:

  • Queue is the queue or composite queue you want to analyze;
  • Call filtering criteria can be specified by clicking on the title to open it (see below);
  • Start and end date let you select the period you want to analyze, with five-minute resolution;
  • File is the queue_log file you want to analyze. You may want to change it to run reports on a different Asterisk server or on an older archived version of your queue_log. If you run QM on the same machine as Asterisk, the file name should be already correct. Make sure the file is readable to your servlet container. If you use MySQL storage or clusters, the file will look something like "sql:P001" or "cluster:*"
  • Time zone offset is to be set if the Asterisk server that created the queue_log file was in a different time zone from the one you are using.
  • Join multi-stint calls lets you join together the pieces of the same call if it has been processed by more than one Asterisk queue (see Section 12, “Multi-stint calls” )

By clicking on the "Run custom report" button, you can run the analysis, which output is the same as the "Quick activity report" and will be explained below.

4.3.1. Call search criteria

A number of criteria can be specified to better zoom in on a given set of calls.

  • Agent is a specific agent code
  • Location is a given location
  • Supervision lets you search only for agents that have the current user as their supervisor
  • Outcome lets you select a call outcome
  • Asterisk call-id search by substring on the Asterisk’s UniqueID of the call
  • Caller search by substring on the Caller-ID
  • Wait duration lets you specify the call waiting duration
  • Call duration lets you specify a minimum and maximum for the call duration
  • Disconnection cause lets you pick a disconnenction reason for the call
  • Enter position lets you enter a minimum and maximum enter position (note: this is not tracked for every call)
  • Number of attempts lets you select a given number of attempts
  • DNIS lets you select calls that have a specific DNIS (if tracked)
  • IVR choice lets you select calls that have a specific IVR choice (if tracked)
  • Server for clustered systems, lets you select only calls that were processed on a given server

Note that:

  • Criteria involving a full-text search (e.g. Caller) can optionally support full Regular Expressions; if they start by "^" they will be processed as Regular Expressions. E.g. entering "^\d+$" means "find all fields which value is made up only of numeric characters, having at least one character".
  • Criteria involving an integer range can optionally be left blank; leaving the miminum value blank is the same as entering "0", while leaving the maximum value blank equals to "any number".
  • Invalid criteria are discared and are not used as rectriction. The list of applied criteria is shown on the "Common header" that is available on every page.
  • If multiple criteria are input at the same time, they are AND-ed together - that is only calls that suit all given criteria will be shown.

Search criteria are ignored for real-time reports.

When a report is run with criteria set, all statistics are computed "as if" those were the only calls available; so e.g. agent sessions may yeld different results from what you would get with no criteria.

4.4. Understanding results: Common header

On the top of each report, a box will be shown showing:

  • Which queue or queues were considered for the analysis
  • The time period the analysis refers to
  • Whether the report is about the whole of the queue or is filtered by some criteria
  • The total number of calls processed for this analysis, divided into answered and unanswered ones.
  • If running in multi-stint mode, the total number of calls that were joined together

There is also a box showing a number of analyses you can export in CSV format.

When running in report mode, QM distinguishes between calls or agent sessions that are complete and calls or agent sessions that are "ongoing" at the moment the report was taken.

Ongoing calls or sessions are usually marked in red and counted separately, as data for them is not definitive and will appear differently if you run further reports.

You should also note that a call that has not been answered yet will be counted as "Ongoing unanswered", though it may well be answered in the nearest future by one of your agents.

In any case, if you need to see calls in progress or whether an agent is logged in, you should rely on the Real-time panels and not on the reports.

4.5. Exporting data from reports

It is possible to export data in Microsoft Excel, Comma-Separated Values (CSV) or XML right from most QueueMetrics panels.

./Pictures/image020.jpg

By clicking on the Excel, CSV or XML icons below each report, it is possible to save exactly the same report as seen on screen and then edit it using your favourite number-crunching software.

You must be logged in to download the reports, as you see them on screen.

If you are looking for a way to export a full analysis to one file, you should probably have a look at Section 15, “Automating statistics download: the ROBOT profile”.

4.6. Understanding results: Answered calls

The answered calls section deals with calls that were correctly handled by agents.

The top panel shows:

  • How many calls were handled;
  • The average call length (i.e. time the caller spends talking to an operator);
  • The maximum and minimum call lengths recorded for the given time period;
  • The total call length (for all calls on all operators);
  • The average call waiting time (i.e. the time a caller was waiting on a queue before being connected to an operator).
  • The minimum and maximum call waiting times on record
  • The total waiting time for all handled calls.
  • The average initial position of the call in the queue
  • The minimum and maximum initial queue positions that have been detected
  • The queue position coverage: as this information is not tracked for all calls, this ratio shows the average number of calls that had queue position record.

You can see that the information above is reported twice: on the left for all calls, including incomplete ones, and on the right for complete calls only, i.e. excluding calls that were started before or terminated after the given time frame.

./Pictures/image022.jpg

4.6.1. Agents on queue

This report shows which agents have been available for the given queue, how many calls each one handled and the percentage of all calls that each one handled.

If calls are connected directly to a phone terminal, QM tries its best to show the corresponding terminal, usually in the format used by Asterisk, like "SIP/303" to signify a SIP phone whose number is 303.

If you connect to H.323 telephones via the OH323 module, the recorded channel names have no meaning and do not refer to a specific terminal; that’s why all OH323 calls are grouped together under the label "OH323/-".

4.6.2. Service level agreement

This report shows the distribution of call waiting times. It shows how many calls were answered within a given time frame, usually 120 seconds in 10 second increments (the time frame and increment can be modified by the administrator, if needed - see Section 18.12, “Configuring system preferences” ).

You get a percentage of how many calls were answered within X seconds; the percentage includes calls answered in a shorter time frame and therefore grows with time.

The "delta" value you see is the absolute increment, expressed in number of calls, between each time frame.

This metric is computed only on answered calls, i.e. ignoring lost calls . If your SLA is defined in terms of taken and lost calls, see the corresponding metrics "Inclusive SLA" on Section 4.7.4, “Inclusive Service Level Agreement”.

4.6.3. Disconnection causes

This report shows the reason why calls were terminated; this means that:

  • The agent hung up, or
  • The caller hung up, or
  • The call was transferred outside the queue and the agent was freed again, or
  • The call was ongoing at the time the report was run.

4.6.4. Transfers

This graph shows how many calls were transferred to each extension in the given time frame. This lets you know who is handling exception calls.

[Note]Note

when a call is transferred outside the queue system, its length is no more recorded by the queue subsystem; therefore you only get to see the length of the call while the agent was on line.

./Pictures/image024.jpg

4.6.5. Answered calls by queue

If more than one queue is in use for the report, this graph shows the relative magnitude of each queue.

Inbound queues are marked with the symbol ./Pictures/image025.jpg while outbound queues use the symbol ./Pictures/image026.jpg .

4.6.6. Answered calls by direction

If more than one queue is in use for the report, this graph shows the relative magnitude of inbound versus outbound calls made.

4.6.7. Answered calls, by stints

This graph counts the distribution of multi-stint calls on selected queues. If multi-stint mode is not enable, all calls will have only one stint.

4.6.8. Queue position

This graph shows the initial queue position that the calls had when they joined the queue. For example, a queue position of 1 means that a call was first in line, of 5 means that a call had four other calls in line before being answered. As the logging of queue positions is a bit inconsistent, some calls might be missing it ("Untracked")

4.6.9. IVR selection

This graph shows the distribution of IVR selections available in the calls processed.

This must be tracked manually in Asterisk - See "Configuring Asterisk for QueueMetrics" below.

4.6.10. DNIS used

This graph shows the distribution of DNIS lines available in the calls processed.

This must be tracked manually in Asterisk - See "Configuring Asterisk for QueueMetrics" below.

4.6.11. Detail of answered calls

This page shows the detail of answered calls. See Section 5, “Showing call details”.

4.7. Understanding results: Unanswered calls

Unanswered calls are calls that were lost, i.e. the caller could not connect to an agent. This usually means that either the caller hung up, fed up with waiting, or the queue system decided to discharge the caller, maybe sending him to voicemail or another queue.

[Note]Note

if you run a report with an agent filter, or a supervisor filter, or a location filter, the number of lost calls in the report is usually zero, showing just outgoing calls, if any. This is because the agent is specified only for taken calls and not lost ones, so not deleting them all would show, e.g., the taken call data for one single agent and the lost calls for all of the queue. You can override this behaviour through a configuration switch if you feel this is not correct for you.

The Unanswered calls page looks like the following picture:

./Pictures/image028.jpg

The report shows:

  • How many calls were lost;
  • The average waiting time before disconnection;
  • The average queue position at disconnection (i.e. how many calls the queue had to dispatch before connecting the caller to an operator).
  • The minimum and maximum wait times
  • The minimum and maximum queue position at disconnect.
  • The average, minimum and maximum initial queue position, and the coverage given for this computation

As with answered calls, this report is computed twice; the version on the left is for all calls monitored, while the version on the right only holds data for calls that were complete at the moment the analysis was run.

4.7.1. Disconnection causes

This report shows the relative magnitude of disconnection causes, that are:

  • The caller hung up, or
  • The queue timed out and discharged the caller (if this feature is enabled by the queue configuration - see Section 20, “Configuring Asterisk for QueueMetrics”), or
  • The caller exited the queue by pressing a key (if this feature is enabled by the queue configuration).

4.7.2. Unanswered calls, by queue

If more than one queue is in use for the report, this graph shows the relative magnitude of each queue.

4.7.3. Unanswered calls - distribution by length

This report is functionally equivalent to "Service level agreement" in the Answered calls section (see Section 4.6.2, “Service level agreement”), but is computed on lost calls. It shows how many calls were hung up within a given time frame, usually 120 seconds in 10 second increments (the time frame and increment can be modified by the administrator, if needed - see Section 18.12, “Configuring system preferences”).

You get a percentage of how many calls were lost within X seconds; the percentage includes calls lost in a shorter time frame and therefore grows with time.

The "delta" value you see is the absolute increment, expressed in number of calls, between each time frame.

4.7.4. Inclusive Service Level Agreement

The inclusive SLA corresponds to the Service Level Agreement metrics shown on Section 4.6.2, “Service level agreement”, with the difference that it is computed taking into consideration both answered and unanswered calls.

4.7.5. Unanswered calls by key press

If there are any calls that are were set unanswered because the caller pressed a key to exit the queue, this graph shows which keys were pressed and how many calls were terminated for that reason.

4.7.6. Unanswered calls, by stints

This graph tells the stint distribution of unanswered calls. It corresponds to the graph called "Answered calls, by stints".

4.7.7. All calls, by stints

This graph tells the stint distribution of all processed calls. It corresponds to the sum of the graphs called "Answered calls, by stints" and "Unanswered calls, by stints"

4.7.8. Enter queue positions

This graph shows the initial queue position that the calls had when they joined the queue. For example, a queue position of 1 means that a call was first in line, of 5 means that a call had four other calls in line before being answered. As the logging of queue positions is a bit inconsistent, some calls might be missing it ("Untracked")

4.7.9. Enter queue positions for all calls

This graph shows the initial queue positions for both answered and unanswered calls.

4.7.10. IVR selection

This graph shows the distribution of IVR selections available for lost calls.

This must be tracked manually in Asterisk - See "Configuring Asterisk for QueueMetrics" below.

4.7.11. IVR selection for all calls

This graph shows the distribution of IVR selections for all calls (taken and lost) available in the report.

4.7.12. DNIS used

This graph shows the distribution of DNIS lines that lead to lost calls.

This must be tracked manually in Asterisk - See "Configuring Asterisk for QueueMetrics" below.

4.7.13. DNIS used, for all calls

This graph shows the distribution of DNIS lines for all calls (taken and lost) available in the report.

4.7.14. Details of unanswered calls

This page shows full details of unanswered calls Section 5.3, “Detail of unanswered calls”.

4.8. Understanding results: Area code report

If the Caller*ID is present, it is possible to break down both answered and unanswered calls to specific area codes by clicking on the "Area code analysis" button.

./Pictures/image030.jpg

By selecting a number of caller id digits to search upon and a starting digit position, you get a number of statistics grouped by area codes.

This report gives an immediate check of the geographical origin of calls handled by your call center.

It is possible to export all the reports as needed.

4.9. Understanding results: Inbound ACD call attempts

When running an inbound call center, it is very important to determine the reason why a call is delayed: are your clients refusing to answer? Did they forget to log off before leaving their workplace? The inbound ACD call attempts metrics try to answer to these questions.

As these metrics are not usually recorded by Asterisk, you’ll have to patch and recompile your Asterisk system in order to gather them - see the section Section 20.6, “Enabling ACD call attempts recording on Asterisk 1.0 and 1.2”. If you do not do so, the metrics presented here will always appear zeroed out. With Asterisk 1.4, this feature should be automatically enabled with no need to patch the source code.

./Pictures/image032.jpg

This page shows the following pieces of information:

  • How many agent attempts were made, i.e. how many times the agent’s telephones were rung in total
  • The average number of attempts that were necessary for a taken call; the minimum, maximum and total attempts made that resulted in a taken call
  • The average number of attempts that were necessary for a lost call; the minimum, maximum and total attempts made that resulted in a lost call

4.9.1. ACD attempts by terminal

This graph breaks down agent attempts by the agent that was called. The following pieces of information are extracted for each agent:

  • N. of lost agent attempts (i.e. the agent was called but not responding)
  • The average ring time for lost attempts
  • The total ringing time for lost calls
  • The number of taken agent attempts (i.e. calls answered)
  • The average ring duration for taken calls
  • The total ring time for taken calls

4.9.2. ACD attempts by queue

The following metrics are extracted and broken down by queue:

  • N. of lost agent attempts (i.e. the agent was called but not responding)
  • The average ring time for lost attempts
  • The total ringing time for lost calls
  • The number of taken agent attempts (i.e. calls answered)
  • The average ring duration for taken calls
  • The total ring time for taken calls

4.10. Understanding results: Call distribution

The call distribution report shows when calls were handled, when calls were lost and the average wait times broken down by period.

All percentages are calculated on the call class they belong to, i.e. a 50% of "Unanswered calls" on one day means that 50% of all unanswered calls for the period happened during that day, not that 50% of calls were lost.

For each metrics, the total number of calls is shown, together with average, minimum and maximum times. Graphs are plotted on the total number of calls broken down and on the averages.

It is possible to change the interval in the Hourly graphs, so that you can have reports break down calls e.g. by half-hours or hour quarters, by changing a value in the QueueMetrics master configuration file.

./Pictures/image034.jpg

4.10.1. Call distribution per day

Calls, both taken and lost, are shown per specific day. Days with no events are not shown. The total numbers of call lengths, wait time for answered calls and wait time for unanswered calls are plotted for each day. Sales and contacts are also shown on a daily basis.

The Schedule Adherence report shows the number of distinct agents that were detected during the given period. This makes it possible to detect the number of different people that had been working on a given moment.

The Queue Length report shows the average length of the queue for each period, giving minimums and maximums. The Steps computation shows how fast each queue progresses during the period, expresses in steps per hour. Note: giving a meaning to the Queue Length reports may be hard in the case of composite queues.

./Pictures/image036.jpg

4.10.2. Call distribution per hour

Events are shown on a 24-hour distribution. If this graph appears to be incorrect, you have to run a "Custom report" setting the time zone accordingly (see Section 4.3, “Custom reports”).

The total numbers of call lengths, wait time for answered calls and wait time for unanswered calls, together with sales and contacts, are plotted for each hourly interval. The size of hourly intervals can be controlled by the default.hourly_slot configuration property, making it possible to run this reports based on 30-minute, 20-minute or 15-minute intervals.

./Pictures/image038.jpg

4.10.3. Call distribution per day of week

This report shows the weekly behaviour of your queues. The longer the analysis period, the more significant its results will be.

The total numbers of call lengths, wait time for answered calls and wait time for unanswered calls are plotted for each day of the week.

4.11. Understanding results: Agent activity

Agent activity refers to the behaviour of Asterisk defined agents. If you connect you queues straight to telephone terminals, this section will always be empty.

Each agent may be flagged as being a member of four priority groups:

  • Main: the agents usually answering the queue
  • Spill: the agents answering the queue if all "Main" agents are busy or unavailable
  • Wrap: the agents answering the queue if all "Main" and "Spill" agents are busy or unavailable
  • Undefined: this agent is not a member of any priority group for this queue

This feature is useful if priority groups are used in the queue configuration. If they are not used, just assign all agents to "Main" for each queue.

If an unknown agent appears on a queue, it will be marked as "Undefined", written in red.

Agent names are written in blue and are clickable, if you click on them in any of the graphs, you will be lead to a popup that detail the logon and pause history for that agent.

As a default, QueueMetrics will show and count an agent session if and only if the agent handled at least one call during this session. This may not be what you want when you use pause codes - an agent may log on and immediately go on pause to do some back-end activities. If this is the case, you should set the configuration option default.useRawAgentSessions to true to see all agent sessions.

./Pictures/image040.jpg

The report shows:

  • How many agents were available for the queue. To be considered available, an agent must have logged in and taken at least one call.
  • How much time all agents have been available
  • The average agent available time
  • The minimum and maximum agent session durations
  • The total billable and not billable pause times

4.11.1. Agent availability

This graph shows which agents were available during the specified time frame and the percentage of agents’ available time each one cumulated.

This time is calculated per all queues any agent is a member of, as the act of logging on is in general for the whole system and not specific to one single queue.

For each agent, the total time on pause - if any - is computed and broken down as "Billable" or "Not billable" - see the section on Pause Codes.

4.11.2. Session and pause duration

For each agent, the total number of sessions and pauses is computed (session time is already deducted of pause time). For both sessions and pauses, an average length is computed.

The "Pause percentage" is how much time an agent was on pause compared to available time.

The "Pauses per session" computes how many pauses - on average - each agent makes for each log-in session.

These metrics should be considered according to your call center rules on pauses and time-out.

./Pictures/image042.jpg

4.11.3. Answered calls for selected queues

This graph shows who of your agents answered calls for the queues you selected. The number of calls, together with total and average call durations are computed accordingly.

4.11.4. Answered calls by service groups

This graph show which priority levels handled calls for your queue. This shows whether your main line is staffed enough to handle the load of incoming calls.

4.11.5. Session details

By clicking on the "Detail" button, a new page is shown, detailing each agent session that was recorded.

./Pictures/image044.jpg

For each agent session, the start and end times are recorded, together with the total duration in seconds.

If the agent logs on via the call back function, the designated call back extension is shown.

The number of pauses and the total pause time in seconds is shown.

The "Srv" column tells you on which server an agent was working in case you set up a cluster of Asterisk servers.

It is possible to sort the table for each title, in either descending and ascending order. To do this, click once on the desired title for descending sort, and twice for ascending sort. Once the table is sorted, an arrow symbol will appear close to the title, so you know on which column it was sorted last. As the sorting is done on the client machine, it may take a while with very large tables.

4.11.6. Pause activity details

This table shows the specific pauses that each agent took and the pause code that was entered for each pause. It also shows whether the pause taken was considered to be billable or non-billable.

./Pictures/image046.jpg

4.11.7. Agent history popup

If you click on an agent’s name, a new popup will appear with full history for that agent. You can scroll in it as needed by using arrow keys or the wheel of your mouse.

./Pictures/image048.jpg

Agent sessions are written in black, while pauses are detailed in grey under each session they were taken under. For each pause its activity code is shown (if any).

4.12. Understanding results: Call outcomes

If your agents are entering Pause codes or Call outcomes, the "Outcomes" tab will let you report on the information they just entered.

./Pictures/image050.jpg

The top panel will display an overview of the situation, showing:

  • How much billable time there has been on this system, broken down by ACD/call time ("agent available time") and billable activities (agent on pause)
  • The total non billable time (e.g. lunch, breaks)
  • The total number of Contacts, Qualified Contacts and Sales, as defined by call outcome codes
  • The Sales per Hour (SPH), Qualified Contacts per hour (QCPH) and Contacts per Hour (CPH) ratios
  • The Conversion index, that is the percentage of sales over the total number of sales and contacts.

Further down the page, you can find details explaining Billable and Non-billable activities, with average, minimum and maximum session durations, and a percentage on all activities of the same kind.

./Pictures/image052.jpg

The Detailed Agent Report will show, for each agent:

  • The Available (ACD) time, as an absolute value and a percentage of its total time logged on
  • The Billable time, as an absolute value and a percentage of its total time logged on
  • The Non-Billable time, as an absolute value and a percentage of its total time logged on
  • The number of Sales And Contacts the agent had (if a sale is counted a s both a Sale and a Contact, it’s counted only once as a Sale)
  • The Sales per Hour (SPH) and Contacts per Hour (CPH) ratios for this agent
  • The Conversion ratio, that is the percentage of sales over the total number of sales and contacts.

4.12.1. How are Call Outcomes calculated?

The idea is that a call can be a Contact, or a specialized contact that is a Qualified Contact, or a specialized Qualified Contact that is a Sale

This is needed because all the SPH, CPH and QCPH are calculated not on the totals of each class, but on sums of that class and generic types, like:

S = Number of Sales
C = Number of Contacts
Q = Number of Qualified Contacts

CPH = C / (logon time - pause time)
QCPH = Q / (logon time - pause time)
SPH = S / (logon time - pause time)

Conversion indexes are calculated as:

CO% = S / C
QC% = S / Q