@extends('layouts.app') @section('title', 'Priority schemes requiring attention') @push('styles') @endpush @section('contents')
Back to dashboard

Priority schemes requiring attention

Ranked by attention score · Budget year {{ $selectedYear }} @if ($generatedAt) · Updated {{ \Carbon\Carbon::parse($generatedAt)->format('d M Y, H:i') }} @endif

{{ number_format((int) ($portfolio['critical'] ?? 0)) }}
Critical
{{ number_format((int) ($portfolio['warning'] ?? 0)) }}
Warning
{{ number_format(count($schemes)) }}
Shown in this view
@forelse ($schemes as $scheme) @php $schedule = $scheme['schedule'] ?? []; $schedText = ! empty($schedule['target_completion']) ? (($schedule['remaining_months'] ?? null) !== null ? $schedule['remaining_months'].' mo left' : 'Due '.$schedule['target_completion']) : '—'; if (($schedule['required_monthly_pp'] ?? null) !== null) { $schedText .= ' · need '.$schedule['required_monthly_pp'].'%/mo'; } $trend = $scheme['trend'] ?? []; $trendText = match ($trend['direction'] ?? '') { 'improving' => '↑ Improving', 'worsening' => '↓ Worsening', 'flat' => '→ Flat', default => '—', }; if (($trend['velocity'] ?? null) !== null) { $trendText .= ' ('.$trend['velocity'].'%/mo)'; } $flagLabels = [ 'expenditure_ahead_of_physical' => 'Expenditure ahead', 'critical_mismatch' => 'Critical mismatch', 'deadline_impossible' => 'Deadline impossible', 'slow_moving' => 'Slow moving', 'zero_progress_high_release' => 'Zero PP, high release', 'under_revision' => 'Under revision', 'chronic_issue_flagged' => 'Chronic issue', ]; @endphp @empty @endforelse
Scheme ADP # UID Sector Cost (M) Alloc {{ $selectedYear }} (M) Exp (M) Release (M) PP% FP% Gap Schedule Trend Flags
{{ $scheme['name'] ?? 'Scheme' }} @if (! empty($scheme['sector'])) {{ $scheme['sector'] }} @endif @if (! empty($scheme['district'])) · {{ $scheme['district'] }} @endif {{ filled($scheme['adp_number'] ?? null) ? $scheme['adp_number'] : '—' }} {{ filled($scheme['uid'] ?? null) ? $scheme['uid'] : '—' }} {{ filled($scheme['sector'] ?? null) ? $scheme['sector'] : '—' }} {{ isset($scheme['cost_m']) ? number_format((float) $scheme['cost_m'], 3) : '—' }} {{ isset($scheme['allocation_current_m']) ? number_format((float) $scheme['allocation_current_m'], 3) : '—' }} {{ isset($scheme['total_expenditure_m']) ? number_format((float) $scheme['total_expenditure_m'], 3) : '—' }} {{ isset($scheme['total_release_m']) ? number_format((float) $scheme['total_release_m'], 3) : '—' }} {{ isset($scheme['physical_progress']) ? number_format((float) $scheme['physical_progress'], 1).'%' : '—' }} {{ isset($scheme['financial_progress']) ? number_format((float) $scheme['financial_progress'], 1).'%' : '—' }} {{ isset($scheme['gap_fp_minus_pp']) ? number_format((float) $scheme['gap_fp_minus_pp'], 1).'%' : '—' }} {{ $schedText }} {{ $trendText }} @foreach (($scheme['flags'] ?? []) as $flag) {{ $flagLabels[$flag] ?? $flag }} @endforeach
No schemes match this filter for the selected budget year.
@endsection