featured article

Class and Location Tracking for Channel-Level P&L in QuickBooks

Colleen Quattlebaum

August 9, 2026

What classes and locations are actually for

A class in QuickBooks is a tag you attach to a transaction so you can filter reports by it later. A location is the same idea with different plumbing and a few behavioral differences. Neither one is an inventory construct, neither one changes the ledger, and neither one is smart. They are dimensions, and they only produce a useful channel profit and loss if every transaction that touches a channel carries the right tag.

For a multichannel seller, one class per sales channel is the correct default. Amazon, Shopify, Walmart, eBay, TikTok Shop. Not one per warehouse, not one per brand, not both at once.

The two products behave differently

QuickBooks Desktop and Enterprise have Class tracking. There is no separate Location dimension. Enterprise adds inventory sites through Advanced Inventory, which Intuit's product page states is "included in the Platinum and Diamond subscriptions only," but an inventory site is a place stock lives, not a profit and loss dimension. You cannot filter a profit and loss by inventory site.

QuickBooks Online Plus and Advanced have both Classes and Locations. Intuit's help documentation states that class tracking and location tracking are available on Plus and Advanced only. Simple Start and Essentials do not have them.

That gives Online users two dimensions to work with and Desktop users one. It sounds like an advantage until you read the limits.

The limits nobody checks until they hit them

Intuit's published usage limits article, updated in 2026, sets these caps:

  • QuickBooks Online Simple Start and Essentials: classes and locations not available
  • QuickBooks Online Plus: 40 combined classes and locations, 250 chart of accounts entries, 5 billable users, 4 custom fields per transaction
  • QuickBooks Online Advanced: unlimited classes and locations, unlimited chart of accounts, 25 billable users, 12 custom fields per transaction

The word "combined" on the Plus tier is the one to notice. Forty is the total across both lists, not forty each. Intuit also notes that only active items count, so making a class inactive frees the slot.

A seller with five channels, four brands, and three fulfillment paths who tries to model all three dimensions with classes and locations will build something like 5 times 4, or 20 class entries, plus a handful of locations, and land uncomfortably close to the cap while producing a report nobody can read.

The design that works

Use one dimension for the thing you make decisions about most often. For a marketplace seller that is almost always channel.

Classes: Amazon, Shopify, Walmart, eBay, TikTok Shop, plus one called Overhead for everything that cannot be attributed.

Locations, if you are on QuickBooks Online: legal entity or brand, if you have more than one. If you have one entity and one brand, leave Locations off entirely. An empty dimension is worse than no dimension because it invites inconsistent tagging.

Then make the rule absolute: every revenue, fee, refund, and cost of goods transaction carries a class. Anything genuinely shared, rent, software, the owner's salary, goes to Overhead and gets allocated in analysis, not in the ledger.

The temptation is to allocate overhead across channels inside QuickBooks so each channel shows a "real" bottom line. Resist it. Allocated overhead in the ledger creates a number that changes when your allocation basis changes, which makes period comparisons meaningless. Keep the ledger factual. Allocate in the analysis layer where you can show your work.

A worked channel P&L

A seller closes July 2026 with these class-tagged results.

| | Amazon | Shopify | Walmart | eBay | Total |

|---|---|---|---|---|---|

| Product revenue | 218,440 | 96,310 | 71,820 | 33,105 | 419,675 |

| Shipping revenue | 4,180 | 7,940 | 1,260 | 3,860 | 17,240 |

| Refunds | (12,760) | (3,410) | (4,905) | (1,980) | (23,055) |

| Marketplace fees | (32,766) | 0 | (10,773) | (4,532) | (48,071) |

| Payment processing | 0 | (3,145) | 0 | 0 | (3,145) |

| Fulfillment fees | (39,928) | (11,205) | (14,180) | (5,940) | (71,253) |

| Storage fees | (3,240) | (1,880) | (1,410) | (420) | (6,950) |

| Advertising | (18,660) | (9,320) | (4,110) | (1,205) | (33,295) |

| Cost of goods sold | (78,640) | (34,670) | (25,855) | (11,920) | (151,085) |

| Channel contribution | 36,626 | 40,620 | 11,847 | 10,968 | 100,061 |

Contribution margin by channel: Amazon 16.8 percent, Shopify 42.2 percent, Walmart 16.5 percent, eBay 33.1 percent, each measured against product revenue.

Overhead for the month, untagged, is $61,400. Company contribution after overhead is $38,661.

Look at what the class dimension bought. Amazon is 52.1 percent of product revenue and 36.6 percent of contribution. Shopify is 22.9 percent of revenue and 40.6 percent of contribution. Without the class split, the consolidated statement shows a business earning 23.8 percent contribution on $419,675 of product revenue and gives you no reason to move a dollar of advertising anywhere.

Where the method breaks

Classes get you to channel. They do not get you to SKU, and that is where the decisions actually live.

The Amazon column above shows $39,928 in fulfillment fees. It does not show that $11,400 of that came from 340 units of one oversized SKU whose contribution is negative. QuickBooks recorded the fee against a fee account with a class tag. It has no mechanism to attribute the fee to the item that caused it, because the settlement report does not arrive item by item in a form the ledger can consume.

Two other limits are worth naming:

Cost of goods by class requires the source data to carry channel. If your inventory system posts a single monthly cost of goods entry, splitting it across classes is an estimate, and estimates in the ledger have a way of hardening into facts.

Retroactive tagging is expensive. Adding a class dimension in month nine and backfilling eight months of transactions is a real project. Set the dimension up before you need the report.

What to build alongside it

The right architecture is a factual, class-tagged ledger in QuickBooks plus a profit layer that computes per-SKU and per-channel economics from settlement-level data. ConnectBooks does the second half: reading marketplace settlements, attributing fees and fulfillment cost to the SKUs that generated them, carrying FIFO landed cost, and posting the reconciled result into QuickBooks Online, Desktop, Enterprise, or Xero through the QuickBooks integrations set.

The profit reporting that comes out of it answers the question the class-tagged P&L raises but cannot resolve: which SKUs inside the Amazon column are carrying the other ones. For the tier trade-offs between Desktop and Online, see the edition comparison, and the accounting overview for how the pieces fit.

A short setup checklist

  • Confirm your subscription supports classes. Plus or Advanced on Online, any Enterprise tier on Desktop.
  • Create one class per active sales channel plus one Overhead class.
  • Turn on the warning for untagged transactions if your edition offers it.
  • Decide whether Locations carry entity or brand, or stay off.
  • Post cost of goods by class from source data, not by allocation.
  • Review the Overhead class monthly. If it is growing as a share of the total, transactions are being tagged lazily.

Take Control of Your E-Commerce Business with ConnectBooks

Running an e-commerce business comes with plenty of challenges, but ConnectBooks is here to make your life easier. With real-time insights, seamless integrations, and detailed tracking of your profitability and inventory, you can stay ahead of the game. Whether you’re selling on Amazon, Shopify, Walmart, TikTok or eBay, ConnectBooks helps you manage your finances with 100% accuracy and confidence, so you can focus on growing your business.

Ready to level up? Start making smarter, data-driven decisions every step of the way. Try ConnectBooks Free Today or Schedule a Demo