Glossary Glossary · Costs & break-even · Updated 7 Jul 2026

What is COGS in ecommerce?

COGS in ecommerce is the true cost of putting one order in a customer's hands — product, freight in, packaging, and per-order fulfillment. Ads and Shopify fees are not COGS.

COGS in ecommerce — the short answer

COGS in ecommerce is the true cost of putting one order in a customer's hands — product, freight in, packaging, and per-order fulfillment. Ads and Shopify fees are not COGS.

For ecommerce, COGS (Cost of Goods Sold) is the total variable cost of fulfilling one order — the product itself, the freight to get it to your warehouse, the packaging consumed per order, and the labour to pick-pack-ship it. Ad spend and Shopify processing fees are not COGS; they live elsewhere on the P&L. nouz takes a COGS snapshot at the moment of sale, so an order placed today is costed against today's landed unit cost — not whatever the cost happens to be next month when the supplier raises prices.

TL;DR

COGS per order = Product unit cost + Inbound freight + Packaging + Per-order fulfillment labour. These are the four costs that only happen because an order happened. Exclude ad spend (variable marketing cost), Shopify fees (payment processing), and any fixed cost like warehouse rent. Get COGS wrong and every margin number that depends on it — gross margin %, CLV, break-even AOV — is wrong too.

The definition, in shop-owner English

COGS is the cost that exists only because the sale exists. If you sold one fewer unit this month, your product cost drops by one unit, your inbound freight drops by the per-unit share, your packaging drops by one mailer, and your fulfillment labour drops by the minutes that order would have taken. Everything else — rent, salaries, ads, software — stays the same. The four items above are COGS. Everything else is something else.

The clean test: if the order had not happened, would I have spent this money? Yes → not COGS. No → COGS. Ad spend would still have been spent (you ran the ad before the sale). Shopify's monthly subscription would still have been paid. Rent would still have been paid. None of those are COGS for that order.

The formula and what to include

COGS per order = Product unit cost + Inbound freight + Packaging + Per-order fulfillment labour

Include:

  • Product unit cost — what you paid the manufacturer or supplier for one unit, plus any tariffs or duties.
  • Inbound freight — shipping from supplier to your warehouse, divided per unit.
  • Packaging consumed per order — mailer, box, void fill, tissue, stickers, thank-you card.
  • Per-order fulfillment labour — the human (or 3PL pick-pack fee) cost of getting that order out the door.

Exclude:

  • Ad spend — that is variable marketing cost, tracked separately for CAC.
  • Shopify subscription fees — fixed software cost.
  • Card processing fees — variable payment cost, not COGS.
  • Warehouse rent — fixed cost, allocated separately.
  • Salaries (non-fulfillment) — operating expense, not COGS.

The reason the split matters: gross margin is computed as (Net revenue − COGS) ÷ Net revenue. If you stuff non-COGS items into COGS, gross margin drops and EBIT looks better than it should. If you leave true COGS items out (like packaging or freight), gross margin looks higher than reality.

Worked example: €29,50 per €60 order

A small DTC accessories brand selling a €60 leather wallet:

ComponentCostNote
Product unit cost€25,00Supplier invoice
Inbound freight€1,50Sea freight allocated per unit
Packaging€1,00Mailer + tissue + thank-you card
Per-order fulfillment labour€2,003PL pick-pack-ship fee
True COGS per order€29,50
Order value (net of VAT)€50,00€60 gross ÷ 1,20 VAT
Gross profit per order€20,50€50,00 − €29,50
Gross margin %41%€20,50 ÷ €50,00

Now compare to the version most brands use, where COGS is just the product cost:

ComponentCostNote
"COGS" (product only)€25,00Wrong
Order value (net)€50,00
Apparent gross profit€25,00
Apparent gross margin %50%9 points overstated

The product-only version overstates gross margin by 9 percentage points. Plug that into a CLV calculation and customer value comes out 22% too high. Plug it into break-even AOV and you set a free-shipping threshold €8 too low. The pricing decisions, the channel-spend decisions, the bundle decisions all anchor on a number that does not match the bank.

Benchmarks and gross margin targets

DTC verticalHealthy gross margin %Notes
Apparel55-70%Higher with own-brand manufacturing
Beauty / skincare65-80%Highest of any DTC vertical
Homewares50-65%Freight is a bigger COGS line
Food / beverage35-55%Tight margins, packaging-heavy
Accessories (leather, jewellery)50-65%Wide range based on material cost

These benchmarks assume fully-loaded COGS — product, freight, packaging, and fulfillment labour. A brand reporting 70% margin in apparel using product-only COGS is probably actually at 55-60% on a fully-loaded basis. The difference is exactly the gap between "looks profitable" and "is profitable."

Why getting COGS wrong silently kills margin

COGS is the input to almost every other unit-economics number: gross margin, CLV, break-even AOV, contribution margin, ROAS judgment. Get COGS wrong by 9 points and every downstream metric is wrong by a corresponding amount. The failure is silent because nothing breaks — the store still ships, the dashboard still shows a margin, the number is just quietly the wrong one. You only feel it at the bank, months later, when the profit the reports promised never arrives.

Common mistakes

