E-Commerce Bookkeeping Small Business
Inventory & COGS Accounting for Shopify DTC Brands (2026)
Published August 3, 2026 by Invisible LLC Team · 9 min read
You're a DTC operator, not an accountant. But there's one accounting mechanic you can't outsource your understanding of, because it decides whether every other number you look at is true or fiction: how inventory and cost of goods sold land on your books. Shopify will happily tell you that you did $180,000 last month. It will not tell you whether you made money, because it doesn't know what those products cost you — and if your books don't handle inventory and COGS correctly, neither do you.
Key takeaways: Cost of goods sold is what your sold products cost you; inventory is what your unsold products cost you — and the whole game is moving dollars between the two at the right time. Get the timing wrong and your gross margin swings wildly month to month for no real reason. Track COGS to the SKU, value your inventory consistently, and reconcile the balance to what's actually on the shelf, and your P&L finally answers the only question that matters: which products make money?
COGS vs. inventory: the one distinction that fixes everything
Here's the mechanic in one sentence. When you buy product, it's an asset — inventory sitting on your balance sheet, not an expense. When you sell that product, its cost moves off the balance sheet and hits your income statement as cost of goods sold. Nothing about the purchase should touch your profit until the sale happens.
This is where most DTC books go wrong. The brand pays a $40,000 supplier invoice and books the whole thing as an expense the day the money leaves the bank. That month looks brutal — a huge cost, barely any matching revenue, because the goods haven't sold yet. Then the inventory sells over the next three months and those months look fantastic, because there's revenue with no cost attached. Your margin lurches from -15% to +70% and back, and none of it is real. It's just badly-timed bookkeeping.
The fix is matching: the cost of a product should hit your P&L in the same period as the revenue from selling it. Do that and your gross margin stabilizes into a number you can actually trust, plan against, and price from.
Periodic vs. perpetual: pick the method that matches your volume
There are two ways to keep COGS and inventory in sync, and the right one depends on how much you sell and how good your systems are.
Periodic is the simpler method. You don't touch COGS on every sale. Instead, at the end of the month (or quarter), you count what's left, and back into the cost of what sold using this identity:
Beginning inventory + purchases − ending inventory = cost of goods sold
If you started the month with $60,000 of inventory, bought $30,000 more, and counted $50,000 left at month-end, then $40,000 of product sold — that's your COGS. It's clean, it's cheap, and for a lot of brands under a few million in revenue it's entirely adequate. The catch: you only know your true margin after the count, so you're always looking backward.
Perpetual updates COGS and inventory continuously — every sale immediately moves that unit's cost from inventory to COGS. This is what a tool like a good inventory system, or Shopify plus an integration, is doing under the hood. It gives you real-time gross margin and current inventory value any day of the month, which is a real advantage once you're reordering constantly and can't wait for a month-end count. The cost is complexity: perpetual is only as accurate as the unit costs you feed it, which brings us to the number underneath everything.
Your COGS is only as good as your landed cost
Whichever method you use, COGS is built on one input: what a unit actually cost you. And for most DTC brands, the number they plug in is too low, because it's just the factory invoice.
Real product cost — landed cost — is the fully-loaded cost to get one unit onto your shelf ready to sell: product price plus inbound freight, duties, customs and brokerage fees, and inbound handling, allocated down to the unit. If you're only counting the factory price, your COGS is understated, your gross margin is overstated, and you're making pricing and reorder decisions on a flattering lie.
This got sharper in 2026. The de minimis exemption — the rule that let shipments valued at $800 or less enter the U.S. duty-free — was suspended for goods from all countries starting August 29, 2025, and on June 24, 2026, U.S. Customs and Border Protection moved that suspension into standing regulation, indefinitely (Federal Register, "Indefinite Suspension of the De Minimis Exemption," 2026-06-24). The statutory exemption is set to terminate July 1, 2027. Practically: low-value parcels that used to skate in clean now carry duty, so more DTC brands than ever have a real duty line to fold into unit cost. The exact rate depends on the product's classification and country of origin — don't guess it; get it from your customs broker or the Harmonized Tariff Schedule. But the accounting point stands regardless of the rate: if duty isn't in your landed cost, your COGS is wrong. (We go deep on building landed cost per unit in our landed cost guide.)
The four mistakes that quietly hide your real margin
In practice, a handful of the same errors show up again and again in DTC books. Watch for these:
- Expensing inventory on purchase. The single most common one — booking the supplier payment as an expense instead of an inventory asset. It scrambles your margin every month, as described above.
- Burying freight and duty in operating expenses. Inbound freight and duty are inventory costs; they belong in landed cost and flow through COGS. When they sit in a catch-all "shipping" or "operations" bucket down in operating expenses, gross margin looks great and nobody can explain why the bank account disagrees. (Note: inbound freight is COGS; outbound shipping to the customer is a fulfillment cost — keep them separate.)
- One blended COGS number for the whole store. "Cost of goods sold: $52,000" tells you nothing actionable. You need COGS — and therefore gross margin — by SKU or product line, so you can see that your hero product runs 68% margin while the bundle everyone loves runs 22%. That's the report that changes what you promote and what you kill.
- Never reconciling to a physical count. Your book inventory value and your actual shelf will drift — shrinkage, damage, returns, miscounts. If you never count and reconcile, the gap silently distorts COGS. A periodic count catches it and trues up the books.
Getting it right without becoming an accountant
You don't need to run the entries yourself — you need the system set up so the numbers come out true. That means a chart of accounts with proper inventory and COGS accounts, an inventory method that fits your volume, landed cost captured per SKU, and a monthly reconciliation that ties your book inventory to reality. Once that's in place, your Shopify revenue finally connects to a real gross margin, and you can answer "which products actually make money?" without a spreadsheet archaeology project.
That's the exact work we do for DTC brands — mapping Shopify, payment processors, and your bank into books that tell the truth, with margin broken out by SKU instead of a single blended number. If your "profit" number has never quite matched your bank account, that gap is almost always an inventory-and-COGS problem, and it's a fixable one. Get a quote or see how we handle DTC bookkeeping and margin reporting.