@extends('layouts.app') @section('content')

Network Quality

Reports  ›  Network Quality
{{-- Filters --}}
@include('reports._date-presets')
{{-- KPI tiles --}}
Average RTT
{{ $kpis['avg_rtt'] }}ms
Overall Grade
{{ $kpis['grade'] }}
Worst Recorded
{{ $kpis['max_rtt'] }}ms
Samples
{{ number_format($kpis['samples']) }}
{{-- Trend chart --}}
RTT Trend (avg per hour)
{{-- Problem endpoints --}} @if(!empty($problemEndpoints))
Problem Endpoints — consistently high RTT or unavailable
@foreach($problemEndpoints as $ep) @php $epType = str_ends_with($ep['ext'], 'm') ? 'Mobile' : (str_ends_with($ep['ext'], 'w') ? 'Web' : 'Desk'); $epTypeBg = $epType === 'Mobile' ? 'background:#faf5ff;color:#7c3aed;' : ($epType === 'Web' ? 'background:#ecfeff;color:#0891b2;' : 'background:#f1f5f9;color:#475569;'); @endphp @endforeach
ExtensionAvg RTTMax RTTUnavail %Status
{{ $ep['ext'] }} {{ $epType }} {{ $ep['avg_rtt'] }}ms {{ $ep['max_rtt'] }}ms {{ $ep['unavail_pct'] }}% @if($ep['avg_rtt'] > 200)Poor @elseif($ep['avg_rtt'] > 100)Fair @elseOK@endif
@endif {{-- Degradation events --}} @if(!empty($degradationEvents))
Degradation Events — periods where avg RTT exceeded 100ms
@foreach($degradationEvents as $ev) @endforeach
WhenAvg RTTMax RTTGrade
{{ \Illuminate\Support\Carbon::parse($ev->sampled_at)->format('d M Y H:i') }} {{ round($ev->avg_rtt, 1) }}ms {{ round($ev->max_rtt, 1) }}ms {{ $ev->grade }}
@endif
@endsection @push('scripts') @endpush