@extends('layouts.admin') @section('title','Wallet reconciliation') @section('heading','Ledger reconciliation') @section('content')

Automated hourly control checks with deduplicated operator incidents.

@csrf
Wallets checked{{ $wallets->count() }}
Balance exceptions{{ $exceptions->count() }}
Open incidents{{ $incidents->whereIn('status',['open','acknowledged'])->count() }}
Result{{ $exceptions->isEmpty() ? 'Reconciled' : 'Review required' }}

Double-entry control totals

Ledger entries should net to zero independently for each currency.

@forelse($currencyTotals as $row)@empty@endforelse
CurrencyTransactionsLedger control totalResult
{{ $row->currency }}{{ $row->transaction_count }}{{ number_format($row->ledger_total,2) }}{{ round((float)$row->ledger_total,2)===0.0?'Balanced':'Exception' }}
No ledger activity has been posted.

Wallet balance exceptions

Stored wallet balances compared with the sum of their immutable entries.

@forelse($exceptions as $wallet)@empty@endforelse
OwnerCurrencyStoredLedger-derivedVariance
{{ $wallet->user->name }}
{{ $wallet->user->email }}
{{ $wallet->currency }}{{ number_format($wallet->balance,2) }}{{ number_format($wallet->ledger_balance??0,2) }}{{ number_format((float)$wallet->balance-(float)($wallet->ledger_balance??0),2) }}Investigate
All wallet balances reconcile to their ledger entries.

Reconciliation incidents

Acknowledgement never hides a failure. Resolution is enabled only after a clean scan marks recovery.

@forelse($incidents as $incident)@empty@endforelse
ControlSubjectVarianceStatusDetectedOperator action
{{ str_replace('_',' ',$incident->check_type) }}
{{ ucfirst($incident->severity) }} ยท {{ $incident->detection_count }} detection(s)
{{ $incident->subject_type }} #{{ $incident->subject_key }}{{ $incident->currency }} {{ number_format((float)$incident->variance,2) }}{{ $incident->status }}{{ $incident->last_detected_at->format('d M Y H:i') }}@if($incident->status==='open')
@csrf
@elseif($incident->status==='recovered')
@csrf
@else {{ $incident->acknowledger?->name ?: $incident->resolver?->name }} @endif
No reconciliation incidents recorded.
{{ $incidents->links() }}
@endsection