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.
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
- How many customers and accounts do we have by segment and branch, and how is that changing?
- What share of transactions happen in the mobile app versus branches and ATMs, by month?
- Which merchant categories drive card spending, and how do they change around December?
- What are the delinquency and default rates by loan product and income band?
- 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 dateyear(integer): Calendar yearquarter(integer): Calendar quarter, 1 to 4month(integer): Month number, 1 to 12month_name(text): Month name in Englishday(integer): Day of the monthday_name(text): Weekday name in Englishis_weekend(boolean): True for Saturday and Sunday
dim_branch
Bank branches.
branch_id(integer): Unique branch keybranch_name(text): Branch nameregion(text): Region the branch belongs toopened_year(integer): Year the branch opened
dim_product
Products the bank sells.
product_id(integer): Unique product keyproduct_name(text): Product nameproduct_type(text): Checking, Savings, Credit card, Personal loan or Mortgagemonthly_fee(decimal): Monthly fee in US dollarsannual_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 keyhome_branch_id(integer): Branch that manages the relationshipsegment(text): Retail, Premium or Small businessage_band(text): Age band (empty for business customers)income_band(text): Low, Middle or Highjoin_date(date): Date the customer joined
dim_account
Deposit and card accounts. Loans are in fact_loan.
account_id(integer): Unique account keycustomer_id(integer): Account holderproduct_id(integer): Product the account is held onopen_date(date): Date openedstatus(text): Active, Dormant or Closed
fact_transaction
One row per account transaction in 2023-2024.
transaction_id(integer): Unique transaction keyaccount_id(integer): Accountdate_key(integer): Transaction datetransaction_type(text): Deposit, Withdrawal, Transfer, Card purchase, Fee or Interestchannel(text): Branch, ATM, Mobile app, Online or POSamount(decimal): Amount in US dollars. Always positive: the type shows the directionmerchant_category(text): Spending category for card purchases; otherwise emptyis_flagged(boolean): True when the transaction was flagged for fraud review
fact_loan
One row per loan or mortgage.
loan_id(integer): Unique loan keycustomer_id(integer): Borrowerproduct_id(integer): Loan productbranch_id(integer): Branch that originated the loanorigination_date_key(integer): Date the loan was issued (2023-2024)principal(decimal): Amount lentinterest_rate_pct(decimal): Annual interest rate chargedterm_months(integer): Length of the loan in monthsstatus(text): Current, Late 30, Late 60, Default or Paid offdays_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.