Every declined authorization is lost merchant GMV.
A glass-box console over a synthetic OMR authorization ledger. Every figure below is computed live from 18,000 attempts - change a lever in the What-If Acceptance Lab and these numbers re-run over the array.
Daily approved / total over the window. The seeded model yields realistic day-to-day variance around a 89.8% mean.
| Code | Class | Count | Share | OMR at stake | Retryable |
|---|---|---|---|---|---|
| insufficient_funds | soft | 329 | 17.9% | OMR 12,262 | yes |
| card_expired | hard | 240 | 13.1% | OMR 7,957 | no |
| restricted_card | hard | 256 | 13.9% | OMR 6,190 | no |
| invalid_card | hard | 201 | 10.9% | OMR 6,165 | no |
| account_closed | hard | 140 | 7.6% | OMR 4,070 | no |
| issuer_unavailable | soft | 125 | 6.8% | OMR 3,748 | yes |
- Policy engine & recovery draws
- SQL interpreter + equality proofs
- Held-out A/B attribution
- CSV ingester · Luhn PAN guard
- Guarded LLM narrator
- FlyCode NSF recovery priors
- Visa/Mastercard token uplift
- 3DS challenge abandonment
- CBO fixed-peg (OMR→USD)
- All 18,000 transactions
- Every coefficient (illustrative)
- No figure is a Thawani actual
No number here is a Thawani actual. Bring your own auth CSV in Bring Your Data to re-run the engine on a real decline mix; full sources in Methodology.