WMA Hub

Sample datasets

Retail Banking Accounts and Loans (synthetic)

About 3,000 invented customers with accounts, tens of thousands of transactions, fraud flags and a loan book over two years.

Banking · Advanced · Synthetic data: invented, describes no real person, customer or company.

Business scenario

Meridian Bank is an invented retail bank with 20 branches in five regions. The leadership team wants one view of customer growth, product mix, channel use (branch versus app), fraud flags and the health of the loan book.

The data contains no names, account numbers or identity numbers. Everything is generated by a seeded script, with realistic shapes such as many small card purchases, fewer large deposits, higher fraud flags on large card purchases and loan arrears that depend on income and loan type.

Questions to answer with a dashboard

  1. How many customers and accounts do we have by segment and branch, and how is that changing?
  2. What share of transactions happen in the mobile app versus branches and ATMs, by month?
  3. Which merchant categories drive card spending, and how do they change around December?
  4. What are the delinquency and default rates by loan product and income band?
  5. Where are flagged transactions concentrated, and what is their total value?

Tables, columns and data dictionary

dim_date

One row per calendar day. Mark it as the date table in Power BI and relate every fact table to date_key.

  • date_key (integer): Day as a number, yyyymmdd (for example 20240229)
  • date (date): Calendar date
  • year (integer): Calendar year
  • quarter (integer): Calendar quarter, 1 to 4
  • month (integer): Month number, 1 to 12
  • month_name (text): Month name in English
  • day (integer): Day of the month
  • day_name (text): Weekday name in English
  • is_weekend (boolean): True for Saturday and Sunday

dim_branch

Bank branches.

  • branch_id (integer): Unique branch key
  • branch_name (text): Branch name
  • region (text): Region the branch belongs to
  • opened_year (integer): Year the branch opened

dim_product

Products the bank sells.

  • product_id (integer): Unique product key
  • product_name (text): Product name
  • product_type (text): Checking, Savings, Credit card, Personal loan or Mortgage
  • monthly_fee (decimal): Monthly fee in US dollars
  • annual_rate_pct (decimal): Interest paid (savings) or charged (cards and loans), percent per year

dim_customer

One row per customer. Contains no names, addresses or identity numbers.

  • customer_id (integer): Unique customer key
  • home_branch_id (integer): Branch that manages the relationship
  • segment (text): Retail, Premium or Small business
  • age_band (text): Age band (empty for business customers)
  • income_band (text): Low, Middle or High
  • join_date (date): Date the customer joined

dim_account

Deposit and card accounts. Loans are in fact_loan.

  • account_id (integer): Unique account key
  • customer_id (integer): Account holder
  • product_id (integer): Product the account is held on
  • open_date (date): Date opened
  • status (text): Active, Dormant or Closed

fact_transaction

One row per account transaction in 2023-2024.

  • transaction_id (integer): Unique transaction key
  • account_id (integer): Account
  • date_key (integer): Transaction date
  • transaction_type (text): Deposit, Withdrawal, Transfer, Card purchase, Fee or Interest
  • channel (text): Branch, ATM, Mobile app, Online or POS
  • amount (decimal): Amount in US dollars. Always positive: the type shows the direction
  • merchant_category (text): Spending category for card purchases; otherwise empty
  • is_flagged (boolean): True when the transaction was flagged for fraud review

fact_loan

One row per loan or mortgage.

  • loan_id (integer): Unique loan key
  • customer_id (integer): Borrower
  • product_id (integer): Loan product
  • branch_id (integer): Branch that originated the loan
  • origination_date_key (integer): Date the loan was issued (2023-2024)
  • principal (decimal): Amount lent
  • interest_rate_pct (decimal): Annual interest rate charged
  • term_months (integer): Length of the loan in months
  • status (text): Current, Late 30, Late 60, Default or Paid off
  • days_past_due (integer): Days the payment is overdue (0 if not late)

License and usage terms

Free to use (synthetic data)

You may use this synthetic data for learning, practice, demos, training material and portfolio projects, including in published reports. You may not resell the files themselves or present them as real data. The data is invented: it does not describe any real person, customer or company.