@php $snapshot = $evaluation->scoreSnapshot; $benchmarkSeconds = (int) ($report['timing']['benchmark_seconds'] ?? 450); $totalSeconds = (int) ($report['timing']['total_seconds'] ?? 0); $deltaSeconds = $totalSeconds - $benchmarkSeconds; $deltaLabel = app(\App\Services\FireFitScoringService::class)->formatDelta($deltaSeconds); $isUnderBenchmark = $deltaSeconds < 0; @endphp

{{ strtoupper($evaluation->candidate->full_name) }} | Fire Fit Circuit Evaluation Report

Generated {{ now()->format('M d, Y h:i A') }} · Evaluation #{{ $evaluation->id }}

@if (auth()->user()?->hasAnyRole(['super_admin', 'admin', 'proctor'])) Back to Session @elseif (auth()->user()?->hasRole('candidate')) Back to My Reports @endif @if (auth()->user()?->hasAnyRole(['super_admin', 'admin', 'proctor'])) @php $candidateEmail = $evaluation->candidate->email ?? null; @endphp @if ($candidateEmail)
@if ($reportSent) Report Sent ✓ @else {{-- Buttons: hidden while sendReport is executing --}}
Send to Candidate
{{-- Loading state: visible only while sendReport is running --}} Sending... @endif
@else No Email on File @endif @endif Print / Save PDF

Total Score

{{ $report['totals']['total_score'] ?? 0 }} / 20

Tier

{{ $report['totals']['tier'] ?? 'N/A' }}

@foreach (($report['metrics'] ?? []) as $metric) @endforeach
Metric Value Points Tier Notes
{{ $metric['name'] }} {{ $metric['value'] }} {{ $metric['points'] }} {{ $metric['tier'] }} {{ $metric['notes'] }}

Name: {{ $evaluation->candidate->full_name }}

Email: {{ $evaluation->candidate->email ?? 'Not provided' }}

Birthdate: {{ $evaluation->candidate->date_of_birth?->format('m/d/Y') ?? 'Not provided' }}

Age: {{ $report['physiology']['age'] ?? 'Not calculated' }}

Height: {{ $evaluation->candidate->height_in ? $evaluation->candidate->height_in.' in' : 'Not provided' }}

Weight: {{ $evaluation->candidate->weight_lb ? $evaluation->candidate->weight_lb.' lb' : 'Not provided' }}

Gender: {{ $evaluation->candidate->gender ?? 'Not provided' }}

Department: {{ $evaluation->department?->name ?? 'Not assigned' }}

City: {{ $evaluation->candidate->city ?? 'Not provided' }}

State: {{ $evaluation->candidate->state ?? 'Not provided' }}

Evaluation Date: {{ $evaluation->evaluated_at?->format('m/d/Y') ?? now()->format('m/d/Y') }}

Surface Type: {{ $evaluation->surface_type ?? 'Not provided' }}

Test Type: {{ $evaluation->test_type ?? 'Not provided' }}

Added Load: {{ $evaluation->added_load_lb ? $evaluation->added_load_lb.' lb' : 'Not captured' }}

3-Minute Resting HR: {{ $evaluation->resting_hr ? $evaluation->resting_hr.' bpm' : 'Not captured' }}

Proctor: {{ $evaluation->proctor?->name ?? 'Not assigned' }}

Status: {{ ucwords(str_replace('_', ' ', $evaluation->status->value)) }}

Total Circuit Time

{{ $report['timing']['total_label'] }}

{{ $report['timing']['total_seconds'] }} seconds

Department Benchmark

{{ app(\App\Services\FireFitScoringService::class)->formatDuration($benchmarkSeconds) }}

Status vs Benchmark

{{ $deltaLabel }}

{{ $isUnderBenchmark ? 'Under benchmark' : 'Above benchmark' }}

@foreach (($report['segments'] ?? []) as $segment) @endforeach
Segment Start End Duration Start HR End HR
{{ $segment['label'] }} {{ $segment['start'] ? \Carbon\Carbon::parse($segment['start'])->format('H:i:s') : '—' }} {{ $segment['end'] ? \Carbon\Carbon::parse($segment['end'])->format('H:i:s') : '—' }} {{ $segment['duration_label'] }} {{ $segment['type'] === 'task' ? ($segment['start_hr'] ? $segment['start_hr'].' bpm' : 'Not captured') : '—' }} {{ $segment['type'] === 'task' ? ($segment['end_hr'] ? $segment['end_hr'].' bpm' : 'Not captured') : '—' }}

Total 100' Walk Time: {{ $report['timing']['walk_label'] }} ({{ $report['timing']['walk_seconds'] }} sec)

Walk Percentage: {{ $report['timing']['walk_percentage'] !== null ? number_format($report['timing']['walk_percentage'], 1).'%' : 'Not captured' }}

{{ ($report['timing']['walk_percentage'] ?? 100) <= 27.9 ? 'Efficient transition utilization with strong conditioning carryover.' : 'Transition time can be reduced to improve conditioning score and total pace.' }}

Peak HR During Circuit: {{ $report['physiology']['peak_hr'] ? $report['physiology']['peak_hr'].' bpm' : 'Not captured' }}

Final Working HR: {{ $report['physiology']['final_working_hr'] ? $report['physiology']['final_working_hr'].' bpm' : 'Not captured' }}

Age-Predicted Max HR: {{ $report['physiology']['age_predicted_max_hr'] ? number_format($report['physiology']['age_predicted_max_hr'], 1).' bpm' : 'Not captured (DOB required)' }}

% of Age-Predicted Max at Peak: {{ $report['physiology']['peak_hr_percent'] ? number_format($report['physiology']['peak_hr_percent'], 1).'%' : 'Not captured' }}

Recovery Metrics

1-Min Recovery HR: {{ $report['physiology']['recovery_1m'] ? $report['physiology']['recovery_1m'].' bpm' : 'Not captured' }}

2-Min Recovery HR: {{ $report['physiology']['recovery_2m'] ? $report['physiology']['recovery_2m'].' bpm' : 'Not captured' }}

1st-Minute Drop: {{ $report['physiology']['first_minute_drop'] !== null ? $report['physiology']['first_minute_drop'].' bpm' : 'Not captured' }}

2nd-Minute Drop: {{ $report['physiology']['second_minute_drop'] !== null ? $report['physiology']['second_minute_drop'].' bpm' : 'Not captured' }}

Average Recovery Rate: {{ $report['physiology']['average_recovery_rate'] !== null ? number_format($report['physiology']['average_recovery_rate'], 1).' bpm/min' : 'Not captured' }}

Strengths

    @foreach (($report['assessment']['strengths'] ?? []) as $item)
  • {{ $item }}
  • @endforeach

Areas for Development

    @foreach (($report['assessment']['areas'] ?? []) as $item)
  • {{ $item }}
  • @endforeach

Path to Excellent

    @foreach (($report['assessment']['path_to_excellent'] ?? []) as $item)
  1. {{ $item }}
  2. @endforeach

Proctor Name: {{ $evaluation->proctor?->name ?? 'Not assigned' }}

Proctor Signature: On File

Evaluation Date: {{ $evaluation->evaluated_at?->format('m/d/Y') ?? now()->format('m/d/Y') }}