To find cost of goods sold, use the accounting formula: beginning inventory plus purchases minus ending inventory equals COGS for the period. For a print-on-demand store that holds no stock, both inventory figures are effectively zero, so your period COGS is simply the sum of what you paid your suppliers. But the number that actually runs your store is per-order COGS — the base product cost plus the supplier shipping on each unit — because that is what you subtract from revenue and ad spend to see whether an order made money.

Every guide that ranks for this keyword hands you the same accounting equation and stops there. That equation is correct, but it answers the wrong question for an operator. You do not run your business off a quarterly total — you run it order by order, deciding whether a $38 sale that cost $8 in Meta spend to win actually cleared a profit. This article gives you both: the textbook formula for your books, and the per-order COGS number that tells you if today's orders are worth fulfilling.

The COGS formula every operator knows (and its limit)

The standard formula, echoed by Shopify and every accounting reference, is:

Beginning inventory + purchases − ending inventory = COGS

Beginning inventory is what you carried in from last period. Purchases are everything you bought or produced this period. Ending inventory is what is left unsold at the close. Subtract the leftovers and you are left with the cost of only what actually sold.

This works cleanly for a store that buys stock, warehouses it, and draws it down. The problem is that it produces a single lump number for a whole month or quarter. It tells your accountant your gross margin. It does not tell you whether the order that just came in is profitable — and for a print-on-demand operator, that per-order view is the whole game.

Method one: period COGS from the formula

Use this method for your books, your tax filing, and your gross-margin trend.

Say you run a store that also holds a little stock of packaging inserts and a few pre-printed staples. You start the quarter with $1,200 of inventory, pay suppliers $9,400 across the quarter, and end with $900 of inventory still on the shelf.

  • Beginning inventory: $1,200
  • Plus purchases: $9,400
  • Minus ending inventory: $900
  • COGS for the quarter: $9,700

If you would rather pull it off your income statement, flip the gross-profit line: revenue minus gross profit equals COGS. Both routes land on the same figure. The mechanics of that reconciliation — and how it lands in your ledger — are covered in our companion piece on how to calculate cost of goods sold and in the guide to recording cost of goods sold in your accounts.

For a pure POD store, this formula collapses to something simpler. You hold no inventory, so beginning and ending inventory are both zero, and your period COGS equals the total of your supplier invoices — every base cost and every supplier shipping charge Printify, Printful, or Gelato billed you that period. That is genuinely all "find COGS" means on the books for you.

Method two: per-order COGS (the number that runs the store)

Period COGS is a rear-view mirror. Per-order COGS is the windshield. It is the direct cost to produce and deliver one specific unit, and it is what you subtract, order by order, to see real profit.

For POD, per-order COGS has two parts:

  • Base product cost — what the supplier charges to print the item.
  • Supplier shipping — what the supplier charges to ship that unit to your customer.

That is it. Notice what is not in there: your Meta spend, your Shopify subscription, your app fees. Those are operating expenses, not COGS — the same line Square and Shopify both draw. Advertising and admin sit below the gross-margin line. Keeping that boundary clean is what separates a real profit number from a guess.

Worked example: per-order COGS on a real order

Say you sell a premium tee at a $38 retail price and fulfill through Printify. Here is the per-order COGS build:

Line item Amount
Supplier base product cost $14.50
Supplier shipping $4.75
Per-order COGS $19.25

That $19.25 is your cost of goods sold for that one order. These are illustrative supplier numbers for a worked example, not market figures — your own supplier invoice gives you the exact two lines. Your gross profit on the sale is $38.00 − $19.25 = $18.75, a gross margin of about 49%.

Multiply out across an operating month. Say that store ships 420 of these orders. Per-order COGS of $19.25 × 420 = $8,085 in cost of goods sold for the month, straight from supplier invoices — which, for a no-inventory POD store, is exactly what Method one would have told you too.

What counts as COGS — and what quietly doesn't

The direct costs that belong in COGS:

  • The base cost your supplier charges to print or produce the item.
  • Supplier shipping and freight to move that unit.
  • Any per-unit packaging or inserts tied to the specific product.

