@extends('layouts.admin') @section('title', 'Platform Health') @push('styles') @endpush @section('content')

Platform Health

Live ops dashboard. Anything actionable surfaces here so problems don't slip past.

@if($totalActionable === 0) All clear @elseif($totalActionable < 5) {{ $totalActionable }} need attention @else {{ $totalActionable }} need attention @endif
@if(session('success'))
{{ session('success') }}
@endif {{-- Top KPI cards --}}

Failed Queue Jobs

{{ number_format($failedJobsCount) }}
Background tasks that crashed and stopped retrying.
@if($failedJobsCount > 0)
@csrf
@endif

Pending Withdrawals

{{ number_format($pendingWithdrawalsCount) }}
Waiting for admin approval before Paystack transfer.
@if($pendingWithdrawalsCount > 0 && \Illuminate\Support\Facades\Route::has('admin.withdrawals')) @endif

Stale KYC (> 48h)

{{ number_format($stalePendingKycCount) }}
Identity verifications waiting longer than two days.
@if($stalePendingKycCount > 0) @endif

Stale Disputes (> 24h)

{{ number_format($staleDisputesCount) }}
Disputes with no admin update in the past day.
@if($staleDisputesCount > 0) @endif

Payment Failures (24h)

{{ number_format($failedPaymentsCount) }}
Failed/expired subscription charges in the last 24h. @if($stuckPendingPaymentsCount > 0) + {{ $stuckPendingPaymentsCount }} stuck pending >2h @endif

Churn (Last 7d)

{{ number_format($churnedTenantsCount) }}
Paid tenants whose subscription expired without renewing.
@if(\Illuminate\Support\Facades\Schema::hasTable('mail_log'))

Email Bounces (3d)

{{ number_format($bouncedEmailsCount) }}
Mailables that failed delivery.
@endif
{{-- Drill-downs --}} @if($pendingWithdrawals->isNotEmpty())

Pending Withdrawals

@endif @if($staleDisputes->isNotEmpty())

Stale Disputes

@endif @if($churnedTenants->isNotEmpty())

Churned Tenants

@endif @if($failedPayments->isNotEmpty())

Recent Payment Failures

@endif @if($failedJobs->isNotEmpty())

Recent Failed Jobs

@endif @if($totalActionable === 0)
Everything is operating normally.
No queue failures, no stuck payments, no overdue support items.
@endif @endsection