Here’s the quiet truth behind your rewards card: it doesn’t care what’s in your cart. It pays your bonus based on a code the store was assigned, called a merchant category code, and that code often has nothing to do with what you bought. So you can spend a year buying groceries at Walmart, sure you’re stacking 3% back, and earn the base rate the whole time because Walmart isn’t coded as a grocery store. Multiply that across gas, dining, and travel, and it adds up to real money left behind. Here are nine merchant category traps that break your cash-back math, and how to route around each one.
The fix is rarely a new card. It’s knowing where your bonus categories quietly stop applying, so you can pay with the right card in the right place. Start with the ones that cost people the most.
The Short Version
Credit cards award bonus rewards by a store’s merchant category code, not by the products you buy, so the store’s classification decides your rate. The biggest traps are warehouse clubs and superstores like Costco, Walmart, and Target not counting as grocery, groceries bought at pharmacies missing the bonus, restaurants inside hotels or stadiums coding as the venue, delivery apps and app-store subscriptions coding as themselves, gas at club and discount stores not counting as gas, third-party travel bookings missing the direct bonus, and bill-pay services coding as processors. Knowing these lets you pick the right card for each purchase.
Why the store’s code sets your rate
Every business that accepts cards is assigned a merchant category code, a four-digit label describing what it mostly sells. Your card issuer looks at that code, not your receipt, to decide whether a purchase earns a bonus. A store that sells groceries but is classified as a superstore earns you the superstore rate, which for most cards is the base rate. This is why two carts of identical food can earn wildly different rewards depending only on where you checked out. Once you see the system this way, the traps below stop being surprises.
Where Your Bonus Quietly Disappears
| Where you shop | Why the bonus misses |
|---|---|
| Costco, Sam’s, BJ’s | Coded as warehouse clubs |
| Walmart, Target | Coded as superstores |
| CVS, Walgreens | Coded as drugstores |
| Hotel or stadium restaurant | Codes as the venue |
| Delivery apps | May code as the service |
1. Warehouse clubs don’t count as grocery
This one costs bulk shoppers the most. Costco, Sam’s Club, and BJ’s are coded as warehouse clubs, not grocery stores, so a card offering bonus grocery rewards usually pays only the base rate there. Most issuers specifically exclude wholesale clubs from their grocery category. The main exception is Bank of America, which counts warehouse clubs as grocery on its rewards cards, so check your issuer. If you buy a lot at a club, the smart move is a flat-rate card, a club co-branded card, or a card whose bonus category includes wholesale clubs. As a resource, The Points Guy breaks down the grocery versus supermarket distinction in detail.
2. Walmart and Target code as superstores
You’d think a store full of food would count as a grocery store, and you’d be wrong. Walmart Supercenters and Target are classified as superstores or discount stores, so groceries bought there earn your card’s base rate rather than any grocery bonus. It’s a common and expensive assumption. One nuance worth knowing: Walmart’s grocery-only Neighborhood Market format often does code as a grocery store, so the same brand can earn differently depending on the store type. For your main grocery run, an actual supermarket earns the bonus; at Walmart or Target, a flat-rate card usually beats a grocery card.
3. Groceries at the pharmacy miss the bonus
Grabbing milk, snacks, and household basics at CVS or Walgreens feels like grocery shopping, but those stores are coded as drugstores or pharmacies. So the grocery bonus on your card won’t apply to food you buy there. Some cards do offer a separate drugstore bonus category, which changes the calculation, so check whether yours does. If you don’t have a drugstore bonus, treat pharmacy runs as base-rate spending and save your grocery card for the supermarket, where the code and the bonus line up.
4. Restaurants inside hotels and stadiums code as the venue
Your dining bonus is generous until the restaurant lives inside something bigger. A restaurant inside a hotel, casino, stadium, or theme park is frequently coded under that venue, as lodging or entertainment, rather than as dining. So the same steak earns your dining bonus at a standalone restaurant and the base rate at a hotel one. There’s no perfect workaround, but it helps to know before you assume a bonus. When you’re paying at a venue, don’t count on the dining category, and consider whether a different card in your wallet earns more on lodging or entertainment.
5. Delivery apps may not code as restaurants
Ordering takeout through an app is not always the same as dining out, in your card’s eyes. Charges from some third-party delivery services can code as the service itself rather than as a restaurant, so your dining bonus may not trigger. It varies by app and card, and many issuers have added specific bonus categories for delivery and takeout to close this gap, so your card may cover it. When in doubt, ordering directly from the restaurant’s own website or app is more likely to code as dining, and it often sends the restaurant a bigger cut too.
6. Gas at clubs and superstores may not count as gas
Filling up at a warehouse club or a big-box store can quietly cost you your gas bonus. Fuel stations attached to Costco, Sam’s Club, BJ’s, or Walmart often carry the parent store’s merchant code rather than a gas station code, so a card that rewards gas may pay only the base rate at the pump. The gas is cheap there, which is the draw, but you may be trading your rewards for it. If maximizing your gas category matters, fill up at a standalone, clearly coded gas station, and save the club pump for when the raw price wins.
7. App-store subscriptions code as the app store
That streaming or software subscription might not earn your streaming bonus, depending on how you pay for it. When a subscription is billed through an app store, such as buying it inside a phone’s platform, the charge can code as digital goods or the app store rather than as the streaming service. So your streaming bonus category may miss it entirely. The fix is usually to subscribe and pay directly through the service’s own website, which is more likely to carry a streaming merchant code, and often costs less than the app-store markup as a bonus.
8. Third-party travel bookings miss the direct bonus
Booking a trip through the wrong channel can downgrade your travel rewards. Many cards pay their richest travel bonus only when you book directly with an airline or hotel, or through the card’s own travel portal. Reserve the same flight through a third-party site, and it may earn a lower rate or a different category entirely. Before you book, check whether your card’s travel bonus requires a direct booking or its portal. Sometimes the third-party price is low enough to justify the smaller bonus, but you want to make that trade knowingly rather than by accident.
9. Bill-pay services code as processors
Paying rent, utilities, or taxes with a card through a third-party service rarely earns what you’d hope. These payments usually code as the payment processor rather than as the utility or biller, so a utilities bonus won’t apply, and the service almost always charges a processing fee of a few percent. That fee frequently outweighs any rewards you’d earn, turning a “rewards hack” into a net loss. Run the math before routing a big bill through a processor, and reserve the tactic for cases where hitting a sign-up bonus or a spending threshold makes the fee worth it.
How We Chose These
We prioritized the merchant category traps that hit everyday spending hardest, since those are where people lose the most without noticing. The list reflects how issuers commonly classify stores and how bonus categories are typically defined, while flagging the exceptions, like Bank of America counting warehouse clubs as grocery, because the details vary by issuer. We focused on traps you can route around with a card you already carry, rather than ones that require chasing a new product, because the biggest wins come from paying with the right card where you already shop.
This article is general information, not financial advice, and merchant category coding, bonus category definitions, and card terms vary by issuer and store and change over time. A specific location can be coded differently than you expect. Confirm the current details with your card issuer and check your statements before relying on a bonus category.
The Bottom Line
Cash-back cards reward the code, not the cart, and that single fact explains most of the rewards people quietly leave behind. Remember that warehouse clubs and superstores usually aren’t grocery, pharmacy food misses the grocery bonus, in-venue restaurants and app-store subscriptions code as their host, club gas may not count, and third-party travel and bill-pay routes can downgrade your rate. None of this means your card is bad; it means matching the right card to each place is where the real money is. For more on keeping traps from eating your money, our guide to avoiding upsell traps at tax time is a useful companion, and the finance section has more.
Frequently Asked Questions
What are merchant category traps and how do they break cash back?
Merchant category traps are cases where a store’s assigned code doesn’t match what it sells, so your card pays the base rate instead of the bonus you expected. Your issuer awards rewards based on that merchant category code, not your actual purchases. Common traps include warehouse clubs and superstores not counting as grocery, pharmacy food missing the grocery bonus, and restaurants inside venues coding as the venue. Knowing them lets you use the right card where the bonus applies.
Does Costco count as a grocery store for credit card rewards?
Usually not. Costco, along with Sam’s Club and BJ’s, is coded as a warehouse club rather than a grocery store, so most cards pay only the base rate on grocery purchases there. The notable exception is Bank of America, which counts warehouse clubs in its grocery category on its rewards cards. If you shop clubs often, use a flat-rate card, a club co-branded card, or a card whose category includes wholesale clubs to avoid losing the bonus.
Why don’t groceries at Walmart earn grocery cash back?
Because Walmart Supercenters and Target are classified as superstores or discount stores, not grocery stores. Your card reads that superstore code and pays the base rate on everything, including the food. One exception is Walmart’s grocery-only Neighborhood Market format, which often codes as a grocery store. For your main grocery bonus, shop a dedicated supermarket, and at Walmart or Target a flat-rate card usually earns more than a grocery-category card.
How can I tell what merchant category a store uses?
There’s no official public lookup, but you can infer it from your rewards. Make a small purchase, then check which category and rate the transaction earned on your statement or card app. Community forums also track store coding, though it can vary by location and change over time. Because coding isn’t guaranteed, the safe approach is to confirm the earned category on your own statement before assuming a store qualifies for a bonus.
Is it worth paying bills with a credit card for rewards?
Often not, once the fee is counted. Rent, utilities, and taxes paid through a third-party processor usually code as the processor rather than the biller, so category bonuses don’t apply, and the service typically charges a few percent to process. That fee tends to exceed the rewards, making it a net loss. It can make sense when the spending helps you reach a sign-up bonus or a spending threshold, but run the numbers first.










