Banking Transaction Categorization Dataset

This dataset provides detailed, labeled banking transaction records, including transaction amounts, merchant details, categories, and recurrence information. It is ideal for developing and benchmarking expense tracking, personal finance management, and automated categorization tools. The dataset enables granular financial analysis and supports machine learning applications for transaction classification.

  • opened 36 times
  • last updated 29 Jul 2025
  • by GoMask
The brief that made it

Training machine learning models for automatic transaction categorization

Sample rows

preview · 8 of 200 rows · all 18 columns
transaction_idstringtransaction_typestringamountfloatis_recurringbooleanmerchant_category_codestringaccount_idstringtransaction_datedatetransaction_timestringcurrencystringmerchant_namestringtransaction_descriptionstringcategorystringsubcategorystringrecurring_frequencystringbalance_after_transactionfloatlocation_citystringlocation_statestringlocation_countrystring
TXN000001debit-112.79false5411ACC100012024-04-0310:19:32USDWhole Foods MarketWhole Foods Market San Francisco CAGroceriesSupermarketsblank1958.21San FranciscoCAUSA
TXN000002credit2320true0000ACC100022024-03-3108:38:09USDACME PayrollACME Payroll Direct DepositSalaryblankmonthly4103.55blankblankUSA
TXN000003debit-46false4121ACC100032024-04-0412:12:44USDUberUber trip CA3245TransportationTaxi/Rideshareblank320.12Los AngelesCAUSA
TXN000004payment-1200true6513ACC100012024-04-0516:03:23USDSunset VillasSunset Villas Monthly RentRentApartmentmonthly758.21OaklandCAUSA
TXN000005debit-85.45true4899ACC100042024-04-0119:21:07USDComcastComcast Internet BillUtilitiesInternetmonthly1420.4SeattleWAUSA
TXN000006debit-13.68false5814ACC100052024-04-0211:42:16USDStarbucksStarbucks Coffee #32 Austin TXFood & DrinkCoffee Shopsblank524.38AustinTXUSA
TXN000007payment-65true4900ACC100062024-03-3009:12:01USDPG&EPG&E Utility PaymentUtilitiesElectricitymonthly1185San JoseCAUSA
TXN000008deposit150false4829ACC100062024-04-0118:01:45USDVenmoVenmo Transfer from friendTransferPeer-to-peerblank1335blankblankUSA

What the 200 rows show

from the 200-row sample

Payment (transaction type) stands out: 38 of its 50 rows have is_recurring = true, against 15 of 150 for the rest.

  • 27%is_recurring = true
  • -46.0median amount
  • 6currencies
  • 7location countries
  • 10location states
  • 15categories
Is recurring rate by transaction_typeis_recurring = true
0%50%100%8%debit8 of 9511%credit2 of 180%trans…0 of 476%payme…38 of …0%withd…0 of 1022%depos…5 of 23
amount200 rows, in bands of 200k
080160158401001-200k400k1Mamount →

Median -46.0, from -78,000 to 1,000,000.

merchant_category_code192 rows with a value · 8 left blank
  1. 000030
  2. 541120
  3. 412115
  4. 601115
  5. 630013
  6. 489911
  7. 581410
  8. 49008
  9. 65137
  10. 57126
18 columns by typefrom the column list below
  • string 14
  • float 2
  • date 1
  • boolean 1

Columns

18 columns in four groups
blueprint · 18 columns
columntypedescriptionexample
Text 14 columns
transaction_idstringA unique identifier for each banking transaction.uniqueTXN000001
account_idstringUnique identifier for the bank account associated with the transaction.ACC10001
transaction_timestringThe time of day the transaction occurred, in HH:MM:SS format (24-hour).optional10:19:32
currencystringThe ISO 4217 currency code for the transaction (e.g., USD, EUR).6 currenciesUSD
merchant_namestringThe name of the merchant or payee associated with the transaction.optionalWhole Foods Market
merchant_category_codestringStandardized merchant category code (MCC) for the transaction, if available.optional5411
transaction_descriptionstringThe raw description or memo provided by the bank for the transaction.optionalUber trip CA3245
categorystringLabeled category for the transaction (e.g., Groceries, Rent, Utilities, Salary).Groceries
subcategorystringOptional subcategory for more granular classification (e.g., Supermarkets under Groceries).optionalSupermarkets
transaction_typestringType of transaction (e.g., debit, credit, transfer, payment, withdrawal, deposit).6 valuesdebit
recurring_frequencystringFrequency of recurring transaction if applicable (e.g., monthly, weekly, yearly).6 values · optionalmonthly
location_citystringCity where the transaction took place, if available.optionalSan Francisco
location_statestringState or province where the transaction took place, if available.10 states · optionalCA
location_countrystringCountry where the transaction took place, if available.7 countries · optionalUSA
Numbers 2 columns
amountfloatThe monetary value of the transaction. Negative for debits (expenses), positive for credits (income).-112.79
balance_after_transactionfloatAccount balance immediately after the transaction was posted.optional1958.21
Dates and times 1 column
transaction_datedateThe date when the transaction was posted to the account.2024-04-03
True or false 1 column
is_recurringbooleanIndicates if the transaction is part of a recurring series (e.g., subscriptions, rent).optionalfalse

15 SQL practice questions for the Banking Transaction Categorization Dataset

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

    Large USD debits

    Return transaction_id, transaction_date and amount for every transaction whose currency is 'USD' and whose amount is below -500. Sort by amount ascending, then by transaction_id.

    Tables: banking_transaction_categorization_dataset · your result: 3 columns, 5 rows
  2. 02BeginnerFreeDISTINCT · ORDER BY

    Distinct categories

    Return each distinct category in the data as a single column named category, sorted alphabetically.

    Tables: banking_transaction_categorization_dataset · your result: 1 columns, 15 rows
  3. 03BeginnerFreeGROUP BY · COUNT

    Transactions per type

    Count the transactions for each transaction_type. Return transaction_type and txn_count, sorted by txn_count from highest to lowest, then by transaction_type.

    Tables: banking_transaction_categorization_dataset · your result: 2 columns, 6 rows
  1. 04Average amount by currencyBeginner
  2. 05Spend by category bar chartPower BI
  3. 06Categories with many transactionsIntermediate
  4. 07Amount size bucketsIntermediate
  5. 08Monthly transaction countsIntermediate
  6. 09Accounts above average activityIntermediate
  7. 10Recurring share by categoryPower BI
  8. 11Rank categories by spendAdvanced
  9. 12Days between account transactionsAdvanced
  10. 13Running total for an accountAdvanced
  11. 14Anomalous amounts within categoryAdvanced
  12. 15Category percent of spendPower 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 recurring27%53 of 200 rowsis recurring by trans…8%debit11%cred…0%tran…76%paym…

    A finance dashboard

    The is_recurring rate, amount by transaction_type and a breakdown of merchant_category_code. Excel, Power BI or Tableau.

  • Why do 53 of 200 rows have is_recurring = true?

    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 transactions with account_id, transaction_date and transaction_time to fill a screen in front of a buyer.

Not quite right?

Make it yours.

Same 18 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 rows18 columns
Yours1,000 rows18 columnslocation_city: UK only

blueprint · banking-transaction-categorization-dataset

Behind this dataset

Same schema. As many rows as you need.

These 200 rows came out of a blueprint — 18 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
  • Transactions assigned category and merchant code
  • Recurring bills flagged monthly
  • Cash withdrawals separated from purchases
  • Foreign transactions include currency conversion
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
banking-transaction-categorization-dataset

What should your data show?

Preview 20 rows free
No signup. No card.