Bank Transaction Categorization Sample

This dataset contains labeled bank transaction records, including detailed transaction metadata, merchant information, and manually or automatically assigned expense categories. It is ideal for developing, training, and benchmarking automated expense categorization models for personal finance, budgeting, and regulatory compliance applications.

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

Training machine learning models for automated expense categorization

Sample rows

preview · 8 of 200 rows · all 17 columns
transaction_idstringcurrencystringamountfloatis_recurringbooleanmerchant_category_codestringaccount_idstringtransaction_datedateposting_datedatedescriptionstringmerchant_namestringtransaction_typestringcategorystringsubcategorystringlocation_citystringlocation_statestringlocation_countrystringlabel_sourcestring
TXN0000001USD-95.32false5411ACCT0012023-02-012023-02-02Whole Foods Market #2094Whole Foods MarketdebitgroceriessupermarketAustinTXUSautomated
TXN0000002USD2500trueblankACCT0012023-02-282023-03-01Salary Payment ACME CorpACME CorpdepositincomesalaryAustinTXUSautomated
TXN0000003USD-56.8true4899ACCT0022023-02-052023-02-07Netflix Subscription FebNetflixdebitentertainmentstreaming_serviceSeattleWAUSautomated
TXN0000004USD-1350true6513ACCT0032023-02-262023-02-28GreenLeaf Apartments RentGreenLeaf ApartmentspaymenthousingrentSan FranciscoCAUSmanual
TXN0000005USD-45false5814ACCT0042023-02-112023-02-13Starbucks CoffeeStarbucksdebitdiningcoffee_shopLos AngelesCAUSautomated
TXN0000006EUR-120.79false5942ACCT0052023-02-032023-02-03Amazon DE Order #584139Amazon DEdebitshoppingonline_retailBerlinBEDEautomated
TXN0000007GBP-88.99false5411ACCT0062023-02-082023-02-09Tesco Superstore GroceriesTescodebitgroceriessupermarketLondonblankGBautomated
TXN0000008USD-135true4814ACCT0022023-02-192023-02-20Comcast Utilities BillComcastpaymentutilitiesinternetSeattleWAUSautomated

What the 200 rows show

from the 200-row sample

EUR currency stands out: 12 of its 17 rows have is_recurring = true, against 59 of 183 for the rest.

  • 36%is_recurring = true
  • -33.5median amount
  • 2label sources
  • 7location countries
  • 9transaction types
  • 13categories
Is recurring rate by currencyis_recurring = true
0%50%100%34%USD46 of…71%EUR12 of…31%GBP4 of …40%CAD4 of …44%AUD4 of 90%JPY0 of 913%INR1 of 8
amount200 rows, in bands of 200k
080160157401002-200k400k1Mamount →

Median -33.5, from -3,500 to 1,000,000.

merchant_category_code154 rows with a value · 46 left blank
  1. 594214
  2. 541113
  3. 489911
  4. 651311
  5. 601111
  6. 58149
  7. 58129
  8. 49009
  9. 57357
  10. 41216
17 columns by typefrom the column list below
  • string 13
  • float 1
  • date 2
  • boolean 1

Columns

17 columns in four groups
blueprint · 17 columns
columntypedescriptionexample
Text 13 columns
transaction_idstringUnique identifier for each bank transaction record.uniqueTXN0000001
account_idstringUnique identifier for the bank account associated with the transaction.ACCT001
currencystringThree-letter ISO currency code (e.g., USD, EUR).7 currenciesUSD
descriptionstringFree-text description or memo provided by the bank for the transaction.Whole Foods Market #2094
merchant_namestringName of the merchant or payee associated with the transaction, if available.optionalWhole Foods Market
merchant_category_codestringIndustry-standard merchant category code (MCC), if available.optional5411
transaction_typestringType of transaction (e.g., debit, credit, transfer, fee, refund).9 valuesdebit
categorystringLabeled expense category for the transaction (e.g., groceries, utilities, rent).groceries
subcategorystringMore granular subcategory within the main category (e.g., supermarket under groceries).optionalsupermarket
location_citystringCity where the transaction took place, if available.optionalAustin
location_statestringState or region where the transaction took place, if available.optionalTX
location_countrystringCountry where the transaction took place, if available.7 countries · optionalUS
label_sourcestringIndicates if the category label was assigned manually or by an automated system.manual · automated · optionalautomated
Numbers 1 column
amountfloatTransaction amount. Positive for credits, negative for debits.-95.32
Dates and times 2 columns
transaction_datedateDate when the transaction occurred.2023-02-01
posting_datedateDate when the transaction was posted to the account.optional2023-02-02
True or false 1 column
is_recurringbooleanIndicates if the transaction is part of a recurring series (e.g., monthly subscription).optionalfalse

Use it for

  • is recurring36%71 of 200 rowsis recurring by curre…34%USD71%EUR31%GBP40%CAD

    A finance dashboard

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

  • Why do 71 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 posting_date to fill a screen in front of a buyer.

Not quite right?

Make it yours.

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

Preview 20 rows free

10,000 rows of yours: $12.99One-time. No subscription. All prices

This dataset200 rows17 columns
Yours10,000 rows17 columnslocation_city: UK only

blueprint · bank-transaction-categorization-sample

Behind this dataset

Same schema. As many rows as you need.

These 200 rows came out of a blueprint — 17 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
  • Assign category to each transaction
  • Include amount, timestamp, merchant
  • Simulate realistic merchant diversity
  • Flag ambiguous transactions
Rows
Open the blueprint in Data Factory

1 credit per row. New accounts start with 25 free credits.

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

What should your data show?

Preview 20 rows free
No signup. No card.