MCC codes are the four-digit numbers card networks attach to every merchant. They were built to set interchange fees and manage risk, not to tell a customer what they bought. When banks and fintechs use them as the basis for spending categories, the problem starts to show: in ÌÇÐÄlogo data, only 63% of transactions landed in the correct category on MCC alone. Roughly one transaction in three ends up miscategorised or uncategorised.
What is an MCC Code
A Merchant Category Code (MCC) is a four-digit number that classifies a merchant by the type of goods or services it primarily sells. The system dates back to the 1980s. It was standardised internationally as ISO 18245 in 2003, and the standard was most recently revised in 2023. Visa, Mastercard and American Express all build on it, though each maintains its own list with small differences. Mastercard even uses a different name: Card Acceptor Business Codes.
The merchant doesn't choose its own code. The acquirer assigns it when the merchant first starts accepting cards, based on the business as it looked at onboarding. That detail matters later, because most businesses keep the same code for years.
MCCs do real work inside the payment system:
- They help set interchange fees.
- They feed high-risk merchant lists and fraud rules.
- They power card controls, such as blocking gambling transactions.
- They define which purchases earn bonus rewards.
- In the US, they support tax reporting.
For all of these jobs, a broad and reasonably stable label is enough. Telling a customer where their money went is a different job.
MCC codes are not expense categories
When ÌÇÐÄlogo started building ÌÇÐÄlogo, we assumed categorisation would be straightforward because MCCs already existed. It wasn't. An MCC describes what the acquirer recorded about a merchant's terminal. A spending category has to describe what the customer actually paid for. Those two things overlap often enough to be tempting, and differ often enough to be unreliable.
The scale of the gap shows up when you compare strict MCC-based categorisation with a method that uses more signals. In our dataset, MCC alone placed 63% of transactions correctly. That leaves too much noise for a personal finance feature customers will trust. In our experience, coverage above 95% is both achievable and what clients need.

There are also too many codes to use directly. Hundreds of MCCs need grouping into a few dozen categories that reflect how people actually spend. That grouping is where the problems start coming up.
Eight reasons MCC-based categorisation does not work
1. Some MCCs are too broad
Some codes span several industries at once. MCC 5045, Computers and Computer Peripheral Equipment and Software, covers hardware, software and accessories, which map to different consumer categories. Others are so generic they add almost nothing: 5399 Miscellaneous General Merchandise, 5999 Miscellaneous and Specialty Retail Stores, and 7399 Business Services.
MCC 5999 is the clearest case. Visa's Merchant Data Standards Manual reserves it for merchants that can't be classified under a more specific code. Its own examples include shops selling maps, fireworks, picture frames and monuments, most of which a bank would file under Consumer Goods. In practice, the code is dominated by online marketplaces and payment gateways. Amazon alone accounted for almost 54% of MCC 5999 transactions in our database (Q1 2023), and Consumer Goods ranked only fifth.
2. Some MCCs describe how you pay, not what you buy
A group of codes says nothing about the product or service at all. Instead, they describe the sales channel:
- 5963 Door-to-Door Sales
- 5964 Direct Marketing, Catalogue Merchant
- 5968 Continuity/Subscription Merchants
Subscriptions make this a growing problem. People now pay regularly for streaming, news, audiobooks, games, courses and gyms. MCC 5968 tells you a payment recurs but not what it's for, and plenty of subscription merchants don't use 5968 at all. A bank that wants to show customers their subscriptions needs a recurring-payment signal that works independently of the category. It can't rely on a single code that is unreliable in both directions.
3. Brand-level codes don't always match the brand
Not all codes are generic. ISO reserves the range 3000 to 3999 for individual airlines, car rental firms, hotel chains and casinos, so many large travel brands have their own MCC.
These codes are generally reliable for category mapping, since a hotel code points to a hotel. They are less reliable for merchant identity, so decisions based on them still need validating.
4. Some MCCs are too specific
At the other extreme, niche retail has its own codes, such as 5976 Orthopaedic Goods and Artificial Limb Stores, or 5974 Rubber Stamp Stores. That granularity is useless in a banking app on its own. These codes have to be grouped into broader categories before a customer ever sees them.
5. Some common businesses have no fitting MCC
Some everyday industries have no matching code at all. Cafés are the obvious example. Mastercard's guidance says the MCC should reflect a merchant's primary business, and a café's primary business is making coffee. Yet no code says so. Costa Coffee transactions spread across restaurant, fast food, bakery and even bar codes.
6. The code list itself overlaps and duplicates
The list contains overlapping codes, for furniture and computers for example, plus codes that have outlived their purpose, such as 4821 Telegraph Services. Country-specific codes add duplicates. Spain uses its own code 1465, which duplicates the global 5441 Candy, Nut and Confectionery Stores. A confusing list produces poorly chosen codes, but merchants contribute to the problem too.
7. Merchants pick the wrong code, by accident or on purpose
A merchant's MCC reflects its business on the day it started accepting cards. Businesses change. Updating the code is rarely a priority, so most keep the one they were given.
Electric vehicle charging shows how long that inertia lasts. Before late 2019, charging sessions were typically coded as 5542 Automated Fuel Dispensers or 7523 Parking Lots. Visa introduced a dedicated code, 5552 Electric Vehicle Charging, in October 2019, and Mastercard followed in July 2020. Visa still had to remind acquirers in 2021 to move charging merchants onto it. A bank that wants to separate EV charging from petrol, for carbon insights or a rewards programme, can't rely on every charger having made the switch.
Some mismatches are deliberate. Codes on the publicly known high-risk lists carry higher interchange, and in some markets they risk outright payment rejection. That gives merchants a reason to avoid them. The results can be absurd, as these merchants coded as pet shops show:
8. MCCs vary within the same chain
One merchant can carry several MCCs at once. Different departments within a store may run terminals with different codes. Franchise branches choose their codes largely independently. And country-specific codes add another layer. The result is the same brand appearing under different identities across a city, a country or the world.
McDonald's in Spain has three Spain-only codes. Spanish branches also use the standard fast food and restaurant codes, plus some plainly wrong ones, such as 5411 Grocery Stores and 5813 Drinking Places.
IKEA shows the same problem at global scale. Its second most frequent code is 5999, even though furniture retail has plenty of specific codes. Its large stores with separate departments add department store and B2B furniture codes on top.
Why 100% categorisation coverage isn't realistic
Better categorisation shrinks the uncategorised share, but it never reaches zero, and some of the reasons are outside anyone's control:
- Obscured merchants: Some merchants hide their identity on purpose. Adult content platforms, for example, often bill under abbreviations, random strings or misleading names such as a fitness brand.
- Shared terminals: Operators that run multiple franchise brands sometimes use one terminal setup for all of them. Transactions then can't be attributed to the right brand from the payment data alone.
- Generic descriptions: Terminals in shopping centres and food courts often send labels like "FAST FOOD", "SHOP BERLIN" or the owner's personal name.
- The long tail: A small share of terminals carries the large majority of transaction volume. Manually enriching the thousands of terminals that see a handful of payments a year is rarely worth the cost.
This is why coverage is only one of three measures of data quality. Coverage is the share of transactions enriched. Accuracy is how correct each enriched field is. Information richness is how much useful detail sits behind each transaction. Of the three, accuracy matters most to the customer: 75% clean beats 99.9% noisy, because a feed that gets one transaction in 25 wrong teaches people not to trust any of it. A clear "uncategorised" placeholder costs far less trust than a confident wrong answer.
What MCC-only categorisation costs a bank
Transaction history and personal finance management
Take a student who opens her banking app and sees every café, takeaway and restaurant payment under one dining heading. She can't tell whether the money is going on daily coffees or occasional dinners out, so she can't decide what to cut. With merchant-level categorisation, the same feed splits into coffee, fast food and restaurants. In this example, she sees she spends €150 a month on coffee and €200 on restaurants, and now she has something to act on.
Personal finance features all depend on this layer, including budgets, spending summaries, subscription overviews and annual recaps. If the categories are wrong, every feature built on them is wrong in the same way. Customers notice quickly and stop opening the screen.
Credit scoring and affordability
Lenders use transaction data to work out what an applicant can actually afford, and broad categories hide the distinctions that matter most. A €2,000 payment at an electronics retailer looks the same on MCC whether it's a one-off laptop or part of a pattern. Recurring obligations, such as subscriptions, instalment plans and repayments to other lenders, can disappear into generic retail or financial services codes. The result is either a risk score that penalises a single purchase, or one that misses a growing set of fixed commitments.
Affordability assessments need to separate essential from discretionary spending, and one-off from recurring payments, consistently across every applicant. That pressure is rising: CCD2 takes effect on 20 November 2026, and lenders will need to evidence affordability from data rather than self-declared figures. Classification depth is one of the main things to test when choosing an open banking data provider for creditworthiness assessment.
Carbon footprint tracking
MCCs were never designed with emissions in mind, and the gaps are widest where carbon impact varies most. MCC 4789, Transportation Services, covers taxis, public transport, bike sharing, e-scooters and ski lifts under one number, even though their emissions per trip differ widely. A carbon estimate built on that code has to average them together, which makes it unhelpful for a customer trying to understand their own footprint.

