How to use COGS for DTC

Metricuno
May 22, 2026
7 min read
Quick answer

What actually belongs in cost of goods sold for a DTC store — and why most Shopify P&Ls quietly overstate gross margin by 8-15 points.

Definition
Unit Economics

COGS for DTC

The variable costs to source, land, pick, pack and collect payment for each order a DTC store ships.

COGS for a DTC store is the sum of all variable costs directly tied to fulfilling an order: the unit cost of the product itself, inbound freight and duties to get it into your warehouse, picking and packing labour, packaging materials, and payment processing fees. Outbound shipping is sometimes included and sometimes treated separately depending on whether the customer pays for it.

It is the single most-debated line on a DTC P&L. The number you put here determines your gross margin, your contribution margin, and ultimately the CAC you can afford to pay. Most stores in the €1M-€15M revenue band understate COGS by leaving out freight, duties, or processing fees — and overstate gross margin by 8 to 15 points as a result.

Also known as
Cost of goods sold
Landed cost
Product cost

If you sell on Shopify or WooCommerce, your default reports treat COGS as whatever you typed into the "cost per item" field. That field almost never reflects what an order actually costs to fulfil — which is why two stores with identical revenue can show wildly different profitability.

This guide walks through what belongs in COGS for a DTC store, what sits in a grey zone, what to exclude, and how the resulting margin maps to the broader gross margin components conversation. The goal: a number you can defend to a CFO and use to set paid-acquisition ceilings.

What belongs in DTC COGS

Start with landed product cost. That's the per-unit price you pay your supplier, plus inbound freight from their factory or warehouse to yours, plus any import duties and customs clearance fees. For a €14 beauty SKU made in Italy and warehoused in the Netherlands, landed cost is rarely just €14 — it's typically €15.20-€16.50 once freight and duties are spread per unit.

Add fulfilment-variable costs next. Pick-and-pack labour (whether in-house or 3PL) runs €1.50-€3.50 per order in Europe. Packaging materials — branded box, void fill, tissue, returns label — add another €0.80-€2.50. These scale linearly with order volume, so they belong in COGS rather than overhead.

Finally: payment processing. Shopify Payments, Stripe, PayPal, and Klarna each take 1.4%-3.4% of order value plus a fixed fee per transaction. On an €80 average order, that's €1.50-€3.20 of margin you'll never see. It's variable, it's per-order, and it belongs in COGS.

The most common mistake

Leaving payment processing out of COGS. Founders treat it as a "finance line" and book it below gross margin. On a 60% headline gross margin store, moving processing fees up into COGS typically drops the real margin to 55-57% — which is the number your paid-media team should actually be working from.

The grey zone: outbound shipping, returns, free gifts

Outbound shipping is the messiest line. If the customer pays a flat €4.95 and it costs you €6.20 to ship, the €1.25 delta is real margin erosion. The cleanest treatment: book outbound shipping cost in COGS, and book shipping revenue (whatever the customer paid) in revenue. That way your gross margin tells the truth about each order.

Returns are the second grey zone. For apparel stores running 25-40% return rates, return shipping, restocking, and the write-off on damaged returns can subtract 4-7 margin points. Treat the return cost as a COGS contra-line, prorated across all orders — not just the returned ones — so your blended margin reflects reality.

Chart

Typical landed cost stack for a €80 DTC apparel order

0€5€10€15€20€25€Product cost (ex-works)Inbound freight + dutiesPick & packPackagingOutbound shipping (net)Payment processingReturns reserveCost (€)Cost component

On this €80 order, total true COGS is €36.40 — a 54.5% gross margin, not the 72.5% the Shopify dashboard would show using product cost alone. That 18-point gap is exactly the gap that kills paid-acquisition scaling: you can afford a much lower CAC than your reports suggest.

Benchmark gross margins after honest COGS

Once you load every variable cost into COGS, gross margin benchmarks compress significantly from the "product margin" numbers founders quote at conferences. Here's what we see across categories for stores in the €1M-€15M revenue band.

These ranges assume blended Shopify Payments at ~2.4% plus fixed fees, an €70-€95 average order value, and 3PL fulfilment at European rates. Headless or in-house fulfilment can shift the numbers ±3 points either way.

Benchmark

True DTC gross margin ranges by category (post landed cost, processing, fulfilment)

