Most articles on this question stop at the textbook formula and a list of ways to cut supplier costs. That's fine if your COGS is low because you negotiated well. It's dangerous if your COGS looks low because half your direct costs landed somewhere else. This piece separates the two cases, walks the numbers, and shows you what a low COGS should — and shouldn't — mean for your bottom line.
First, what COGS actually is
Cost of goods sold is the direct cost of the specific units you sold in a period. Not units you bought, not units sitting in a drawer — the ones that left the door.
The classic formula is COGS = beginning inventory + purchases − ending inventory. For a print-on-demand or dropship store, there's often no inventory to speak of, so COGS is simpler: it's what your supplier charged to produce and ship the orders you fulfilled this month, and — if you choose to book it here — the payment processing fees on those sales.
Getting this line right is the whole game, because COGS is what stands between revenue and gross profit (net sales − COGS). Divide gross profit by net sales and you get gross margin %, the cleanest read on your product economics. A misplaced cost doesn't just move a number; it distorts the one ratio you use to judge whether the product works. Our ecommerce P&L guide lays out the full statement top to bottom if you want the surrounding context.
The good reasons your COGS is low
Sometimes low is exactly what it should be. Here are the legitimate causes.
You run print-on-demand or dropship
You never buy stock up front. You pay your supplier only after a customer pays you, so there's no deadstock, no warehousing, and no inventory you overpaid for gathering dust. Your COGS is just the marginal production cost per order. This is a structurally low-COGS model by design.
You negotiated your inputs down
Cheaper blanks, a better print partner, lower per-unit shipping, tighter packaging. Every dollar you shave off the cost to make and deliver a unit drops straight into gross profit. If you've been working this lever deliberately, a falling COGS is the scoreboard telling you it worked. Our guide on how to improve COGS covers the levers worth pulling.
Inventory timing (for stocked sellers)
If you carry inventory, COGS reflects only the units sold, not the units bought. Stock up heavily near period-end and your ending inventory rises, which mathematically shrinks the COGS for that period. That's not a real cost reduction — it's a timing effect that reverses the month you sell that stock down. Worth knowing so you don't celebrate a mirage.
The bad reasons your COGS is low
This is the part the ranking pages skip. A low COGS is often a completeness problem, not a cost achievement. Watch for these.
You left costs out of the direct-cost line
The most common cause. Your true per-order cost usually includes:
- The supplier's production charge (the blank plus printing).
- The supplier's shipping to the customer.
- Payment processing fees on the sale.
- Packaging, if you add any.
Drop any of these and COGS looks artificially small. Payment processing is the sneakiest omission: on lower-tier Shopify plans, online card payments are commonly billed around 2.9% plus a fixed per-transaction fee, according to accounting specialists A2X — a real, per-sale, direct cost. Leave it out and every order looks more profitable than it is.
You booked the net Shopify payout as revenue
Here's a subtle one. If you record the deposit Shopify drops in your bank as "sales," you've already netted out fees and refunds before they ever hit a line — so processing costs vanish and your COGS looks low because part of it was silently swallowed at the top. The correct move is to book gross sales at the top and let fees, refunds, and the payout sit on their own lines. A2X's breakdown of the ecommerce income statement shows the proper structure.
You're underpricing your inputs on the books
Low COGS can also mean you've quietly undervalued what a unit costs — not counting a design contractor, a per-order app fee, or the true landed cost. It flatters the P&L today and blindsides you when you scale and the real costs finally surface.
A worked example: what "low" hides
Say you sell a t-shirt for $32. Here's the trap.
The flattering version. You only count the supplier's $12 production charge as COGS. Gross profit per order looks like $32 − $12 = $20, a margin of 20 ÷ 32 = 62.5%. Feels great.
The honest version. Add the supplier's $4 shipping and the processing fee (roughly 2.9% of $32 plus 30¢ = about $1.23). Now COGS is $12 + $4 + $1.23 = $17.23. Gross profit is $32 − $17.23 = $14.77, a margin of 14.77 ÷ 32 = 46.2%.
That's a 16-point swing on the same order — and the second number is the true one. A "low COGS" of 37.5% ($12 on $32) was really 53.8% once you counted everything. If you'd priced, forecast, or scaled ad spend off the flattering version, you'd be steering by a broken gauge.
The part every COGS article skips: the profit angle
Low COGS is necessary for profit. It is nowhere near sufficient. Here's why chasing it in isolation misleads you.
In a paid-acquisition store, the biggest cost usually isn't making the product — it's getting the order. Ad spend belongs in operating expenses, below gross profit, not in COGS. Continuing the example above: a 46% gross margin leaves about $14.77 per order to cover ads and everything else. If your blended cost to acquire a customer is $12, your real per-order profit is closer to $2.77, not the $20 the flattering COGS implied.
So the store with the enviably low COGS can still lose money if acquisition eats the gross profit. That's the whole point: COGS tells you whether the product works; you need the full P&L to know whether the business works. If your acquisition costs are the thing quietly climbing, our note on why variable costs run high is the more useful read — and if your variable costs are genuinely, verifiably low, here's what that signals.
This is exactly where a lot of small stores fly blind. Your Shopify reports show sales, your ad dashboards show spend, your supplier bills sit in email — but nothing stitches them into one true per-order number. PodVector connects Shopify, Meta Ads, Google Ads, Printify, and Printful and computes your real per-order profit after production, shipping, fees, and ad spend — so a "low" COGS can't hide a thin bottom line. Victor, its AI operator, reads that live data, flags where the money is actually leaking, and proposes Shopify-side moves you approve. Victor is not a dashboard, and he does not touch your ad account — he reads the numbers and hands you the decision.
How to check your own COGS in ten minutes
- List every cost of putting one order in a customer's hands. Production, supplier shipping, processing fee, packaging. If your COGS line doesn't include all of them, it's incomplete.
- Confirm you're booking gross sales, not the net payout. The deposit is a cash consequence, not your revenue.
- Recompute gross margin with the honest number. Compare it to the flattering one. The gap is what you were missing.
- Then look below the line. Is ad spend sitting in OpEx where it belongs? Is it eating your gross profit? That's usually the real story, not COGS.
Automating the plumbing so these numbers reconcile every month — instead of once a quarter by hand — is worth doing early; our overview of accounting automation for Shopify walks through the options.
FAQs
Is a low COGS always a good thing?
No. It's good when it reflects a genuinely cheap-to-produce product or hard-won supplier savings. It's bad when it reflects direct costs that were left out of the line — supplier shipping, processing fees, packaging — because then your gross margin is overstated and every downstream decision is built on a wrong number.
What should be in COGS for a print-on-demand store?
The supplier's production charge (blank plus printing) and the supplier's shipping to the customer, at minimum. Many sellers also include payment processing fees and packaging. Whatever you decide, keep it consistent month to month, or your margin trend becomes meaningless.
Does low COGS mean high profit?
Not necessarily. COGS only measures product economics. Your bottom line also depends on operating expenses — especially ad spend, which for many stores is the single largest cost. A low COGS with high customer-acquisition cost can still net near zero. Judge profit on the full P&L, not the COGS line alone.
Why did my COGS drop but my bank balance didn't?
Because profit and cash aren't the same thing, and because a low COGS may be a bookkeeping effect rather than a real saving. If ending inventory rose or costs quietly shifted to another line, COGS falls on paper while nothing changed in reality. Reconcile the numbers before you trust the drop.
Should payment processing fees go in COGS?
They can — they're a direct, per-sale cost, so booking them in COGS is defensible. Some sellers park them just below gross profit instead. Either is fine; the rule is consistency. What's not fine is dropping them entirely, which is a common reason a COGS number looks suspiciously low.
This article is general information, not tax or accounting advice. Rules and best practices vary by situation — consult a licensed CPA or accountant before acting.