Bank Customer Segmentation

This dataset provides comprehensive behavioral and transaction profiles for bank customers, including demographics, account activity, channel preferences, and churn risk scores. It is designed for advanced customer segmentation, targeted marketing, and predictive analytics to drive retention and personalized banking strategies.

  • opened 10 times
  • last updated 20 Aug 2025
  • by GoMask
The brief that made it

Customer segmentation for targeted marketing campaigns

Sample rows

preview · 8 of 200 rows · all 25 columns
customer_idstringaccount_typestringnum_accountsintegeris_activebooleanaddress_countrystringfirst_namestringlast_namestringdate_of_birthdategenderstringemailstringphone_numberstringaddress_streetstringaddress_citystringaddress_statestringaddress_postal_codestringaccount_open_datedateaccount_balancefloatavg_monthly_transactionsintegeravg_transaction_amountfloatlast_transaction_datedatepreferred_channelstringmarketing_segmentstringchurn_risk_scorefloatlast_login_datedatetotal_lifetime_valuefloat
CUST-1782445checking2trueUSMayaTurner1994-08-11femalemaya.turner@bankmail.com+1-718-340-9001953 King StNew YorkNY100272017-05-168200.4523150.792024-06-07mobileurban professionals0.192024-06-0722000
CUST-1290889savings1trueIndiaVinayJoshi2003-01-27malevinay.joshi@indmoney.com+91-99821-4421119 MG RoadMumbaiMH4000202021-09-123902302024-05-12mobilestudents0.612024-06-03640
CUSTOMER-FX9083investment4trueUKSophieEvans1978-03-22femalesophie.evans@ukbank.co.uk+44 20 4567 921112 Fleet StLondonLDNEC4Y8AA1999-11-30176000.9842002024-06-02onlineaffluent investors0.112024-06-06280000
CUST-8779354credit_card2trueUSLucasReid1988-07-15malelucas.reid@bankmail.com+1-312-561-76542037 Lakeview AveChicagoIL606162012-06-222900.218170.52024-06-07onlinefrequent spenders0.242024-06-0712400
CUST-7812239savings2falseHong KongFionaLam1961-12-01femalefiona.lam@hkbank.hk+852-5681-22038 Harbour RdHong KongHK9990771995-03-176200026402024-05-27branchretirees0.35blank18000
CUST-2369821savings1falseEgyptAhmedHassan2006-05-09maleahmed.hassan@egbank.com+20-12-2234-178331 Tahrir StCairoCA113512022-04-0315002023-11-01ATMminor accounts0.91blank18
Z-884127loan3trueSpainElenaMartinez1983-11-17femaleelena.martinez@spbank.es+34-911-389-00218 Gran ViaMadridMD280132007-02-1956000931002024-06-01branchwealth management0.152024-06-05212000
CUST-9984321savings1falseUSTomHenderson1955-02-14maletom.henderson@bankmail.com+1-405-223-15672208 N May AveOklahoma CityOK731071979-09-03180002022-07-19branchinactive legacy0.9blank0

What the 200 rows show

from the 200-row sample

Investment (account type) stands out: mean num_accounts is 4.8, against 1.7 for the rest.

  • 74%is_active = true
  • 2median num_accounts
  • 2genders
  • 5preferred channels
  • 22marketing segments
  • 5,290median account_balance
Mean num_accounts by account_type200 rows
0481.6checki…50 rows1.1savings55 rows2.0credit…25 rows2.9loan26 rows4.8invest…44 rows
num_accounts200 rows, in bands of 1
03570696920181536158num_accounts →

Median 2, from 1 to 8.

address_country200 rows · top 10 of 35 values
  1. US34
  2. India24
  3. Egypt11
  4. Spain10
  5. Russia10
  6. Brazil9
  7. UK8
  8. Mexico8
  9. Sweden8
  10. Hong Kong7
25 columns by typefrom the column list below
  • string 14
  • integer 2
  • float 4
  • date 4
  • boolean 1

Columns

