Transaction Categorization Dataset
This dataset provides a comprehensive, labeled collection of real-world bank transactions, including raw descriptions, merchant information, categorized labels, and enrichment fields for AI training. It enables robust development of transaction categorization, statement enrichment, and personal finance analytics models, supporting both supervised and semi-supervised learning scenarios.
Sample rows
preview · 8 of 200 rows · all 20 columns| transaction_idstring | label_sourcestring | balance_after_transactionfloat | is_recurringboolean | merchant_category_codestring | account_idstring | transaction_datedate | posting_datedate | amountfloat | currencystring | descriptionstring | merchant_namestring | categorystring | subcategorystring | transaction_typestring | enriched_labelstring | location_citystring | location_statestring | location_countrystring | reference_numberstring |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TXN000001 | human | 1845.68 | false | 5942 | ACCT1001 | 2023-01-06 | 2023-01-07 | -84.32 | USD | AMAZON MKTPLACE PMTS 1234 | Amazon | Shopping | Online Retail | debit | Shopping - Amazon Purchase | Dallas | TX | US | RFAMZ123456 |
| TXN000002 | human | 5045.68 | true | blank | ACCT1002 | 2023-01-31 | 2023-02-01 | 3200 | USD | PAYROLL DIRECT DEP 5678 | Acme Corp | Income | Salary | deposit | Income - Salary Payment | New York | NY | US | RFDEP8765432 |
| TXN000003 | ai | 1212.41 | true | 5735 | ACCT2001 | 2023-01-11 | 2023-01-12 | -9.99 | EUR | SPOTIFY SUBSCRIPTION 4321 | Spotify | Entertainment | Music Streaming | payment | Entertainment - Spotify Recurring | Berlin | blank | DE | RFSPT987654 |
| TXN000004 | human | 1390.12 | false | 5411 | ACCT1003 | 2023-01-09 | 2023-01-09 | -126.45 | USD | WALMART SUPERCENTER #1288 | Walmart | Groceries | Supermarkets | debit | Groceries - Walmart | Chicago | IL | US | RFWMT102938 |
| TXN000005 | ai | 923.87 | true | 7997 | ACCT1004 | 2023-01-05 | 2023-01-06 | -65 | USD | PLANET FITNESS MONTHLY FEE | Planet Fitness | Health | Gym Membership | payment | Health - Planet Fitness Recurring | Miami | FL | US | RFPF765432 |
| TXN000006 | human | 1799.92 | false | 4121 | ACCT1001 | 2023-01-10 | 2023-01-10 | -45.76 | USD | UBER TRIP 0912 | Uber | Transport | Rideshare | debit | Transport - Uber Ride | Los Angeles | CA | US | RFUBR384756 |
| TXN000007 | ai | 1136.21 | false | 4511 | ACCT2002 | 2023-01-14 | 2023-01-15 | -76.2 | EUR | LUFTHANSA AIR TICKET 001 | Lufthansa | Travel | Airlines | payment | Travel - Lufthansa Flight | Frankfurt | blank | DE | RFLFT234567 |
| TXN000008 | human | 2000 | true | blank | ACCT1005 | 2023-01-03 | 2023-01-04 | -2500 | USD | RENT PAYMENT JAN 2023 | Sunrise Apartments | Housing | Rent | payment | Housing - Monthly Rent | Seattle | WA | US | RFREN998877 |
| TXN000009 | human | 1917.86 | false | 5411 | ACCT1006 | 2023-01-08 | 2023-01-09 | -82.14 | USD | WHOLE FOODS MARKET 0456 | Whole Foods | Groceries | Organic Grocers | debit | Groceries - Whole Foods | San Francisco | CA | US | RFWHO234987 |
| TXN000010 | ai | 877.01 | true | 5734 | ACCT3001 | 2023-01-04 | 2023-01-05 | -12.99 | USD | APPLE.COM/BILL 1122 | Apple | Entertainment | App Store | payment | Entertainment - Apple Subscription | Dallas | TX | US | RFAPL445566 |
| TXN000011 | ai | 995.5 | false | 5812 | ACCT2003 | 2023-01-13 | blank | -3.99 | EUR | UBER EATS ORDER 2384 | Uber Eats | Dining | Food Delivery | debit | Dining - Uber Eats | Amsterdam | blank | NL | RFUEA223344 |
| TXN000012 | human | 1000000 | false | blank | ACCT9001 | 2023-01-01 | 2023-01-01 | 1000000 | USD | ACCOUNT FUNDING INITIAL | Central Bank | Income | Account Funding | deposit | Income - Account Funding | blank | blank | US | RFDEP1000001 |
| TXN000013 | ai | 4935.45 | true | 4812 | ACCT1002 | 2023-01-17 | 2023-01-18 | -110.23 | USD | AT&T INTERNET BILL | AT&T | Utilities | Internet | payment | Utilities - AT&T Internet | Dallas | TX | US | RFATT445512 |
| TXN000014 | ai | 1117.31 | false | 4112 | ACCT2002 | 2023-01-20 | 2023-01-22 | -18.9 | EUR | NS DUTCH RAILWAYS 8482 | NS Railways | Transport | Train | debit | Transport - NS Railways | Amsterdam | blank | NL | RFNSR190220 |
| TXN000015 | human | 1745.7 | false | 5411 | ACCT1001 | 2023-01-12 | 2023-01-13 | -54.22 | USD | TARGET 1234 | Target | Shopping | Department Stores | debit | Shopping - Target | Chicago | IL | US | RFTGT112233 |
| TXN000016 | ai | 1203.18 | true | blank | ACCT2004 | 2023-01-25 | 2023-01-25 | 75.68 | EUR | INTEREST PAYMENT | blank | Income | Interest | credit | Income - Interest | blank | blank | DE | RFINT876543 |
| TXN000017 | ai | 500000 | false | blank | ACCT9002 | 2023-01-02 | 2023-01-03 | -500000 | USD | WIRE TRANSFER OUTGOING | Central Bank | Transfer | Wire Transfer | transfer | Transfer - Outgoing Wire | blank | blank | US | RFWIRE500000 |
| TXN000018 | ai | 1914.87 | true | blank | ACCT1006 | 2023-01-11 | 2023-01-11 | -2.99 | USD | BANK MONTHLY MAINTENANCE FEE | blank | Fees | Maintenance Fee | fee | Fees - Monthly Maintenance | blank | blank | US | RFFEE112233 |
| TXN000019 | ai | 2000 | true | 7997 | ACCT3002 | 2023-01-07 | 2023-01-08 | -15 | USD | PLANET FITNESS MEMBERSHIP | Planet Fitness | Health | Gym Membership | payment | Health - Planet Fitness Recurring | Miami | FL | US | RFPF998877 |
| TXN000020 | other | 0.01 | false | blank | ACCT9003 | 2023-01-01 | 2023-01-01 | 0.01 | USD | MICRO DEPOSIT VERIFICATION | TestBank | Verification | Micro Deposit | deposit | Verification - Micro Deposit | blank | blank | US | RFMCRDPT0001 |
What the 200 rows show
from the 200-row sampleOther (label source) stands out: mean balance_
- 36%is_
recurring = true - 1,541median balance_
after_ transaction - 5currencies
- 7location countries
- 9transaction types
- 14location states
Median 1,541, from 0.01 to 1,000,000.
- string 15
- float 2
- date 2
- boolean 1
Columns
20 columns in four groups| column | type | description | example |
|---|---|---|---|
| Text 15 columns | |||
transaction_id | string | Unique identifier for each bank transaction.unique | TXN000001 |
account_id | string | Unique identifier for the account associated with the transaction. | ACCT1001 |
currency | string | Currency code (ISO 4217) of the transaction (e.g., USD, EUR).5 currencies | USD |
description | string | Raw transaction description as provided by the bank. | PAYROLL DIRECT DEP 5678 |
merchant_name | string | Name of the merchant or payee, if available.optional | Amazon |
merchant_category_code | string | Merchant Category Code (MCC) associated with the transaction, if available.optional | 5942 |
category | string | Labeled category assigned to the transaction (e.g., 'Groceries', 'Utilities', 'Dining'). | Shopping |
subcategory | string | More granular subcategory label for the transaction (e.g., 'Supermarkets', 'Electricity').optional | Online Retail |
transaction_type | string | Type of transaction, such as 'debit', 'credit', 'refund', 'fee', etc.9 values | debit |
enriched_label | string | AI-generated or human-enriched label for statement clarity (e.g., 'Netflix Subscription').optional | Income - Salary Payment |
location_city | string | City where the transaction took place, if available.optional | Dallas |
location_state | string | State or region where the transaction took place, if available.optional | TX |
location_country | string | Country where the transaction took place, if available.7 countries · optional | US |
reference_number | string | Bank-provided reference number for the transaction.optional | RFAMZ123456 |
label_source | string | Indicates whether the category label is human-annotated or AI-generated.human · ai · other · optional | human |
| Numbers 2 columns | |||
amount | float | Transaction amount. Positive for credits, negative for debits. | -84.32 |
balance_after_transaction | float | Account balance immediately after the transaction.optional | 1845.68 |
| Dates and times 2 columns | |||
transaction_date | date | Date when the transaction occurred. | 2023-01-06 |
posting_date | date | Date when the transaction was posted to the account.optional | 2023-01-07 |
| True or false 1 column | |||
is_recurring | boolean | Indicates if the transaction is part of a recurring series (e.g., subscriptions, rent).optional | false |
15 SQL practice questions for the 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.
Large debit transactions
Return transaction_id, account_id, amount and currency for every transaction with an amount below -1000. Sort by amount ascending (most negative first), then by transaction_id.
Tables: transaction_categorization_dataset · your result: 4 columns, 11 rowsDistinct categories
Return each distinct category in the data as a single column named category, sorted alphabetically.
Tables: transaction_categorization_dataset · your result: 1 columns, 16 rowsTransactions per currency
Count the transactions for each currency. Return currency and txn_count, sorted by txn_count from highest to lowest, then by currency.
Tables: transaction_categorization_dataset · your result: 2 columns, 5 rows
- 04Average amount by label sourceBeginner
- 05Recurring transactions summaryPower BI
- 06Categories with many transactionsIntermediate
- 07Amount size bucketsIntermediate
- 08Transactions per monthIntermediate
- 09Accounts with above-average balanceIntermediate
- 10Missing merchant share by categoryPower BI
- 11Rank categories by spendAdvanced
- 12Days since previous transactionAdvanced
- 13Running total for USD amountsAdvanced
- 14Anomalous amounts within categoryAdvanced
- 15Percent of total by currencyPower 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.99Use it for
A finance dashboard
The is_
recurring rate, balance_ after_ transaction by label_ source and a breakdown of merchant_ category_ code. Excel, Power BI or Tableau. Why do the 18 other rows have a mean balance_
after_ transaction of 195,972? A root-cause class exercise
Hand out the rows and one question. The answer is in the data, not in the brief.
- Transactions200TXN0000011845.68humanTXN0000025045.68humanTXN0000031212.41ai
A software demo
Believable transactions with account_
id, transaction_ date and posting_ date to fill a screen in front of a buyer.
blueprint · transaction-categorization-dataset
Behind this dataset
Same schema. As many rows as you need.
These 200 rows came out of a blueprint — 20 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.
- Each transaction labeled with a category.
- Merchant, amount, and timestamp included.
- Recurring transaction flags present.
- Anomalies (mislabeling, ambiguous) introduced.
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
- transaction-categorization-dataset