CategoryHeadline product marginTrue gross marginTypical return rate
Beauty & skincare75-85%58-68%5-8%
Apparel & accessories65-75%48-58%25-40%
Footwear55-65%38-48%30-45%
Supplements & wellness70-80%55-65%2-5%
Home & lifestyle55-65%40-50%8-15%
Consumer electronics30-40%20-28%10-18%

Apparel and footwear suffer most from returns reserves — a 35% return rate effectively means one in three orders generates zero net revenue, and the cost of processing those returns is spread across the other two. Supplements and beauty look healthier on paper, but free-gift promotions and influencer-seeding samples quietly compress margin if you don't book them as a COGS adjustment.

How COGS connects to your wider margin stack

COGS is the first line in the gross margin components calculation, but it's not the last word on profitability. Below the gross margin line you still have marketing spend, app subscriptions, customer service, and overhead. The point of an honest COGS isn't pessimism — it's giving your performance manager a real ceiling for paid acquisition.

A useful rule: your maximum sustainable CAC is roughly your true gross margin per order minus a target contribution margin (typically 15-25 points for a growing brand). If your true gross margin is 52% on an €80 order, that's €41.60 of gross profit; targeting 20 points of contribution leaves you €25.60 to spend on acquiring each new customer.

The two-number test

Every quarter, recalculate two numbers: blended true gross margin (last 90 days of orders, all variable costs in), and blended new-customer CAC. If CAC creeps above gross profit per order, you're acquiring customers at a loss before you've earned a second purchase. Most stores don't notice this for 4-6 months.

Frequently asked

Frequently asked questions

At minimum: landed product cost (unit cost + inbound freight + duties), pick-and-pack, packaging, and payment processing fees. Outbound shipping and a returns reserve should also be included for an honest blended margin. Anything that scales per-order belongs in COGS; fixed costs like rent and software do not.

Take the supplier invoice (ex-works price), add inbound freight from the factory to your warehouse, add any import duties and customs fees, and divide by the number of units in the shipment. For a 1,000-unit order with €1,800 of freight and €600 of duties, landed cost is supplier price + €2.40 per unit.

Inbound shipping (from supplier to your warehouse) always belongs in COGS as part of landed cost. Outbound shipping (to the customer) is a judgement call — the cleanest treatment is to include the cost in COGS and book any shipping fee the customer paid as revenue, so gross margin reflects the true unit economics.

Put them in COGS. They scale linearly with revenue, they're unavoidable per-transaction costs, and excluding them inflates gross margin by 2-3 points. Shopify, Stripe, and PayPal fees on an €80 order typically run €1.80-€3.20.

DTC carries more variable cost per order: you pay fulfilment, packaging, and processing on every single unit. Wholesale ships in bulk so fulfilment cost per unit is a fraction of DTC. Marketplaces (Amazon, Zalando) charge a commission of 15-30% that replaces processing and partly replaces marketing — book it as a COGS line for those orders.

Create a returns reserve as a COGS contra-line, calculated as (return rate × cost of return shipping + restocking + write-off rate × landed cost), spread across every order. For a 30%-return apparel store, this typically adds 3-5% of revenue to COGS.

Not how you calculate it — but it changes the number significantly. If you offer free shipping at €50+, the full outbound shipping cost lands in COGS for those orders. Many stores raise AOV thresholds or pad product pricing by €3-€5 to absorb it without compressing margin.

Strictly speaking they're marketing expense, not COGS — there's no associated revenue. But you should track the landed cost of gifted units separately so your true product margin on paid orders isn't polluted. Most stores book the COGS to a "marketing samples" line below the gross margin.

After loading every variable cost into COGS, healthy ranges are: beauty 58-68%, apparel 48-58%, supplements 55-65%, electronics 20-28%. Below those ranges you'll struggle to fund paid acquisition; above them you have room to scale ad spend or invest in retention.

At minimum quarterly, and immediately after any supplier price change, freight contract renegotiation, or shift in duty rates. Stores that import from outside the EU should re-run landed cost any time the EUR/USD exchange rate moves more than 5%, since duties and freight invoices are typically dollar-denominated.

Get an AI expert review of your site

Paste your URL — Metricuno's AI runs the same heuristic checks a senior CRO consultant would, scoring your page and prioritising the fixes that'll move conversion fastest.