The costs that do not belong in COGS (they are operating expenses):

  • Meta Ads and Google Ads spend.
  • Your Shopify subscription and app fees.
  • Payment processing.
  • Design, admin, and customer-support time.

This matters for more than tidiness. Because the IRS lets you deduct the cost of goods you sold against revenue, per Shopify's tax overview, misclassifying ad spend as COGS distorts both your taxable income and your gross margin. Keep the line exactly where the accounting standard puts it.

Why POD changes the COGS math

For a stocked retailer, a refunded item usually comes back and re-enters inventory — the loss is shipping, not the whole unit cost. For POD there is no restock. The item was printed for that one order and cannot be resold, so the COGS you paid is unrecoverable the moment you refund.

That reframes how you should read your COGS. Every dollar of per-order COGS is fully at risk on a return or a chargeback — and a lost dispute typically runs two to two-and-a-half times the order value once you add back the sunk product cost, shipping, and ad spend. Knowing your true per-order COGS is the first step to knowing how much a bad order actually costs you. The broader money mechanics of returns, chargebacks, and fulfillment are mapped in our ecommerce ops economics hub.

From COGS to true per-order profit

COGS on its own is only half a profit statement. To know whether an order made money, you finish the subtraction with the operating costs COGS deliberately excludes.

Say you run 420 orders a month at a $38 AOV with $3,000 in monthly Meta spend. Your customer acquisition cost is $3,000 ÷ 420 = about $7.14 per order. Stacking it up on that single tee:

  • Revenue: $38.00
  • Minus per-order COGS: −$19.25
  • Minus acquisition cost: −$7.14
  • Minus payment processing (roughly 3% of $38): −$1.14
  • True per-order profit: about $10.47

That $10.47 — not the $18.75 gross margin, and definitely not the top-line revenue — is what actually accrues to you per order. The gap between the two is exactly where operators fool themselves. Getting from raw supplier invoices, ad-platform spend, and processing fees to that final number by hand, every day, is the tedious part; understanding how that reconciliation fits a real ops workflow is the job we describe in what an operations manager does in ecommerce.

This is precisely the calculation PodVector AI automates. Victor, PodVector AI's AI employee, connects your Shopify store, Meta Ads, Google Ads, and your Printify, Printful, or Gelato account, then computes true per-order profit — pulling the supplier COGS, the ad spend, and the fees into one live figure and delivering the report to your Google Drive. Every write action Victor takes is approval-gated, so you stay in control of what executes. It is not a dashboard you have to read; it is the reconciliation done for you.

FAQs

What is the simplest way to find cost of goods sold?

Use beginning inventory + purchases − ending inventory for the period. If you run a print-on-demand store with no held stock, that simplifies to the total of your supplier invoices, because both inventory figures are zero. For decisions, though, calculate per-order COGS — base product cost plus supplier shipping — on each unit.

How do I find COGS from my income statement?

Subtract gross profit from revenue: revenue − gross profit = COGS. If your income statement already lists a COGS line, use that figure directly. Just confirm that advertising and admin costs were not folded into it, because they belong below the gross-margin line as operating expenses.

Does ad spend count as cost of goods sold?

No. Meta and Google Ads spend are operating expenses, not COGS. COGS is limited to the direct cost of producing and shipping the goods you sold — for POD, the supplier base cost and supplier shipping. Both Shopify and Square draw this line the same way. Keep acquisition cost in its own line so your gross margin stays honest.

Why does per-order COGS matter more than period COGS for POD?

Because you make fulfillment and pricing decisions one order at a time, and because a printed item can never be restocked. Period COGS tells your accountant the quarter's gross margin; per-order COGS tells you whether the order in front of you clears a profit after acquisition cost and fees. For a store where every refund forfeits the full unit cost, that per-order view is the one that protects margin.

How does COGS connect to profit and pricing?

COGS sets your gross margin, and gross margin is the room you have to cover ads, fees, and returns before you reach real profit. Small pricing moves lever hard against it — one analysis cited by Shopify found a one-percent price increase can lift margins by roughly eleven percent when unit sales hold steady. That only works if you know your true per-order COGS first, so you are raising price against a real cost, not a guessed one.