Separating these merchants at tag level is what makes per-transaction carbon insights accurate enough to show customers. The same detail lets a bank respond with tips and green products that actually fit how the person travels.
How to categorise transactions beyond MCC
Some work with MCCs is unavoidable, so the useful question is what else to combine them with. The most reliable approach identifies the merchant first, then categorises the merchant instead of the code. Merchant and terminal IDs, transaction descriptors, the merchant's website, business registers, social profiles and search results all help pin down who was paid. Once the merchant is known, the category follows from what it actually sells. That turns a raw descriptor into something a customer recognises, a process covered in more detail in data cleansing vs data enrichment.
Automation does most of the work, but it isn't enough alone. ÌÇÐÄlogo pairs error-reducing algorithms with an in-house team of human data validators and a feedback loop from end users who flag mistakes.
The second step is depth. A single category per merchant breaks down for businesses that sit between industries. ÌÇÐÄlogo categorisation therefore uses four levels: 25 main categories designed for customer-facing use, and below them 530+ tags across three layers built for analytics. Transport shows how the levels nest:
- Category: Travel
- Tag level 1: Local Transport
- Tag level 2: Micro-mobility
- Tag level 3: Bike Sharing
Tags combine independently of the main category, so a merchant can carry several. They also work for transactions that have no MCC at all, such as bank transfers. Unlike the network code lists, the tag list is revised continuously, so new merchant types get tags as soon as they appear.
Even the most homogeneous-looking code splits apart under this model. In our data, 78% of Groceries transactions carry MCC 5411 Grocery Stores and Supermarkets, yet those merchants spread across 31 different tags.

MCC is a signal
MCC codes give a quick first read on what a merchant does. That makes them a reasonable input to categorisation, but a poor foundation for it. Treated as one signal among several, they help. Treated as the category itself, they put one transaction in three in the wrong place. That error then carries into every PFM screen, affordability model and carbon estimate the bank builds on top. Banks that resolve the merchant first, and categorise from there, get a transaction feed their customers and their own teams can rely on.