Your Rewards Rate Is a Suggestion
Your credit card says "3% on dining." You eat at a restaurant. You earn 1%. This isn't a bug — it's merchant category codes, and they control your rewards rate more than the card's marketing page does.
Every merchant that accepts credit cards is assigned a four-digit code by Visa, Mastercard, or the card network when they set up their payment processing. This code — the MCC — is what your card issuer uses to determine your reward rate. Not the name of the store. Not what you bought. Not what you think the category should be. The code.
Why it matters for your wallet
When your card advertises "6% at U.S. supermarkets," it really means "6% at merchants coded as MCC 5411 (Grocery Stores, Supermarkets)." If your grocery store is coded as something else — a warehouse club (5300), a discount store (5310), a supercenter (5311) — you earn the base rate, usually 1%. The food is the same. The rewards aren't.
The categories that cause the most confusion
Groceries
The most contested category. MCC 5411 is the magic number. Traditional grocery stores (Kroger, Publix, Safeway, Whole Foods, Trader Joe's, Aldi) typically code correctly. Target, Walmart, and Costco do not. Neither do convenience stores (MCC 5541) or farmers' markets. If your neighborhood grocer is a small independent shop, the coding depends on how their payment processor categorized them — and it might be wrong.
Dining
MCC 5812 (Eating Places, Restaurants) and 5814 (Fast Food Restaurants) are the standard dining codes. Most sit-down restaurants, takeout places, and delivery services (DoorDash, Uber Eats, Grubhub) code correctly. But coffee shops can go either way: Starbucks codes as dining (5812), while some independent cafes code as a bakery or miscellaneous retail. Bars may code as 5813 (Drinking Places) — some cards include this in dining, others don't.
Travel
This is where it gets genuinely complicated. Airlines booked direct (MCC 3000-3350) always code as travel. Hotels booked direct (MCC 3501-3999 or 7011) usually do. But online travel agencies (Expedia, Booking.com) may code as a travel agency (4722) or an online services company — and different card issuers treat these codes differently. The Chase Sapphire Preferred counts most OTA bookings as travel; some other cards don't. Ride-shares (Uber, Lyft) code as 4121 (Limousines and Taxicabs) and most travel cards include this, but parking garages (7523) and tolls (4784) are included by some issuers and excluded by others.
Streaming
There is no single "streaming" MCC. Netflix, Spotify, Disney+, and others are coded under various digital goods and subscription service codes. Card issuers maintain their own internal lists of which merchant IDs qualify as "select streaming" — and these lists aren't published. If a newer streaming service doesn't appear on the issuer's list, your "streaming bonus" won't apply even though you'd reasonably call it streaming.
How to check what you actually earned
Check your statement details. Most card issuers show the reward rate earned on each transaction in the rewards activity section of their app or website. If a purchase you expected to earn 3% only earned 1%, the MCC is the reason.
Look up the merchant's MCC. Sites like Visa's supplier locator can show the MCC assigned to a specific merchant. You can also call the merchant and ask what category code their payment terminal uses — most won't know off the top of their heads, but their payment processor can tell them.
Test with a small purchase. If you're unsure whether a merchant will code as the right category, make a small purchase and check the rewards earned before running your monthly grocery haul through the card.
You cannot change a merchant's MCC. You can ask the merchant to contact their payment processor and request a reclassification, but this rarely happens. The practical solution is to use the card that earns the best rate for how the merchant is actually coded, not how you think it should be coded.
Why CardRank's quiz accounts for this
When our quiz asks where you spend, we map your answers to realistic earning rates — not headline rates. A card that advertises "6% on groceries" gets scored at 6% for traditional supermarket spending, but we don't assume your Costco run or Target checkout earns that rate. The match score you see reflects what you'll actually earn, not what the marketing page promises.