@extends('layouts.admin') @section('title','Wallet reconciliation') @section('heading','Ledger reconciliation') @section('content')
Automated hourly control checks with deduplicated operator incidents.
Ledger entries should net to zero independently for each currency.
| Currency | Transactions | Ledger control total | Result |
|---|---|---|---|
| {{ $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. | |||
Stored wallet balances compared with the sum of their immutable entries.
| Owner | Currency | Stored | Ledger-derived | Variance | |
|---|---|---|---|---|---|
| {{ $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. | |||||
Acknowledgement never hides a failure. Resolution is enabled only after a clean scan marks recovery.
| Control | Subject | Variance | Status | Detected | Operator 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')@elseif($incident->status==='recovered')@else {{ $incident->acknowledger?->name ?: $incident->resolver?->name }} @endif |
| No reconciliation incidents recorded. | |||||