COGS for DTC

Metricuno
May 22, 2026
4 min read
COGS for DTC — What to include in COGS for a DTC store — landed cost, duties, payment fees, pick-pack, shipping, and the gray-area items that break margin math.
Quick answer

A practical definition of Cost of Goods Sold for direct-to-consumer stores — what belongs in landed cost, which fulfilment and payment fees count, and how to handle the gray-area items most finance sheets get wrong.

Definition
Finance & Unit Economics

COGS for DTC

The direct cost of getting one ordered unit into a customer's hands — landed product cost plus the variable fulfilment and payment costs per order.

Cost of Goods Sold for an online store covers every cost that scales one-to-one with a unit sold: the landed product cost (manufacturer price, inbound freight, duties, customs broker fees), the per-order fulfilment costs (pick-pack labour, packaging, last-mile shipping), and the payment processing fees Shopify Payments or Stripe deduct on the way in.

What sits outside COGS is anything fixed or marketing-driven: warehouse rent, software subscriptions, salaries, paid ads, influencer fees. Get the boundary right and gross margin tells you the truth about each SKU. Get it wrong and you'll launch a hero product that quietly loses money on every order.

Also known as
Cost of goods sold
Landed COGS
Variable cost per order

The standard accounting definition — "direct costs to produce goods sold" — was written for manufacturers with raw materials and assembly lines. For an online store buying finished goods from a supplier and shipping them to consumers, the definition needs to stretch to cover the realities of how the order actually gets fulfilled.

The clean rule: if the cost disappears when the order doesn't happen, it belongs in COGS. A unit not sold means no Shopify Payments fee, no ShipBob pick-pack charge, no DHL last-mile label. Those are variable, per-order, and they distort gross margin badly if you leave them in OpEx.

Formula

COGS_per_order = Landed_product_cost + Payment_fees + Pick_pack + Packaging + Last_mile_shipping + Returns_provision

Variables

Landed_product_cost

Landed product cost

Manufacturer price + inbound freight + duties + customs broker, divided by units in the shipment.

Payment_fees

Payment processing fees

Shopify Payments, Stripe, PayPal, Klarna — typically 1.9-3.4% of order value plus a fixed per-transaction fee.

Pick_pack

Pick and pack labour

3PL or in-house labour to retrieve, pack, and label the order. Usually a fixed per-order fee plus a per-additional-item charge.

Packaging

Packaging materials

Mailer, box, void fill, tissue paper, thank-you card, branded inserts.

Last_mile_shipping

Last-mile shipping

Carrier label cost (DHL, UPS, PostNL, Royal Mail) net of any shipping revenue collected from the customer.

Returns_provision

Returns provision

Expected return rate × (return shipping + inspection + restocking or write-off of unsellable units), allocated across all orders.

Worked example

A €65 apparel order from a Shopify store shipping from a Netherlands 3PL to a German customer, with free shipping and a 20% category return rate.

Landed product cost (shirt): €14.00

Shopify Payments fee (1.9% + €0.25): €1.49

Pick & pack (3PL): €2.20

Packaging (mailer + tissue + card): €1.10

Last-mile shipping (DHL to DE): €5.80

Returns provision (20% × €7 reverse logistics): €1.40

€25.99 COGS per order → 60.0% gross margin on €65 AOV

A reported gross margin of 78% on the product cost alone collapses to 60% once the variable order costs land in COGS where they belong. That 18-point gap is the difference between a SKU you can scale on paid and one that quietly burns cash.

The benchmark table below shows where landed COGS typically lands as a share of AOV across common online-retail categories. Use it as a sanity check on your own numbers — if you're significantly outside the range for your vertical, either your supplier deal is exceptional, or something is missing from your COGS line.

Benchmark

Typical COGS share of AOV by DTC vertical (landed product + fulfilment + payment fees)

VerticalLanded product %Fulfilment + payment %Total COGS % of AOVResulting gross margin
Apparel & accessories20-28%10-14%32-40%60-68%
Beauty & skincare15-22%12-16%28-36%64-72%
Supplements & nutrition18-25%10-14%30-38%62-70%
Home & lifestyle30-40%14-20%46-58%42-54%
Consumer electronics55-70%8-12%65-80%20-35%
Food & beverage28-38%16-22%46-58%42-54%

Two gray-area items deserve a clear policy. Free shipping subsidies belong in COGS, not marketing — the label cost is incurred per order, and pretending it's a promotional expense flatters gross margin. Influencer seeding (sending free product) is the opposite: those units never had a sale attached, so they belong in marketing as customer acquisition cost, not in COGS as shrinkage.

Frequently asked

Frequently asked questions

In COGS. Shopify Payments, Stripe, PayPal, and Klarna fees scale one-to-one with each order, so they're variable and order-driven. Leaving them in OpEx makes gross margin look 2-3 points better than reality and breaks contribution-margin math when you compare paid channels.

Yes. If you advertise free shipping and absorb the label cost, that cost is incurred per order and belongs in COGS as last-mile shipping. Booking it under marketing inflates gross margin and hides which AOV thresholds actually work. The exception is a one-off shipping promo tied to a specific campaign — that's marketing.

Most stores build a returns provision into COGS: expected return rate × (reverse shipping + inspection + write-off of unsellable units), allocated across all orders. A 20% apparel return rate with €7 reverse logistics adds €1.40 to every order's COGS. Tracking it this way keeps gross margin honest even before you see the actual returns roll in.

Landed cost is just the product piece — manufacturer price, inbound freight, duties, customs broker — divided per unit. COGS is broader: landed cost plus the variable per-order costs (payment fees, pick-pack, packaging, last-mile shipping, returns). Landed cost is what you pay to own one unit; COGS is what it costs to deliver one unit to a customer.

No. Storage fees are a function of time, not orders sold, so they're a fixed operating cost. Only the pick-pack and per-order handling charges from your 3PL belong in COGS. If your 3PL bundles storage and fulfilment into one invoice, split the line before it hits your finance model.

These are marketing costs, not COGS. The units left the warehouse but no sale was attached, so booking them as cost of goods sold distorts both COGS and gross margin. Track them in marketing under sampling or PR, valued at landed product cost so your inventory accounting stays clean.

No. Your Shopify plan, app subscriptions, Klaviyo, helpdesk, and analytics tools are all fixed software costs that don't scale with the next order. They sit in OpEx. Only the variable per-transaction fees from Shopify Payments belong in COGS.

Gross margin = (Net revenue − COGS) / Net revenue. Net revenue is gross sales minus discounts and refunds; COGS is the full variable cost per order as defined above. A Gross Margin Calculator that takes AOV and the COGS components and returns blended margin per SKU is the easiest way to keep this honest as inputs change.

Duties paid at import (DDP shipments, broker fees, tariffs) go into landed product cost. VAT is generally not in COGS — it's a pass-through tax collected from the customer and remitted to the tax authority. The exception is when you absorb VAT on a DDP basis for a market and don't collect it from the customer; then the absorbed portion sits in COGS as a market-entry cost.

Quarterly at minimum, and immediately after any supplier renegotiation, 3PL contract change, carrier rate update, or significant FX swing. Stores running on stale COGS — often a single number set during launch and never touched — routinely overstate margin by 5-10 points, which is enough to make a paid-channel strategy that looks profitable actually unprofitable.

Start tracking the metric that matters

Free for 30 days. No credit card. Connect your site in 4 minutes and see the one metric driving revenue.