-"; } if ($percent >= 95) { return "$percent%"; } if ($percent >= 80) { return "$percent%"; } return "$percent%"; } ?>

SLA by Client

0 AND ticket_client_id = $client_id AND $period_query" )); $ticket_count = intval($stats['ticket_count']); if ($ticket_count == 0) { continue; } $any_rows = true; $response_met = intval($stats['response_met']); $response_missed = intval($stats['response_missed']); $resolution_met = intval($stats['resolution_met']); $resolution_missed = intval($stats['resolution_missed']); $response_judged = $response_met + $response_missed; $response_percent = $response_judged ? round($response_met / $response_judged * 100, 1) : null; $resolution_judged = $resolution_met + $resolution_missed; $resolution_percent = $resolution_judged ? round($resolution_met / $resolution_judged * 100, 1) : null; $avg_time_to_respond = is_null($stats['avg_response_seconds']) ? '-' : secondsToTime($stats['avg_response_seconds']); // Resolution time is measured in clock time actually spent - // paused spells are excluded, which is what the SLA judged on $avg_time_to_resolve = '-'; $resolved_minutes_total = 0; $resolved_count = 0; $sql_resolved = mysqli_query($mysqli, "SELECT ticket_id FROM tickets WHERE ticket_sla_id > 0 AND ticket_client_id = $client_id AND ticket_resolved_at IS NOT NULL AND $period_query"); while ($resolved_row = mysqli_fetch_assoc($sql_resolved)) { $resolved_minutes_total += getTicketSlaConsumedMinutes($resolved_row['ticket_id']); $resolved_count++; } if ($resolved_count > 0) { $avg_time_to_resolve = secondsToTime(($resolved_minutes_total / $resolved_count) * 60); } ?>
Client Tickets Response met Response missed Response % Resolution met Resolution missed Resolution % Avg time to respond Avg clock to resolve
No tickets with an SLA in this period.
Time to respond is wall-clock from ticket creation. Time to resolve counts only business hours with the SLA clock running, so paused time is excluded.