# Why your app files a Costco receipt as one category

_Pine River Labs · 2026-09-28 · https://receiptrabbit.io/blog/why-your-bookkeeping-app-files-a-costco-run-as-one-category_

**Short answer:** most bookkeeping apps categorize the _store_, not the _items_. A Costco run is one trip, but it can hold six kinds of spending, and an app that files the trip records a total without the information you actually need. The fix is line-item categorization: every line on the receipt gets its own category.

You come home from Costco with a $498 receipt, open your bookkeeping app a week later, and find the whole trip sitting under one word: **Shopping**. Most apps categorize the store rather than the items on the receipt.

That single trip actually holds six different purchases:

- A monitor for the business
- Printer paper
- Shipping mailers
- Diapers
- Groceries
- A bottle of wine

The app asked where you shopped, got one answer, and stamped it on every line. You need **line-item categorization**, where each line gets its own category.

## Why does my bookkeeping app put a whole receipt in one category?

Think of it like sorting mail by the return address instead of opening the envelope. Most apps look at the store name on top, assign one primary category to that merchant, and call it a day. That's **receipt-level categorization**, and it files your whole $498 Costco trip under "Shopping."

The alternative is opening the envelope and reading every line inside: **line-item categorization**. Both methods add up to the same $498.01, yet only one separates what you actually bought.

Read line by line, the six items split cleanly into two buckets:

- **Business purchases:** the monitor, the paper, and the mailers.
- **Personal purchases:** the diapers, groceries, and wine.

