# Ledger Imbalance Runbook

Owner: Finance operations
Severity: SEV1 for any confirmed unbalanced ledger currency or customer-balance mismatch.

## Triggers

- `BankingLedgerImbalance`
- trial balance by currency is not zero
- account or wallet balance does not match ledger-derived balance
- reconciliation run creates a critical balance break

## First 15 Minutes

1. Freeze admin money movement, FX conversion and affected payment/card/crypto routes.
2. Capture trial balance, journal entry IDs, affected currencies and affected customers.
3. Identify the first bad journal by created timestamp and reference metadata.
4. Page engineering and finance approver.

## Diagnosis

- Check recent migrations, deploys and manual admin adjustments.
- Compare journal lines by transaction reference and money movement type.
- Verify whether pending holds/reservations are being counted correctly.
- Do not patch balances directly; use approved reversal or compensating journal workflow.

## Recovery

- Create explicit reversal for the defective movement type.
- Add or run a regression test for the failed invariant.
- Run trial balance, account-vs-ledger and wallet-vs-ledger checks.
- Re-enable routes only after finance and engineering signoff.

## Communications

- Support receives customer impact and remediation wording.
- Compliance reviews regulatory reporting threshold.
- Executive incident owner signs off if customer balances were visible or spendable incorrectly.