25 columns in four groups
blueprint · 25 columns
columntypedescriptionexample
Text 14 columns
customer_idstringUnique identifier for each bank customeruniqueCUST-1782445
first_namestringCustomer's first nameMaya
last_namestringCustomer's last nameTurner
genderstringCustomer's gendermale · female · other · prefer_not_to_say · optionalfemale
emailstringCustomer's email addressuniquemaya.turner@bankmail.com
phone_numberstringCustomer's phone numberoptional+1-718-340-9001
address_streetstringStreet address of the customeroptional953 King St
address_citystringCity of the customer's addressoptionalNew York
address_statestringState or province of the customer's addressoptionalNY
address_postal_codestringPostal code of the customer's addressoptional10027
address_countrystringCountry of the customer's addressoptionalUS
account_typestringPrimary type of bank account held by the customerchecking · savings · credit_card · loan · investmentchecking
preferred_channelstringCustomer's preferred banking channelbranch · online · mobile · ATM · phone · optionalmobile
marketing_segmentstringAssigned marketing segment for targeted campaignsoptionalurban professionals
Numbers 6 columns
account_balancefloatCurrent total balance across all accounts held by the customer0 or more8200.45
num_accountsintegerNumber of active accounts held by the customer1 or more2
avg_monthly_transactionsintegerAverage number of transactions per month0 or more · optional23
avg_transaction_amountfloatAverage transaction amount per month0 or more · optional150.79
churn_risk_scorefloatPredicted risk score for customer churn (0.0 to 1.0)0 to 1 · optional0.19
total_lifetime_valuefloatTotal estimated lifetime value of the customer to the bank0 or more · optional22000
Dates and times 4 columns
date_of_birthdateCustomer's date of birth1994-08-11
account_open_datedateDate when the customer opened their first account2017-05-16
last_transaction_datedateDate of the customer's most recent transactionoptional2024-06-07
last_login_datedateDate when the customer last logged into their online/mobile bankingoptional2024-06-07
True or false 1 column
is_activebooleanIndicates if the customer is currently activetrue

15 SQL practice questions for the Bank Customer Segmentation

Written for this data and checked against it: 12 SQL and 3 Power BI exercises from beginner to advanced. Try the first three free; the practice kit has all 15, a starter .sql file and an answer key with every expected result.

  1. 01BeginnerFreeSELECT · WHERE · ORDER BY

    Inactive customers with high churn risk

    Return customer_id, first_name, last_name and churn_risk_score for customers who are inactive (is_active = 0) and have a churn_risk_score above 0.7. Order the results by churn_risk_score from highest to lowest, then by customer_id ascending.

    Tables: bank_customer_segmentation · your result: 4 columns, 38 rows
  2. 02BeginnerFreeDISTINCT · ORDER BY

    Distinct preferred channels

    Return each distinct value of preferred_channel once, in a single column named preferred_channel, sorted alphabetically.

    Tables: bank_customer_segmentation · your result: 1 columns, 5 rows
  3. 03BeginnerFreeGROUP BY · COUNT

    Customers per account type

    Count the customers in each account_type. Return account_type and customer_count, ordered by customer_count from highest to lowest, then by account_type ascending.

    Tables: bank_customer_segmentation · your result: 2 columns, 5 rows
  1. 04Average balance by genderBeginner
  2. 05Total lifetime value by channelPower BI
  3. 06Segments with high average churnIntermediate
  4. 07Balance tiersIntermediate
  5. 08Customers above average lifetime valueIntermediate
  6. 09Accounts opened per yearIntermediate
  7. 10Churn by channel vs overallPower BI
  8. 11Rank customers within account typeAdvanced
  9. 12Gap between opening datesAdvanced
  10. 13Running total of lifetime value by yearAdvanced
  11. 14Country share of balancesAdvanced
  12. 15Balance anomalies per account typePower BI

Get the practice kit: the full dataset, all 15 exercises, a starter .sql and the answer key. One-time $3.99.

Get the practice kit · $3.99

Use it for

  • is active74%147 of 200 rowsmean num accounts by …1.6chec…1.1savi…2.0cred…2.9loan

    A finance dashboard

    The is_active rate, num_accounts by account_type and a breakdown of address_country. Excel, Power BI or Tableau.

  • Why do the 44 investment rows have a mean num_accounts of 4.8?

    A root-cause class exercise

    Hand out the rows and one question. The answer is in the data, not in the brief.

  • A software demo

    Believable customers with first_name, last_name and date_of_birth to fill a screen in front of a buyer.

Not quite right?

Make it yours.

Same 25 columns, your size and your rules. See 20 rows before you pay.

Preview 20 rows free

1,000 rows: $1.99 · 10,000: $12.99One-time. No subscription. All prices

This dataset200 rows25 columns
Yours1,000 rows25 columnsaddress_street: UK only

blueprint · bank-customer-segmentation

Behind this dataset

Same schema. As many rows as you need.

These 200 rows came out of a blueprint — 25 columns with generation rules behind each one. Open it in Data Factory to retune a column, add your own, wire in foreign keys, and run it at the size you actually need.

Rules it was built with
  • Customer demographics included
  • Transaction types diversified
  • Segmentation labels generated
  • Account tenure tracked
Rows
Open the blueprint in Data Factory

1 credit per row. Preview 20 rows free. Buy rows for the full run.

Exports
CSV, JSON, JSONL, Parquet, SQL, Excel, TSV, XML
Licence
yours to use, including commercially
API slug
bank-customer-segmentation

What should your data show?

Preview 20 rows free
No signup. No card.