Banking Data Model & Status Sets for Business Analysts

Use as a starting point for ERDs, data dictionaries and API payloads. Real core banking models are much larger.

erDiagram
  CUSTOMER ||--o{ ACCOUNT : owns
  CUSTOMER ||--o{ CARD : holds
  CUSTOMER ||--o{ LOAN : borrows
  CUSTOMER ||--o{ BENEFICIARY : saves
  CUSTOMER ||--o{ DEVICE : binds
  PRODUCT ||--o{ ACCOUNT : defines
  ACCOUNT ||--o{ TRANSACTION : records
  ACCOUNT ||--o{ HOLD : has
  CARD }o--|| ACCOUNT : "linked to"
  LOAN ||--o{ REPAYMENT_SCHEDULE : has
  LOAN }o--o{ COLLATERAL : "secured by"
  TRANSACTION ||--o| DISPUTE : "may have"

  CUSTOMER {
    string cif PK
    string full_name
    string id_type
    string id_number
    date id_expiry
    string segment
    string kyc_status
    string risk_rating
  }
  ACCOUNT {
    string account_no PK
    string cif FK
    string product_code FK
    string currency
    decimal ledger_balance
    decimal available_balance
    string status
    date opened_date
  }
  TRANSACTION {
    string txn_id PK
    string idempotency_key
    string account_no FK
    string txn_type
    string channel
    decimal amount
    decimal fee
    string beneficiary_account
    string beneficiary_bank
    string remark
    string status
    datetime created_at
    date value_date
  }
  HOLD {
    string hold_id PK
    string account_no FK
    decimal amount
    string reason
    datetime expiry
  }
  CARD {
    string card_id PK
    string masked_pan
    string cif FK
    string card_type
    string status
    date expiry
  }
  LOAN {
    string loan_id PK
    string cif FK
    decimal principal
    decimal rate
    int tenor_months
    int dpd
    string debt_group
    string status
  }

Status code sets to agree early

Data sensitivity

Data Treatment
ID number, biometric images Personal data (sensitive) — encryption, access control, retention policy
PAN (card number) Mask everywhere; PCI DSS scope
Account number Mask in notifications/logs where possible
Balances, transactions Confidential; audit access

Use this with Claude: install the plugin with /plugin marketplace add lechithinh/ba-claude-skills, or read the skill source on GitHub.