| Gap | Impact | Solution |
|---|---|---|
| No reconciliation job | Silent ledger drift | Nightly reconciliation query + alert |
| No per-cheque invoice line items | Aggregated by fee type only | Option for detailed line items |
| No volume tier auto-upgrade | volume_threshold_monthly unused | Monthly volume check + tier assignment |
| No breakage fee | Expired funded cheques unresolved | Phase 2: fund return mechanism |
| No agent commission tracking | Merchant’s end-customer markup not tracked | Add agent_commission_pct to merchants |
merchant_type not modeled | Agent vs. reseller distinction missing | Migration 042 |
| DB immutability not enforced | App-level only | PostgreSQL rules on fee_ledger |
Gaps vs. Industry Best Practices