![Diagram: the same $498 Costco receipt read two ways. Receipt-level categorization files all of it as one Shopping total. Line-item categorization splits it into six categories: Electronics & Tech, Office Supplies and Shipping & Postage marked Business, and Kids & Baby, Groceries and Bars & Alcohol left personal.](/blog/img/posts/why-your-bookkeeping-app-files-a-costco-run-as-one-category/two-readings-diagram.webp#diagram "One receipt, read by the store or read by the line.")

## What does line-item categorization look like on a Costco receipt?

Read line by line, that Costco trip splits into **six spending categories** (three of them business), where a receipt-level app reports one:

| Line | Amount | Category | Business |
| --- | --- | --- | --- |
| 27" monitor | $329.99 | Electronics & Tech | Yes |
| Printer paper, 5 reams | $42.99 | Office Supplies | Yes |
| Shipping mailers | $24.99 | Shipping & Postage | Yes |
| Diapers | $44.99 | Kids & Baby | |
| Organic apples | $5.99 | Groceries | |
| Merlot | $19.99 | Bars & Alcohol | |
| Tax | $29.07 | _inherits the dominant category_ | |

Notice the tax line at the bottom has no category of its own. You didn't walk into Costco to buy a bag of sales tax.

Instead, tax follows the receipt's **dominant category**: whichever category holds the most dollars once every line is classified. We built it this way for a simple reason: your category totals still add up to what you paid, and no phantom "Tax" category clutters your reports.

![Diagram: the $29.07 tax line joins Electronics & Tech, the category holding the most dollars on the receipt ($329.99 for the monitor), so no separate Tax category appears and the categories still add up to the receipt total.](/blog/img/posts/why-your-bookkeeping-app-files-a-costco-run-as-one-category/tax-follows-diagram.webp#diagram "Tax joins the biggest category instead of becoming one.")

> [!TIP]
> Here, the $329.99 monitor is the biggest category, so the $29.07 tax lands in Electronics & Tech. Discounts work the same way, as negative amounts.

## What cases trip categorization engines up?

If reading a receipt line by line were easy, every app would do it. In practice, raw receipt text is full of abbreviations and pricing quirks, so an engine has to **classify the item itself** rather than guess from the store or a brand prefix.

A few real cases that tripped up early runs:

- **Store-brand prefixes aren't categories.** `KS Ibuprofen 500ct` and `KS Vitamin D3` use `KS` (Kirkland Signature, Costco's house brand) to tell you who made the item, not what it is. An engine that reads a store prefix as a category signal files your medicine as food.
- **Wine from the grocery aisle is still wine.** `COORS LIGHT 12PK` and `WINE CABERNET`, bought at Safeway next to a loaf of bread, belong in Bars & Alcohol. Where an item sat on the shelf doesn't change what it is.
- **Weighed items print the unit price next to the charge.** `BANANA 0.74 lb @ $0.49/lb` cost $0.36, not $0.49, so the amount to record is the **calculated charge**. That gap looks tiny until a receipt has forty weighed items and every line is off.
- **Baby brands get mistaken for pet brands.** A real early run filed diapers under the wrong category because an unfamiliar brand name on the line misled it. Diapers belong in Kids & Baby, and that receipt is now a test case.

![Diagram: the receipt line BANANA 0.74 lb at $0.49/lb, $0.36. The $0.49 per pound unit price is crossed out; the $0.36 calculated charge is the amount recorded.](/blog/img/posts/why-your-bookkeeping-app-files-a-costco-run-as-one-category/weighed-item-diagram.webp#diagram "Record what the line cost, not the price per pound.")

## How should I categorize a Costco receipt for taxes?

If you only track personal spending, a one-category receipt is an annoyance. If you deduct business expenses, you need to **tag business items on their own lines**.

Take the $498 receipt again, where the monitor is a business purchase and the diapers aren't. Filed as one "Shopping" line, you either deduct a number you can't defend or skip an expense you could have claimed. Fixing it by hand means an evening with a highlighter.

Categorizing by line skips the highlighter:

- **You tag the monitor, paper, and mailers** as business on their own lines.
- **Everything else stays personal.**
- The receipt ends up **mixed**, which is just a result of what's on it.

Line-level tags are also what make **mapping business spending to Schedule C lines** possible (Schedule C is the IRS form for self-employed business expenses). A receipt total can't map to one tax category because the total isn't one kind of expense. Each line can.

> [!NOTE]
> This is general information, not tax advice. What you can deduct depends on your situation, so ask your accountant or tax preparer.

## How do we check our own categorization?

When a carpenter mismeasures a board, they clamp a stop block to the saw so they can't make the same bad cut twice. We do the same thing in code: **every edge case becomes a permanent test** in our test suite (the automated checklist that runs on every update).

Each test uses the exact receipt text that caused the misread, so the same mistake shows up as a failing test instead of quietly coming back. The suite includes:

- The unfamiliar diaper brand line
- The store-brand medicine
- The mixed Safeway run

> [!IMPORTANT]
> We're publishing this because categorization is the core of the product, and you shouldn't have to take our word for it.

## How can I tell if an app categorizes line items?

You can test any bookkeeping app in **about two minutes** by scanning one mixed receipt. Run it through these three questions:

1. **Can you see the line items?** If the app shows only a total and one category, it isn't categorizing lines, even if it extracts them.
2. **Does one receipt produce more than one category?** Scan a grocery receipt. If everything lands in "Groceries" or "Shopping," the store won over the items.
3. **Where do tax and discount lines go?** If they appear as their own spending category, the engine is treating arithmetic as a purchase.

If an app **fails the second question**, it's still filing where you shopped.

## FAQ

### Why does my bookkeeping app put an entire store receipt in one category?

**It classifies the merchant** instead of the items. The store has one primary category, so every purchase there inherits it. That's cheap to compute and wrong for any receipt with more than one kind of thing on it, which is most receipts above about $50.

### How do I split a Costco receipt between business and personal?

**Line by line.** The business part of the receipt is a set of specific items, rather than a percentage of the total. Tag the business lines and leave the personal ones untagged. A percentage split of the total produces a number nobody can reconcile against the receipt image.

### Are coupons and taxes spending categories?

**No.** They're adjustments: coupons and discounts reduce what you spent, while taxes and fees add to it. Neither is a kind of purchase, so they inherit the receipt's dominant category instead of getting a category of their own. Your totals still add up, and no phantom category shows up in your reports.

### Why isn't alcohol from a grocery store categorized as groceries?

**The item is alcohol** no matter which shelf it sat on. Line-item categorization reads the item instead of the aisle. Filing grocery-store wine as groceries understates alcohol and overstates food, which matters if you track either one.

### Does a store brand change the category?

**No.** `KS Ibuprofen` is ibuprofen sold under Costco's Kirkland Signature house brand, so it's a pharmacy item rather than a grocery item. Store-brand health products are a common source of misclassification because the store prefix looks like a category signal when it is only a brand.

### How many categories does line-item categorization need?

**Forty-two**, including a Work & Office group for business spending. Fewer, and you lose distinctions that matter at tax time, such as office supplies versus household goods or pharmacy versus personal care. More, and you're maintaining a taxonomy nobody will ever finish.

Here's to fewer evenings with a highlighter.