The most common COGS mistakes in small ecommerce — each one pushes reported margin above real margin, which is the dangerous direction:

  • Forgetting inbound freight, especially when ordering from overseas — the per-unit share of a sea or air shipment is a real landed cost, not a footnote.
  • Underestimating packaging — a custom mailer + tissue + insert + sticker easily runs €1-€2 per order, and it scales with every single one.
  • Ignoring fulfillment labour when the founder still picks-and-packs orders themselves. Free-feeling founder time is still a real per-order cost; the day you hand it to a 3PL, it appears as a line, so cost it from the start.
  • Using old supplier prices from six months ago instead of the latest invoice — margin drifts down invoice by invoice while the spreadsheet says it is flat.
  • Stuffing ad spend into COGS — that compresses gross margin and inflates EBIT, and it hides your true CAC, so two numbers go wrong at once.
  • Averaging one COGS across every SKU — a €5-landed keychain and a €40-landed jacket do not share a margin. Blended COGS hides which products actually make money and which you are subsidising.
  • Ignoring returns and refunds — a returned order still ate packaging, outbound shipping and labour. On a daily P&L, track it as a refund plus a returns-handling cost rather than pretending the order never cost anything.

How it shows up in your daily P&L

A daily P&L only tells the truth if COGS is right at the line level, every day. In nouz the chain runs the same way each day: gross revenue minus tax minus card fees gives net revenue; net revenue minus COGS minus the remaining variable costs (shipping-out, non-COGS packaging) minus the day's slice of fixed cost gives EBIT. If COGS is understated by 9 points at the top of that chain, the EBIT at the bottom is overstated by the same amount — every single day, compounding into a month-end number that never matches the bank.

This is why nouz snapshots COGS at the moment of sale. An order placed today is costed against today's landed unit cost, so when the next supplier shipment arrives dearer, new orders carry the new cost while old orders keep theirs — historical margin stays accurate instead of being retroactively rewritten. The result is a daily EBIT you can act on the same evening, built on a fully-loaded COGS rather than a product-only guess that flatters every number downstream of it.

For a store selling several products, that same-day accuracy is what lets you see per-order profit at the SKU level rather than a single blended average. A promotion that pushes volume toward a thin-margin line shows up in the day's EBIT immediately, not in a quarter-end review. The habit worth building is to read the day against its fully-loaded COGS every evening — the number takes seconds to check and it is the difference between running the store on what the bank will actually show and running it on a hopeful estimate.

Related concepts:

Common questions

Are Shopify fees part of COGS?

No. Shopify's payment processing fees and platform subscription are not COGS — they are payment processing and software costs respectively. Card processing fees should sit in their own line on the P&L (a deduction from gross revenue to get to net revenue), and the Shopify subscription is a fixed operating expense.

Is ad spend part of COGS?

No. Ad spend is variable marketing cost, tracked separately as part of CAC. Bundling ad spend into COGS makes gross margin look artificially low and inflates EBIT, which produces wildly misleading unit economics. Keep COGS strictly to product + freight + packaging + per-order fulfillment.

Should I include returns processing labour in COGS?

For a daily P&L view, returns processing is typically tracked as a negative against revenue (refunds) plus a returns-handling cost line. Some shops fold it into COGS as a per-return cost. Both are defensible; consistency matters more than which side it sits on. The wrong answer is to ignore it.

How often should I update my COGS numbers?

On every supplier invoice. nouz uses a COGS snapshot — the cost is fixed at the moment of sale, so today's order is costed at today's landed unit cost. When the next supplier shipment arrives at a higher cost, new orders use the new cost; old orders stay at their original cost. That preserves historical margin accuracy.

Should inbound freight really be part of COGS?

Yes. Freight from the supplier to your warehouse is a genuine landed cost of the product — divide the shipment's freight bill across the units it carried and add the per-unit share to product cost. Leaving it out is one of the most common reasons a store's reported gross margin sits several points above reality, especially when sourcing overseas.

Do I include fulfillment labour if I pack orders myself?

Yes. Founder time spent picking, packing and shipping is a real per-order cost even though no invoice changes hands. Cost it at what a 3PL or a hire would charge for the same work — typically a couple of euros per order. Do it from the start, so the day you outsource fulfillment your margin does not suddenly appear to collapse; it was always there, just unpriced.

Can I use one blended COGS across all my products?

Only for a rough top-line view, and even then with caution. A €5-landed keychain and a €40-landed jacket have completely different margins; a blended COGS hides which SKUs make money and which you are quietly subsidising. For pricing, bundling and channel-spend decisions, cost COGS at the SKU level — the blended figure is where loss-making products go to hide.

How does COGS affect my gross margin and break-even AOV?

Directly, because both are computed from it. Gross margin is (net revenue − COGS) ÷ net revenue, and break-even AOV is the order value at which contribution covers your per-order costs. Understate COGS by 9 points and gross margin reads 9 points too high, CLV comes out roughly a fifth too high, and break-even AOV lands too low — so you set free-shipping thresholds and ad budgets on numbers that do not match the bank. Fully-loaded COGS is what keeps all of them honest.

Get started · 7-min setup

Stop looking up your COGS in ecommerce after the fact.

nouz computes your COGS in ecommerce — and the rest of your daily P&L — automatically, every night at close. Set up in 7 minutes; tonight's number lands on your phone before you lock up.

14 days free·No card at signup·Pay monthly·Cancel in two clicks